<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch?]]></title><description><![CDATA[<p>I always had the impression that Pd reschedules and re-sorts all DSP objects in the system globally whenever a change is made... is that true?</p>
<p>Wondering because I could also imagine that subpatches or abstractions <em>could</em> reduce the scope of the DSP design that has to be analyzed at any moment.</p>
<p>That is, if I'm in a subpatch and I make or delete a DSP connection, in theory it could just re-sort the DSP defined within the subpatch, but internally it might just redo everything anyway.</p>
<p>Purely a matter of curiosity. I don't have a concrete use case.</p>
<p>Thanks,<br />
hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch</link><generator>RSS for Node</generator><lastBuildDate>Mon, 12 Oct 2026 06:10:03 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/15687.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 25 Aug 2025 10:20:10 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Mon, 25 Aug 2025 10:20:10 GMT]]></title><description><![CDATA[<p>I always had the impression that Pd reschedules and re-sorts all DSP objects in the system globally whenever a change is made... is that true?</p>
<p>Wondering because I could also imagine that subpatches or abstractions <em>could</em> reduce the scope of the DSP design that has to be analyzed at any moment.</p>
<p>That is, if I'm in a subpatch and I make or delete a DSP connection, in theory it could just re-sort the DSP defined within the subpatch, but internally it might just redo everything anyway.</p>
<p>Purely a matter of curiosity. I don't have a concrete use case.</p>
<p>Thanks,<br />
hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch</guid><dc:creator><![CDATA[ddw_music]]></dc:creator><pubDate>Mon, 25 Aug 2025 10:20:10 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Mon, 25 Aug 2025 13:45:55 GMT]]></title><description><![CDATA[<p>Maybe the answer is in this video of Millers classes at 1:04:00<br />
<a href="https://msp.ucsd.edu/syllabi/206.20s/movies/5b.may1.mp4" rel="nofollow">https://msp.ucsd.edu/syllabi/206.20s/movies/5b.may1.mp4</a><br />
sorting starts at 59:19:15<br />
overview: <a href="https://msp.ucsd.edu/syllabi/206.20s/index.htm" rel="nofollow">https://msp.ucsd.edu/syllabi/206.20s/index.htm</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/2</guid><dc:creator><![CDATA[lacuna]]></dc:creator><pubDate>Mon, 25 Aug 2025 13:45:55 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Tue, 26 Aug 2025 00:59:34 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/lacuna">@lacuna</a> said:</p>
<blockquote>
<p>Maybe the answer is in this video of Millers classes at 1:04:00</p>
</blockquote>
<p>OK, will have a look, thanks!</p>
<p>hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/3</guid><dc:creator><![CDATA[ddw_music]]></dc:creator><pubDate>Tue, 26 Aug 2025 00:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Tue, 26 Aug 2025 02:02:37 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ddw_music">@ddw_music</a> If Pd's topological sort algorithm were smart enough to know when a change inside an abstraction did not change the sort outside the abstraction, then it would be an easy lift for it to detect that feedback to some abstraction (e.g. one with an [inlet~], an [outlet~], and no connections) does not produce a cycle. But the last I checked, that was not the case, so I would bet that when anything changes, the whole directed graph is resorted. Compound that with the fact that two graphs can be exactly the same visually but result in different orderings depending on the order that the nodes and edges were created. Yikes!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/4</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Tue, 26 Aug 2025 02:02:37 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Tue, 26 Aug 2025 02:41:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a> said:</p>
<blockquote>
<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ddw_music">@ddw_music</a> If Pd's topological sort algorithm were smart enough to know when a change inside an abstraction did not change the sort outside the abstraction, then it would be an easy lift for it to detect that feedback to some abstraction (e.g. one with an [inlet~], an [outlet~], and no connections) does not produce a cycle. But the last I checked, that was not the case, so I would bet that when anything changes, the whole directed graph is resorted.</p>
</blockquote>
<p>I guess the issue, then, is, if all the tilde objects get lifted into one flat list, then a change inside a subcanvas could get inserted in the midst of objects outside the canvas. In that case, it probably is necessary to walk the entire tree.</p>
<p>In the video, he starts off the sorting section by saying that canvases tell the DSP layer what has changed locally within the canvas, but then discusses the sorting flow when DSP gets turned on (which obviously has to start at the topmost canvas).</p>
<p>And then in g_canvas.c there are comments like</p>
<pre><code>        /* create a new &quot;DSP graph&quot; object to use in sorting this canvas.
        If we aren't toplevel, there are already other dspcontexts around. */
</code></pre>
<p>so the data structure does seem to be split up by canvases.</p>
<p>It's not a crucial point -- just that, I'm expending a paper and wanted to contrast SC's per-SynthDef graph sorting vs Pd's seemingly global sorting. I'd rather not make a false claim.</p>
<p>Mailing list, I guess.</p>
<p>hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/5</guid><dc:creator><![CDATA[ddw_music]]></dc:creator><pubDate>Tue, 26 Aug 2025 02:41:22 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Fri, 29 Aug 2025 03:22:01 GMT]]></title><description><![CDATA[<p>Per spacechild1 on the mailing list: Yes, it does sort all dsp objects in all canvases, every time (because they may have invisible connections, like delay objects or send~ / receive~ / throw~ / catch~).</p>
<p>hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/6</guid><dc:creator><![CDATA[ddw_music]]></dc:creator><pubDate>Fri, 29 Aug 2025 03:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Fri, 29 Aug 2025 10:24:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ddw_music">@ddw_music</a> It is a little more complicated.<br />
If you are writing a paper then you should look at <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a>'s conclusions re a previous discussion on the building of the dsp graph and the use of subpatches to control the ordering and ensure repeatability..... <a href="https://forum.pdpatchrepo.info/topic/13512/s-r-throw-catch-latency-and-object-creation-order/21" rel="nofollow">https://forum.pdpatchrepo.info/topic/13512/s-r-throw-catch-latency-and-object-creation-order/21</a><br />
There is a lot of detailed info in the thread.... maybe nothing new for you but...?<br />
David.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/7</guid><dc:creator><![CDATA[whale-av]]></dc:creator><pubDate>Fri, 29 Aug 2025 10:24:15 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Fri, 29 Aug 2025 12:22:22 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/whale-av">@whale-av</a> My issue is (was?) that there are things that affect the DSP sort order that you can't see from the graphics alone. As far as I understand, that's different from <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ddw_music">@ddw_music</a>'s question, which is &quot;how much of the DSP graph does Pd have to resort when there's a change&quot;? That said, I don't understand the reason that <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/spacechild1">@spacechild1</a> gave on the mailing list--I'd love to see an example.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/8</guid><dc:creator><![CDATA[jameslo]]></dc:creator><pubDate>Fri, 29 Aug 2025 12:22:22 GMT</pubDate></item><item><title><![CDATA[Reply to DSP scheduling &#x2F; sorting: Is it always global, or perhaps split up by subpatch? on Sat, 30 Aug 2025 01:58:03 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/jameslo">@jameslo</a> said:</p>
<blockquote>
<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/whale-av">@whale-av</a> My issue is (was?) that there are things that affect the DSP sort order that you can't see from the graphics alone. As far as I understand, that's different from <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/ddw_music">@ddw_music</a>'s question, which is &quot;how much of the DSP graph does Pd have to resort when there's a change&quot;? That said, I don't understand the reason that <a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/spacechild1">@spacechild1</a> gave on the mailing list--I'd love to see an example.</p>
</blockquote>
<p>Well, here's what he said: &quot;The issue is that DSP objects can be 'connected' by other means. Take the delay objects, for example. Some of these objects need to be aware of the order of execution within the DSP graph. Others will affect other objects, e.g. automatically changing the channel count. Pd itself doesn't know what a particular ugen is doing, so the only thing it can do is rebuild the whole graph.&quot;</p>
<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/whale-av">@whale-av</a> Yes, I'm writing a paper, but the paper isn't about Pd graph sorting -- this is a side point -- the latency thread is interesting but would be way too much detail for basically a footnote.</p>
<p>hjh</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/9</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/15687/dsp-scheduling-sorting-is-it-always-global-or-perhaps-split-up-by-subpatch/9</guid><dc:creator><![CDATA[ddw_music]]></dc:creator><pubDate>Sat, 30 Aug 2025 01:58:03 GMT</pubDate></item></channel></rss>