On VCO-1, the amount of FM can be controlled by the "FM CV" knob, which ranges from 0%-100%. I'd like to know the frequency deviation that VCV uses at 100% modulation.

enter image description here

I did a few tests to try to determine this, but the results were confusing.

I know that the amplitude of nth side frequency created by FM is given by the nth order Bessel function of the first kind, with its argument being the modulation index = peak frequency deviation / modulator frequency.

Using this formula I could work out the peak frequency deviation given the frequency of the modulator (which I set myself), and the modulation index. I fixed the modulation index in the following way:

Using a spectrum visualizer, I adjusted the FM CV knob until the frequency of the carrier dissapeared from the carrier first disappeared from the spectrum. At this point, I'd know that the modulation index is equal to the first zero of the 0th order Bessel function of the first kind, which is about 2.4048. I would also note down the value of the FM CV knob.

Then, I could work out the peak frequency deviation by using: peak frequency deviation = modulation index * modulator frequency. Now, with this value of the peak frequency deviation, and the previously noted down value of the FM CV knob, I could find the 100% value of peak frequency deviation, right? Well, wrong, apparently.

At a modulator frequency of 172.72Hz, the carrier frequency disappeared at 30.96% FM CV. Calculating for 100% peak frequency deviation:
100% PFD = (2.4048 * 172.79) / 0.3096 = 1342.14
At modulator frequency of 572.39, the carrier disappeared at 52.69% FM CV, so:
100% PFD = (2.4048 * 572.39) / 0.5269 = 2612.42
At 230.94Hz, FM CV had to be 35.27%:
100% PFD = (2.4048 * 230.94) / 0.3527 = 1574.60

One thing I've noticed about these, is that as modulator frequency increases, the calculated 100% PFD also increases.

Any knowledge or insight would be greatly appreciated.

(images below show my method)

enter image description here enter image description here


1 Answer 1


The code for this VCO plugin can be found here. I think there might be multiple things that interfere with an "ideal" VCO, but here my observations:

  • The pitch is directly computed as frequency_knob + fm_knob * fm_input, as you can see here.

  • But then the VCO class uses a Taylor approximation for the exponential function, which might introduce some error, and

  • The phase step (that is the change of output voltage in each step) is clamped in each iteration.

Finally the Analyzer XL-Bogaudio plugin you use (that I could not find the code for - but you can probably look into it yourself) seems to have a very coarse curve (consider the coarse line segments) and we have no idea how the sound is processed inside this, so these all might contribute in one way or another to an "imperfect" result. To be on the safe side I would recommend doing all experiments at very low frequencies, and it seems to be a good idea to switch everything from analog to digital.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.