Episode 6 show notes are here!
At one point in the interview, I assert that the General MIDI standard was based on the instrument choice of the Roland Sound Canvas. It turns out this is half-true; I had misremembered a story from The Fat Man on Game Audio, which incidentally is probably my favourite book ever written on the subject of the video game industry. If you can track down the book, I definitely recommend doing so, but here's the timeline as he lays it out:
- General MIDI is created as a standard. It defines 128 instruments.
- The Roland Sound Canvas is released as the first General MIDI sound card.
- George "The Fat Man" Sanger decides to compose the soundtrack of The 7th Guest using General MIDI, in order to attempt to ensure the music will sound OK for future sound cards. It is the first game to have its score written in General MIDI. He uses the Sound Canvas as the baseline because there are no other General MIDI cards out there yet.
- More sound cards touting General MIDI compatibility are released. His soundtrack sounds awful. He discovers to his horror that General MIDI does not define any standard for the dynamics of an instrument - how loud it is, or even what pitch middle C should sound.
- Fat Labs is founded to basically make sure The 7th Guest doesn't sound awful on new sound cards. Google "Fat Labs General MIDI" and you'll find a number of press releases from the 90s proudly proclaiming that their sound card has earned "The Fat Seal".
- Eventually the MIDI standards committee accedes that the only sensible solution is to take whatever dynamics Roland used for their Sound Canvas samples and use them as the standard for all cards going forward.
There are also a lot of DOS games that come out around this time that credit The Fat Man for their General MIDI FM patches for Adlib cards - this is because he bundled it with the popular MIDAS Sound System library, that allowed DOS games to support the vast numbers of incompatible sound cards that were being
released at that point.
Knowing this story is what made me wonder, wait, where did Allegro get its General MIDI instrument patches from? And I got sufficiently curious about this that I dug into the source code, and found the following comment:
/* These instrument definitions are taken from the MID-KIT library by
* John Pollard. Many thanks to him for letting me use his patches: I
* wouldn't have enjoyed the task of coming up with a set of my own.
Further digging reveals that MID-KIT was a shareware library that provided sound and music routines for DOS for the Watcom C compiler. Registration was $50 for a "link the binary with your software" license, and you could get the source code for $600. The author, John Pollard, credits Jean-Paul Mikkers, original creator of the Mikmod library, for assistance and some code. (One thing I had forgotten was that mikmod was also once shareware, though the $25 registration fee was only required for those using it commercially.)
Shawn doesn't remember any details about this; he assumes he must've went looking for existing software that had already solved this problem, and then simply asked the author for help.
Why is this important or even interesting to anyone? Part of what I'm interested in uncovering as part of this podcast is the invisible support networks and ecosystems that made games possible. It's too easy to imagine Shawn toiling away in isolation to produce the first draft of Allegro, and then support and code contributions just spontaneously flowing in his direction. But when you dig into questions like this, you quickly discover a bunch of people sharing knowledge, asking questions, and helping each other out.
Thanks for sticking with me during this extremely dorky and overly technical aside about MIDI. Now: If you had any personal experience using Allegro, or playing games that came out of the loose Allegro community, this would be a good thread in which to talk about it!