phase-modulation versus frequency-modulation

marlon brando's icon

Hi,

What is the difference between modulating the phase input on cycle~ versus frequency input?

Cheers

monohusche's icon

I was tempted to reply that one modulates the phase, the other the the frequency of the carrier signal, but you obviously knew that much

Looks like PM can exhibit AM and FM behaviour depending on the amplitudes of the signal.

.mmb's icon

There's a really good chapter in the Csound Book that talks about using PM as a way of emulating FM but making it more flexible. For example, feedback doesn't work with FM, but it can be done with PM. You can also reduce artifacts a DC drift when making complex FM patches with multiple operators by using PM instead.

marlon brando's icon

.mmb wrote on Thu, 18 June 2009 23:04There's a really good chapter in the Csound Book that talks about using PM as a way of emulating FM but making it more flexible. For example, feedback doesn't work with FM, but it can be done with PM. You can also reduce artifacts a DC drift when making complex FM patches with multiple operators by using PM instead.

Thanks

Is it like feeding back a sine with fm makes a sawtooth like timbre, and feeding back a sine with pm makes a noise like timbre?

Cheers

.mmb's icon

Hey man, sorry for the late reply. The deal with FM feedback is that if the modulation index is ever greater than or equal to 1, the frequency plus the fedback amount will inevitably hit zero, causing the oscillator to stop. The PM approach adds the output of the oscillator to the phase amount that's looking up the waveform without altering the frequency of the table-lookup oscillator (phasor), preventing it from stopping.

In Max you would set it up by filling a [buffer~] with a waveform being looked up by a [phasor~], which is set to the carrier frequency, and [wave~]. (This is assuming you want to use something other than sine waves, otherwise you could just feed [phasor~] into the right inlet of [cycle~].) You would then add the output of [wave~] to the output of [phasor~], scaled by a modulation index. Since the actual frequency of the [phasor~] isn't being altered, the oscillator will never stop. I hope that makes sense.

.mmb