FM Feedback - Where should I stick it?

bkshepard's icon

It helps me understand synthesis concepts better when I can build a basic version of them in Max. I'm trying to better understand how feedback is used in an FM Operator configuration. Assuming the feedback source is the final output of the modulator/carrier combination, what, then, does the feedback connect to? I realize that the send~/receive~ objects add a signal vector size amount of latency, but for this purpose, I not terribly concerned with accuracy as much as just understanding what the feedback is directly affecting. Could one of you FM gurus help me better understand how this works? Thanks so much!

Brian

Max Patch
Copy patch and select New From Clipboard in Max.

Mellon's icon

theres a "feedback FM" patch in gen~ examples. iirc it puts the final output into a history, and then that is modulating the main (heard) oscillator's frequency.

bertrandfraysse's icon

I may say, something like this with double feedback (the main being the first)

Max Patch
Copy patch and select New From Clipboard in Max.

Roman Thilenius's icon


like mellon said it is just FM, i.e. the modulation input of OP1. so all OPs would look the same.

in MSP you could try to add some tapout~ timeshift to the vectordelay in order to make the delay time fit to the current rated frequency of OP1 - or the current perceived frequency of the whole FM patch (because a phase offset of 37% really gives you something else than one of e.g. 1/16 sample.)

bkshepard's icon

Thanks, everyone, for your feedback! (Sorry, I couldn't help it!)

I had looked at the gen example that Mellon mentions and noticed that their isn't an actual modulator operator, it's just the feedback loop that modulates the carrier. Is that what typically happens with a feedback modulator? I'm trying to better understand what happens in things like the DX7 or FM8 when you use an algorithm where one of the operators has feedback. Does the feedback directly modulate the carrier, or does it modulate the modulator?

Similarly, when you string FM operators together, does the output of the first operator directly modulate the carrier of the 2nd, or does it modulate the modulator of the 2nd?

The Matrix in FM8 seems to infer two types of feedback:
1. Output of an operator [A] feeding back into itself
2. Output of an operator [D] feeding back into another operator [C]

Two different types of feedback in FM8 Matrix

bkshepard's icon

In both of the following examples (Max patcher and FM8 Screengrab), I have a single carrier operator with its own feedback. I think the following patch should do the same thing as the FM8 algorithm (all effects off, and simple rectangular on/off envelope) shown in image below. Yet, they sound completely different. While they start out sounding identical, the FM8 gets to primarily white noise pretty quickly as you raise the feedback amount, but the Max version never gets there, no matter how high I raise the feedback amount. I'm really trying to understand how feedback gets applied in FM synthesis and have tried all sorts of combinations, but can never get it to work like the commercial FM synths. What are they doing differently that I'm not seeing? Thanks for any hints or tips.

Max Patch
Copy patch and select New From Clipboard in Max.

FM8 Carrier Feedback