Pure Data

Frequency Modulation

While Amplitude Modulation Synthesis changes the gain or volume of an audio signal, Frequency Modulation Synthesis, or FM Synthesis, is used to make periodic changes to the frequency of an oscillator. In it's simplest form, Frequency Modulation uses two oscillators. The first is the carrier oscillator, which is the one whose frequency will be changed over time. The second is the modulator oscillator, which will change the frequency of the carrier.

For the carrier, we only set the base carrier frequency using a Number box and a MIDI to Frequency [mtof~] object. Because all the adjustments afterwards will be done by audio signals, it's best to use the audio version of [mtof], hence the tilde is added to its name.

The modulator is where we do most of the adjustments. The first thing we want to do is set the frequency of the modulator, i.e. how fast it will change the frequency of the carrier. We do this with a Number box. The second thing we want to set is how much change we will make in the base frequency of the carrier. So the output of the modulator [osc~] is multiplied by another Number box using an Audio Multiplier [*~] object to get the modulation amount.

When this stream of numbers, which is changing with the speed the modulator and in the range set by the modulation amount, is added to the carrier frequency, then the carrier frequency will change as well. This stream of numbers is sent to the second [osc~], where it produces a complex sound which you can see in the graph.


When the amount of modulation is very small (only a few Hz), then a vibrato, or "vibration" of the carrier frequency will be heard. When the amount of modulation is greater, then a greater "glissando", or sweeping of the carrier frequency will be heard. The frequency of the modulator will determine how quickly these changes heard in the frequency of the carrier will happen.

Even more complex sounds can be created by using further modulators to make changes in the frequency of the main modulator oscillator.