LOL at your binary music!! Bet that sounds... lovely ;)
It turns out that most of the instruments are in the right order, but off by one (the list I copied starts at instrument #1; Windows thinks instrument #0 should make that sound)
I forget what exactly it was, I think the GM midi spec, that I was reading recently* but it mentioned that one numbering scheme involves the instruments going from 0-255 (or was it 127?) like a uchar, and the other scheme went from 1-256. Maybe one was the low-level midi bytes and the other was the official GM numbers, but the gist seemed to be that to convert between the human-friendly advertised numbers and what the lower level expected, you had to had or subtract one.
(*-because I keep wanting to make stuff to interface with midi, but the only real library options are a Perl one that uses Perl's foul pointery things, and numerous C++ libraries; the only thing I've seen for straight C is something that IIRC came with the ALSA libraries, that only understands a very simple type of midi file. As for making something myself, Midi seems just too detailed and hacked together for me to stand any chance of getting it right without spending months on it. Every so often I go through this searching and hmming and then giving up again. Stupid computers...)
Mostly not-unpleasant sounding, but only "musical" in a couple of spots. "Seashore" and "birds chirping" were rather strange to hear that way, "gunshot" would have been a lot more annoying if it had been a lower number, and one of the drums sounded more like a trash-can lid on the high notes. Mostly it just sounded silly.
I played the same file on another machine (and a different OS), and got the same mapping, ruling out the "this player is broken" diagnosis -- which leaves, a) the list I copied from is wrong, b) the standard is implemented commonly in two different ways as you described, or c) the version of abc2midi I'm using is wrong. Honestly, now that it's been mentioned (thanks, by the way), 'b' isn't all that surprising. MIDI had to grow up kind of fast.
(no subject)
I forget what exactly it was, I think the GM midi spec, that I was reading recently* but it mentioned that one numbering scheme involves the instruments going from 0-255 (or was it 127?) like a uchar, and the other scheme went from 1-256. Maybe one was the low-level midi bytes and the other was the official GM numbers, but the gist seemed to be that to convert between the human-friendly advertised numbers and what the lower level expected, you had to had or subtract one.
(*-because I keep wanting to make stuff to interface with midi, but the only real library options are a Perl one that uses Perl's foul pointery things, and numerous C++ libraries; the only thing I've seen for straight C is something that IIRC came with the ALSA libraries, that only understands a very simple type of midi file. As for making something myself, Midi seems just too detailed and hacked together for me to stand any chance of getting it right without spending months on it. Every so often I go through this searching and hmming and then giving up again. Stupid computers...)
(no subject)
I played the same file on another machine (and a different OS), and got the same mapping, ruling out the "this player is broken" diagnosis -- which leaves, a) the list I copied from is wrong, b) the standard is implemented commonly in two different ways as you described, or c) the version of abc2midi I'm using is wrong. Honestly, now that it's been mentioned (thanks, by the way), 'b' isn't all that surprising. MIDI had to grow up kind of fast.