44-Voice MIDI on Yamaha OPL4

In 1994, sound cards with wavetable synthesizers were all the rage. Typically these supported 24-voice or at most 32-voice polyphony. So 44-voice synthesis sounded fancy. The following text can be found in a README file in the driver package for the MediaTriX Audiotrix Pro sound card:

Now includes 44 voice MIDI compositions FIDLING.MID and TECNOVOX.MID by Gerard Jones and EUROMAN.MID by Henri Chalifour. Combined Wavetable/FM compositions expand General MIDI horizon into imaginative territory. Game developers and amateur musicians take note! Only the Jukebox for Windows is able to play these 44 voice compositions.

The Audiotrix Pro was based on Yamaha’s OPL4 synthesizer (YMF278B plus DAC). The OPL4 wavetable synthesizer supported 24-voice polyphony. That’s a lot less then 44. But the OPL4 also included the OPL3 core, which provided up to 20 voices using classic FM synthesis. 24 + 20 = 44.

The MIDI files mentioned above can actually be found in the Audiotrix driver package. Finding an Audiotrix Pro board is however a lot harder. What to do if you’d like to listen to the 44-voice MIDI files but don’t have an Audiotrix Pro and aren’t satisfied with existing MP3 recordings?

OPL4 Boards

The Audiotrix Pro was not the only sound card based on the OPL4 chip. And it was certainly far from the most widespread one.

Then there was the Yamaha Sound Edge SW20-PC. This card also included a Yamaha effects processor and it in practical terms just as unobtainable as the Audiotrix Pro. There was Logitech SoundMan Wave, again more or less impossible to find.

The German company miro Computer Products AG produced several OPL4-based boards in the 1994-1996 timeframe. The first was the miroSOUND PCM1 PRO, followed by the PCM10, PCM12, and PCM20. These were higher end cards, not quite as advanced as the Audiotrix Pro but similar. They used OPTi 929 and later OPTi 924 controllers. The miro boards are far easier to obtain than an Audiotrix Pro.

miroSOUND PCM1 PRO

There was also a strange cheap card called “Mozart Wave Table” using the OAK Technology OTI-601 controller:

Mozart Wave Table

The Mozart boards were, in a word, terrible. Poor drivers, poor compatibility with Sound Blaster software. But the OPL4 chip was the same as the one on an Audiotrix Pro and the other boards. And because these cards were cheap junk, they are easy to find nowadays.

The Yamaha OPL4 chip paired with an OPTi 82C929A on the miro PCM1 board is in a way a very good match. Both the OPL4 synthesizers and the OPTi controllers were cheap but decent quality hardware, and could be found on both very cheap and fairly expensive boards. Yamaha continued the tradition with OPL3-SAx chips and later with the PCI YMF724/744/754 controllers.

MPU-401 Compatibility

For MIDI playback it’s important whether a card has a “real” MPU-401 interface. There were substantial differences among the OPL4-based boards in this regard.

The OPL4 chip itself did not directly respond to MIDI data and had to be driven by software (or firmware). Some cards, such as the Audiotrix Pro, Logitech SoundMan Wave, or miroSOUND PCM12 and PCM20, included a microcontroller which enabled direct MIDI playback over the MPU-401 interface.

Yamaha’s own SW20-PC provided a software driver for DOS enabling MPU-401 playback.

And miro’s older boards (PCM1 PRO and PCM10), as well as the Mozart, provided nothing—although there’s a rumor that a software driver for the miro boards may (or may not) have existed.

So that means only the cards with hardware MPU-401 playback would be able to play the 44-voice MIDI files? Well, not quite—it’s more complicated than that.

44-Voice Playback

Remember the line claiming that “only the Jukebox for Windows is able to play these 44 voice compositions”? This is a big hint that playing the 44-voice MIDI files isn’t so straightforward.

As mentioned at the beginning, 44 voices meant using both the OPL4 wavetable synth and the OPL3 simultaneously. These are effectively two separate devices in one chip, and the MPU-401 interface (on the cards which support MPU-401 OPL4 playback in hardware) only drives the wavetable synthesizer, not the OPL3 FM synth.

That’s why special software is needed; software which can drive both the ‘FM’ (OPL3) and ‘PCM’ (wavetable) portions of the OPL4 chip at the same time. MediaTriX provided such software.

Now that raises the question: Does said software require just an OPL4 chip, or does it need something only found on the Audiotrix Pro? Well, let’s see…

OPL4 Is OPL4

MediaTriX provided a DOS MIDI player called PLAYMIDI.EXE (how predictable) in the Audiotrix Pro driver package. What happens when PLAYMIDI is run on a miroSOUND PCM1 PRO with a random MIDI file? We get lovely OPL4 music!

That’s a proof as good as any that PLAYMIDI does not use the MPU-401 interface at all (if it did, it wouldn’t produce any output on the PCM1). It also means that although it’s still no good for wavetable music in games, the PCM1 can be used to play MIDI files in plain DOS.

But there’s a catch. The output produced by PLAYMIDI in DOS with existing recordings from the Audiotrix Pro doesn’t match. Everything is played through the wavetable synthesizer.

Note: PLAYMIDI has difficulties on any “fast” system, which includes 100 MHz Pentium compatibles. It works correctly on a 100 MHz 486 DX4. The problems are presumably caused by violating the OPL4 timing requirements on faster systems.

Jukebox or Not?

