FM Synth Playground
The FM Synth Playground is a monophonic frequency modulation (FM) synthesizer programmed in Max/MSP intended to be performed with a MIDI keyboard. The easy-to-use visual GUI and tactile controls makes this synth not just functional but an FM learning tool as the user can directly view how modifying the modulator and carrier parameters affect their respective waves and the harmonics of the final sound.
Carrier
The carrier synth supports a base of sine, saw, square, triangle, and noise waves, and has its own amplitude envelope. The coarse control, inspired by Ableton’s Operator synth, multiplies the frequency by whole number ratios.
The carrier features a plot of the current wave form, which shows the wave produced after the carrier is modulated.
Modulator
The modulator oscillator features the same five oscillator types, envelope controls, and course control as the carrier, with the addition of a depth control which controls the amount of frequency modulation, reflected visually in the plots.
Delay
A creative effect, the stereo delay allows the user to experiment with chorus, phaser, delay, and ping pong effects applied to their custom synth sound.
Multiple Voices
Inspired by Xfer Records’ Serum synthesizer, the carrier synth includes a multi-voice option. The carrier supports up to 9 voices at any time, which can be detuned from the original (modulated) frequency to create a wide sound.
Filter
The synth also features a low pass filter with its own envelope controls, organized in a manner consistent with the rest of the synth GUI. The visual plot illustrates how the filter shapes the sound over time.
Visualizer
The visualizer, positioned front-and-center, indicates the harmonics of the final synthesizer sound, providing visual along with the auditory feedback as the user tweaks different parameters.
4-Track Stereo Looper
The 4-Track Stereo Looper embeds the above FM Synth into a looping system designed for live performance. All tracks are synced to a global pulse and the performer can set the length (in beats) of each individual stereo track on the right. This design encourages play with distinct, overlapping musical meters.
Next Steps:
Implementing a more flexible filter, including different filter types.
Make the synth optionally polyphonic!
Incorporate new effects, including distortion and different reverb types.
Visit this GitHub link to download the full synth code and try it out yourself!