Frequency modulation synthesis has something of a reputation for being complicated and difficult to master, and while FM synths can definitely be intimidating, they’re really quite straightforward once you’ve got your head around the basics.
That said, programming patches on the quintessential hardware FM synth, 1983’s Yamaha DX7, would have been a slog. The instrument only had a two-line LCD alphanumeric display, and while using a liquid-crystal display might sound impossibly futuristic and glamorous, its extremely limited capacity to display information would have made the DX7 a lot more time-consuming to program than modern FM softsynths. What made the synth so popular is that it featured some of the greatest presets of all time, and it can be heard on countless pop hits and film and TV soundtracks of the 80s and 90s.
Dexed is an open-source DX7 clone plug-in, and although its interface is still a little on the menacing side, it’s a vast improvement over that of the original hardware. What’s more, it’s capable of loading DX7 patches, making it a fantastic free source of classic tones.
In this Weekend Workshop we’ll cover the basics of FM synthesis and take a look at how to get your hands on those classic DX7 presets.
What you’ll need:
- A DAW
- Dexed, which is available for free in AU and VST formats for Windows, macOS and Linux
1. Making a new patch
Load Dexed up in your DAW, and you’ll be presented with the synth’s interface. At the bottom left of the interface, you’ll see the name of the currently loaded patch, which is ‘1. Say Again.’ by default. You can audition the presets by clicking the up and down arrows to the right of the patch name, or you can click the patch name to bring up the full list of presets.
However, we’re going to go straight to making our own sound. Click the INIT button to the left of the patch name to initialise the synth.
The initialised patch plays a simple sine tone, and when you play the synth you’ll see that only the level meter of the first oscillator (known as an ‘operator’ in FM parlance) is active. This is because the Level knobs of all the other operators are turned down to their minimum level.
2. Using basic FM
Before we start tweaking any of the operators, let’s take a quick look at the Algorithm panel (middle bottom of the interface). This shows the organisation of the operators. How it works is that any operators on the bottom row of the matrix are ‘voiced’, that is, they are directly routed to the synth’s output. Operators above these aren’t heard directly, but they are in fact used to modulate the pitch of the operator below them.
So, in the case of Algorithm 1 here, Operators 1 and 3 are voiced, with Operator 2 modulating Operator 1. We’re only going to focus on Operator 1 and 2, so don’t worry about the more complex operator 3, 4, 5 and 6 arrangement.
Let’s use Operator 2 to modulate Operator 1. Play a note and turn up the Level knob on Operator 2. You’ll hear that Operator 1’s sine tone becomes more harmonically rich as the Level knob increases in value, and by the time the Level knob is at maximum we’ve got ourselves something that can only be described as ‘honk-like’.
3. Changing timbre with tuning
So, what’s happening here? Essentially we’re using Operator 2 to apply vibrato to Operator 1, just like applying an LFO to an oscillator’s pitch in an analogue-style synth. However, while an LFO is a low-frequency oscillator that typically functions in the sub-20Hz range, Dexed’s operators work in the audible frequency range. This very, very fast vibrato gives us the change in timbre we’re hearing, and we can change the timbre of the sound by adjusting the tuning of Operator 2.
At the top left of each operator panel, there’s a display which by default reads ‘F = 1’. This denotes the ratio of the frequency to the root note. So, if you’re playing an A3 which is 440Hz, F = 1 would be 440Hz, F = 2 would be 880Hz, F = 3 would be 1320Hz and so on. We can change the integer value of F with the Coarse knob, make finer adjustments with the Fine knob, and offset by a number of Hertz with the Detune knob.
If that all sounds worrying complicated, fear not: all you need to know at a functional level is that changing the tuning of this operator affects the timbre of the operator that it’s modulating. If you turn up Operator 2’s Coarse knob you’ll hear that the sound remains static but changes timbre, and using the Fine knob to detune the modulating operator slightly can give us a rhythmic beating similar to detuning two analogue oscillators. Turn up the Fine knob so F = 1.94, and we get something a bit more ‘Reese-y’.
4. Using envelopes to create harmonic movement
Turn Operator 2’s Fine knob back down so that F = 1. This returns us to the static honk we had before, which doesn’t sound particularly appealing. We can make a much more dynamic sound by varying the level of Operator 2, and therefore the amount of harmonic content it introduces into Operator 1, with an envelope.
Each operator has its own Envelope Generator. These are a little more sophisticated than the basic ADSR envelope you’ve likely encountered on analogue-style synths, and feature four Level controls and four Rate controls. We want Operator 2’s level to start high and drop quickly, much like the filter cutoff on a simple analogue-style bass synth patch. Copy the EG settings we’ve used here to get a simple percussive FM bass tone.
5. Fine-tuning a techno bass
We now have a straightforward FM bass patch where the decreasing volume of Operator 2 acts much like the low-pass filter envelope movement of an analogue-style bass patch: the sound starts harmonically rich, but these harmonics are reduced over a short period of time to give us a percussive feel.
Aside from the shape of the Envelope Generator, there are two main ways we can shape this sound. The first is to adjust Operator 2’s level knob. When we turn this down Operator 2 modulates Operator 1 less, giving us more tamed harmonics and a duller sound. Turn down Operator 2’s Level to about 4 o’clock and we get something akin to an electric bass.
We can adjust the character of the FM effect by changing the tuning of Operator 2. Turn up the Coarse knob so F = 2 and you’ve got yourself a classic techno bass sound, and F = 4 takes us into rave territory
6. Making a simplistic FM e-piano
If we turn the Coarse knob up further we get something approaching the fundamentals of a basic FM e-piano sound. Set F = 18, and you’ll hear that in the C3 range you get a glassy, bell-like tone.
We can get closer to an e-piano sound by making the envelope tighter on Operator 2’s envelope. Turn up the Rate 2 knob in the Envelope Generator to about two o’clock to give you a simple electric piano patch.
You’ll likely have noticed that thus far our patches have the tendency to be a bit ‘clicky’, we can remedy this by turning down the Operator 1 EG Rate 1 and Rate 4 knobs slightly, which has the effect of increasing the attack and release times on a regular ADSR envelope.
7. Further adventures in FM
Those are the basic building-blocks of frequency modulation synthesis in a nutshell. Now you understand how operators modulate other operators you might like to try out using more of the synth’s operators and try out some of the alternative configurations using the Algorithm knob. All of Dexed’s routing algorithms feature an operator that can self-modulate, and the level of this is controlled by the Feedback knob.
Like the DX7, Dexed’s output is mono, and there are no onboard effects! Merely adding reverb can really enhance the synth’s sound, and we recommend Voxengo OldSkoolVerb for this purpose as it’s free and sounds awesome.
Another resource you might find useful is the original DX7’s manual. Dexed doesn’t have full-featured documentation at the time of writing, but as it’s based so closely on the DX7 you should be able to find a lot of answers there.
A great way to learn more advanced FM-programming tricks is to check out the DX7’s presets, which you can find at Dave Benson’s DX7 Page if you search for ‘dx7patch.zip’.
To load the original DX7 factory ROM files, first unzip dx7patch.zip. Then in Dexed click the Cart button in the bottom left-hand corner
Next, click Load and navigate your way to the dx7patch folder. The DX7 ROMs are labelled ROM1A.SYX to ROM4B.SYX. Select one, and its included patches will appear in the Currently Loaded Cartridge panel.
You’ll find tons of recognisable sounds in ROM1A alone, include the lush deep house organ E.ORGAN 1, the perky MARIMBA, the atmospheric TUB BELLS, the iconic E.PIANO 1 and the funky BASS 1. You can even use Dexed to send these patches to a Korg Volca FM!
These sounds are among the most-loved presets ever created, and to get the most from them we recommend taking a look at how they’re constructed, and, of course, nicking those ideas wholesale. Happy operating!
Don’t forget to check out our past Weekend Workshops as well, and look out for more in the coming weeks.