An FM Synthesis Programming Tutorial focusing on the Yamaha Reface DX architecture - the first in a new series.
What is this seemingly complex mystery that FM synthesis is all about? It has a reputation for being difficult to understand and program, partially because it introduced new terminologies like Algorithms, Carriers and Modulators in place of the usual oscillators and filters. However, I believe the main reason for the bad rap came about because the DX7 was just so different than the analog subtractive synthesizers with which everyone had been familiar. Rather than starting with a complex waveform with existing harmonic overtones, FM is a constructive system where you start with a simple sine wave and have to build complex wave harmonics from the ground up. Plus you had to do that, shape and control it from only one input slider instead of 20 to 30 knobs! Thus it was very awkward to just play around and see what happened to your sound in contrast to what you could readily do by just selecting a sawtooth or square/pulse wave on an analog synth and start turning all the knobs. The user interface on analog subtractive synths was more immediate and rewarded experimentation without requiring a deeper understanding of the instrument. For example, why does a pulse wave sound different as you change the pulse width? What are the technical differences between a low pass or band pass filter and what is resonance? Essentially you just twiddled the knobs until it sounded cool and you liked the sound.
Over the years as I've been programming FM synthesis, I've found the most constructive way to learn is to focus on and become familiar with "how" an FM sound changes when tweaking the core parameters of Operator Frequency Ratios and output Levels instead of "why". Rather than get into the math and theory on why FM synthesis does what it does, these articles will come from a more practical approach of how to program for various 'families' or categories of sounds for you to gain experience with how FM responds. Yamaha has made this so much easier and straightforward with the front panel of the reface DX where you have immediate access to Algorithm, Ratio, Level and Feedback, as well as the online Soundmondo.com editor.
Through this series of articles and example tutorial, I hope you'll get the experience to build a mental library of "when I do 'this', then 'that' is what happens to the sound" just like everyone does twiddling knobs with traditional subtractive synthesis. With each article, there will be links to content on Soundmondo.com to demonstrate the concepts and topics in action to see how it all comes together.
I like to approach synthesis and sound design by breaking down sounds into three foundational components: Pitch, Timbre (i.e. harmonic content or structure), and Amplitude (volume). All these components are universal to any synthesis system. How these three components change over time I'll refer to as the "behavior" of the sound. Behavior typically is a blend of the automatic changes built into the sound and changes from real time input. An example of a common automatic change would be what happens in response to an Envelope generator. Common real time changes would be what happens in response to key velocity and controllers such as pitch bend, mod wheels, aftertouch, assignable sliders and the like. So when I approach sound design, I start with the context of how I'm going to use a sound, and then what type of timbre and behavior would it need to fit into that context. So, let's dive in with sound design and building sounds from scratch so that you can experience how versatile FM synthesis can be.
Basic Waveform Creation
Please reference the Reface DX Voice "Wave Example" on Soundmondo
With Yamaha's traditional FM synthesis you start with simple sine waves – referred to as Operators -- and have to build your waveform to create harmonics. This is done by choosing an Algorithm, which defines which Operators are Carriers and which are Modulators and how they interact, or how they are "patched" together. A Carrier Operator is one that you can hear directly and a Modulator Operator is one that you can only hear by the harmonics it creates. The harmonics you hear are determined by the Frequency Ratio between the Modulator Operator and the Carrier Operator. The loudness or brightness of those harmonics is determined by the output Level of the Modulator.
We'll begin with the Reface DX Voice "Wave Example" on Soundmondo.com
. You will see there a link to a YouTube video that expands on what I will be outlining here. This Voice uses Algorithm 5 that has Operator 1 as a single Carrier, and Operators 2, 3 & 4 as Modulators each patched directly into Operator 1. This will illustrate how we create traditional analog style waveforms, and a distinctly digital one. Play and hold a note. The sound starts as a sawtooth wave, changes to a square wave, then ends with a metallic bell wave. Here's what it looks like (click picture to go to linked video "Wave Demo 1"):
Let's look at the various parts of this sound. First, turn off both Operators 3 & 4 so we just hear the sound from Operators 1 & 2. These two Operators create a basic sawtooth wave because of the Frequency Ratios of 1.00 for both Operators 1 & 2. As you hold a key, the Envelope controlling the Level for Operator 2 decays to zero and the harmonics created by Operator 2 disappear leaving just the sine wave of Operator 1. This is similar to the effect of closing a low pass filter on a sawtooth wave using subtractive (analog) synthesis. Next, turn off Operator 2 and turn on Operator 3, so you are just hearing Operators 1 & 3. These Operators create a basic square wave because of the Frequency Ratios of 1.00 for Operator 1 and 2.00 for Operator 2. Play and hold a note. As the Envelope for Operator 3 first increases then decreases the output of Operator 3, you will hear the sound start as a sine wave, change into a square wave, then back to a sine wave, again similar to opening a closing a low pass filter on a square wave.
Finally, turn off Operator 3 and turn on Operator 4, so you are just hearing Operators 1 & 4. These operators create a basic metallic bell tone because of the Frequency Ratios of 1.00 for Operator 1 and 4.77 for Operator 4. Play and hold a key, and notice that as the Envelope for Operator 4 increases the output of Operator 4 you will hear the sound start as a sine wave then change into a metallic bell tone with inharmonic overtones. This is a classic digital waveform done easily with FM. The reason for this behavior is the Frequency Ratio of Operator 4 is not a whole number. This is similar to what you would hear from ring modulation or "cross modulation" in an analog/subtractive system.
I've shown the waveform shapes in the first video clip, now lets look directly at the harmonics, or overtones, as they change in the sound over time from the Envelopes controlling the modulation amount (meaning the Levels) from Operators 2, 3 and 4 (click picture to go to linked video "Spectra Demo 1"):
You see the initial sawtooth wave has all the harmonic overtones (even and odd) present. As the modulation from Operator 2 fades out and the modulation from Operator 3 fades in, you'll see every other harmonic disappear so it's just the odd numbered harmonics of a square wave sounding. Finally, as the modulation from Operator 3 fades out and the modulation from Operator 4 begins to fade in, you'll see the inharmonic overtones gain intensity.
You have heard and seen the basics of how Operator Frequency Ratio and Modulator Operator Level build complex waveforms, and how a Modulator Operator Envelope controls its Output Level to change the amount and brightness of those harmonics over time as you hold a note. Additionally, you heard the overall loudness or volume of the sound changes over time while holding a note is controlled by the Envelope settings of the Carrier Operator.
In this example, we started with Ratios to recreate some familiar waveforms. Now let's spend some time listening to what different Ratio settings sound like. Go back to the "Wave Example" Voice and make sure Operator 2 is turned on. Turn off Operators 3 & 4 so we're back to the initial sawtooth wave sound. Start changing the Frequency Ratio of Operator 2 and listen to the sound as you set it to 2.00, then 3.00, then 4.00 etc. up to about 12.00 then down to 0.500. Remember to play new notes with each setting so you can hear how the Envelope shapes the sound. Next, reset and leave Operator 2 Frequency Ratio at 1.00 and start changing the Frequency Ratio of Operator 1 from 0.500, to 1.00, then 2.00 etc. and again up to about 12.00. Listen to how the sound changes. Go back and try some random non-whole number Ratios like 1.27, 2.70, 3.37 etc. for both Operators. Try random whole number settings like 4.00 for Operator 1, 3.00 for Operator 2; or 2.00 for Op 1 and 5.00 for Op 2, or 6.00 for Op 1 and 7.00 for Op 2 etc., and listen to what they sound like. Start building a library of what various Ratio combinations sound like so that you will know where to begin when creating your own Voices.
Levels and Feedback
So far, we've focused on the Frequency Ratios of the Operators and how they change the harmonic overtone structure of the sound. Let's move on to Level and Feedback. In simple terms, Level and Feedback control the intensity or volume of the harmonic overtones in the final waveform created. However, they do so in slightly different ways. Increasing or decreasing the Level of a modulator Operator increases or decreases the amount and brightness of the harmonic overtones created in the Operator that it modulates. Feedback changes the amount and brightness of harmonic overtones within that same Operator. Reface DX has a new implementation of Feedback that allows for the creation of either all the even and odd harmonic overtone series of a sawtooth wave with positive Feedback values or just the odd harmonic overtone series of a square wave with negative feedback settings.
This poses the following question: "Do I change the output Level or the Feedback in order to increase or decrease the amount of harmonic overtones in the sound I'm hearing?" The answer is "which one makes the sound change in a way that sounds good to you." This is not meant to be a snarky answer, but this is where the technically correct answer gets into the arcane mathematics of FM behavior. At the end of the day, this is less important then exploring what happens when you change Level and Feedback values. The one practical thing to remember is that Level can be controlled by an Envelope and Velocity (as well as Key Scaling and the LFO, which we'll cover in later articles) whereas Feedback is fixed and has no controller sources.
Let's explore the variations of modulator Level and Feedback. Reference the Reface DX Voice "Level vs Feedback" on Soundmondo.com
. This Voice again uses Algorithm 5 where Operator 1 is the Carrier and Operators 2, 3 and 4 are Modulators each directly patched into Operator 1. All Operator Frequency Ratios are set to 1.00. This Voice has Operators 3 & 4 turned off by default, so when you first play the Voice, the sound you hear is just from Operators 1 & 2, which is our basic sawtooth wave. You will see that Operator 2 has both its Level and Feedback set to 80. Play a few notes and get familiar with the sound. Next, turn off Operator 2 and turn on Operator 3. Operator 3 has its Level set to 65 and the Feedback set to 95 – so we've decreased the Level by 15 and raised the Feedback by 15.
Play some notes and notice how it sounds similar but has distinctly reduced midrange harmonic overtones and stays pretty uniform when playing upper notes. Now, turn off Operator 3 and turn on Operator 4. Operator 4 has the Level set to 95 and the Feedback set to 65, the inverse change where the Level has increased by 15 and the Feedback decreased by 15 compared to Operator 2. Play some notes and notice that it sounds distinctly different with significantly accentuated midrange overtones and gets especially harsh in the upper notes.
Next, go back and turn on Operator 2 and turn off both Operators 3 & 4 and look at what happens if you change the Operator Level leaving Feedback the same and vice versa. Increase and decrease the Level for Operator 2 as you play and hold notes and listen to how the sound changes. Now reset the Level back to 80 then increase and decrease the Feedback as you play and hold notes. In general you will notice that increasing the Feedback results in increasing higher range harmonic overtones faster than what happens when increasing Level -- which tends to increase the mid-range harmonic overtones more noticeably. You might have noticed that when Level and/or Feedback are set higher than 95-100 that a lot of very pronounced and drastic changes occur in the Voice.
To put it another way, the Level and Feedback values is a type of "waveshaping" that accentuates different ranges of the harmonic overtones depending on which one is set higher or lower. Changes in the sound are pretty predictable and similar to the response of a low pass filter when Level and Feedback are both under a value of 90, but that the sound and harmonic overtones change very drastically and unpredictably when the values get above 90 creating that aggressive, digital tone that is well recognized as FM synthesis.
So until next time, practice and tweak your Frequency Ratios, Levels and Feedback values and listen to the various changes they create in the final sound.
Want to discuss or comment on this lesson? Join the conversation on the Forum here
And check out Lesson 2 - Solo Brass Voices
A little bit about the author:
Manny Fernandez has been involved with sound programming and synthesizer development for over 30 years. Initially self taught on an ARP Odyssey and Sequential Pro-One, he also studied academically on Buchla modular systems in the early 80's. With a solid background in analog synthesis, he then dove into digital systems with release of the original DX7. Along with his aftermarket programming for Sound Source Unlimited, Manny is well known for his factory FM programming work on Yamaha's DX7II, SY77, SY99, FS1R and DX200 as well as the VL1 and VL70 physical modeling synthesizers.