If you get to the envelope hardware, you'll find it's just as clever as the exponential and sine generators. There's some info at [1], but it doesn't capture every single thing I found - there are cases where there is a slight amount of additional noise in the amplitude, I'm not sure whether intentional to give more character or an unintentional artifact. That's also missing from the msfa source.
[1]: https://github.com/google/music-synthesizer-for-android/blob...
ETA: Also see https://levien.com/dx7-envelope.html for a somewhat interactive JavaScript implementation of the envelope algorithm. This accurately emulates the envelope shape and quantization of the DX7 (ie it uses the same reduced number of bits to drive its state machine), but I do not claim it is bit-perfect.
(from https://www.dairiki.org/HammondWiki/KeyClick)
This happened even in brand-new organs.
I wonder if they (or any other manufacturer) ever attempted the same with purely analogue chips. I'm aware that FM has very narrow sweet spots and probably the analogue oscillator drift would make this idea totally impractical.
That said, it seems like music manufacturers were searching for a musically useful, cost-effective digital synthesizer around this time. Early digital synths like the Synclavier and Fairlight CMI were prodigiously expensive, while analog synths in the DX7's price range were saddled with few/no polyphonic voices and/or limited single oscillator designs. The DX7, with a varied tonal palette and 16 voices, must have seemed luxurious at the time.
This Synclavier and Fairlight CMI were hybrid designs with a digitally controlled clock per voice producing a variable rate sample clock driving memory and a DAC. The hardware was more expensive but the digital part was much simpler, because you basically just clocked the sample data straight into the DAC without having to do any interpolation or resampling.
The DX7 was the first successful fixed rate polyphonic DSP system. With some reworking, the FM subsystem could have been replaced with sample RAM. But RAM was still ridiculously expensive, so FM was a workable solution for expressive acoustic-like sounds that weren't sampled.
It absolutely was a game changer. I remember playing one for the first time and it wasn't just the novelty of the FM sounds or the 16 - 16! - voices. It also looked great, was easy to carry, was less than a quarter of the price of some of the bigger polysynths, and had an extremely playable velocity-sensitive keyboard.
When you put all of those together it completely eclipsed the older designs as a playable keyboard instrument.
Would you agree that having an affordable synthesiser capable of making credible piano, and percussive sounds really opened the world of synthesisers up to a more diverse range of musicians? The DX7 first hit shelves before I was born, so I can't speak from my own experience here. I think Reznor's opinion on the matter sounds pretty ignorant.
The DX7 had somewhere between 9 and 12 times as many oscillators, depending on which of those lines you compare it to.
"Yamaha style" FM is however more of a kind of phase modulation. The operators are sine tables driven by phase counters, and the outputs of the modulators are scaled and summed with the phase counter of the carrier before the sum goes into the carrier wavetable. So you modulate the phase irrespective of frequency, e.g.
modulator(phase) = sin(phase * modulator_multiplier) * modulator_amplitude
carrier(phase) = sin(phase * carrier_multiplier + modulator) * carrier_amplitude
I suppose this could be replicated in the analog domain. A phase counter could simply be a ramping sawtooth waveform. Summing modulator outputs would be as simple as mixing. The hardest part I think would be to replicate the wavetable. You'd need a waveshaper that basically does f(x) = sin(x). There is an oscillator on the market that I think does everything except the waveshaping in the analog domain: https://wmdevices.com/products/phase-displacement-oscillator...You allude that you'll get to this in your next post of the series, but here's my question: what are the biggest differences in tone between the DX7 and current emulators such as FM8 and Dexed (both of which I believe can read DX7 patches)? And if present, where do they come from?
Thanks again for this write-up on one of my favorite machines.
Also see raphlinus's answer.
I think Dexed is quite accurate, but this work will allow the authors to take it to the next level. I suspect most people won't be able to hear the difference, however.