I’ve been working on an FM synth, and as part of my research, I read some papers from Chowning about his implementations. I also read some things by Barry Truax and how he used FM synthesis, grouping the carrier/modulation ratios into sets that range from harmonic to inharmonic.
I’ve also discovered, after some trial and error with my own code, and much other reading, that there are 3 different types of FM (or Phase Modulation). Exponential, Linear, and Linear through zero. I’ve listened to the differences between these types, and its that both exponential and linear will shift the pitch upwards, as the modulation index increases.
Currently, this is the code I’m using for my operator.
opcode FMOp, a, aaii
aCPS, aMod, iPhase, iWaveform xin
xout table3:a(phasor:a(aCPS, iPhase) + aMod, iWaveform, 1, 0, 1)
endop
Pretty much the basic FM/PM synth. But it does result in a upward shift in the pitch as the modulation index increases.
I was curious if anyone knows of any papers or something that discuss how the linear through zero method is implemented?
Thanks,
Mike