8-operator FM · wavetable · VST3 · CLAP · AU

A map for the maze of harmonics.

FM was never the hard part. The interface was. Here you draw the routing and the envelopes, and you can try it right on this page.

Patch eight operators and three filter stages together by drawing arrows. FM, wavetables, your own DX7 banks: all welcome. The UI speaks ten languages.

01 / 07 FM base

Eight operators, five of them on hand-drawn envelopes

Every clip is one of the author's own presets, played exactly as saved. Only the loudness is matched.

PaymentPowered by Stripe
Latest version v1.1.6Planned price increases →

One-time purchase · 3 devices · offline activation


Play it here

The real thing, in your browser

The synth below runs the same C++ DSP that ships in the VST3, compiled to WebAssembly and playing live. It is not a recording or a re-implementation.

Demo

loading…

loading…


First look

No narration
Short video

Sound Design with IMFMSynth: Bass Edition

Bass sound design, recorded straight from the plugin's screen and told entirely through on-screen text.


Go deeper

Walkthroughs by the author

If the demo left you with questions, the developer walks through everything on video and in writing. Both come straight from the person who built it, not from an agency.

Video

I Made my Dream FM Synth! | IMFMSynth Developer Walkthrough & Demo

A guided tour through the operators, the routing, the filters, the effects and the output stage, driving the real plugin.

Article

Japanese

Introducing IMFMSynth, a new synthesizer plugin

The written introduction: why it was built and what each part does, with screenshots. Easier to skim than the video.

It's in Japanese; note's built-in translation shows it in English.


Inside

What you actually get

Eight freely wired operators, or start from 32 algorithms

Any operator can modulate any other. Each connection has its own depth and phase, and an operator can feed back into itself.

Wavetable operators (Serum and Vital WAV)

An operator can play a wavetable instead of a sine. The scan position can be modulated, and Serum and Vital WAV tables load directly.

Hard sync and ring modulation per operator

Any operator can hard-sync to another operator, or to a virtual master running at 0.25 to 16 times the note frequency, and that ratio can be modulated. Ring modulation multiplies an operator by another operator's output, with the amount set from 0 to 100%.

Hand-drawn envelopes with per-segment curves

Beyond the ADSR knobs, you can draw the envelope itself: as many points as you like, a curve per segment, and your own sustain and loop points.

Four modulation slots (six LFO shapes, tempo sync)

Six LFO shapes including sample-and-hold, with tempo sync, note divisions, fade-in and note-on phase reset. An ADSR can drive a slot too.

Three filter stages with key tracking and drive

Each stage has its own type, cutoff, resonance and slope, plus key tracking, drive and character.

Routing you draw with arrows

Operators, filters and the output share one screen, and you connect them by drawing an arrow from an output port to an input port. FM, sends into the filters, and filter outputs fed back into an operator's phase are all wired in the same place.

Effect rack: drive, chorus, delay, reverb, 8bit

Drive, chorus, delay, reverb and 8bit. Drag the tabs to reorder them. Everything runs at the oversampled rate, before the output protection stage.

DX7 .syx bank import

Load a .syx and all 32 voices come in, with ratios, fixed frequencies, key scaling, rate scaling, LFO and sensitivities, as ordinary patches you can edit.

About the presets

IMFMSynth ships with 30 presets, all made by the author.

Start from Init. You can save and export your own patches, and import DX7 banks (.syx).

Ten languages

The plugin UI is available in Japanese, Chinese (Simplified and Traditional), Korean, English, German, French, Spanish, Russian and Italian. The demo above is already running in your language.

  • 日本語
  • 简体中文
  • 繁體中文
  • 한국어
  • English
  • Deutsch
  • Français
  • Español
  • Русский
  • Italiano

Descriptive labels such as parameter, waveform and noise names are translated. Standard technical notation like LPF or dB/oct stays as it is. Switch languages any time with the wheel in the UI.

Also in the box

  • Fixed-frequency oscillators
  • Detune in cents
  • Keyboard level scaling
  • Rate scaling
  • Per-operator velocity sensitivity
  • Per-operator feedback amount
  • Pitch envelope
  • Note-on phase reset
  • Per-connection phase offset
  • Waveform invert
  • 2× oversampling
  • Output protection with soft clipping
  • Per-voice pan and pan law
  • Peaking EQ per filter stage
  • 8bit (bit depth and sample rate reduction)
  • Master ADSR bypass

Formats

Where it runs

Windows (VST3 / CLAP)

VST3, CLAP · Windows 10 or later, x64 / ARM64

macOS (VST3 / AU / CLAP)

VST3, AU, CLAP · macOS 10.15 or later, Intel and Apple silicon

The Windows installer is currently unsigned, so SmartScreen may warn you the first time you run it. Choose More info, then Run anyway.


License

Launch price
$49$19one-time

$19 launch price, and it stays yours.

  • Pay once. No subscription, no renewals, and the license signature never expires.
  • Three devices per license, managed from your account. Deregister one to move it to another machine.
  • Your license is verified offline. After the first activation, the plugin never goes online again.
PaymentPowered by Stripe
Latest version v1.1.6Planned price increases →

This is the launch price. It becomes $29 once buyers reach 100. Feedback and bug reports are very welcome at support@imfm-synth.com / satodeyannsu@gmail.com. Abusive mail goes to spam unread, so feel free to be blunt.


Carbon removal

Sales have grown, thanks to you, so 0.5% of revenue now goes to carbon removal through Stripe Climate, funding technologies that pull CO2 out of the atmosphere. Part of every IMFMSynth purchase supports that work.


Thanks for spreading the word

Posting with #IMFMSynth really helps: a patch you made, a screenshot, anything.

Found a problem? Describe it in detail and I'll fix it.