Every so often Ben Fisher will make magical things that make me smile*. Tunescript, for instance. You type in text. It plays music.

There are rough edges. The "play" button only works in Windows for a reason I don't fully understand, so we had to comment out the entirety of the bmidiplay.py file before it would run on my (Fedora) laptop, and then I had to play each of them from the command line on timidity.

Here's why I like it.

  • It's text-based. I don't have to accurately mouse-click on a tiny score.
  • Its interpreter is intelligently designed. I'll let Ben explain this part.
  • My killer feature: it's spatial - by that I mean that you play a C by typing "c" - to make it last two beats, you type "c . ", three beats is "c . . " and so on. Since you can do multiple voices (by stacking them on subsequent lines), if you're writing in a monospace font, you can easily see timing and duration of notes. (This breaks when you write sharps and flats - the visual alignment was apparently an unintended feature.) Things like lilypond don't do this - I'm starting to look at lilypond as "beautiful for layout, but not so awesome for composing," the same way I no longer write my drafts in LaTeX (I mess with content in plaintext, then use LaTeX for typesetting as needed).

To make sense of that last one, here's Ben's arrangement of Billy Joel's "It's Still Rock And Roll To Me." You can see the notes line up (and how sharps break it).


(voice 1 'rock organ')
(voice 2 "bass")
(tempo 210)

/>> ^
/>> v c,c c,c c,c c,c c,c c,c c,c c,c

/>> ... c,c c,c c,dvb,, a,, a,g g,g
/>> c,c c,c c,c c,cve,e e,e e,e e,e

/>> a#,, a#,a# a#,, c', /a//g/f,,
/>> a#,a# a#,a# a#,a# a#,a# f,f f,f f,f f,f

/>> ^... c,c c,c c,dvb,, a,, a,g g,g
/>> ^c,c c,c c,c c,cve,e e,e e,e e,e

/>> a#,, a#,a# a#,, c', /a//g/f,,
/>> a#,a# a#,a# a#,a# a#,a# f,f f,f f,f f,f

/>> ... e,e g,g b,b c',, a,e g,a ,,e
/>> e,e e,e e,e e,e a,a a,a a,a a,a

/>> e,, e,e g,g b,b c',g a,e g,a,
/>> e,e e,e e,e e,e d,d d,d g,g g,g


I'll be using this to try getting down some Herb Alpert this weekend, since attempts to use staff paper are driving me mad. And then I can use the rest of Ben's midi suite to make a score that Melanie can play her flute from...

*sometimes he also makes stuff that makes me go "what were you thinking?" For instance, a Mandelbrot generator written in Verilog. (For those of you unfamiliar with Verilog, this is akin to saying "I'm going to stick a red-hot poker into each of my fingers and play a Bach chaconne." It's beautiful but incredibly masochistic.)