Getting Started with FM

Getting Started with FM

Louis Gorenfeld (e-mail: louis / gorenfeld.net)

The Purpose of This Document

Most sites and papers on FM detail the mathematics and implementation behind this amazing synthesis method. However, I had trouble finding a good hands-on introduction. After doing OPL2 music for about five years, I decided to write this paper in the hopes that it would make FM programming less intimidating.

What is It?

FM is a very versitile and simple synthesis technique. Invented by John Chowning and patented by some company, FM works by rapidly changing the pitch of one oscillator by the output of another. Yamaha-style FM is actually not frequency modulation but phase modulation: This produces similar sounds by modifying the read position in one oscillator by the output of another.

Time for some terminology: the modulating wave is called.. oddly enough.. the modulator. The wave that's being modulated is called the carrier. The oscillators are usually referred to as operators.

So why should anyone bother with this? While we can get deep sweeping sounds with analog (subtractive) synths or almost perfectly realistic tones with both sampling techniques and physical modelling, the charm of FM is that it creates sharp semi-realistic instrument sounds and unique synth tones. It produces a huge variety of tones: crisp slap basses, rich bell tones, warm pads, keyboard tones that sound great when played as a complex chord, thick drums, rubbery leads, and more.

Programs you can get:

  • FM Dreams (windows): Straightforward Visual Basic synth program, non-realtime
  • FM7 and FM8: Complex but very nice sounding pro-quality FM synth. Comes with examples that really show off the power of this synthesis technique.
  • RadTracker: Adlib tracker, will run in DOSBox too. Easy to use, shows clearly labeled parameters up at the top of the screen.
  • MDA DX10(JX10?): Freebie VST plugin, very primitive sounding, tries to be friendly but really is pretty restrictive.
  • Hexter (Linux, Windows): Free VST/DSSI plugin that models a DX7
  • FMHeaven (OS X, Windows): Like FM7

    Ok, Let's Dig In

    Let's start with only two operators. This makes it actually pretty easy to learn how to use FM.

    Point #1: Multiple waveforms are easier to understand than multiple algorithms: Everyone knows multiple waveforms from their other synths. But only these crazy digital synths have all those different algorithms. Also, it is very hard to understand what is happening when any parameter is changed when you have six or more operators all linked together.

    But, for now we won't even use more than a sine wave. So, any cheesy FM synth will do.

    Modulation Factors

    The modulation setting, at least on the OPL2, is a multiplier. That is, it multiplies whatever the note's frequency is by that number. So, if you play a 100hz tone, a multiplier of 2 will be 200hz and 3 would be 300hz. Tricks can be done with this-- If we add the operators instead of FMing them, we can create chords using just one voice. First, notice the relationship between 200hz and 300hz. Since 300hz is halfway between 200hz and 400hz, it forms a fifth interval. This is very useful in forming chords with few channels left. If two of these are overlapped, chords such as full 7ths may be produced using only two channels! For example, a C fifth and an E fifth overlapped produce a C7 chord. As the modulation factors become higher, the possible intervals become smaller.

    Our First Voice: A Bass

    FM does nice electric bass sounds surprisingly easily. Even if you can't do anything else with FM, you should be able to do cool basses. Here we go!

    Set both oscillators' attacks to be instantaneous and the decays kind of medium-slow, as you'd expect a bass to decay. Ok. Now, set the carrier to full volume, and start with the modulator at zero. When you play this, you should hear a nice sine-bass. This might actually be a little hard to hear if you don't have a nice woofer or subwoofer. If you don't hear anything, it's probably because the wrong oscillator is set to zero volume.

    Now, turn up the modulator and keep playing notes. You'll hear that the sound gains sort of a twang. In effect, turning up the modulator turns up the brightness of the tone. Turn it too high and you'll start hearing those "blargh!" sounds that you got from every bewildered videogame musician writing for an FM-based system.

    Ok, so let's leave the volume of the modulator somewhere half-way so it sounds pleasant and let's try something else.

    Instead of having the modulation factor for the modulator at 1, set it to 2. It should now sound a little closer to a square than it did when it was at 1. Below are the waveshapes and spectrums for 1:1 and 1:2 FM tones with a moderately loud modulator: Now, we'll try something new:

    Making Unpleasant Clanging Sounds

    So, now that we've made a tone that's usable, let's see if we can scare the cat. Keep turning the modulator's modulation factor up and the sound will produce a higher and higher pitched clang. In addition, the sound should get a little thinner. Start turning the modulator's volume up or down and the loudness (but not the pitch) of the clanging component will change. If we leave the decays fairly long and turn the modulator volume down to a responsible level, this will create bell-like tones. If you play another bell tone on top of it but slightly detuned, it will sound a lot better. Using a fairly high modulation factor on the modulator and with a short decay on both (with a shorter decay on the modulator than on the carrier) creates a nice marimba sound.

    Point #2: Modulator volume and modulation factor affect the brightness of the sound even though they don't necessarily correspond to that. The modulation factor of the modulator in a two-operator pair is partly responsible for determining how many high frequencies are introduced into the sound, and the volume of the modulator describes generally how much of that you want. Scientists: If you want to see what happens to the frequencies in FM, look up bessel curves. This function describes the phenomenom. It'll show the amplitude of the sidebands (added frequencies) at various modulation factors.

    FM Trumpet and Clarinet

    Now that we have a general feel for what a few of the parameters have done, we can recreate some classic FM tones. Again, leave the volume of the modulator around halfway and set both modulation factors to 1. If we play the sound low, it sounds like our original bass. Now, let's decrease the amount of attack on both oscillators to mimic the attack on a real trumpet. If we then play the resulting sound higher up, it does indeed resemble a trumpet. It's not a very good trumpet sound, but it is reminiscent of that instrument. Try playing with other ratios, too. 2/3 is considered to be a clarinet sound. I think anyone trying the classic FM examples hoping to get a tone usable in their music will be disappointed pretty quickly-- these are more of a sort of proof of FM versatility than they are pleasant instrument sounds.

    FM Feedback

    Feedback is where the output of an oscillator is fed back and used as a modulator wave. I believe in the Yamaha FM synths such as the OPL2 that feedback takes the last sample output by the pair and adds it into the carrier's modulation. This is useful because it simulates having more operators than the synth actually has. In fact, a better FM trumpet than the classic example can be made using just a self-oscillating FM operator. Feedback tends to make the sounds sharper (closer to a traditional saw or square) and, if turned high enough, noise.

    Point #3: Self-modulating operators, or feedback, can produce both sharp tones and noise.

    Modelling Drums with FM

    Snare

    Initially, most people try to do a snare using nothing but noise. This doesn't work so well because it lacks the body of the sound (the tone). In fact, it sounds like someone spitting. So, to do a convincing snare, you need three things: noise, tone, and a strike sound. One advantage of FM synthesis is that you can give the snare a little more pop than with conventional additive synthesis. First, set the algorithm up so it looks like this:

    1-2
      +->out
    3-4

    As you can see, we have two modulating pairs (1&2, 3&4). The output of these are then added (mixed) to create the final sound. If you are using something as cheesy as an OPL2 that only does pairs, you can trigger two channels: one tone, one noise. Let's call operators 1&2 the noise pair and 3&4 the tone pair.

    For the noise pair, we'll set the feedback to maximum and both operators to full volume. This should create something close to pure noise. To make the noise more pure and smooth, you can increase the modulation factors. To make the snare rattle more, you can turn the modulator down slightly (leaving the modulation factors at 1:1). Make sure that the modulator does not decay.

    The tone is the fun part. We'll want a sinewave with a pop at the beginning. To do this, set the modulator volume high and make it decay very quickly (within a couple dozen milliseconds). The carrier should decay around the same rate as the carrier of the noise.

    Now, play it back so that the tone of the snare is mid-range, around 300hz. You may have to turn the noise component down a little so that it blends more smoothly, but if done right it makes a convincing synth snare.

    Hihat

    Most other drums can actually be done with just a pair. Let's try a hihat. First, set the modulator's modulation factor high and crank the volume to full. Set the decays to what you would expect a hihat to decay at. An open hihat can be done with a longer decay. Now, put the feedback level to full. Slowly decrease the volume of the modulator until you hear a nice clanging sound. One good thing about FM is that since the noise is generated off of a sine, it is easy to do cyclic noise effects like this.

    Bass Drum

    In an ordinary additive bass drum, you would have two components. One would be a sine wave that slides down very quickly to provide the deep thump of the drum. The other is, like the snare, a pop that calls the listener's attention to the start of the sound. Again, what's great about FM form drums is the deep pop it can create. So, for the slide, you want to start at around 200hz and slide down to around 60. It's nice to have a bass drum that slides down to a still-audible level and fades there. Experiment with the pitch of the bass drum, see what you like. Now, to add the pop, we'll add the modulating oscillator in at about half volume. This pop should decay even faster than the snare's. We don't really want the listener to notice the pop, but it should be long enough to add that extra punch. Playing with the modulation factor of the modulator wave may yield better results.

    Other waveforms

    Sometimes, pure sine waves just don't give you that tone you're after. But in FM, the other waveforms don't tend to have a full range of frequencies in them (like in a subtractive synth). For instance, a synth might have a sine and then a bunch of sine-derived waveforms. A synth that I'm writing features a squarewave, but it's a dull squarewave because modulating by a full one creates nasty high tones. Introducing non-sine-related waveforms into a sound generally makes it into a synthier tone. For instance, if I make my modulator a saw, the sound takes on a saw-like tone (in a less predictable way than a subtractive synth). Some FM synths, such as the DX7, only have sine waves, but also include six operators. These operators can be added together to create a new waveform before being used as a modulator or carrier for FM.

    Point #4: Subtle and complex waveforms have a not-so-subtle effect on the resulting sound in FM.

    The Importance of Chorus

    So. by now, you're probably saying, "Alright, FM does a bunch of different tones, but half of them are so thin!". Well, nobody got anywhere with a synth without a little bit of detuning! So, for those high up FM tones, double up the output and detune it a little. It doesn't even have to be the same tone-- a softer version of the same thing (or even using fewer oscillators) can do the trick too. This helps make all sorts of convincing ensemble tones. For example, a decent brass ensemble sound can be done with a few buzzy FM tones with trumpet-like attacks now.

    On some synthesizers, the modulator can be detuned from the carrier. This creates a rougher tone and is useful to add grit to otherwise crisp timbres, such as for wind instruments.

    Point #5: Don't forget about layering and detuning as with other synths

    3+ Operator Configurations

    Cascading

    1-2-3->out

    Cascading operators can be used to produce a much more complex timbre than is possible with any 2-operator configuration. I always think of this configuration for string-related tones. For example, the first modulator can be used as a pluck sound which modifies the tone of the last pair. Rich timbres such as slap basses may be created if the first modulator is high enough and does not die off quickly. Pitched noise effects or fuzz effects may also be created if the first operator set is used to create feedback noise.

    Double Modulator

    1
    +-3->out
    2

    On an OPL2/3 or a Yamaha TX81z, we have the luxury of multiple waveform types. However, on many others such as the FB-01 or the famed DX7, there is only a sine-wave. This is not necessarily a handicap though because multiple waves can be added before being used as a modulator! The effect is that of an "additional spectrum superimposed on the original" (Moore, Elements of Computer Music, p.330).

    Remember that a low number of harmonics are necessary for an additional FM waveform: Various classic waveforms can be made with as few as three oscillators. One advantage of doing it with multiple oscillators instead of with a flat waveshape is that each oscillator can be enveloped independently. One possibility is that higher harmonics could die off more quickly.

    The OPL Waveform Types

    The OPL waveforms are not pure classic waveforms such as a square or saw. They are derived from sine-waves. For example, waveforms 1-3 are made by reading the sine table in different orders. Waveform 1 is just half of the sine cycle with the second half left blank. Waveform 2 plays the first sine half twice in a row. Finally, waveform 3 is a quarter of a sine cycle followed by a quarter cycle left blank. The abrupt chopping of the cycle in waveform 3 makes it the sharpest of the four OPL2 waveforms.

    FM Formants

    A formant group is a region in the frequency spectrum that emphasizes a specific tone and its surrounding frequencies. This is typically seen as a hump-like shape on the frequency graph which centers on a particular frequency. In FM, a similar shape may be created by placing the carrier's pitch above the modulator. As the carrier's modulation factor is increased, the center of the formant shifts. For example, let's say we start at a 2:1 ratio giving the following frequencies:

    Harmonic1234567etc
    Frequency (Hz)2625237851047130815701832etc

    At 2:1, the top 3 frequencies are 262, 523 and 785. At 3:1, the top frequencies are 785, 1047 and 1308. As I shift up to 4:1, the top frequencies are 1308, 1570 and 1832.

    So, what are these useful for? It turns out that if you were to look at the spectrums for instruments or speech, you would notice that they can be broken down into formant groups. They can then be synthesized by adding together multiple formant groups!


    A similar example shown in Snd

    Aliasing

    As a non-linear synthesis technique, frequency modulation is not band-limited. What this means is that it can produce waves which contain frequencies too high for a given sampling rate. When a signal contains a frequency that is this high, it produces unexpected tones. This phenomena is called aliasing. Say we take a sine wave at a frequency close to the maximum allowed. As we increase the pitch, the frequencies heard actually drop in pitch as they wrap over the maximum frequency! An alternate name for this behavior is foldover.

    What this all means is that a sound which is extremely sharp may not sound the same in different sampling rates. For example, great cyclic noise effects such as the hihat below may be created with a high modulator. However, if this sound is played back with a different sampling rate, it will likely sound different.