Problem in gen~ with infinite recursion while using delay and history

Jakob Magnusson's icon

Hiya folks,

I am in the process of creating a delay that uses recursion but have run in to the problem when translating my work to gen. I used a send~/receive~pair in MSP to get past the infinite recursion error and understood that history is gen's way of getting past the issue.

When I try and use history and delay together though I still get the infinite recursion error...

Any idea what I am doing wrong?

Thanks in advance for any help :)

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

Alois Cerbu's icon

For feedback within a gen~ patcher, the history object (which is just a single-sample delay) takes care of things. MSP won't let you write a feedback loop, even just using the native delay~ object; it provides options for feedback with the tapin~ / tapout~ objects. In this case, you don't really need to use gen~. (Also, I assume you don't want the delayed / filtered signal to be modulating the delay time in the gen~ patch, right?)

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

riccardo dapelo's icon

two examples in gen~, using delay or delay+history. In the patch you posted, as Alois pointed up, you were modulating delay time (in gen expressed in samples) with history. I'm not a gen expert but if you want affordable and very small delays then gen~ is the best way.

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

Jakob Magnusson's icon

Thank you for your responses!

The history --> delay time modulation was a mistake on my end.

Great examples, cheers!