Open Music Kit
Open Music Kit (OMK) is a symbolic music representation library. It encodes scores and notation as a graph of musical objects, and represents musical values such as pitches and durations as vectors whose algebra matches the musical concepts they stand for.
OMK is designed to represent any kind of music from any musical culture, at any level of completeness: a full orchestral score, a lead sheet, a melody with no rhythm, a cyclic drum pattern, or a sketch. The core package provides the abstract layer and a built-in implementation of Western Standard Music Notation (WSMN).
Where to start
- Examples walks through tones, intervals, durations, notes, chords, lyrics, and building a small score graph.
- Overview describes the design of the data model and the planned ecosystem.
- Goals explains the values that drive the design.
- API Reference documents every public module.
Installation
pip install openmusickitOMK requires Python 3.12 or later. Drawing a graph as SVG or PNG needs Graphviz installed; generating DOT, and these docs, do not.
To work on OMK itself, clone the repository and install it with uv:
git clone https://github.com/openmusickit/openmusickit
cd openmusickit
uv sync