FM synthesis

Started thinking again about FM synthesis & the ill-posed question ‘how do you tune an FM synth?’…

I found this video really illuminating!

Have there been advancements in ‘tuning theories’ for FM since the 80s? What about control interfaces for FM tuning? What about tuning ‘hybrid’ FM synths? Are there any FM synths that don’t use adsr?

There’s an FM DSP module. Can the ‘dx7 paradigm’ be translated into aleph/BEES patches using ezra’s preset system? Where else can we go from there?


Not that it answers any of your questions, but just piping in to say that I love FM synthesis!

I have implemented FM synthesis in C and Python (idealized, not perfect DX7 clones).

FM is the sound of my youth thanks to the SoundBlaster. I have many fond memories of that little imperfect chip.

I’ve owned a DX7II-FD/grey matter E!, now own a DX21 I found for way-too-cheap in a pawn shop, a Volca DX, and a Reface DX.

FM fascinates me and is my favourite synthesis method. The breadth of timbre and its limitations are distinguishable and endearing to me.


My favourite environment for FM synthesis is Supercollider. It’s way more convenient for me to be able to tweak the FM sounds by code, and you can write formulas to calculate things with math etc. You don’t have to use ADSRs, you can use anything you want :slight_smile: You’re not limited to “algorithms”, you can simply arrange your oscillators in any configuration you want.

Another one of my favourite things is granular FM synthesis. It’s really a really interesting way to explore the FM parameter space.


I don’t think I’ve encountered this animal yet! Where should I look for examples?

Hm, I’m not sure where I saw it described. It may have been in Curtis Road’s Microsound, but possibly elsewhere. The concept is pretty similar to regular granular synthesis, except that instead of using samples as the source audio you use FM synthesis.

Yes, one of the proposed types is “Glisson Synthesis” in which the oscillator is FM’ed across the length of the grain envelope.

(not my video)


I’m actually less of a fan of the glisson synthesis sound. I guess it’s the “synchronous” granular synthesis kind. I really like the sound of “asynchronous” FM granular synthesis… clouds of FM grains with some well chosen parameter randomization can sound amazing.


Time to run my various hardware through Clouds, I guess. :slight_smile:

i have to get back to rawsc… its the only block-processing aleph module i’ve (half-)made, 8 simple oscillators with arbitrary AM and PM connections. i swear it basically works but just never was ready for public use. there’s just no time to finish anyhting, uggh… some day

echo @kisielk that i find it most amusing to just have an NxN matrix of oscs with arbitrary modulation paths, allowing any oscillator to modulate any other, with up/down slew on each “modulation mix point.” (if that makes sense.) indeed, supercollider is a great environment in which to implement this with minimal effort.

i also think it’s nice to have a little modulatable delay in a digital FM path, so that feedback can be made more interesting. though, it’s just never gonna be the same as analog FM feedback.

in practical terms, as far as “tuning” i’ll just say that implementing FM as phase modulation, rather than directly, makes it a little easier to stay “in tune.”

@sliderule - i think the “granular FM” referred to here isn’t ust feeding FM sounds into a time-domain granular sampler, but rather applying the “grain generation” concept to FM synthesis directly. that is, creating many overlapping sonic events, each of which is a little FM “note”, with differing and probably randomized parameters

historical note

i can confirm that yamaha did indeed send cease-and-desist letters to buchla and associates in 1970s. shortly after their patent on hardware FM, long before the 1980 patent on software held by chowning/stanford. (though AFAIK, rumours of a lawsuit were overblown.)


to this day, nothing sounds better to me than cross-patched 258 feedback (triangle-core “dirty sine”)


I was fascinated by a video of Aphex Twin’s mate who was programming a DX7 using an algorthmn that iteratively generated sysex and used an audio fingerprinting library to steer the sound towards a reference sample.

Another synth that I was intrigued by was the sonic charge synplant. It used a genetics/breeding analogy for generating new patches as variations on older ones. I think, under the covers, the synth engine was some kind of FM engine.

I like this sort of “fly by wire” approach to FM, where the sound design process is not dictated by the synthesis algorithmn.


Yet another instance where it’s obvious that AI should not have been used as the name for the whole field because most people infer that the “intelligence” bit means “human intelligence”. It’s using learning algorithms, which is less sexy but much more accurate. I’m saying that as someone who studied AI for quite some time in university and worked on related fields for a while, btw.

Anyway, FM is intimidating to most people because the relationship between changing parameters and resulting sound is not easy to grasp at all, especially compared to substractive. Having something in between the sound generation and the user to drive things in a more intuitive way is potentially a great idea (if it’s well implemented).


Computer science journalism is frequently awful to being with. Doesn’t get any better when it is also music journalism.

1 Like

This is a good patch that implements granular FM as a M4L synth:

inspired by:


Thank you! The video is really helpful. Can’t wait to try the M4L device!

1 Like

heh I’ve actually got a copy - been too busy futzing with that fm aleph module & yea I can confirm what people are saying about the ‘true FM’ (as opposed to PM) version being unruly. Seems like the self-modulation trick doesn’t really work well with ‘true FM’. Giving PM a whirl…

Seems like all the cool kids are on github these days…


I’ve never listened to that piece while watching a spectrogram before, really beautiful!


The trouble is that github is missing the interesting part.

Yeah, it seems like it’s just a circuit design for a MIDI interface for a Pi. I don’t see any software there.

getting some pretty legit ‘vintage FM’ sounds now! (well I like them anyway)

so this is using the aleph as arpeggiator & a mostly bugfixed version of the fmsynth module. First minute is cycling through some presets I’ve programmed - then I start messing around with FM parameters pretty randomly leveraging aleph’s preset system to switch control dials between ‘banks’ of parameters.

Recording stops eventually after way too much twiddling… This is kind of exactly why i started this module - love my little 4-op yamaha to bits but the programming is a royal pain & requires cracking out my laptop, setting up the software etc, even then iirc, many of the ‘params’ don’t update realtime… so I just end up using the stock patches like everyone else!

Oh man if only we had usb hub support for avr32… I would love to get the MPC & aleph grid ops playing together!