View Single Post
Old 2nd December 2014
Gear Nut

There were no DSP's in 1983 or were very expensive.

It's not a CPU doing the sound generation - it's a custom logic IC handling it. The CPU only does control functions. You could do FM on a CPU, but it wouldn't have been cost-effective at the time - even emulating a lesser Yamaha chip in software requires a good deal more horsepower than the DX7's CPU has to offer.

From what I gather the DX synths are actually phase distortion. A table with a sine being read out for a specific phase.
It's essentially a wavetable. (And don't confuse "phase modulation" with "phase distortion" - PD is just a marketing term, from Casio even.)

Here's something that was posted to the music-dsp list a few years ago. It has to do with the OPL2/OPL3 chips that were used in PC soundcards, but it's probably the same techniques that are involved for all of Yamaha's chips.

And here Adlib / OPL2 / YM3812

Date: Fri Apr 18 02:44:09 2008
Subject: [music-dsp] YM3812 reverse engineering

Me and Matthew Gambrell have an interest in emulation of YM3812, which
is the OPL2 sound chip found in the Adlib and 8-bit Sound Blaster
cards. A later derivative OPL3 is found in early 16-bit Sound
Blasters. We sent one YM3812 and one YMF262 (OPL3) to MEFAS for
decapsulation; the cost was around 90 USD each. They indicated that
the chips would still be operational after decapsulation, but we had
no need to test this. Looking at the revealed YM3812 die surface with
a microscope turned out two ROM's.


The contents could be read bit-by-bit. The first ROM was a log-sin
waveform table, containing one quarter of a sine wave, 256 samples
long. The second ROM was an exponential table, 256 samples long. There
were no other ROM's larger than 16 samples. This is strong evidence
that YM3812 produces the sound without any multiplications, using for
frequency modulated (actually phase modulated) synthesis the formula:

out = exp(logsin(phase2 + exp(logsin(phase1) + gain1)) + gain2)


For more professional parts, the kinds used in the synths, you might expect to see variations on this theme, perhaps longer tables or wider data words; apparently the OPL chips have 11-bit resolution per operator, I think most synths after the first DX7s have higher resolution than that.