| ▲ | bonzini 6 hours ago | |
Lilypond, too. Though it needs a full scheme interpreter to evaluate macros (provided by both the system and the user), it can emit midi files. | ||
| ▲ | ramses0 5 hours ago | parent [-] | |
Lilypond isn't well-known enough! https://en.wikipedia.org/wiki/LilyPond#Integration_into_Medi... https://www.mutopiaproject.org https://lilypond.org/text-input.html
...but why is it so complicated? A novice interpretation of "music" is "a bunch of notes!" ... my amateur interpretation of "music" is "layers of notes".You can either spam 100 notes in a row, or you effectively end up with:
...so Lilypond basically made "Tex4Music", and the format serves a few dual purposes:Engraving! Basically "typesetting" the music for human eyeballs (ie: `*.ly` => `*.pdf`). Rendering! Basically "playing" the music for human ears (ie: `*.ly` => `*.mid`) Librarification! Basically, if your music format has "variables" and "for-loops", you can end up with an end score that's something like: `song = [ intro + chorus + bridge + chorus + outro ]`, and then not have to chase down and modify all the places you use `chorus` when you modify it. (See this answer for more precision: https://music.stackexchange.com/a/130894 ) ...now imagine doing all of the above for multiple instruments and parceling out `guitar.pdf`, `bass.pdf`, `drums.pdf` and `whole-song.pdf` TL;DR: Music is haaard, and a lot closer to programming than you think! | ||