When you want to create feedback, you need to use either a [s~ ]
/[r~ ]
or [throw~]
/[catch~]
pair, or write to a table with [tabsend~]
and read with [tabreceive~]
. Didn't check your patches, but DSP loops are detected when a signal chain returns to a previous point.
Think of it like this, in the following ASCII patch:
[osc~]
|
[*~ ]
[osc~]
needs to make its computations before it sends its output to [*~ ]
. If [*~ ]
was to send its output back to [osc~]
's inlet, the latter would not be able to compute this signal, as it will be generated after [osc~]
's own output has been computed. Using a [s~ ]
/[r~ ]
pair, you can be sure that [*~ ]
will send its output to [s~ ]
, which in turn will transfer it to [r~ ]
, without disturbing the signal chain order