Abjad
Python API for building LilyPond files to produce publication-quality music notation.
| Language | Python |
|---|---|
| Category | Composition & notation |
| License | GPL-3.0 |
| Platforms | macOS Linux Windows |
| Install | pip install abjad |
| First released | 2009 |
| Maintained | Yes |
| Links | Website · Source |
Strengths
- Precise, programmable control over engraved notation
- Strong model of scores, containers, rhythmic structures
- Actively maintained
Limitations
- Requires LilyPond and recent Python (3.12+)
- Steep learning curve
Best for
Algorithmically composing and engraving complex contemporary notation.
Minimal example
import abjad
staff = abjad.Staff("c'4 d'4 e'4 f'4")
abjad.show(staff)