9 ms·
The Yamaha DX7 synthesizer's clever exponential circuit, reverse-engineered
- kens 5y agoAuthor 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.
- EarlKing 5y agoIt's really starting to scare me how many of my personal interests manage to crop up as articles here.
- SavantIdiot 5y agoWe're not as unique as we like to believe. I bet there are probably just ~400 different archetypal people that read HN.
- S_A_P 5y agoYeah, I’m willing to bet that most folks here are either into music/audio, photography, video production, or building gear and software that supports these endeavors in some way. I know a lot of people who code, but few of them visit this site. The ones that do fall into one of those categories.
- SavantIdiot 5y agoI think I've observed a strong correlation between programmers with hobbies in the real world that involve making things. Carpentry is a biggie. So is photography and cooking. Also musical performance (guitar/drums/bass) but to a lesser extent. Hmm.. seems like hobbies that involve lots (and lots) of gear are key. :)
- austinthetaco 5y agoYour circle of friends who code is either small or young. This site was foundationally mostly coders for a very very long time. Often times technical articles and codebases would pop up and large discussions had. Sad to see that's the upcoming perception.
- EarlKing 5y agoWell, yes, but it can get eerie when I suddenly start seeing articles aimed at a very specific machine I happen to have recently begun playing^H^H^Hworking with (i.e. the DX7). 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.
- deleted 5y ago[deleted]
- dave_sid 5y agoSo cool an article about synths is at the top of HN.
- throwawaysea 5y agoCan someone explain what a synthesizer is to a non musician? It looks like a keyboard to me. Do the two terms mean something different? 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? 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?
- jacquesm 5y agoA synthesizer is a device that creates waveforms of a musical nature that do not have a natural equivalent.
- throwawaysea 5y agoIs it not possible to have a fully digital (built in software) synthesizer?
- jacquesm 5y agoSure, but that's still a device.
- klodolph 5y agoIt is definitely possible... it is also easy to end up with software synthesizers that use up large chunks of your available CPU power, or even synthesizers that require more CPU than you have available. It is also easy to end up with a beloved software synthesizer that stops working because you updated your computer's OS. I have sound modules from the 1980s that still work exactly as they did almost 40 years ago. I can't say that about software I used in the 1980s. A lot of modern synthesizers or sound modules are basically just software running on CPUs, DSPs, or even FPGAs.
- Gigachad 5y agoThat is what is used for modern music production in software. It's a somewhat new development and with too many in use at once, you will have to prerender/cache the sound as your computer may not be able to handle it all live. 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.
- airstrike 5y agoSince the article didn't appear to include any samples, I resorted to Goodolegoogle and found this: https://www.youtube.com/watch?v=U7Xnr0m-elw https://www.youtube.com/watch?v=U7Xnr0m-elw
- geephroh 5y agoThanks to the OP for the memories. Worked and scrimped for the DX100 when I was in high school. That keyboard, my buddy's CZ-101, his brother's TR-505, plus copious hair mousse were the recipe for some of the best and worst Depeche Mode covers of all time.