Feedback loops with gen~ and [history] - infinite recursion

oshii's icon

Hi all,

I am playing around with feedback modulation synthesis and I am getting "MSP object inputs not satisfied, likely due to infinite recursion" despite I am passing the signal through gen~ and history operator.

A workaround is to use send~ and receive~ pair to delay the signal further, but I am wondering why I can't just simply do that with history?

stringtapper's icon

The recursion has to begin and end inside the gen~ object. If you're trying to send a feedback loop outside of the gen~ object then it's expected behavior for Max to say "no."

oshii's icon

Ah, is that it? Thanks!

👽'tW∆s ∆lienz👽's icon

just to add...

within gen~ you can work recursion sample-by-sample('history' is a mere 1-sample delay), outside of gen~ the recursion is dependent on vector-size, so it's not as easy to account for sample-by-sample:

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

^still possible to have some type of recursion travel out from gen~ and then feedback into gen~ if you use certain objects/techniques(depends on what you want to do with the recursion).

oshii's icon

Thanks Alienz! And nice to see you back after so much time!

Yes, I knew that I can achieve that with the good ol' taping-tapout couple, but I was rather curious to explore the possibilities of 1-sample delay feedback loop for a feedback modulation.

And I missed that single fact which Stringtapper pointed out that this whole loop should happen inside gen, which now I did and all is good.