First abstraction, simple stereo delay: 2 delay lines, variable feedback L->R, R->L. This *works*, no DSP loop error.
Second abstraction contains an effect in the feedback path. (in my simple example, it's just a null wire: In-L passes to Out-L, etc). Again this *works*, no DSP error.
Third patch is like the second, only the effect has been moved out of the abstraction, and into the parent patch. ONLY HERE do I get the DSP loop error.
*The point is the last two patches have (or should have) an identical graph! *
It really seems like a bug to me.
I'll upload a test patch a little later.
Thanks, BH
On Tue, Feb 25, 2020, 5:22 AM Dan Wilcox danomatika@gmail.com wrote:
As the error says, you shouldn't create a direct feedback loop with signal cords.
I usually use [throw~] and [catch~] for send/receive busses via the rjlib [c_bus], [c_tobus], & [c_frombus] wrappers: https://github.com/rjdj/rjlib
Additionally, I've made stereo versions ([c_bus2], [c_tobus2], [c_frombus2]) in my own rc-patches: https://github.com/danomatika/rc-patches
I suppose we are introducing (tiny) relays with every step, but in practice I have never perceived it. Then again, most of what I do does not relay on "sub-2ms" latency. For a large project at work, we have a signal path with 64 channels using throw~/catch~ like: input/soundfile channel -> spatialization -> virtual speaker -> output.
On Feb 25, 2020, at 9:50 AM, pd-list-request@lists.iem.at wrote:
Message: 2 Date: Tue, 25 Feb 2020 03:50:18 -0500 From: William Huston williamahuston@gmail.com To: Pd-List pd-list@lists.iem.at Subject: [PD] Delay circuit feedback DSP error-- only when signal path leaves abstraction Message-ID: CAAV8_8=Ui0oV-Hi8jBoxM4MDp_+u8atbZ+uQqNQh9R1BODzczQ@mail.gmail.com Content-Type: text/plain; charset="utf-8"
Hi, I've built a classic stereo delay using [delwrite~] and [vd~], and L/R crossed feedback. This works!
Now, I want to insert an effect into the feedback path. (many possibilities here: add some bitcrush, so each repeat gradually becomes more distorted.... or a [hilbert~] type pitch shift, which might create something like Shepard tones, etc).
*This works when everything is within a single patch or abstraction. *
However, when I try to allow the effect to be external to the abstraction (like a SEND/RETURN insert on a mixer), when I try to complete the circuit, I get "DSP loop detected".
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com robotcowboy.com