On Sat, Jun 2, 2012 at 11:31 AM, [some student] wrote: dear Professor Conrad, Do you think it would be possible for me to get a copy of that midi-gamma program you created? thank you, ****** Sure... but be advised that it is TOTALLY a hack. I created it using JFugue, a Java library. Here's a copy: http://www.cs.ucsb.edu/~pconrad/cs56/examples/jfugue If you copy that directory, then just change the build.xml "ant run2" target to use your midi file instead of mine, you should be able to get it to work. A few things to note: * MidiToGamma first converts the Midi file to "JFugue" syntax. * You can see what the JFugue syntax looks like if you run the MidiToJFugue program first. (that's the "ant run1" target) * MidiToGamms then uses regular expressions to go through the JFugue syntax to figure out what the notes are, and adds a "Note" object to the proper voice each time its thinks it found a note. * I tested it on a midi file that had exactly three voices V0, V1, V2. If there are bugs for other numbers of voices, you'll be the first to run the test that might find those. (This was a HACK not a serious piece of software development.) * Anything GammaToMidi it doesn't understand, it ignores, but it does print a warning message to let you know. * There are some bugs in JFugue---it added a few notes to my notelist that had durations WAY longer than anything in the midi file. I found those by hand and commented them out. The doc directory is read-protected on purpose---the jfugue code is open source but the documentation is copyrighted, and the author of jfugue charges for it (I paid for my copy). So, I can't re-distribute that. If you want it, you have to pay for it. I can let you read my copy during office hours, but I think that's as far as I can go without violating the copyright act.