[PD] Delay circuit feedback DSP error-- only when signal path leaves abstraction

William Huston williamahuston at gmail.com
Tue Feb 25 11:36:20 CET 2020

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

*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.


On Tue, Feb 25, 2020, 5:22 AM Dan Wilcox <danomatika at 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 at lists.iem.at wrote:
> Message: 2
> Date: Tue, 25 Feb 2020 03:50:18 -0500
> From: William Huston <williamahuston at gmail.com>
> To: Pd-List <pd-list at lists.iem.at>
> Subject: [PD] Delay circuit feedback DSP error-- only when signal path
> leaves abstraction
> Message-ID:
> <CAAV8_8=Ui0oV-Hi8jBoxM4MDp_+u8atbZ+uQqNQh9R1BODzczQ at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20200225/ddde7fc0/attachment.html>

More information about the Pd-list mailing list