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