Symbolic

A toolkit for computational symbolic music data and its notations. Work with notes, intervals, pitch classes, sets, progressions, and rhythms as structures you can inspect, transform, and sequence.

Keep a point or set independent of root and register, then add a key, voicing, and rhythm to realize MIDI notes. Symbolic focuses on twelve-tone equal temperament and MIDI-style playback; recorded audio, synthesis, and signal processing are outside its scope.

Libraries for music tools

The JavaScript and TypeScript package powers this catalog. A Python library is planned. We aim to release both as open source so others can build analysis, visualization, composition, and instrument tools.

Try it in the Code Sequencer

Playable examples become MIDI notes scheduled through a connected instrument. The sequencer's Symbolic Cycle language writes these structures as code: sets, Roman numerals, keys, drums and seeded generators, in songs that can import each other's layers. It is also a testbed for generative scripting; analytical concepts may have no direct note realization.

Research directions

Symbolic is an active research project. These are possible uses, not features promised by the current library.

Analyze and visualize

Inspect patterns, compare notations, and make musical relationships visible.

Build generative systems

Use structured data in analysis and generative models, and explore mathematical approaches to composition.

Design expressive tools

Give instrument designers theory-aware building blocks that help creators express ideas. Musicians need not become coders to benefit.

Explore 60 concepts

Harmony

Melody

Interfaces

Data & Analysis

Rhythm

Further concepts

Adapted from Codex Music Mono’s original concept JSON and typed catalog.