Alda has been discussed previously on HN, including comparisons to other musical languages and some of the advantages / disadvantages of each:<p><a href="https://news.ycombinator.com/item?id=10177716" rel="nofollow">https://news.ycombinator.com/item?id=10177716</a><p><a href="https://news.ycombinator.com/item?id=10662598" rel="nofollow">https://news.ycombinator.com/item?id=10662598</a>
If this interests you, definitely checkout Sonic Pi. It's a Ruby DSL for music programming.<p><a href="http://sonic-pi.net/" rel="nofollow">http://sonic-pi.net/</a>
Sadly I don't see MIDI exporting support. I looked at making one of these music generation programming languages before, but just ran out of time for it. My goal was quite ambitious though:<p>1. Support MIDI exporting (so you could get it into a DAW)<p>2. Support timing nudges and randomization (ie, with drums it's common to play slightly ahead or behind the beat, and somewhat random timing for humanness factor)<p>3. Be easier to write than it is to manually do on a piano roll<p>So far though, this is a pretty hard set of things to do all at once. I have a design while using Ruby as a DSL, but it's just difficult to make it all come together<p>edit:<p>To elaborate a bit more on timing nudges, I mean play on beat for measures 1-4, then on measures 5 and 6 play slightly ahead of beat (but using the same actual playing pattern etc).. Most of my ideas were focused on drums rather than general instruments because drums are the only thing I've had to use MIDI for so far
It would be useful if it had a tool to convert MIDI files to source code (ideally with some sane automatic structuring). I've sequenced some 15 megabytes of MIDI files, and would love to have them in a form suited for version control.
I'm <i>really</i> surprised at how many programming languages for music there are.<p>What I think is interesting is how few of them seem to be aware of tracking style interfaces and how those might be better extended to do many of the kinds of things these languages offer.<p>I remember showing some programming friends some examples of what trackers look like and the response is usually something like "you have to <i>program</i> the music?" or "oh! it's like asm for music!"[1]<p>It's a much nicer way of laying down notes quickly and has some pretty mature ideas behind it as a music composition paradigm and offer a huge variety of possibilities for music composition.[2][3]<p>Writing with trackers is also fast. When you get really good with these tools it's possible to sketch out a 2-3 minute song in 30-60 minutes - softsynths and all.<p>1 - <a href="https://www.youtube.com/watch?v=u3xHPIuX3s4" rel="nofollow">https://www.youtube.com/watch?v=u3xHPIuX3s4</a>
2 - <a href="https://www.youtube.com/watch?v=45BH12-O_94" rel="nofollow">https://www.youtube.com/watch?v=45BH12-O_94</a>
3 - <a href="https://www.youtube.com/watch?v=iUx8PrDqUiY" rel="nofollow">https://www.youtube.com/watch?v=iUx8PrDqUiY</a>
Nice to see something like this - reminds me of my initial love of programming in QBasic. My oh my the noise that was going on in the classroom that day. Quite an impressive looking way to simplify and open up two worlds. Hope to give it a try eventually.