An Overview Of FM Synthesis

Downloadables from the article:
<HollowBass.syx> - 142 bytes

Introduction: The Theory Of FM Synthesis

Everything in nature is a continuum, yet there are certain thresholds within any continuum that result in radical change when they are crossed. Think of water and the continuum of its temperature. When water reaches 100 degrees Celsius it suddenly turns into a gas, which is very different from the liquid state to say the least. The same type of thresholds exist in the realm of sound and the principle of FM synthesis was discovered by John Chowning when he crossed one of these thresholds and noticed that a radical change had occurred. The continuum he was working with was the speed of vibrato (i.e. frequency modulation).

If you take a sound and modulate its pitch with an oscillator at a slow rate, you will hear the pitch rise up and down slowly, like a police siren. As you speed up the oscillator, it turns into vibrato. As you keep increasing the speed, the vibrato will turn into a grumbling sound, and won't sound much like vibrato anymore, but more like some type of distortion. Increasing it further will smooth out the grumbling and the original sound will be duplicated at different frequencies that fan out from the original as the vibrato speed increases. When the frequency of the vibrato reaches the frequency of the sound being modulated, these duplicates will line up harmonically and form a new musical sound. If you were to increase the depth of the vibrato, more duplicates of the original sound will be created and increase the overall harmonic complexity of the sound. So that's basically what FM synthesis is about.

Operators And Algorithms

In Yamaha's DX line of synthesizers, the oscillators are called "operators". In the TX81Z there are four of these in a single voice, and they can be routed in relation to each other in eight different ways, called "algorithms". Some operators are routed directly to the sound output, and these are called "carriers". Others are routed to other operators and these are called "modulators".

Look at the algorithm diagrams on the pull-out reference card:

The little white boxes in each algorithm represent the operators. The operators on the bottom of each algorithm are the carriers. Algorithms 5 through 8 have multiple carriers and these act like independent sounds that are mixed together additively to form the final sound.

The operators that are above the carriers are the modulators. A modulator changes the sound of the carrier(s) it is connected to via frequency modulation. In other words, the output of a modulator is routed directly to the frequency of its carriers. The overall output level of a modulator determines how much it changes the sound of the carrier, as opposed to the output level of a carrier, which determines the volume of the sound it makes.

Initializing A Voice

I'll run through a couple of experiments so you can see how FM works. Initialize a voice first to get the voice parameters into a known state. First, put the unit into single mode by pushing the PLAY/PERFORM button until the unit says "PLAY SINGLE" at the top:

Then push the UTILITY button to get into single utility mode and use the left and right PARAMETER buttons to navigate through the menu until you get to the initialize voice command:

Push the INC button to say yes...

...and push it again to confirm. It will then put itself into voice edit mode and the LCD will be somewhere in the top voice editing menu.

Simple FM - One Carrier And One Modulator

A good first step in making a sound is choosing an algorithm or figuring out which algorithm is being used in the voice. It's good to keep in mind what role each operator has, whether it's a carrier or a modulator, so that you can predict what a change might do to the sound before you actually make it. The more familiar you become with FM synthesis, the better you will be able to plan ahead before you reach for the front panel buttons.

Initializing a voice sets it to algorithm 1:

Algorithm 1 has one carrier (operator 1) and three modulators set up in series. Operator 4 is modulating operator 3, 3 is modulating 2, and 2 is modulating 1. Two or more modulators hooked up in series is called a "cascade" and what really happens is that the modulations cascade down to the carrier, so it would be more accurate to say that operator 4 is modulating 3 and the result of that is modulating operator 2, and the result of all of that is modulating operator 1. So that is what happens in algorithm 1.

At the moment I just want to experiment with one carrier and one modulator, so algorithm 1 is fine if we use operators 1 and 2. The next thing we'll do is adjust the output levels. The init voice has operator 1 set to 90 and everything else set to zero:

Since operator 1 is a carrier its output level adjusts the volume of operator 1, and because operator 1 is the only carrier in this algorithm, it adjusts the overall volume of the whole sound.

On the other hand, because we're using algorithm 1, which sets up operator 2 as a modulator routed to operator 1, the output level of operator 2 adjusts the amount of frequency modulation that it applies to operator 1. In other words, in adjusts how much operator 2 changes the sound of operator 1.

Let's turn up the level of operator 2. Note that if you press and hold a key on the keyboard as you change an output level, you won't be able to hear the change until you press another key. So, increase the output of operator 2 a little at a time and press a key between each change to hear how the level of operator 2 affects operator 1.

It doesn't really become noticable until it gets to about 45 or so. By the time it reaches 99 it morphs the original sine wave into kind of a harsh oboe sound. What we've done is increase the harmonic complexity of operator 1 with operator 2 and that makes the sound brighter and changes its character.

Now let's do the same thing with operator 1, only this time we'll turn it down a little at a time while continuously pressing a key.

Although operator 2 is set to 99, it makes no sound itself because it's a modulator and not a carrier. See, I told you...maybe next time you'll believe me. Turn operator 1 back up and turn operator 2 down a little bit so isn't so piercing. Generally speaking, it's a good idea to avoid torturing your ears when programming synths, unless you want to train yourself to hate synth programming or something. I'll turn mine down to 75.

