12 ms·
Reverse-engineering the Yamaha DX7 synthesizer's sound chip from die photos
- 5faulker 5y agoThis is cool shit. Hacker-approved.
- kens 5y agoAuthor here if anyone has questions...
- b20000 5y agoawesome work and right up my alley. look forward to digesting
- vadfa 5y agoI like your blog a lot, thanks for existing.
- sennight 5y agoSince you offered: what is that trace called that is presumably electrically connected to the ceramic cap solder seal? I've wondered about its function, but have never been able to distill the prior sentence to the necessary power words. Also, here is an extra ham-fisted attempt to get you to cover an off topic interest of mine: did you know that the Soundblaster DSP was an 8051? Cool, huh? pleasedoan8051deepdiveimbeggingyouplease. I'm aware of only one gate level analysis, with evidence of its existence on archive.org... tragically the spider never bothered with the actual zip file and the author is long gone. Thanks for all the great reads, btw.
- kens 5y agoThe gold trace connects the metal lid to pin 1 (ground). This provides some electrical shielding. As for the 8051, I might look at it at some point, but I've got lots of other projects...
- sennight 5y agoha, and here I'd assumed there was some convoluted vacuum getter / ion pump at the root of it... nope, just didn't wanna screw about with the bond wires. Thanks.
- jmuhlich 5y agoYou might be interested in this 100% compatible SB 1.0 reimplementation (including 8051 of course) : https://github.com/schlae/snark-barker https://github.com/schlae/snark-barker
- GhettoComputers 5y agoAmazing blog, glad I found it and the other articles look great too! Very interesting history of computing. Can you use an arbitrary waveform generator to make these sounds accurate or differences nonexistent? Do you think that good audio can be “solved”? I’ve heard of Harmon tuning and people’s preference for it, and how good speakers are all tuned the same but high end headphones don’t. I remember this person who knew electronic design destroying the credibility of head-fi. https://nwavguy.blogspot.com/ https://nwavguy.blogspot.com/ what do you think of forums like audio science and his findings?
- kens 5y agoWell, you could feed the right digital values into the arbitrary waveform generator, but you have the problem of how to generate the values. As for your other questions, I don't really know anything about audio.
- deleted 5y ago[deleted]
- aappleby 5y agoNice work. :D -Austin, author of Gateboy (https://github.com/aappleby/MetroBoy https://github.com/aappleby/MetroBoy)
- mcraiha 5y agoThe Play example generates horrible sound if you press play and drag the Modulation frequency ratio slider. Using Chrome 95.0.4638.69
- kennywinker 5y agoIn Firefox I only hear a single sine wave of varying amplitude/frequency, not a modulated one.
- kens 5y agoThe Firefox implementation should work now; someone sent me a fix.
- rotexo 5y agoReading this really drove home to me just how amusing some of the twists and turns of music tech development are. In contemporary modular synth formats, you now have modules that use similar FM tone chips, but are controlled by potentiometers and analog control voltage inputs (for instance, https://busycircuits.com/alm011/ https://busycircuits.com/alm011/). I could see how someone could conclude that this destroys the reproducibility advantages of digital FM synthesis, while preserving the cheesiness of FM sounds. From another perspective, you can freely explore the enormous landscape of sound produced by FM synthesis, without diving into the deep end of DX7 programming. Instead of generating sysex dumps on the fly to dynamically change the sounds produced by the synth, you just feed whatever control voltage you can come up with into the inputs of a module and bask in the insanity that comes out (for instance—https://www.youtube.com/watch?v=2-YEbg040ww https://www.youtube.com/watch?v=2-YEbg040ww definitely not everyone’s cup of tea). Edit: but if you want to explore the landscape of FM tones generated by these chips without spending all of your money on a modular setup, generating sysex messages will of course take you where you want to go: https://fo.am/activities/midimutant/ https://fo.am/activities/midimutant/
- djmips 5y agoWhat do you mean? That's awesome!
- rotexo 5y agoOh I definitely think it is too! I could see other people dismissing the modular stuff as a waste of money, or the midimutant thing as a- or un-musical. Maybe I could have reframed this as a meditation on how quirky technology development can be when it is subservient to human creative urges. (Edit: spell check)
- klodolph 5y ago"Basking in the insanity" just about sums it up. It's remarkably difficult to craft a good sound with FM synthesis (or phase modulation, for the pedants). My experience with FM sound design tells me that 2 operators is quite primitive, 3 operators opens up a larger set of non-insane possibilities, and 6 operators (like the DX 7) is, surprisingly, the minimum I would personally want to use for FM synthesis! So if you are going to go 100% FM, and you're going the eurorack route, I'd personally want nothing short of two ALM011s. You obviously don't need two if you're mixing it with other modules, it's just that if you want to do FM synthesis, four operators is surprisingly limiting.
- squarefoot 5y agoElectronic musical instruments, especially from the mid-80s on, make heavy use of customized and of course undocumented ICs, thus revealing their inner workings is of immense value for emulation purpose when the original instruments are either unobtanium or too costly for normal people to purchase. Also, should one day technology allow small run production of chips at home, sort of 3D printing silicon, it might be worth having a library of interesting chips to replicate for fun and/or to repair old instruments.
- smoldesu 5y agoBehringer's redesign of the 3340VCO has been huge for bringing cheap analog equipment to the masses. I own their Neutron, which is a semimod kinda like the Mother-32 but with a few bonuses and more patch points. It's seriously impressive for being a home-grown instrument at a sub-300-dollar price point, and I'd probably choose it over most other instruments in it's price class like the Monologue or UNO.
- ixfo 5y agoBehringer's goal has always been to make stuff cheap enough that people can afford. Which is noble, except they do this entirely by ripping off other people's R&D and undercutting lots of people including smaller players. Also Uli Behringer himself is completely mad and appears to be pretty chill with antisemitism. https://www.gearnews.com/uli-behringer-responds-to-the-corksniffer-video-fiasco/ https://www.gearnews.com/uli-behringer-responds-to-the-corks... tl;dr don't support Behringer, please.
- liotier 5y agoThe Neutron is an exception - it is one of the few Behringer products that is an original creation and not a cheap clone of a reputed instrument. Also, there is nothing like it anywhere near that price range. I bought a Neutron, but I would feel dirty buying a clone of something that is still in production. Some background, for those who don't yet know the controversy surrounding Behringer clones: https://www.factmag.com/2017/04/08/behringer-minimoog-synth-clones/ https://www.factmag.com/2017/04/08/behringer-minimoog-synth-...
- fnord77 5y agoIt is a shame companies do not donate the actual design documents to a museum of some sort, like the Computer History Museum. Of course things get lost over the years. I wonder if companies could put their designs in escrow to be released after some number of years so they don't get lost.
- kennywinker 5y agoThis is basically the original logic behind patents. You trade making your invention public for legal protection of your exclusive right to that invention for some number of years. It's too bad it doesn't work anymore (or maybe it never worked?). Stuff like this doesn't make it into useful patent documentation, while patents are issued for vague and overly broad "inventions" like "storing numbers in a computer".
- kens 5y agoThe DX7 patent is actually pretty good: https://patents.google.com/patent/US4554857A https://patents.google.com/patent/US4554857A It accurately describes the architecture of the DX7 and how it's implemented. There's a whole lot that it doesn't explain, but it was very helpful for understanding the chip. (I used a couple of diagrams from the patent in my article.)
- varispeed 5y agoI don't know why patents even exist at this point. I have seen many times an obvious thing has been patented, where anyone sane wouldn't think of patenting something like that. Most likely this is to get a PR e.g. "we are using patented technology", but if you worked on a software and then you learn someone has patented something that your software does years later, makes you feel uneasy and there is no defence against that. One thing if companies are doing that for PR, but if "their IP" gets taken over by patent trolls...
- TedDoesntTalk 5y agoPatents can be challenged for being obvious.
- spudwaffle 5y agoIt’s time to go to DX Heaven https://youtu.be/X9L60BUux1k https://youtu.be/X9L60BUux1k
- Waterluvian 5y agoOn the topic of synth chips, does anyone have any good resource talking about why those big retro synths still exist? There’s got to be a good reason I simply don’t understand for why a computer cannot replicate everything those massive pieces of furniture do. The one thing I concluded is that their interface, with hundreds of knobs and potentiometers must be very nice to interact with. But can they not just house a computer inside? I guess my curiosity and ignorance boils down to: why can’t computers generate all the kinds of signals that these big synths do? Edit: a bulk thank you for all these helpful responses.
- jb1991 5y agoThere is quite a big difference between a digital sound and an analog sound, and even among digital sounds, there is a big difference between a software program making sounds and a digital hardware circuit that is architected specifically for making particular types of sounds.
- Waterluvian 5y agoThanks! What might I search for to understand this detectable and quantifiable difference (vs. Monster cable style subjective feelings about sound)?
- 323 5y agoIt's mostly that hardware makers invested more time and money into the algorithms to make them more pleasantly sounding. Many software synths are one-man projects which has to do it all (DSP, UI, ...) Hardware makers also have proprietary institutional knowledge, since you can have a couple persons who researched synthesis methods for 10 years. They also work with users to tweak the sound and interface to perfection.
- rotexo 5y agoI don’t have any resources for you, but I will say that there are a lot of synth emulations out there (for instance, google “dx7 vst”). Developers might be more or less obsessive about emulating the particular quirks of different hardware synths, but I can’t say how significant those details are. I guess it comes down to the listener’s ears. Some people like having vintage synths because they are collectors, and some like the workflow surrounding them (ie, the big front panel of knobs and faders you allude to, or the simplicity of plugging in audio and/or control voltage and/or midi cables).
- exhilaration 5y agoAdditional reading and discussion on the DX7 from 3 weeks ago: https://news.ycombinator.com/item?id=28940860 https://news.ycombinator.com/item?id=28940860
- kens 5y agoNot a coincidence :-) I'm working with the author and the submitter of that article.
- kennywinker 5y agoThis is maybe a little outside the scope of your article, but I've read about the DX7's log2 based sine wavetables in the past, and it makes sense from a math standpoint (log2(x) + log2(y) = log2(x*y)). However, I find it confusing when I go to try to replicate it. My understanding is that these are NOT floating point numbers. In which case the output would be in the 8bit range of (0-257) or -127 to +127 if we're using signed values. So assuming I want to represent a signal value of 127 (i.e. sin(t) = 127) using base 2 logs, I punch this into my calculator and i get log2(127) = 6.9886. But that's not what's going to be stored in the signal LUT since it's a floating point number. I think I'm probably missing something obvious, but any clarification would be amazing.
- danachow 5y ago6.9886 is not a floating point number - it’s just a number. Floating point is but one representation for approximation of real numbers, so called fixed point is another one. Having said that I believe the DX7 does use a floating point representation internally since floating point addition can be done with adds and bit shifts - both easy things to do in hardware.
- jimktrains2 5y agoMaybe it's stored as a fixed point? 4 bits for the signed whole number portion and 4 for the fractional part?
- kennywinker 5y agoI don't think that's enough precision? I.e. if you only have -7 to +7 range for the whole number and 0-16 for the fractional portion, how do you represent 6.9886? 1000/16 means increments of 62.5 so the closest numbers we can represent are either 7.000 or 6.9375 - but 6.93xx overlaps with log2(126) = 6.9773 and 7.000 overlaps with log2(128)
- danachow 5y agoIt’s not 8 bits. Most of the Yamaha chips seem to use 16 bits internally in 8.8 format (based on Raph Leviens work). Different models of Yamaha chips had different DAC setups, but on the DX7 the representation was 12.3 floating point - which I think was converted from the internal log scale fixed point to linear scale via a lookup table. So while the DX7 chips technically use both floating and fixed point it probably does all arithmetic in fixed point.
- guerrilla 5y agoThat is some seriously clean routing.
- lovelyviking 5y agoYamaha DX7 - Famous Sounds Demo: https://www.youtube.com/watch?v=BCwn26FePAo https://www.youtube.com/watch?v=BCwn26FePAo
- jacquesm 5y agoNext level wizardry this, the speed with which this all came together is incredibly impressive, it took about as long to mail the chip as it took for Ken to do all this work.
- nitrogen 5y agoDid this come out of the recent DX7 thread or was this in the works for a while?
- jacquesm 5y agoI've been talking to Anthony since about forever, I repair DX-7's to keep them in play and we both had a partial disassembly of the DX-7 ROM (mine SER version and his the regular one). We compared notes, I mentioned I have a dead board sitting here and then we asked Ken if he would be interested in taking a look at the chips.
- mortenjorck 5y ago> The underlying problem is that multiplication is much harder to perform with hardware than addition, especially with 1980s-era technology. The solution is that the chip uses base-2 logarithms in many places because adding logarithms is equivalent to multiplying the values. Maybe it would have been obvious to me if I had taken calculus, but this blew my mind.
- secondcoming 5y agoLogarithms are taught before calculus where I grew up.
- aaaaaaaaaaab 5y agoCalculus? Really? Logarithms are basic highschool math in my country…
- presspot 5y agoWe don't learn mahr here
- NullPrefix 5y agoSuch a shame that grammar wasn't a basic thing back there.
- jacquesm 5y agoOr tact.
- mwfunk 5y agoFun fact: in the UK they call it marhs!
- dang 5y agoPlease don't put other users down, regardless of how math is taught in your country. We want curious conversation in which people treat each other well, even if they know less than you do. We do not want point-scoring and putdowns. https://news.ycombinator.com/newsguidelines.html https://news.ycombinator.com/newsguidelines.html Edit: you've unfortunately been posting unsubstantive comments and breaking the site guidelines with this account elsewhere, too. Can you please stop that so we don't have to ban you again?
- dboreham 5y agoShout out for the DX9 which was quite a bit less expensive, bringing it within reach of a wider market. My brother had one when we were in high school.
- ajxs 5y agoSomeone actually made a fan-site for the DX9: https://yamahadx9.com/ https://yamahadx9.com/ As their headline puts it: "The Surprising truth about Yamaha's most vilified FM Synthesizer The DX9"
- bboreham 5y agoI always regretted it. Didn’t quite have enough money for the DX7, but I should have held out till I did.
- TheOtherHobbes 5y ago>a PM signal will have little frequency change if the modulation is slow This was one of the programming tricks on the DX7. If you set the final carrier to a low frequency you got a nice drifty chorus-like effect.
- w0mbat 5y agoOne big selling point of the DX7 was it did a decent piano sound, which was never really possible on analog. Once ROM got a bit cheaper though, you could get a much better piano sound from new instruments like the Korg M1 which used internal samples of real pianos. As the new sample-based keyboards hijacked the natural sound market, a resurgence of analog synth sounds in Acid House and other EDM took over the synthetic sound space. Pretty soon nobody wanted FM synths any more.
- cdavid 5y agoAnalog stuff (tb 303, sh101, etc.) in early acid house was used because it was cheap at that time, mostly. M1 came later than early acid house or techno after all Same reason FM was actually used a lot in electronic music as well. You can hear DX series a lot in detroit techno: Derick May, Jeff Mills, Robert Hood, etc.
- kabes 5y agoFunny how now with the synth revival driven by Eurorack, fm synthesis is often the mosten interesting.
- WalterBright 5y agoI've never heard a synthesized trumpet sound like the real thing. I have no idea why.
- livinginfear 5y agoPlease forgive any ignorance on my behalf. Does work like this make it any more possible for someone to engineer an FPGA-based replacement? I don't know too much about FPGAs, I just imagine that seeing the arrangement of the gates on the chip makes its functionality a little more transparent, and this a bit more possible.
- kens 5y agoIt would still be a large project to build an FPGA replacement, as someone would need to trace out all the circuitry. I've just scratched the surface. But at a minimum I hope to extract the ROM contents, the data path widths, and so forth, which will allow emulations to be more accurate.
- posterboy 5y agoThis is ultrasound!