Composing music is not unlike programming – and either, at their best, can be expressive. In the early days of IT (before “IT” was even a term), many computer programmers came from a musical background. (And even early in the computer age, there was more call for software than symphonies – and more pay.)

But what if you could program music easily, using musical syntax in a programming language? That’s the question asked by languages like Velato. The commands actually aren’t as esoteric as you might expect; they include references to standard pitch and commands like “Change root note.” The language expresses notes, mapped to the alphabet, a bit like teaching the computer solfege. Using additional expressions, you can transform notes and generate musical materials.

The results sound a bit like an academic-sounding ragtime. And yes, they do sound as though they were generated by a computer. (Have a listen to a .MID file.)

For more on Velato:
Velato wiki page @ Esoteric Languages
A compiler built in .NET (Windows-only, though if you really wanted to I imagine you could quickly port to Mono or other environments)
An introduction [Rottytooth blog]

Creator Rottytooth is Daniel Temkin of New York. Along the same lines is Fugue, which specifies notes as intervals (oddly, the same way I learned atonal sightsinging, but that’s another story).

So, what use is all of this? Creating languages for music could be a first step to being able to write compositionally-useful generative music algorithms. That could allow composers writing for games, installations, performance, or software to create interactive music that generates itself without sounding like a bunch of random notes. And having an elegant, musical language to do so could allow you to sketch ideas with just a few keystrokes.

In fact, I’d argue that sitting with a big, monolithic music editor, you might actually spend more time and effort than a reduced language, once you learn it. I’m not sure these are mature enough to use yet, but the idea is fascinating. And who knows, maybe you’ll someday see this as a scripting option in the sequencer you already use.

Code Your Own Sequencer? Archaeopteryx Generates MIDI with Ruby

Thanks to Grant Michaels, via Twitter, for the tip. (Grant’s Twitter feed includes lots of other goodies, too.)