yeah but a doubling isn’t enough. (it would be for AM.) each modulation point adds equally spaced sidebands at multiples of the modulation index (sorry, frequency), out to infinity i think. (negative-frequency sidebands are reflected though 0, which gives you the “chorusing” effects.) the amplitudes of the sidebands is a bessel function of the first kind, with mod index as argument.
sorry its just a google away, but this looks like a good walkthrough of the math using snd (and lisp!)
https://ccrma.stanford.edu/software/snd/snd/fm.html
its a good companion to the chowning paper. which i dunno has actually been linked yet in this thread but here it is:
(https://people.ece.cornell.edu/land/courses/ece4760/Math/GCC644/FM_synth/Chowning.pdf)
but! what gets really hard to handle is when the modulator is more complex than a sine wave. chowning doesn’t go there. i think you can just repeat the process for each component and sum the spectra? not sure right now.
(i feel like there’s some kind of version of godwin’s law for audio DSP, where bessel == hitler. like, as soon as we bring up bessel functions this thread is gettin locked)
just looking through that bill schottstaedt writeup again thought i’d excerpt some relevant bits (forgot that he is also very funny)
As the index sweeps upward, energy is swept gradually outward into higher order side bands; this is the originally exciting, now extremely annoying “FM sweep”. The important thing to get from these Bessel functions is that the higher the index, the more dispersed the spectral energy — normally a brighter sound.
There is a rule of thumb, Mr Carson’s rule, about the overall bandwidth of the resultant spectrum (it follows from our description of the Bessel functions): Roughly speaking, there are fm-index+1 significant sidebands on each side of the carrier, so our total bandwidth is more or less
2 * modulator-frequency * (fm-index + 1)
This is a good approximation — 99% of the signal power is within its limits. To turn that around, we can reduce the danger of aliasing by limiting the FM index to approximately (srate/2 - carrier_frequency) / modulator_frequency; use srate/4 to be safer. (Mr Carson’s opinion of FM: “this method of modulation inherently distorts without any compensating advantages whatsoever”).