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