Exponential FM synthesis
Hello all!
A thought occurred to me that frequency modulation should control frequency like we control pitch, that is, exponentially with base 2, and not linearly. Linear control of frequency seem unnatural to me as frequency perception is not linear at all.
The usual equation for FM is
x(t) = Aₐ sin(2πfₐt + I sin(2πfₘt))
Where
- "ₐ" represents the subscript "carrier".
- "ₘ" represents the subscript "mod".
But I think it should be something like
x(t) = Aₐ sin(2π(fₐ*(2.0^(I sin(2πfₘt))))*t)
So there you go; I'll just leave that here.
It would be super nice to have some sort of synth implementing this FM equation; I bet it would sound much better than traditional FM.
I'm trying to modify the FM4 in reaktor to do just that. I'll probably upload my ensemble here when I am done.
Comments
-
Here is my modified version.
All I did was modify the FM Op Snc block in the 4 operators.
0 -
I don't want to brag, but it sounds dopee as fork.
0 -
The index of modulation is in octaves. It's just the semantics of this modified version.
0 -
I have seen a few blocks offering 2-3 types of FM,linear,log,ex. But when using Log you get crazy pitch drifting from FM Depth,Linear doesn't have that so you only get timbre changes which is a lot more musical.
0 -
Great to hear some enthusiasm from a new builder :)
There are various different types of modulation that are loosely named FM.
Exponential FM is one of those… like KoaN said, there are various Reaktor devices that implement variations of exponential FM. It's not really necessary to include it as a 'feature', because an exponential FM modulation can just be mixed with the Pitch input (you will see it more in hardware modular, because precise adding is more tricky in an analogue context).
The 'FM' in FM4 is a different type based on the Yamaha DX line of synths. It is often called Phase Modulation to differentiate it from classic analogue FM.
Yamaha style Phase Modulation is the equivalent of modulation of the carrier by the derivative of the modulator. One benefit is that any parasitic DC offset in the modulator has no effect on tuning. Another is that the the phase stays constant as frequency rises. With simple linear FM, raising the pitch reduces the modulation effect (e.g. raising the frequency by 80Hz at 80Hz is doubling the pitch, doing so at 10KHz is barely noticeable). With Phase modulation, a phase shift of 0.5 is always a phase shift of 0.5, so the FM effect is consistent across the full pitch range.
It's also a somewhat different sound. Definitely more controllable (fewer sidebands?), so building intentional patches with 6 operators is more of an achievable goal.
=========================================================================
FWIW, the 'FM Op Snc' object in FM4 is not a block, it is a macro.
It seems somewhat pedantic, but it's kind of important in Reaktor to use the right name for things to avoid confusion.
We have:
- modules (Primary and Core):
- These are the atomic operations/components that we can't click into to see their structure
- macros (Primary and Core)
- core cells
- like a core macro, but specifically a top level core macro that lives at the Primary level
- there used to be two types, but now there is only one type
- Primary Macros have a GUI presence, Core macros do not.
- instruments (Blocks are a special subset of instruments)
- a higher level construct than a Macro, no polyphonic connectability, Important in the GUI Instruments automatically cascade visually (selectable). Before Grouping was implemented, this was particularly important.
- In an ensemble, a Block is just an instrument built to the Blocks specification
- In a Rack there may be more restrictions, really not 100% sure about that :)
- Instruments can be internal to other instruments (it gets complicated so it's rare)
- ensembles
- Racks
1 - modules (Primary and Core):
-
Another issue is what to do with negative excursions of the modulation signal.
There are lots of different options, each is a compromise
0 -
Negative excursions? 2^x is never negative, at least for reals…
0 -
You are absolutely right, I misread your equation… you are using multiplication to apply the modulation rather than summing, so it makes complete sense. zero maps to 1, negatives to fractions etc.
Was playing with it a little. Sounds interesting.
One feature - relative to Yamaha style phase modulation - is that using the exponential introduces a bunch of harmonics to the modulator that will all modulate the carrier.
In one way this is great, because we get more complex sound with a single modulation operation.
However it is also a limitation. Those harmonics are baked in, relative to the modulator, so they limit the available timbres significantly, particularly in a multi-operator context.
…you get a lot of square wave type sounds.
With pure sine waves, we just get the fundamental, so using multiple operators, we get more control in terms of building the harmonics we want for the sound.
Here's the spectrum of the 2^sinwave
(edit: this changes depending on the scaling of the modulation signal - assuming that is applied prior to the exponential function)
It also introduces a pitch dependency between the modulator frequency and the output fundamental.
Here's a little comparison ens
1 -
What exactly do you mean by "negative excursions in the modulation signal"?
0 -
when the signal value goes below zero, that is a negative excursion
(seems that it more common terminology when talking about speaker cones, but does get used in DSP)
0 -
So the question is:
Is there a way to somehow counteract pitch issue relating to DC offset inherent to this approach?
…is it even possible? each of those harmonics generated by the exponential has a different amplitude, so has a different DC offset… there is probably some elegant solution
0 -
Testing the Sirius block which offers 5 types of FM,the only ones that don't have crazy pitch detuning when using FM depth are the usual Linear ones,LinTz and LinDx…and they both go positive and negative,as soon as you remove the negative part,like Exp and Lin "with a clipper",Lin Abs they all detune badly which is maybe ok for sound fxs but certainly not for something you want to play with the keyboard. So the negative part seems very important to maintain pitch stability?
1 -
Sirius VCO? Where can I get that?
0 -
https://www.native-instruments.com/en/reaktor-community/reaktor-user-library/entry/show/9451
1 -
I just can't get that Blocks thing to do anything. A/B? What is That? How do you just modulate a VCO with a VCA using that thing?
0
Categories
- All Categories
- 19 Welcome
- 1.4K Hangout
- 60 NI News
- 735 Tech Talks
- 3.9K Native Access
- 15.9K Komplete
- 1.9K Komplete General
- 4.1K Komplete Kontrol
- 5.5K Kontakt
- 1.5K Reaktor
- 364 Battery 4
- 817 Guitar Rig & FX
- 416 Massive X & Synths
- 1.2K Other Software & Hardware
- 5.5K Maschine
- 7K Traktor
- 7K Traktor Software & Hardware
- Check out everything you can do
- Create an account
- See member benefits
- Answer questions
- Ask the community
- See product news
- Connect with creators