The Yamaha DX7 synthesizer's clever exponential circuit, reverse-engineered
righto.com
righto.com
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.
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...Hmm.. seems like hobbies that involve lots (and lots) of gear are key. :)
Hmmmm....
I REALLY LOVE THE ROLAND D-50. GOSH, IT SURE WOULD BE NICE IF THERE WAS AN OPEN SOURCE EMULATOR FOR IT...
...and now we wait.
Hahahaha!
I did my best work on an SY77 ... /waits/ ... and an Ensoniq EPS ... /crickets/
A really interesting fact I found out when I did my own research on the DX7's development was that Roland’s technical R&D director Tadao Kikumoto spent over a year researching Yamaha's FM patents to try and find a way to implement FM without infringement, and even longer trying to find prior art to invalidate the patents themselves. In the end, it was apparently this research that eventually led to the D-50.
If you're really masochistic there's also the D-50 plugin that Roland published not too long ago. One could always disassemble and/or instrument that to ascertain the exact details... not that it would be entirely necessary since at least one company did, by all accounts, come up with a passable replica of the D-50 as a VST, but immediately got hit by Roland's lawyers because they made the mistake of using the attack samples from the D-50's dumped ROMs.
TL;DR Someone will do it eventually.
A lot of modern synthesizers or sound modules are basically just software running on CPUs, DSPs, or even FPGAs.
But previously it was all analogue electronics. Which are extremely difficult to perfectly replicate in software and even models of the same synth would sound slightly different due to manufacturing differences/defects.
The main problem with this is that software runs on computers, and sufficiently portable computers are generally just not reliable enough for a lot of live performances.
Even for an almost fully digital synth like the DX7 a bit-accurate emulation is difficult (there is a rich discussion of this in one of the other threads here). For analog synthesizers, there is a lot of character and nuance in the individual circuits that are difficult to capture in a digital model, across all possible configurations. In the mix of a full song though, its not often that people can notice the difference.
Aliasing--the introduction of extra unwanted and generally non-harmonic frequencies--is also really hard to avoid in digital systems. For more esoteric instruments like Eurorack modules or Moog modular synthesizers, the physical interface is an integral part of the instrument--software versions of these exist but are obviously very different to interact with using a mouse or touchscreen.
> Why aren’t all new keyboards (or those other things DJs have on stage) simply software, maybe with a custom input device for easier live use?
For live use this is very common nowadays, though physical single purpose keyboards (even fully digital ones) still are used widely. In a fast moving stage show you may not want to mess around with the complexity of a full personal computer setup. In modern operating systems, even with 100s of processes competing for CPU time, real-time audio may rarely drop out (the result of which is audible clicks and pops), but even this is too risky for a big professional live show.
44000 / 1sec / 1000ms
hopefully we have better latency than that!
But that's not what he meant, he meant that non-real time (soft real time, not even hard real time) OSs pause pretty frequently for relatively long periods. You might not miss any samples at all due to hardware buffering, but the effect on UI is tremendous.
After fiddling around a bit I decided to try the MuQSS CPU scheduler and was blown away. Not only was the scheduled backup unnoticeable, on top of that I could throw a 16 thread compilation job on my 8core/16thread CPU and I'd not notice the system being under load. I might've lost a few frames per secone when occasionally playing some FPS games, but possibly lowered throughput be damned, this was bliss.
Unfortunately it seems to not be updated anymore. So I tried the newcomers on the block, BMQ and PDS. With BMQ I would start dropping iSCSI connections since my PC wouldn't manage to reply to a ping in five seconds. PDS fit better. While MuQSS could handle a load of 40-45 before I started noticing UI-latency, PDS tops off at around 20. And when it starts to stutter, it's worse than with MuQSS, but since it's not that often that I'm at those loads I'm quite OK with the current situation.
All this with untuned schedulers, they might behave very differently with some tuning.
What's important about synthesizers is the fact that for the first time in history it allowed musicians to control the "character" of sound gradually in new dimensions (the parameters that let you distinguish the same note played on piano, flute, guitar, violin, etc.), creating sounds that were impossible previously and even changing the character of the sound in real-time as another dimension of artistic expression. It's like you played a long note on violin and it morphed slowly over time into a flute and then some instrument that doesn't exist. You couldn't do it before and all these new possibilities and constraints changed music.
Also the particular UI of some synthesizers allowed easy exploration of these new dimensions and that's important too. It's one thing to be able to play any waveform you want (you can do that by editing .wav file in hex editor), it's another to have several knobs and sliders and hear the differences in real-time when you tinker with them.
We can simulate all of this in software but not 100% perfectly.
Keyboard = input device, usually generates MIDI. Synthesizer = creates sounds from scratch, usually generates audio from MIDI.
Some keyboards are not synthesizers (sometimes called a "master keyboard") and you have to plug them into something in order to get sound. Some synthesizers are not keyboards, and you have to plug something into them to control them. For example, the DX7 is both a synthesizer and a keyboard. The TX-802 is a synthesizer but not a keyboard... it is kind of like two DX7s in a 2U rack-mount unit without a keyboard. The Akai MPK249 is a keyboard but not a synthesizer. You can buy a TX-802 and an Akai MPK249 and plug them into each other, and it's kind of like having a DX7.
> Also, in today’s world, do these need to exist in the same form? That is, can’t all these sounds simply be digitally produced rather than relying on circuitry?
Circuit emulation has varying degrees of accuracy. I like to think of digital synthesizers as computers that don't ever need software updates, and are therefore more reliable than software running on a computer. They also often have purpose-built UIs (knobs, buttons, sliders) which are critical to some people using them.
If you are going to make a custom input device, why not just make the custom input device and the synthesizer one single package? This is called a "sound module" -- something that makes sounds but does not have a keyboard attached. They come in both rack-mount and desktop versions.
there are some sounds that rely on certain electronic oddities from weird components that cannot easily be modeled in software. some Russian transistors that are used for the polivoks filters are some that I can think of off the top of my head.
personally, I've built a ton of software simulations of hardware equipment, but I still have a tx81z sitting around, and a rack full of eurorack gear. there are just some things I can't get quite right, and some weird things that I doubt I could ever reproduce[1].
we can't accurately model a SID chip in software or fpga due to its weird quirkiness under electrical load, some of the less sane chips are even harder. that's why there's such a demand for weird things that use older chips[2].
1. https://www.nonlinearcircuits.com/modules/p/brain-custard
But the concept is applied in hundreds of fields as you move from curve, to planes to volumes.
The key magic is the sine wave which unlike other curves on differentiation any number of times always produces a sine way due it's deep connection to anything in nature that Repeats.
At least, that is what I recall from my EE classes 35 years ago.