Thanks for the reply. Your Synethesia game was a lot of fun. I liked how the music only advanced as your character did.
I am running into a bit of trouble with the code on the how_to_use page. The demo code seems to be incorrect. The line
events.append( SMF.MIDIEventChunk.event( 0, 0, SMF.MIDIEventProgramChange.new( 3 ) ) )
won't compile because SMF.MIDIEventChunk.event is a field and not a function. I looked at the source, but it's not clear to me how to fix this.
Edit: I was able to get sending raw MIDI events working, so it looks like I only needed the top bit of code on that page.