There, that's a nice little sound, huh? Kind of organish. Now let's go into the frequency submenu and play with the frequency settings a little bit.

Pushing the INC button on this screen enters the frequency editing submenu.

The frequency of an operator can be configured in one of two modes: fixed or ratio. Fixed mode makes it sound off at a single frequency regardless of what key is being played on the keyboard. Ratio mode takes the frequency of the note being played and multiplies it by whatever factor you have the ratio set to.

Ratio mode is the most common way to configure it, since it's more musical than fixed mode. Fixed mode is used for special effects and things like that. Let's check out fixed mode and configure operator 2 to use it. Cursor over to where it says "RATIO" and press the INC button to change it's frequency mode to fixed.

Then cursor back and set the frequency to the lowest possible frequency, which is 8 hertz.

Now listen to the sound.

What did I tell ya? The effect of operator 2 on operator 1 really is just vibrato. It's kind of deep for vibrato but you can change the depth by changing the output level of operator 2 (I'll assume for the rest of this article that you've set it back to 75 when you're done).

Ok, I just wanted to show you that because I thought it was a neat trick. Let's change operator 2 back to ratio mode and listen. Your screen should look like this at this point:

Listen to the sound for a bit and then change it to 1.00 and listen.

It sounds like the sound shifted up an octave when you changed it to 1.00, didn't it? Now change it to 2.00.

Weird, huh? The tone didn't shift up an octave that time, but now it sounds like an analog square wave. What's happening is you're changing the width of the harmonic spectrum that is created. As you increase the frequency of a modulator, the distance between the individual harmonics gets larger, so it changes the tone color and makes the sound brighter as you increase the frequency and make the spectrum stretch into higher territory.

So why didn't the sound change in the same way twice when we widened the spectrum twice? It's just because our aural perception doesn't interpret sound in that way. It likes to make greater distinctions between sounds, so we perceive sounds with different harmonic spectra as completely different sounds. This property of perception is what makes FM programming challenging, but this property is actually a good thing because it enables us to easily distinguish between different sounds.

Anyway, go back to the operator 1 frequency and change it to 2.00 to match the frequency of operator 2.

Now the sound has lost its squarelike character and we're back to the original sound we had earlier, only shifted up an octave. This indicates that the color of the tone is determined by the relative proportions between the operator ratios, and that changing all of their frequencies while keeping the same proportions between the ratios will shift the sound up and down in pitch without changing the timbre. So, for example, if you have an operator pair with ratios of 1.00 modulating 2.00 and you want to shift it up an octave, you would have to change them to 2.00 modulating 4.00. The next octave would be 4.00 modulating 8.00, and so on.

Let's see this principle in action just for kicks. Turn the operator 1 frequency back down to 1.00 to get the square wave back.

Play a few notes and then halve the frequency of both operator 1 and 2 like so:

Then play the keyboard an octave higher. The sound is identical.

Complex FM - Cascading Modulators

When we start working with more than one modulator we enter the realm known as "complex FM", and complex FM is what makes FM such an interesting form of synthesis. When two modulators are used on the same carrier, they interact with each other and the spectra they produce can become exceedingly complex.

Before we continue, let's get back to the basics and set the operator 1 frequency back to 1.00 so all the operators have the same frequency.

Again, algorithm 1 has the operators set up in a cascade, so operator 3 is modulating operator 2, and result of that is modulating operator 1. In other words, operators 2 and 3 together are going to create a complex waveform and that will be used to modulate operator 1. Ok, now turn up operator 3 the way we turned up operator 2, little by little until we reach 99.

That creates a pretty harsh sound at this point. It even seems to have random frequencies contained in it if you make a run up the keyboard. What's happening is that some of the sidebands (i.e. harmonics) being generated are too high and they are bouncing off of the upper limit of frequencies that the TX81Z is capable of producing. This limit is half of what is called the "sampling rate". When a sideband exceeds this limit, it gets reflected off of that limit, and since this limit is a fixed frequency it usually makes the sideband turn dissonant as it bounces back into the valid range of frequencies. This reflecting is called "aliasing".

Let's just back off a bit on the output level of operator 3 and set it to something more sane like 75.

There, that's not bad is it? It's kind of organish/ sounds sounds just like algorithm 1 with operators 2 and 3 set to 75! The expressiveness of FM is truly amazing!

Let's try to get our square wave back by setting the frequency of operator 2 to 2.00 again.

Hmmm, that doesn't sound too squarelike to me. It sounds like operator 3 has cancelled out the squarelike nature of the operator 1 and 2 combination and changed it into something much different. Let's see what happens when we change operator 3 to 2.00 as well.

There, now we're back in squareland with both modulators at 2.00. I wonder what happens if only operator 3 was at 2.00 and the other two are at 1.00.

Hmmm, it has vague hints of squaredom but it sounds more piercing than that, kind of top-heavy. Whatever it is, it's difficult to describe. Let's go wild with it and change operator 1 to 0.50. We'll make a little slope with the frequencies.

We're squarely back in squareland again, yet we still have the piercing sound to go along with it.

