Tooling that turns a scanned lead sheet of Uf Gozal (עוף גוזל, Miki Gavrielov / Arik Einstein) into an engraved score and a produced, multi-instrument rock arrangement — all from the command line on Linux.
| File | What it is |
|---|---|
oof-orig.pdf |
the original scanned lead sheet (input) |
uf-gozal-v2.ly |
LilyPond transcription: melody + chords, 63 bars, hand-verified against the scan |
arrange-band.py |
expands the melody+chords into a 10-track rock band (drums, bass, guitars, keys, strings, solo) |
mix-studio.py |
renders each track to a stem and mixes: EQ, compression, panning, amp-sim on the guitars, reverb, bus glue, mastering to a measured loudness |
render.sh |
one-shot pipeline: score → arrangement → mix → mp3 |
omr/ |
uv project holding the Python deps (mido, numpy, scipy, pedalboard) and the OMR MusicXML the transcription was checked against |
STUDIO-SETUP.md |
notes on the installed plugin/soundfont studio (Ardour, sfizz, amp sims, etc.) |
./render.sh # full rebuild: score, arrangement, mix, mp3
./render.sh --fast # reuse cached instrument stems (mix tweaks only)
./render.sh --score-onlyNeeds lilypond, fluidsynth, ffmpeg, and uv.
Python deps live in omr/ — cd omr && uv sync if the venv is missing.
Outputs (all git-ignored, regenerated by the build):
uf-gozal-v2.pdf, uf-gozal-band.midi, uf-gozal-band-mixed.{wav,mp3}.
- The mix is judged by measurement (BS.1770 loudness, true-peak, per-section
balance), not by ear — see the header comments in
mix-studio.py. - Guitar tone uses GuitarML neural amp-sim VST3s hosted offline through
pedalboard; the solo cascades the amp for heavy distortion. - Instruments other than the guitars currently render from a General-MIDI soundfont; swapping in the SFZ libraries is the main open improvement.