A MusicXML → Numbered Notation renderer with layout logic built from scratch.
This project aims to digitize and render Kidung Jemaat hymns into numbered notation (not angka) based on the Indonesian Yamuger (yayasan musik gereja), following the visual style of the official publication as closely as possible.
The goal is to create a searchable, accessible, and accurate digital version of Kidung Jemaat, starting from MusicXML sources and manually curated metadata. The engine outputs SVG-based notation modeled after the original KJ print style.
- Clone the repository
- Checkout releases tab
- Download these two files:
- kidung-jemaat.db : the metadata of the music that cannot be stored in the musicxml
- musicxml.zip : musicxml files that needed for the app to run
- Place them somewhere in the drive
- Adjust config in the
files/etc/numbered-mutation-xml/config.ini - run the app from
cmd/rest/app.go - open browser and open
http//localhost:[port]/kidung-jemaat/render/1(currently from 1 to 478c)
💡 Alternatively you can download the
goldenfiles.zipto see the final render looks like.
** taken from the goldenfiles **SVG modified to have background color
- Automatic syllable alignment per note for the verses (so the notated music is not only the 1st verse only)
- For searchability and categorization
- Soprano / Alto / Tenor / Bass layering
- Multi-staff layout
- Proper vertical alignment
Switch between:
- Numbered notation
- Traditional staff notation
I started digitizing Kidung Jemaat for personal use, to create a digital hymnal with clean notation and better searchability. Along the way, it grew into a more general exploration of:
- music engraving algorithms
- layout engines
- type-setting rules for classical hymnbooks
- MusicXML parsing
- text-notation alignment
Development pauses occasionally when I research better automation approaches