As you can see, the interactions between the operator frequencies in a cascade are quite complex. A seemingly small change in one of the operators can make a relatively radical change in the sound.

Complex FM - Parallel Modulators

Now that we've heard what a cascade sounds like, let's change it to parallel modulators. Algorithm 4 fits the bill with operators 2 and 3 modulating operator 1 in parallel. Go ahead and change it and listen to the result.

Parallel modulators don't produce quite as much complexity as cascaded modulators, so the sound is not quite so piercing.

Parallel modulators act independently, so they are a little more flexible than cascade modulators, especially in terms of their envelopes. If three operators are hooked up in a cascade, then the middle modulator needs to be outputting something in order to hear the top modulator, so it's good to keep that in mind when setting your envelopes. The envelope of the operator on top has to fit inside the envelopes of the operators below it, otherwise you won't be able to hear it very well, if at all. Parallel modulators don't have this problem, but, of course, they sound different, too.

Parallel modulators have another property that I would like to show you. Right now the frequencies are set up like this:

Let's swap the frequencies of operators 2 and 3 just to see what it sounds like.

It sounds the same. Parallel modulators are functionally identical. It makes no difference what order they are in, because they are just being mixed like regular audio signals before modulating the carrier. It's only when they're cascaded that the order makes a difference.

There's one last property I want to tell you about related to the passive mixing of parallel modulators. When two identical sounds are layered together in a mix, what happens to the sound? The two sounds become indistinguishable and it sounds like only one sound, only louder. That's exactly what happens with parallel modulators. If the two operators have the exact same frequency, waveform, envelope and other settings, and you arrange them as parallel modulators, it will sound just like one modulator with their amplitudes added together (note that I didn't say "output levels" because the output level is logarithmically related to the amplitude, or maybe it's the inverse square...I don't know, but whatever it is it's a curve and it's boring).

Turning This Into A Bass Sound

Ok, I'm sure you've probably had enough of the theoretical junk at this point, so I'll start wrapping it up. Just so I don't leave you with the impression that all of this is useless, let's take what we've done so far and turn it into a simple bass sound. A bass sound is one of the simplest kinds of sounds to program, and all we really need to do is adjust the envelopes to give it a sharp attack and allow it to decay as the key is held.

Let's start with giving it a sharp attack. Go into the envelope editing menu by dialing up this screen:

Push the INC button so you wind up here:

This screen is where the operator attack rates are set, but all of the attack rates are already maxed out, and the attack of the sound doesn't exactly reach out and grab you. It kind of sounds like a cheesy home organ or something, but we want something punchy. Although it's a big factor, a fast attack rate in itself isn't enough to make a punchy sound.

The real trick to making a punchy sound is to make it decay real fast. Punchiness is really a matter of perception rather than an intrinsic property of a sound, and giving it a quick decay will make the attack sound faster. It's just one of those perceptual illusions.

So let's change the decay rate of the sound so it's real fast. Seeing as there are two decay rates that we could change, D1R and D2R, the question is, which one should we change?

Well, the sound we have now is basically an organ type of sound. It turns on real quick when you press a key and stays on until you release it, so it's not decaying at all. The decay 2 rates are all set to zero, so, as you can probably guess, these zeroes are the reason the sound never decays, so the D2R is what we're going to change. The whole sound is being carried by operator 1, so let's try pushing that up and seeing what it sounds like. I'm going to set mine to 10.

What we've done by putting the decay on the carrier is create a sound that basically fades out. The tonal quality doesn't change as it decays and that gives it that real synthetic sound, but the real strength of FM lies in the many ways you can dynamically change the tone color, and I've probably hammered on the point enough for you to know that tone color is shaped by the modulators.

Since we're making bass here, let's take that high operator 2 that's set to 2.00 and make it decay real quick so we can get the high stuff out of the mix as soon as possible. I'm going to set mine to 18.

Going much higher than that starts to make a clicking sound, but I want to go for maximum punchiness and that seems to happen just short of clickiness. Operator 2 is creating a lot of color here, since it's frequency is so much different from the carrier's, and letting it ring out enough to be heard will create a big contrast that's good for punchy sounds.

Now let's turn to operator 3. It's set at 1.00, right in the middle of the two frequencies of the 0.50 of operator 1 and the 2.00 of operator 2. Let's just put the decay rate right in the middle as well and make it 14.

There, how does that sound? The squarish character of the operator setup gives it a real hollow sound, so I think I'll call it HollowBass and put it on the site for download. The file contains a voice edit buffer in sysex format, so you can use any sysex manager program to send it to the unit and it will be placed in the voice edit buffer, so you don't have to worry about it overwriting anything in your banks or anything. You should really back up your unit before sending any sysex to it anyway, just in case.

The patch is kind of rough around the edges, so I hope you'll continue editing and improving on it. Things you might want to try are taking down the release rate a little to get rid of the clicking on the release, or experimenting with the frequencies, waveforms and output levels. If you're really feeling adventurous you might even try adding operator 4 to the mix! That might be kind of dangerous, though. Be careful not to hurt anyone.

Until next time,
Matt Gregory

<— Back to the TX81Z homepage