מַחֲלִיף (machalif/mahlif) = Hebrew for "exchanger/converter"
Warning
Experimental / Pre-release Software
This project is in early development. APIs may change without notice.
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
| 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 → LilyPond → PDF
pip install mahlif
# or
uv add mahlif# Install the export plugin
mahlif sibelius installThen in Sibelius: Home → Plug-ins → Mahlif → Export to Mahlif XML
# Convert to LilyPond source
mahlif convert score.mahlif.xml score.ly
# Compile to PDF (requires LilyPond installed)
lilypond score.lyfrom mahlif import parse
from mahlif.lilypond import to_lilypond
score = parse("score.mahlif.xml")
lily_source = to_lilypond(score)See the full documentation for:
- CLI Reference — All commands and options
- Sibelius — Plugin installation, linter, property mapping
- LilyPond — Export features and limitations
- Schema — Mahlif XML format specification