Source code for jdxi_editor.midi.music.sheet

from pathlib import Path

from music21 import converter, environment

[docs] env = environment.UserSettings()
env["lilypondPath"] = "/opt/lilypond-2.24.4/bin/lilypond"
[docs] midi_file = ( Path.home() / "Desktop" / "music" / "Crocketts Theme - Jan Hammer - JDXi.mid" )
score = converter.parse(midi_file) # minimal cleanup (keep it simple first)
[docs] score = score.quantize(quarterLengthDivisors=(4, 3))
score.makeMeasures(inPlace=True) score.makeNotation(inPlace=True) # --- SAFE OUTPUT NAME (NO SPACES) ---
[docs] safe_output = midi_file.parent / "output_score"
score.write(fp=safe_output, fmt="lily.pdf") print("PDF created:", safe_output.with_suffix(".pdf"))