Remember the note about the special 44-voice MIDI files only being playable though the Jukebox Windows application? Maybe there is something to it… perhaps Jukebox does something special to enable simultaneous PCM + FM playback.

Then again—on closer look, probably not. The Windows Jukebox program shipped with the Audiotrix Pro seems to be a front end using the Windows MCI (Media Control Interface) for actual playback. Which means it works the same as the Media Player shipped with Windows 3.1. Listening to sample tracks confirms that.

What’s more, examining the MIDI files themselves does not reveal any special SysEx events or anything that would allow a player decide which channels (or instruments?) should be played via FM and which should be played via PCM.

So what’s the trick? How does one enable 44-voice playback?

OPL4 Driver Magic

The magic is in the Windows 3.1 OPL4 driver itself. It can use either PCM synthesis (pure OPL4), FM synthesis (OPL3 equivalent), or both. In case of “both”, driver settings select which MIDI channel uses PCM and which uses FM. And setting up the OPL4 driver to combine PCM and FM synthesis, we finally get the elusive “44-voice” playback!

OPL4 Driver Controls

Note that the OPL4 driver shipped with the Audiotrix Pro is a lightly modified reference driver from Yamaha. It works without problems on other OPL4 cards. It was tested on a miroSOUND PCM1, PCM20, and a Mozart Wave Table board. The above screenshot was produced with a Mozart Wave Table card.

But there is a caveat. Remember that there doesn’t seem to be any information in the MIDI files about which channel uses FM and which uses PCM? There are two slightly conflicting data points.

One is the Audiotrix Pro driver which by default sets channels 1-12 to PCM and 13-16 to FM during installation. The second data point is that EUROMAN.MID has rather suggestive track names like “FM Basses” or “FM SOLO A”. Tracks associated with channels 12-16 have names prefixed with ‘FM’.

Recordings

The following recordings were made with a miroSOUND PCM1 PRO using the Windows 3.1 Media Player and Audiotrix Pro OPL4 MIDI driver. The OPL4 driver was set up to combine wavetable and FM synthesis, with channels 1-11 using PCM and 12-16 using FM. The FM synth mode was “3-4 Op + 12-2 Op Melodic Drums”. There is no guarantee that this is the intended setup, but it is a reasonable guess.

The use of FM synths in the following tracks may not be obvious, and wavetable synthesis is used most of the time, but experts will quickly notice the characteristic “FM sound”.

The demo tracks use stereo effects heavily. This may require headphones or a good stereo speaker setup to appreciate fully.

These tracks are an excellent example of what a competent composer can do with a relatively cheap synth. Note that although the original files are more or less straight General MIDI, they do not sound very well on many other synths. They were clearly tailored to the OPL4.

And as a bonus, a pure PCM OPL4 track—Chants Magnetiques (Magnetic Fields) 1 by Jean-Michel Jarre (arranger unknown). Just because it sounds nice.

For reference, the Audiotrix Pro MIDI files and DOS MIDI player are available here (painstakingly liberated from a DriverGuide download).

So what have we learned from this lengthy excursion? The Yamaha OPL4 is a nifty little synth, and various OPL4 boards are much closer to each other than one might think. Also, there’s a lot that can be done even with modest means when one puts one’s mind to it.

Acknowledgements

Thanks to the music expert known as Cloudschatze for providing information about his excellent Audiotrix Pro recordings as well as exchanging a few ideas about how 44-voice MIDI might or might not work.

This entry was posted in MIDI, Sound. Bookmark the permalink.

8 Responses to 44-Voice MIDI on Yamaha OPL4

  1. Tobis87 says:

    Very interesting, we had an miroSOUND PCM1 PRO when I was a child.
    But if I remember correctly we never got the IDE-interface running with a cd drive.

    What was the reason for the IDE-interfaces on sound cards?
    Were the interfaces on VESA Local Bus cards not even faster?

  2. Mike Kerpan says:

    Very cool. I always wondered why the OPL4 wasn’t more popular. It wasn’t quite as sophisticated as the E-mu chips used by Creative, but it was still quite good.

  3. Michal Necasek says:

    Many older systems only had a single IDE connector. Even when there was only a single drive, mixing a hard disk with a CD-ROM didn’t work well in the early days of IDE/ATAPI CD-ROM drives. An IDE interface on an VLB board would be faster, but often there simply wasn’t one.

    Historically sound cards offered various proprietary CD-ROM connectors interfaces, and once things settled on IDE/ATAPI, sound cards provided that. From 1997 onward, CD interfaces on sound cards were rare because just about every system came with two onboard IDE controllers.

  4. calvin says:

    Off topic, but relevant to your interests: https://pay.reddit.com/r/vintagecomputing/comments/39yl3q/apple_chrp_common_hardware_reference_platform/ – an actual CHRP Mac in the wild. Hope it might even run on other CHRP systems!

  5. Michal Necasek says:

    I tend to delete off-topic comments… but this is a very cool piece of hardware 🙂

  6. Daniel says:

    I just wanted to point out: great work!

  7. GL1zdA says:

    Do you remember, how have you replaced the driver? I’m trying to do it for the miro PCM20 on Windows 98 SE. I thought it will just boil down to replacing MIROPL.DRV with OPL4.DRV, but this crashes MMSYS and I don’t get to the desktop. The OPL4.DRV was previously working with the Audiotrix Pro on this machine.

  8. Michal Necasek says:

    I do not remember how I did it, so most likely it wasn’t terribly problematic. But I know I only used Windows 3.1 for this, not Win9x. That might make a difference.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.