<div dir="ltr">> in your example with the effect outside your
abstraction you can literally *see* the DSP loop, why are you
surprised?
<div><div dir="ltr" class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><span><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div><br></div><div>You have got to be kidding me!!!</div><div><br></div><div>So are you saying....</div><div><br></div><div>If I have an audio abstraction FOO, <br></div><div>with has 4 inlets~ and 4 outlets~.</div><div><br></div><div>and I have another BAR, <br></div><div>with 2 inlets~ and 2 outlets~, <br></div><div><br></div><div>and I try to connect a pair of FOO's outlets~ to
BAR's inlets~, <br></div><div>and BAR's outlets to a pair of FOO's inlet's, <br></div><div>that <b>PD throws a "DSP loop error" <u><i>whether or not there</i></u></b></div><div><b><u><i>is in fact an audio loop in the actual graph</i></u>?</b>??<br></div><br><div>And there is not a way to override this behavior??<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>--<br>William Huston: <a href="mailto:WilliamAHuston@gmail.com" target="_blank">WilliamAHuston@gmail.com</a><br>Binghamton NY<br><div style="text-align:center"><div style="text-align:center"><span></span><br><span><b>Public Service Mapping / Videography / Research / Education / Safety Advocacy</b></span><br><span></span><a href="http://WilliamAHuston.blogspot.com" target="_blank">Blog</a> -- <a href="http://facebook.com/billhuston" target="_blank">Facebook</a> -- <a href="http://twitter.com/WilliamAHuston" target="_blank">Twitter </a><span><span><span>-- <a href="https://www.youtube.com/channel/UCGijK1amWOLglT3YeTyEBNQ?sub_congfirmation=1" target="_blank">Youtube</a></span></span></span><b> -- <a href="https://billhustonpodcast.blogspot.com/" target="_blank">Podcast Blog</a><br></b></div><div style="text-align:center"><b>Document collections</b>: <a href="http://TinyURL.com/VirtualPipelines" target="_blank">VirtualPipelines</a> -- <a href="http://bit.ly/BHDCSDimockArchive" target="_blank">BHDCSDimockArchive</a><br><span><span><b>Please support my work! -- </b><a href="http://TinyURL.com/DonateToBillHuston" target="_blank">TinyURL.com/DonateToBillHuston</a><br></span></span></div><div style="text-align:center"><span><span><br></span></span></div><div style="text-align:center"><span><span><b><img src="https://4.bp.blogspot.com/-QjAlYXBdfk0/XA7eTMshJPI/AAAAAAAAIGQ/hr-t_w9fu-MCMWja84YnMBJIry0oWiWTACLcBGAs/s600/BH%2BTerra%2BVigilate%2B%2523BT%2Bself%2Bportrait%2Btriptich1.jpg" width="420" height="73"></b></span></span></div><span><span></span></span></div><span><br></span></div><div><br></div></div></div></div></div></div></div></div></div></span></div></div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Feb 25, 2020 at 6:01 PM Christof Ressi <<a href="mailto:info@christofressi.com">info@christofressi.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>A DSP loop is when signal connections form a loop. Pd can't look
into objects so it just treats them as black boxes. It's as simple
as that.</p>
<p>After all, in your example with the effect outside your
abstraction you can literally *see* the DSP loop, why are you
surprised? And in your other example with the effect inside your
abstraction you don't get a DSP loop because, well, there's is no
DSP loop.</p>
<p>I see where you're coming from. In the analog world your two
examples are indeed equivalent, but in Pd they are *not*.<br>
</p>
<p>Christof<br>
</p>
<div>On 25.02.2020 23:46, Christof Ressi
wrote:<br>
</div>
<blockquote type="cite">
<p> </p>
<blockquote type="cite">especially because of additional potential
delay of inlet~/outlet~.</blockquote>
inlet~/outlet~ does *not* add a delay (unless when going to a
larger blocksize).
<p> </p>
<blockquote type="cite">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>But you're using [r~] and [s~] which is not the same as
direct signal connections. The former can act like a short
delay line. Please read
"3.audio.examples/G05.execution.order".</div>
</blockquote>
<div><br>
</div>
Christof, Yes! Exactly!</blockquote>
I think you misunderstood. With "former" I meant [r~]/[s~].
[inlet~]/[outlet~] does not add a delay.<br>
<p> </p>
<blockquote type="cite">Also, believe me, r~/s~ has nothing to do
with it. </blockquote>
Believe me, it certainly has. Can you finally share a minimal test
patch, please? I would like to see an actual patch where you get
an unexpected DSP loop error.<br>
<p>Christof<br>
</p>
<div>On 25.02.2020 23:40, William Huston
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div dir="ltr" class="gmail_attr">On Tue, Feb 25, 2020 at 6:14
AM Christof Ressi <<a href="mailto:info@christofressi.com" target="_blank">info@christofressi.com</a>>
wrote:<br>
</div>
<div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>@Dan<br>
</p>
<blockquote type="cite">As far as I recall, going
between abstraction to parent patch via inlet~/outlet~
introduces a block delay, hence no error</blockquote>
</div>
</blockquote>
<div>Dan, correction-- that is the exact circumstance where
I *am* getting the error. <br>
</div>
<div>So now I think you are beginning to see why I think
it's unexpected,</div>
<div>especially because of additional potential delay of
inlet~/outlet~.</div>
<br>
<div>Dan also wrote:</div>
<div>> As the error says, you shouldn't create a direct
feedback loop with signal cords. <br>
</div>
<div><br>
</div>
<div>Let me try to explain again:</div>
<div><br>
</div>
<div><span style="background-color:rgb(255,255,0)"><b>I have
taken a WORKING CIRCUIT--</b></span></div>
<div><b> </b>
<div>(a simple stereo delay circuit, with cris-cross L/R
feedback <br>
</div>
<div>implemented with [delwrite~] + [vd~]) <br>
</div>
<div><b><span style="background-color:rgb(255,255,0)">--
which DOES NOT produce a "DSP Loop Error", </span><br>
</b></div>
<div><b>pulled a Null (straight-wire) Filter <br>
</b></div>
<div><b>(which had been installed in the feedback path)<br>
</b></div>
<div><b>and moved it externally to the abstraction</b></div>
<div><b>(up to the parent patch), via outlet~/inlet~,</b></div>
<div><b>which, if anything ADDS additional block delays, <br>
</b></div>
<div><b>yet this produces "DSP Loop Error". <br>
</b></div>
<div><b><br>
</b></div>
<div><b>Clearly (the way I see it) <br>
</b></div>
<div><b>the logic behind detecting "DSP Loop Error"
condition<br>
</b></div>
<div><b>has a bug.</b></div>
<br>
<div><b>I believe this is a false error,</b></div>
<div><b>because as I have stated--</b></div>
<div><b>the circuit HAD been working!</b></div>
<div><b><br>
</b></div>
<div><b>All I did was add the potential for additional</b></div>
<div><b>blocks of delay on the feedback path. <br>
</b></div>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>But you're using [r~] and [s~] which is not the same
as direct signal connections. The former can act like a
short delay line. Please read
"3.audio.examples/G05.execution.order".</div>
</blockquote>
<div><br>
</div>
<div>Christof, Yes! Exactly!<br>
</div>
<div>Added delay should REDUCE the chance of a "DSP Loop
Detected"!</div>
<div><br>
</div>
<div>Also, believe me, r~/s~ has nothing to do with it. <br>
</div>
<div>My original patch was extremely ugly, due to
criss-crossed feedback.</div>
<div>I only implemented with r~/s~ to clean up the patch to
share. <br>
</div>
<div><br>
</div>
<div>Thanks everyone!</div>
<div>BH<br>
</div>
<div><br>
</div>
<div><br>
<br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
<p>Christof<br>
</p>
<div>On 25.02.2020 11:42, Dan Wilcox wrote:<br>
</div>
<blockquote type="cite"> As far as I recall, going
between abstraction to parent patch via inlet~/outlet~
introduces a block delay, hence no error
<div><br>
</div>
<div>
<blockquote type="cite">
<div dir="auto">
<div dir="auto">
<div dir="auto">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. </div>
</div>
</div>
</blockquote>
<div><br>
</div>
Signal loop in a single patch without abstractions =
error. Pd has no way to read and write to the same
signal buffer in the patch at the same time
*without* some tiny delay.</div>
<div><br>
</div>
<div>
<blockquote type="cite">
<div dir="auto">
<div dir="auto">
<div dir="auto"><b style="font-family:sans-serif">The point
is the last two patches have (or should
have) an identical graph! </b></div>
</div>
</div>
</blockquote>
<br>
</div>
<div>At the lower level, they don't. What happens if
you put part of the path inside a subpath which uses
inlet~/outlet~?</div>
<div><br>
</div>
<div>
<div>
<blockquote type="cite">
<div>On Feb 25, 2020, at 11:36 AM, William
Huston <<a href="mailto:williamahuston@gmail.com" target="_blank">williamahuston@gmail.com</a>>
wrote:</div>
<br>
<div>
<div dir="auto">
<div dir="auto">
<div dir="auto">First abstraction, simple
stereo delay: 2 delay lines, variable
feedback L->R, R->L.</div>
<div dir="auto"> This <b>works</b>, no
DSP loop error. <br>
</div>
<div dir="auto"><br>
</div>
<div dir="auto">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 <b>works</b>, no DSP error. </div>
<div dir="auto"><br>
</div>
<div dir="auto">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. </div>
<div dir="auto"><br>
</div>
<div dir="auto"><b style="font-family:sans-serif">The
point is the last two patches have (or
should have) an identical graph! </b><br>
</div>
<div dir="auto"><b style="font-family:sans-serif"><br>
</b></div>
<div dir="auto"><font face="sans-serif">It
really seems like a bug to me. </font></div>
<div dir="auto"><span style="font-family:sans-serif"><br>
</span></div>
<div dir="auto"><span style="font-family:sans-serif">I'll
upload a test patch a little later. </span></div>
<div dir="auto"><span style="font-family:sans-serif"><br>
</span></div>
<div dir="auto"><font face="sans-serif">Thanks, </font></div>
<div dir="auto"><font face="sans-serif">BH</font></div>
</div>
</div>
</div>
</blockquote>
</div>
<br>
<div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">--------</div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">Dan
Wilcox</div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><a href="http://twitter.com/danomatika" target="_blank">@danomatika</a></div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><a href="http://danomatika.com" target="_blank">danomatika.com</a></div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><a href="http://robotcowboy.com" target="_blank">robotcowboy.com</a></div>
<div style="color:rgb(0,0,0);font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px"><br>
</div>
<br>
</div>
<br>
</div>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" target="_blank">https://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing
list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
</blockquote>
</div>
</div>
</blockquote>
<br>
<fieldset></fieldset>
<pre>_______________________________________________
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" target="_blank">https://lists.puredata.info/listinfo/pd-list</a>
</pre>
</blockquote>
</div>
_______________________________________________<br>
<a href="mailto:Pd-list@lists.iem.at" target="_blank">Pd-list@lists.iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -> <a href="https://lists.puredata.info/listinfo/pd-list" rel="noreferrer" target="_blank">https://lists.puredata.info/listinfo/pd-list</a><br>
</blockquote></div>