::|CONTENTS
- Which Formats
- The Building Blocks
- Modulation
- Instrument Design
This article aims to get you up to speed on how FM (Frequency Modulation) synthesis works and how to approach sound design with FM synthesis.
If you prefer video content, check out
FM Synthesis Crash Course (for Chiptune), which should cover most if not all of the same points in this article.
Which Formats
These formats are based on some FM synth sound chip:
-
opl2 (YM3812)
-
opl3 (YMF262)
-
pc-x801 (YM2608/OPNA, or YM2203/OPN)
-
sgen (YM2612/OPN2)
-
ym2151 (YM2151/OPM)
Some formats may optionally allow for FM synthesis as part of the format, like:
- NSF expansion based formats by using VRC7 (YM2413/OPLL) or FDS, e.g.
nsfplus,
famitracker,
0cc,
famiplus
- multi-system formats by using an FM sound chip or system, e.g.
deflemask,
furnace,
vgm
-
mptm by using OPL instruments (note that while .s3m in the DOS module formats does support OPL instruments, they are not allowed as part of the format rules)
- other miscellaneous formats like
jummbox,
klystrack,
snibbetracker,
sunvox
The Building Blocks
Operators
Operators are the building blocks of an FM channel or instrument. They output a waveform at a certain input frequency and level. They're the oscillators of the synth if you're familiar with that terminology. Most of the time, the waveform will be a sine wave (e.g. on the Sega Genesis/Mega Drive's YM2612, or the YM2151), although in some cases like the OPL chips, you can use other types of waveforms for the operator.
ADSR Envelopes
The term "envelope" refers to how the volume of a note changes over time as the note key is pressed on and off.
ADSR stands for
Attack -
Decay -
Sustain -
Release and refer to the different parameters or parts of the envelope. There is also a
TL or
Total Level that scales the total volume of the envelope.
How the envelope works:
1. When the key is pressed, the envelope starts increasing at the
Attack rate up to max level.
2. Once the envelope hits the max level, the envelope starts decreasing at the
Decay rate down to the
Sustain level.
3. If sustain is enabled, the envelope stays at the sustain level until the key is released. If sustain is disabled, the envelope skips to the next step.
4. Once the key is released (or if sustain is disabled), the envelope starts decreasing at the
Release rate until it hits 0 level.
Each operator has its own set of ADSR parameters, though key on/off events for a note apply across all operators.
Note that some chips/synths (e.g. the OPN chips like the YM2612, but not the OPL chips like in the AdLib cards) may have a 2nd decay parameter (
D2) that allows the envelope to decay while in the sustain stage.
The envelope allows for some rudimentary modeling of instruments. For example, a piano instrument would have relatively fast attack and decay and lower sustain and release. A flute or other woodwind instrument would have a more moderate attack and decay, a medium sustain level, and a quick release. A pad/chord instrument would probably have a long attack and delay to let the sound slowly fade in and out.
Some chips/synths may also have an
RS or
Rate Scale parameter which controls how much higher notes increase the attack, decay, and release rates on the envelope. This can be used for things like modeling faster attack/decay on strings played at higher notes, but it can also essentially ignored and left alone.
Multiple Operators and Multipliers
You might have noticed that each instrument/channel has multiple operators. These operators are chained together in certain ways to make those neat FM sounds. In most cases, each operator works in sync with all the other operators in the instrument/channel, meaning each operator uses the same base frequency and key on/off triggers. Some chips/synths (e.g. YM2612, YM2608) allow for independent control of each operator on one of the channels so you can set different frequencies and trigger key on/off on each operator independently.
Operators have an
ML or
Multiplier parameter. This parameter will run the operator at a multiple of the base frequency for the channel, such as 0.5x or 2x. What's important is the ratio of multiplier values between the different operators on a channel, so for example an operator with 1x multiplier chained to another operator with 2x multiplier will produce the same timbre as an operator with 2x multiplier chained to another operator with 4x multiplier.
For the Yamaha FM chips, each ML value results in the same multiplier (i.e. ML=1 means 1x frequency, ML=2 means 2x frequency, etc.), except for ML=0 which means 0.5x frequency.
Some chips/synths will also have
DT or
Detune parameter(s) which will adjust the multiplier on the operator by a small amount. Again, what matters is the detune ratios/combinations across the operators. These can be used to create a chorus effect on your instrument if you set different detune values across multiple operators.
Modulation
This is the fun part that goes over how frequency modulation actually works!
First off, a disclaimer: the Yamaha chips mentioned above and most other chips technically use
phase modulation and not frequency modulation. They essentially achieve the same effect, but in different ways. This section will explain how phase modulation works since that's what's actually implemented in most chips/synths here but will continue to refer to things as FM.
Also, some more terms: for an operator, the
phase describes how far along the waveform the operator is, and the
frequency describes how fast the operator advances the phase forward through the waveform. An operator that outputs directly out to sound is called a
carrier, and an operator that is used as an input into another operator for modulation it is called a
modulator.
I won't go into the exact math here (the phase modulation article linked above does a good job of explaining and visualizing that), but essentially how phase modulation works is it takes the carrier wave and shifts its phase forwards or backwards based on the position of the modulator. Note that this means if the modulator level is 0, then it does not affect the carrier wave, and the higher the modulator level goes, the more it distorts the carrier wave since it adjusts the phase much more.
Now let's add the ADSR envelopes into the picture. For the carrier, the envelope controls the resulting volume of the note as time goes on from when the key is pressed and when it is released. For the modulator, the envelope controls the level of the modulating wave, which allows you to control how much modulation gets applied to the carrier wave as time goes on from key press to release.
Algorithms
The "algorithms" in FM synthesis refer to how each of the operators are arranged in relation to which operators are carrier(s) and which operators are the modulator(s) for other operators. For anything past 2OP FM (2 operators), there will be multiple possible arrangements of operators, e.g. multiple carriers, operators modulating each other in a chain or series, multiple operators modulating another operator in parallel, and other arrangements in between these possibilities. Refer to a manual or diagram for the relevant chip to see what arrangements are available.
Some arrangements will also allow for feedback, where an operator's output "feeds back" into itself to modulate its own output. The same modulation principles above apply, only with the same operator. Note that this means the amount of modulation that the operator applies to itself through feedback usually ramps up very quickly as the operator gets louder.
Instrument Design
To understand how to design the sound of an instrument using the FM parameters, I encourage you to play around with an FM instrument editor to really understand how each operator parameter works. The crash course video at the top of this guide may also be useful in demonstrating how each of the parameters works
Here are some general tips to guide you:
- Usually you want to start with turning up the carrier level and turning down the levels for all the modulators, and then set the multipliers and envelope parameters for the carrier operator and work your way back to the modulator operators.
- Generally, you will want less modulation for purer tones, so either less total level or fast decay/lower sustain on your modulators. Similarly, grittier or harsher tones should have more modulation.
- If you're familiar with
overtones, you can use a spectrogram of a waveform as a reference for which overtones are most prominent and try to set the modulator multipliers and levels based on that.
- If you want a chorusy effect, try setting the detune parameters so that each operator has a different detune value. The larger the difference in detune, the faster/wider the effect goes.
You can also try taking some preset FM instruments and playing around with them. For example, you can try increasing or decreasing certain parameters to see how it affects the sound of the instrument. In some programs you can toggle the output of certain operators, so you can also try turning off the modulators and then turning them back on one by one to see how each modulator in the chain affects the carrier wave.