OPL3 Synth (Part 1): Going back to the days of FM Synthesis

The first PC that I made music on had primitive MIDI synthesis capabilities. Like many other PCs around the mid-90s, the sound card used FM synthesis to produce music – this is the same kind of technology that old game consoles used. Various FM synthesis chips exist, with one of the most common ones used on PC sound cards being the YMF262 (otherwise known as the OPL3). Often, these chips are integrated with another chip on the sound card.

FM synthesis allows a variety of different noises to be made with a few parameters/controls. Essentially it produces sound by doing some calculations based on those parameters. It doesn’t involve playing pre-recorded sound samples so there is no need to store sounds in memory, perform resampling etc. Presumably FM synthesis was chosen to keep costs down.

External synthesisers can be attached via a MIDI breakout cable via the joystick port of older sound cards – these devices might use sound samples to create music, or they too might use FM or some other form of synthesis. Multiple devices can be controlled from a single MIDI output. These capabilities are mostly of interest to musicians and allow the PC to be used for sequencing/composing music using external MIDI-capable equipment.

It eventually became possible to attach wavetable daughterboards to many sound cards, which contained sound samples that could be used for making music – or simply to get more realistic music from computer games!

Starting with Windows 98, a software MIDI synthesiser was included. This basically performed the same job as a wavetable daughterboard or an external sample-based synth, except it required no additional hardware.

These days, CPUs are fast enough to be able to capable of processing high-quality sound samples, PCs have gigabytes of memory, and technologies such as ASIO offer low-latency output. External hardware can still be used, but music can be produced entirely using software.

Due to these advances in technology, the FM synth capabilities offered by sound cards has became redundant. I’m not aware of any modern sound cards including an actual hardware FM synth component any more. Various pieces of software can emulate it – for example, DOSBox and Adlib Tracker. There may be plug-ins for other software (e.g. VSTs).

For me, the sounds produced by FM synthesis are somewhat nostalgic – it’s what I first used whilst I was learning how to make music. I always wished for sounds that were more realistic, but there are some qualities that I found nice about it.

The general opinion seems to be that software-emulated FM synthesis is not as authentic sounding as hardware. So, a couple of years ago I started looking into what sound card might be suitable to work with on an old computer I have. The Vogons forum had some useful information on this subject.

The original YMF262/OPL3 chips were manufactured by Yamaha. Several sound card manufacturers started to create their own versions of this, with varying results. ISA sound cards tend to feature better hardware. However, some FM synth implementations suffered from bugs (notes might get stuck). The output quality also depended upon the DAC (Digital Audio Converter) components. As you can see, there were a few different factors to consider!

Creative Labs created the original Sound Blaster cards, so going for something like the SB Pro would’ve been one of my first choices. The prices on eBay however were quite crazy, so I looked for an alternative.

Eventually I found a Yamaha Audician 32 Plus sound card, which was being sold for a really good price (around £10). This contains a YMF178-S chip which is apparently similar to the YMF262. I found an interesting discussion thread on Vogons about this card and decided to give it a go.

Sadly I could not get Adlib Tracker to work properly with it for some reason, although the card appeared to be otherwise functional. I decided instead to look into the possibility of using my main computer to control the sound card. I use Reason for most of my music, and it would be quite nice to write music in that and have some genuine hardware FM synthesis included in my music.

I could’ve probably written something to work in DOS to take MIDI input and control the FM synth chip, but figured it’d be quite awkward to develop. As I only wanted to use the sound card, it also seemed overkill to use an entire PC purely for that task. Inspired by a Hackaday post about resurrecting old ISA hardware, I began looking into what would be involved in using an Arduino to interface with the sound card.

Next time, we’ll be taking a look at the sound card hardware and figuring out how the PC communicates with it via the ISA connector.