Spaces:
Running
Running
File size: 927 Bytes
2603a5d 408ad2f 2603a5d c81deba 2603a5d c81deba 2603a5d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import sys
from midi_convert import midi_to_music_score
from templates import render_template, render_multitrack
SCAD_TEMPLATE = 'scadfile.scad.template'
NOTES_FILE = 'notes.txt'
def load_notes() -> list[str]:
with open(NOTES_FILE) as f:
return f.read().splitlines()
def run(*args) -> None:
if len(args) < 2:
raise ValueError("You didn't specify input file")
input_filename = args[1]
if len(args) > 2:
output_filename = args[2]
else:
output_filename = args[1] + '.scad'
available_notes = load_notes()
music_score = midi_to_music_score(input_filename, available_notes=available_notes)
scad_context = {
'musicScore': render_multitrack(music_score.as_track()),
}
scad_file = render_template(SCAD_TEMPLATE, context=scad_context)
with open(output_filename, 'w') as f:
f.write(scad_file)
if __name__ == "__main__":
run(*sys.argv)
|