Why did you choose BAM music over other formats?
Brian Fisher and James Paige designed the BAM format to be well-suited for FM (Adlib/OPL2) synthesis. So the real question, is why did they choose FM synthesis over the other, prettier-sounding ways of getting music out of your soundcard?
Here are the various ways of making sound with a computer, and why they decided for/against them
- FM (Adlib/OPL2): This is what BAM used. It is also what MIDI used to use before wavetable. This is easy to use in an operating system like DOS, takes almost no memory, and at the time when Brian and James started programming their sound code, it was widely supported. This is what the DOS version used.
- FM OPL4: OPL4 was a truly spiffy successor to FM that is supposed to provide wavetable-quality sound. Unfortunately, support for it is almost nonexistant, and even the soundcard manufacturers who do support it in their hardware seldom support it in their drivers.
- Wavetable: This is what MIDI usually uses nowadays. At the time when they designed BAM, it was seldom used, and nobody writes DOS support for it, it is all Windows-based.
- MPU-401: This is only for playing music on external MIDI instruments like MIDI-keyboards, so naturally it is unsuitable for games.
- CD-Audio: CD Audio is very nice, but isn't much good for downloadable games. Plus, back when BAM was designed, CD-writables didn't exist! (well, they did, but not anywhere within the price range of average users).
- Wave-out: This is used by MOD, XM, IT, WAV, VOC, and MP3, to note some of the more common ones. Playing wave data requires big huge memory buffers, and that is something that was in real short supply in a real-mode program. Ever since the OHRRPGCE was ported to FreeBasic, BAM music has been automatically converted to MIDI and played this way.