mahlif¶
Universal music notation interchange format with bidirectional converters.
מַחֲלִיף (machalif/mahlif) = Hebrew for "exchanger/converter"
Experimental / Pre-release Software
This project is in early development. APIs may change without notice.
Why Mahlif?¶
Music notation software stores scores in proprietary formats that don't interoperate well. MusicXML exists but loses layout precision. Mahlif provides:
- Mahlif XML — An intermediate format preserving pixel-accurate layout (dx/dy offsets)
- Bidirectional converters for notation software
Install¶
First, install uv.
Format Support¶
| Format | Import | Export | Notes |
|---|---|---|---|
| Sibelius | ✅ Plugin | 🚧 Plugin | Export ~80% complete |
| LilyPond | — | ✅ CLI | ~70% features |
| MusicXML | ❌ | ❌ | Planned |
| Finale | ❌ | ❌ | Planned |
| Dorico | ❌ | ❌ | Planned |
Current focus: Sibelius ↔ Mahlif XML
Quick Start¶
Export from Sibelius¶
Then in Sibelius: Home → Plug-ins → Mahlif → Export to Mahlif XML
Convert to LilyPond¶
# Convert to LilyPond source
mahlif convert score.mahlif.xml score.ly
# Compile to PDF (requires LilyPond installed)
lilypond score.ly
Python API¶
from mahlif import parse
from mahlif.lilypond import to_lilypond
score = parse("score.mahlif.xml")
lily_source = to_lilypond(score)
Documentation¶
- CLI Reference — Command-line interface
- Sibelius — Plugin installation, workflow, property mapping
- LilyPond — Export features and limitations
- Schema — Mahlif XML format specification