6 ms·
Author here if anyone has questions about this classic synthesizer's internals.
by kens 5y ago
Author here if anyone has questions about this classic synthesizer's internals.
- yowlingcat 5y agoWow, very cool! The DX7 is one of my favorite synthesizers of all time, and its spiritual successor (in software form), FM8 is the one I've used the most for the past decade and a half in my compositions. Thank you for the incredible work breaking things down to the gate level -- if only this were around during the time I was taking my analog + digital electronics and computer organization class, I may have done a different final project! 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.
- pantulis 5y agoI'd like to add to the list Korg's own FM implementation MOD-7
- kens 5y agoStrangely, I haven't used any of the emulators or a DX7, so I can't comment on the differences in tone.
- fab1an 5y agoHa, that would have been my question as well...I've often come across the idea that digital synth emulations are necessarily "perfect" and indistinguishable from the original, but is that really true in your opinion, from a first principles standpoint? If not, which component would make the emulation most difficult?
- kens 5y agoIf you look at it from that perspective, there are two factors. First, are the digital values identical? This is something my research can help with, using exactly the same exponential values (bit width, rounding, etc.) Second, a digital synth produces an analog output, so even if the digital values are perfect, the digital-to-analog conversion is going to produce its own distortion, filtering, etc, which can be pretty substantial. Also see raphlinus's answer.
- raphlinus 5y agoI believe you will find two main sources of differences in tone between the various DX7 emulators. One is that there are fairly major differences between the original DX7 and the DX7 II (I used the latter for the original engine now adapted in Dexed). The other is the analog filter on output, approximately a 16kHz lowpass filter designed to reduce artifacts from the DAC (this is replaced by a more general Moog-style filter in the Android implementation but present as an accurate emulation in Dexed). 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.
- Rodeoclash 5y agoNothing to add but I wanted to say thank you for making Dexed, we've used it in a few synthwave-esque songs.
- jacquesm 5y agoThis is what we were aiming for so I'm super happy to see confirmation of that :) Ken is a true wizard.
- raphlinus 5y agoThe specific thing I've found least documented, yet most important for the distinctive percussive attacks of the DX7, is a random variation of the pitch envelope for the first few milliseconds of the note. That's almost short enough it could be done in the firmware, but I believe it might be in the hardware. It's not present in the msfa source, but might have been recovered by later Dexed authors (I haven't carefully looked at their code). 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/master/wiki/Dx7Envelope.wiki https://github.com/google/music-synthesizer-for-android/blob... ETA: Also see https://levien.com/dx7-envelope.html 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.
- kens 5y agoI haven't looked at the envelope chip, but I hope to examine it at some point.
- analog31 5y agoInteresting, hammond organs had a similar effect due to bad key contacts and leaky capacitors. Simulated by Korg of course.
- djmips 5y agoDo you have more information on this (Hammond) effect and how to simulate?
- chuchurocka 5y agohttps://www.dairiki.org/HammondWiki/KeyClick https://www.dairiki.org/HammondWiki/KeyClick is a pretty good starting point
- turdnagel 5y agoHow good is Chipsynth OPS7’s emulation? https://www.plogue.com/products/chipsynth-ops7.html https://www.plogue.com/products/chipsynth-ops7.html
- ajxs 5y agoIt's arguably the most 'authentic' emulation available. The amount of work they've put into the project of emulating the DX7's various nuances is enormous.
- odiroot 5y agoI've heard Yamaha needed to put a lot of R&D work into producing these digital FM chips. 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.
- ssalazar 5y agoI do wonder if DCOs (much less susceptible to drift) would be more amenable to analog FM, though they were not common for musical instruments during the DX7's early R&D phase. 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.
- TheOtherHobbes 5y agoYou can't do analog FM with DCOs because they're numerically controlled. You'd have to modulate the frequency of the clock, which displaces the problem without really solving it, and also wouldn't work polyphonically. 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.
- ChuckMcM 5y agoAnother great write-up Ken, I'm wondering how the DX-11 differed (it was introduced after the DX7 and I've got a TX-11 (tone module)). The logarithm trick looks like it would fit easily in a small FPGA too!
- ajxs 5y agoI haven't peered under the hood of the DX11, I do have a TX81Z though which is the rack-mounted equivalent. I'm pretty sure the fundamental design would be more-or-less identical. There definitely would have been many small improvements in the design between the DX7, and the DX11. Aside from the DX11 supporting different waveforms (actually truncated sine waves), people have said that the large difference in sound between the successive generations of Yamaha's FM synths comes from using a more abridged sine table. The shorter the table, the more thin, and metallic the sound.
- S_A_P 5y agoThe DX-7 has 6 operators per voice and 16 note polyphony. The DX-11 is a 4 operator synth but with 8 voice poly, but is multitimbral, where the DX-7 is monotimbral. I think both have their advantages and most of the time 4 operators are enough. I’ve been looking for a Yamaha FS-1 which was the 1990s return to FM synthesis for Yamaha. It’s a rare-ish classic that I wish Yamaha would reissue.
- hellbannedguy 5y agoI don't have a question for this syntheiser, but do you know much about a Hammond CMS-103. Did Hammond have their own computer boards, or did they use a version of Yamaha?
- knob 5y agoThis was fascinating to read. Thank you for taking the time to post it up!!
- kbob 5y agoAre there resources for delta encoding transcendental functions in general? A fast, compact tanh() function would be great for making ladder filters in an FPGA.