3 ms·
For some background—the Yamaha FM chips were fairly clever. Tie together an adder, some lookup tables, and a few registers and you’ve got sound. In particular,
by klodolph 6y ago
For some background—the Yamaha FM chips were fairly clever. Tie together an adder, some lookup tables, and a few registers and you’ve got sound. In particular, no need for a multiplier! The spartan design is the reason why they could release such inexpensive digital synthesizers in 1983, and then stick them in PCs and consoles.
People still write songs or develop games to be played on retro hardware, and having a VST plugin for the Adlib means that you can easily use your favorite DAW to write the track, and then export the MIDI file for playback on real hardware or in your demo or whatever.
- danbolt 6y agoThat's really interesting. Would you have some more information on how the Yamaham FM chips were implemented. I'm still trying to wrap my brain around what "modulation" is actually doing and why it sounds the way it does when one wave operates another.
- klodolph 6y agoYour basic core is the numerically-controlled oscillator, which consists of a phase accumulator and a wave shaper which converts the phase to the desired wave (basically a sine wave lookup table). phase accumulator -> wave shaper Yamaha FM just lets you add other signals to the wave shaper input: other signal -------\ (+)-> wave shaper phase accumulator --/ For example, instead of getting sin(x), you get something like sin(x + sin(x)). You start adding parameters like “a sin(b x + c sin(d x))” suddenly there are millions of possibilities. “Why it sounds that way” can get really deep if you like, but basically, as you increase the modulation level you get more harmonics, and if you increase it too much you start losing the fundamental frequency. This is one of the reasons why it’s nice to have a 6-operator FM system (like in the DX-7). With the 4-operator FM, once you turn the modulation “all the way up”, there’s nowhere to go, but with 6-operator FM you have some extra operators around for modulating modulators.
- SonOfLilit 6y agoThe math is just Asin(at+Bsin(bt+...))+Csin(ct+...), where you can slowly play with A, a, B, b, ... but to get a good musical intuition try this tutorial for the Yamaha Reface DX (a modern incarnation of this algorithm, identical to the DX7 except they replaced the last two operators with a feedback unit per op instead of just one): https://www.yamahasynth.com/synths/basics-of-fm-synthesis https://www.yamahasynth.com/synths/basics-of-fm-synthesis
- jim-jim-jim 6y agoYou may want to give this a read when you have the time: written by the man who discovered FM synthesis, and intended for musicians rather than mathematicians. Very eye-opening for any casual synth enthusiast--even somebody without a DX: https://libgen.is/book/index.php?md5=A0BE23E763754D12807CDD6A773AF69D https://libgen.is/book/index.php?md5=A0BE23E763754D12807CDD6... The book is long out of print so I don't think anybody would object to the link.
- TheOtherHobbes 6y agoYou need multiplication, but you don't necessarily need a multiplier. The trick was to do everything with the log of the signal, so you could use additions instead of multiplications, and then use an antilog lookup table at the end. The sound was pretty lofi by modern standards, but it had a kind of pseudo-acoustic bite and slap that made older analog synths sound like mush. The DX7 series of synths hit a sweet spot between being too clean and being too grungy. Game FM tended more to grunge. The later and more complex versions FM synths sounded a touch sterile. A descendant of the tech is still being used in Yamaha synths today. And if you want to play with a VST emulation, try this: https://asb2m10.github.io/dexed/ https://asb2m10.github.io/dexed/