We know using one oscillator to frequency modulate another is a lot of fun…but just what is the difference between the different types of FM? I finally got my hands on a module – the Endorphin.es Furthrrrr Generator complex oscillator – that is capable of being switched (with some behind-the-faceplate fiddling) between exponential, linear, and linear through zero FM, and created the movie below showing off all three:
(If you’re interested in learning more about the Furthrrrr Generator, click here for an overview of the entire module.)
The short answers to the differences between FM types are:
- exponential FM goes out of tune as soon as you start increasing the modulation depth (fortunately, once you stop changing the depth, it stays in tune)
- linear FM stays in tune for shallow modulation depths (tip: the higher the carrier is tuned, the deeper you can modulate before it starts detuning)
- through-zero FM (TZFM) stays in tune regardless of modulation depth (as long as you don’t bump up against the tuning limits of the carrier oscillator)
Here are the details why:
Exponential FM (starting at 02:06 in the video above) typically uses a 1 volt/octave input to modulate the frequency of a VCO. Say you’ve tuned the VCO to 440Hz, and send it a perfectly symmetrical* modulation waveform that goes + and – 1 volt. That means its pitch will go up to 880Hz and down to 220Hz: 1 octave up and down. The problem is, the average between those frequencies is 880 + 220 ÷ 2 = 550 Hz, not 440, so you will get a pitch shift. If you keep the modulation voltage level steady, the pitch will remain steady, and you can re-tune the VCO. But if you envelope the modulation depth (a cool effect), the pitch will bend during the envelope.
* What if the modulation waveform was not perfectly symmetrical? Say it was a pulse wave that was 90% wide, meaning it spent 90% of its time at +1v and 10% of its time at –1v. This means it will spend more time shifting the pitch of the VCO up rather than down, causing further pitch shifts and errors. This problem exists with all forms of frequency modulation, and is why the linear FM input on some oscillators is AC-coupled – to try to remove this offset.
Linear FM (starting at 10:03 in the video above) typically uses a separate input for a VCO where its frequency is offset by a certain number of Hertz (instead of octaves) per volt. Let’s say we turned down the attenuator often found on FM inputs to where its response was 100Hz/V. In our example with a +/–1v modulation signal, the VCO would be shifted up to 540Hz and down to 340Hz, still averaging 440Hz – so it should keep the same pitch (as long as the modulating waveform was perfectly symmetrical*, with no DC offset). No re-tuning! Even better, it stays in tune while you envelope the modulation depth, so you can create some really cool “plucked” sounds.
So what’s the downside? Linear FM is often implemented in a way that it does not go as deep as exponential FM. It could be, but then you start running into the Through Zero problem.
Let’s say we turned up the attenuator on our linear FM input to where its range was now 500Hz per volt. Send it a +/–1v modulation signal, and its pitch would be shifted up to 440 + 500 = 940 Hz, and down to 440 – 500 = …what? Math would tell you -60Hz, but most analog VCOs won’t go below (through) 0Hz, flat-lining at any attempts to drive them lower. So now our VCO is going between 940 and 0Hz, averaging 470Hz – meaning we have a pitch shift issue again. (There is a popular video out there demonstrating a VCO making horrible noises when asked to go negative; fortunately, that’s not how most of them actually sound.)
There are a few potential workarounds: Either tune the carrier oscillator to a higher initial pitch, or reduce the modulation depth so you don’t drive it below 0Hz.
Or…find an oscillator that supports TZFM (starting at 16:11 in the video above) and can indeed go through 0Hz and into the negative frequency range. This means turning around and running backwards when asked. Using our example above, that means turning around going back up to 60Hz, but backwards, yielding the same result as running at -60Hz. Average together 940 and -60Hz, and we’re back to 440Hz. Yay!
Running backwards is not the easiest thing for an analog VCO to do, although more and more modules are appearing that can. For example, the classic 3340 VCO chip – which several companies have recently cloned or re-issued, and which is at the core of numerous new VCOs and semi-modular synths announced in the past few months – is capable of doing both linear and exponential FM. It can even do through-zero FM with some additional components. Alas, very few manufacturers are adding those components to enable this feature (which I think is a mistake).
It’s easier to program a digital VCO to run backwards and therefore support through-zero FM. The linear FM mode in the Expert Sleepers Disting, for example, has supported this since day one. Some of you know I was one of the more vocal users lobbying for the Synthesis Technology E352 to support TZFM, and I’m thrilled to say it now does with a recent update.
But as always, there’s a potential catch. VCOs – digital ones in particular – often have frequency limits that they won’t go beyond. So there is a chance, for example, that with a high carrier pitch and a high modulation depth, a VCO might hit a frequency ceiling (rather than the 0Hz floor) and not modulate as high as it can low, again causing a pitch shift. So if you hear a pitch shift when modulating a VCO that supports TZFM, this is what’s going on. (That, or your modulation waveform is not perfectly symmetrical – see * above.)
My personal bottom lines are:
- If I’m creating percussion sounds, I like exponential FM as it includes a pitch shift as I modulate the carrier. This recreates an exaggerated version of how many acoustic percussion instruments work.
- If I’m creating tonal sounds I expect to play from a sequencer or keyboard, I prefer linear FM, so I don’t have to deal with the carrier oscillator detuning when I start to turn up the FM depth.
- If an oscillator supports linear FM, I strongly prefer it supports TZFM, so I can crank up or envelope the FM depth as much as I want without worrying about detuning. At the end of the day, Through Zero FM is linear FM “that just works.”
Thank you, an excellent,no nonsense in depth look at fm.It has cemented my knowledge, and i now want to experiment.
Now, this article will be the reason why I will keep my Piston Honda for more experimentation with TZFM. I was strongly considering trading it for something else :).
Since I do more tonal than percussion patching (I’m building a separate case with percussion modules), I love TZFM – it’s become a requirement for most of my VCOs. It means I can throw as much modulation at them as I like, and not worry about going out of tune. (Unless I ask a VCO to go higher in pitch than it can; then it detunes again.)
That makes sense. I am also trying only tonal patches, so, TZFM definitely sounds like a requirement. I am mulling over selling my E350 (plus something else) for an E352. I don’t particularly care for the harsher sounds of Piston Honda Mk2. So, might even push both of them into the market to get the E352. Let’s see! 🙂
Thks again!!
great article and very clear, hands-on explanation.
Finally, I understand the difference between them.
Thank you!!
Excellent explanation, Chris. Very instructional as usual.
I just got an Endorphin.es Further VCO, and the next stop is the TZFM Core for it.
Cheers!
Thanks for this article!
> the classic 3340 VCO chip .. can even do through-zero FM with some additional
> components.
Do you have a hint on where to find out how to make it do that? Electronotes?
The company that told me “yes, we can make the 3340 go through zero” came back to me over a year later and said “well…maybe not. We can get something with a similar effect, and we can make it happen in one direction, but we can’t get it to work completely.”
Hey! Thanks for very nice explanation! If I had a TZFM oscillator, running backwards means that it will play negative frequency as positive, but with inverted phase?
Exactly – you’ve got it. “Negative frequency” is the same pitch (absolute value of the frequency), but with phase inverted.
This might be a super dumb question, but how does that solve the pitch shifting issue. To use an example, we keep increasing the modulation depth on that 440hz until it’s oscillating from 0 to 880 hz, as described. At this point, the perceived pitch is 440; perfect. But then we go down another 100hz. Now, it’s at -100 and 980. I see how, mathematically, that would still come out to 440, but if the perceived pitch of -100hz is just 100 hz, and you have that mixing with the 980, wouldn’t the overall perceived pitch go up?
Interestingly, no – when the through-zero oscillator goes to a “negative pitch” it flips the phase of the waveform, and our will treat the mix of -100Hz + 980Hz as averaging out correctly. That’s why through zero is so important if you’re trying to keep tonal, on-pitch sounds with heavy modulation depths.
Thanks a lot for this detailed and comprehensible explanation! Went through many articles, videos and posts about through zero fm in order to understand it and now i finally feel like i do 🙂
Thanks for letting me know – I really appreciate it. And I’m glad this explanation was useful for you.
Hello Chris! Been taking your Modular Synthesis classes on Linked In Learning. Finally completed my life-long goal of understanding modular! I am now going through some FM classes and noticed that the Mother-32 has a Linear FM input, while the Erica Synths Black VCO has an exponential FM input. I also accidentally noticed that the Disting (MK4 or EX) has an algorithm (At) to convert between linear and Exponential. But I’m struggling to wrap my head around how to do that.
If the input on my synth is expecting Linear FM, how can I make it work as exponential? Does that mean that I first should turn my modulating signal even higher, so that the output becomes ( 2 ^ signal ) and then when it’s fed into linear it will essentially become exponential?
Let’s pick apart the problem, so we can get a better idea how to tackle it.
First note: I’m going to pick some scalings – such as 1 volt equals one octave or 2 kHz – just to make the math easier to follow; in reality, virtually every VCO will have a modulation depth control that can re-scale that response (such as 1v = 3 semitones, or 100 Hz).
A VCO that accepts exponential FM says if the incoming modulation waveform goes up 1v, I’ll raise my pitch one octave – say, from 3 kHz to 6 kHz. And if it goes down 1v, I’ll lower my pitch one octave, from 3 kHz to 1.5 kHz.
A VCO that accepts linear FM instead says if the incoming waveform goes up 1v, I’ll raise my pitch 2 kHz – from 3 kHz to 5 kHz. And if it does down 1v, I’ll lower it from 3 kHz to 1 kHz.
If you want a VCO that accepts linear FM to behave like a VCO that accepts exponential FM, you will really need to exaggerate the upward swings of the incoming waveform, so that the positive one are expanded much taller, and the negative ones are either expanded less or compressed much smaller, so 1v = +3 kHz instead of +2 kHz, and -1v = -1.5 kHz instead of -2 kHz.
Sending your modulating waveform through an exponential to linear converter should add that exaggeration. For example, if it gets +1 v in, it will say (if it is set to the same scaling as the example above) “normally this +1 change might equal a 3 kHz change in Exponential World, but in Linear World it would only give a 2 kHz increase – so I’m going to need to boost it.” Then patch that into the linear FM input.
In reality, it’s nowhere near that simple. For example, a converter might expect pitch voltages to be only positive, but a modulating waveform is going to swing both positive and negative. So it’s going to take a lot of playing around with scalings and offsets to get a result kinda like what you’re expecting. I have not used that algorithm in the Disting, but in general running the modulating waveform through a utility mixer that can scale and offset the voltage before the conversion might make it easier to dial in.
Another warning is I’ve noticed the FM on the Mother becomes unpredictable when it goes beyond +/-5v.
However, keep in mind that the Mother already has an exponential FM input – it’s normal 1v/octave pitch input! So instead, I would run your modulating signal through a utility mixer to scale it, and then use a precision adder to combine that modulation signal and your normal pitch CV, which is then patched to the Mother’s normal Pitch CV input.
Hey chris,
I’ve gone through some of your videos above and had a question for you –
Fist off is there a case where you can have exponential thru zero;
And obvously would it be more easier to dial in pitch..
Also can you mix a non thru zero oscillator with a thru zero one..
Thanks again for you videos..
Hi Chris,
Really enjoying your video series. I have two noob questions for you
– is there exponential thru-zero
and
– can you use a thru-zero with a non thri-zero oscilator…
thanks again for your help and clarification…
Technically, there is no such thing as exponential through zero, as you never reach zero. With an exponential 1v/octave VCO, for example, going down one volt goes down one octave in pitch (half the pitch you started at), and you keep going half, half, half, half…splitting hairs but never reaching zero. However, I heard one VCO was going to do some sort of trick to allow through-zero exponential – we’ll have to see how they’re going to implement it!
Hi Chris,
Just wanted to thank you. When looking into my FM implementation I stumbled upon your blog post, which turned out to be a huge inspiration. In fact, I recently wrote a paper on practical Linear and Exponential FM, not for analog, but for digital music synthesis. I made sure to reference you. Hope you like it!
https://dafx2020.mdw.ac.at/proceedings/papers/DAFx2020_paper_61.pdf
Best wishes, and keep up the great work!
Thank you!!! And I’m glad this was useful.