<?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[poor performance]]></title><description><![CDATA[<p>hi,</p>
<p>im a newbie to PD, but not to programming (C++) and Im pretty competent with Max/MSP.</p>
<p>I decided to give PD a try, as I want to use it on a Raspberry PI and Linux environment.</p>
<p>anyway, my issue is:<br />
Ive written a program (in C) that sends alot of messages via OSC to be picked up by OSC, using mrpreach udpreceive/unpackOSC/routeOSC etc.<br />
and Im testing it on my Mac, and PD is seriously lagging behind processing the osc messages. yet the CPU load is pretty load.<br />
... to me it appears that perhaps a control rate needs to increased?<br />
(assuming PD is like Max and Reaktor which has two rates for message processing)</p>
<p>I need to process about 1000 osc message/sec, perhaps more ... though I think its lagging behind at substantial less than that.</p>
<p>exactly the same setup works absolutely fine on Max/MSP (7.2) , so I think its something to do with my PD setup.<br />
but I tried both pd-extended and pd-vanilla (as it mores up to date) and both had the same issue.</p>
<ul>
<li>is there some concept of 'control rate' in PD? can I increase this some how?</li>
<li>is this likely to be a Mac only issue, or on all versions of PD? (e.g Linux)</li>
<li>are these the best processing objects for OSC?</li>
</ul>
<p>thanks for any help<br />
Mark</p>
<p>p.s. any recommendations on best PD setup for the Mac?  pd-extended seems very old, it seems perhaps pd-vanila + the defin (?) extension finder is best option.</p>
<p>setup:<br />
PD 0.46-6-64 bit (vanilla)  + mrpeach extensions<br />
Mac OSX 10.11.2<br />
(also tried latest PD-extended, 32 bit, same issue)</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 17:06:47 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/9904.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 18 Mar 2016 11:42:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 11:42:16 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>im a newbie to PD, but not to programming (C++) and Im pretty competent with Max/MSP.</p>
<p>I decided to give PD a try, as I want to use it on a Raspberry PI and Linux environment.</p>
<p>anyway, my issue is:<br />
Ive written a program (in C) that sends alot of messages via OSC to be picked up by OSC, using mrpreach udpreceive/unpackOSC/routeOSC etc.<br />
and Im testing it on my Mac, and PD is seriously lagging behind processing the osc messages. yet the CPU load is pretty load.<br />
... to me it appears that perhaps a control rate needs to increased?<br />
(assuming PD is like Max and Reaktor which has two rates for message processing)</p>
<p>I need to process about 1000 osc message/sec, perhaps more ... though I think its lagging behind at substantial less than that.</p>
<p>exactly the same setup works absolutely fine on Max/MSP (7.2) , so I think its something to do with my PD setup.<br />
but I tried both pd-extended and pd-vanilla (as it mores up to date) and both had the same issue.</p>
<ul>
<li>is there some concept of 'control rate' in PD? can I increase this some how?</li>
<li>is this likely to be a Mac only issue, or on all versions of PD? (e.g Linux)</li>
<li>are these the best processing objects for OSC?</li>
</ul>
<p>thanks for any help<br />
Mark</p>
<p>p.s. any recommendations on best PD setup for the Mac?  pd-extended seems very old, it seems perhaps pd-vanila + the defin (?) extension finder is best option.</p>
<p>setup:<br />
PD 0.46-6-64 bit (vanilla)  + mrpeach extensions<br />
Mac OSX 10.11.2<br />
(also tried latest PD-extended, 32 bit, same issue)</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance</guid><dc:creator><![CDATA[thetechnobear]]></dc:creator><pubDate>Fri, 18 Mar 2016 11:42:16 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 13:32:46 GMT]]></title><description><![CDATA[<p>Perhaps you should try with the vanilla object netreceive and you should avoid to print the received messages in the console.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/2</guid><dc:creator><![CDATA[Pierre Guillot]]></dc:creator><pubDate>Fri, 18 Mar 2016 13:32:46 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 14:51:15 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/thetechnobear">@thetechnobear</a> I have always used [dumpOSC] in extended....... with up to 64 users sending many messages / sec......... but I have never counted how many actually arrive (maybe 64x100 on average?).  I agree that you should not print to terminal, and you should keep displayed gui's to an absolute minimum.  In Pd everything that can be done (quite a lot on a modern PC) is done as fast as possible between audio ticks, which makes me think always that any &quot;struggling&quot; in processing is because Pd is not communicating efficiently with the soundcard(s).......  and those settings should be checked.<br />
Maybe you could post your testing program...... and we could test it on different platforms (including the Pi)......<br />
David.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/3</guid><dc:creator><![CDATA[whale-av]]></dc:creator><pubDate>Fri, 18 Mar 2016 14:51:15 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 15:48:16 GMT]]></title><description><![CDATA[<p>I dont print to the output, I route it to drive an oscillator (and for debugging purposes to num boxes)</p>
<p>Ive got an external audio interface, a saffire pro 14, and that seems to be working fine, and as mentioned, there is no evidence of cpu load... and the audio is glitch free... its just the messages not being processed quickly</p>
<p>as you can see the basic function (for testing) is to drive an oscillators frequency, and mix in another parameter to get the volume (gain)</p>
<p>a few notes:</p>
<ul>
<li>Ive tested without the num boxes etc, i.e. just the oscillator and the issue is the same.</li>
<li>its the same with only one half i.e. one udpreceive 'tree' and its the same</li>
</ul>
<p>unfortunately, you can't test as such without the relevant controller and application to send the messages.</p>
<p>I'll try netreceive... perhaps that will help.<br />
EDIT: nope, netreceive has exactly the same issue.<br />
EDIT: oops, noticed the 9002 tree, i went via the num boxes to oscillator/gain, but taking directly from the unpack, still has no change</p>
<p><img src="/uploads/files/1458314572546-screen-shot-2016-03-18-at-16.22.41.png" alt="Screen Shot 2016-03-18 at 16.22.41.png" class="img-responsive img-markdown" /></p>
<p><a href="/uploads/files/1458314548950-mectest.pd">mectest.pd</a></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/4</guid><dc:creator><![CDATA[thetechnobear]]></dc:creator><pubDate>Fri, 18 Mar 2016 15:48:16 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 16:15:42 GMT]]></title><description><![CDATA[<p>You said you tried the vanilla OSC native objects ([oscformat]/[oscparse])? These should be combined with [netreceive -u -b] (-u is for UDP and -b for binary).<br />
You said you have vanilla-64bit. That might be an issue when working with external objects (like [udpreceice], [unpackOSC] etc.). Not sure if that could be the case, but the native objects are more likely to play nice since the 64bit version is a quite special one and most of the externals are 32bit.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/5</guid><dc:creator><![CDATA[alexandros]]></dc:creator><pubDate>Fri, 18 Mar 2016 16:15:42 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 17:05:17 GMT]]></title><description><![CDATA[<p>I just tried with this patch<br />
<img src="/uploads/files/1458320253903-capture-d-e-cran-2016-03-18-a-17.57.21.png" alt="Capture d’écran 2016-03-18 à 17.57.21.png" class="img-responsive img-markdown" /><br />
<a href="/uploads/files/1458319918510-test_oxc_cpu.pd">test_oxc_cpu.pd</a><br />
On my Mac 10.11.3 , 2.3Ghz and PD-vanilla -32bit:<br />
1000 messages -&gt; ~1% CPU<br />
10000 messages -&gt; ~10% CPU<br />
50000 messages -&gt; ~50% CPU</p>
<p>And do you really need 1000 messages ? For exemple, if you want to set the frequency of [osc~], the object will take into account only the last value before the next DSP tick. So at 44100Hz it can take into account 44100/64≈690 changes but is it really necessary to change the frequency at each DSP tick ?</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/6</guid><dc:creator><![CDATA[Pierre Guillot]]></dc:creator><pubDate>Fri, 18 Mar 2016 17:05:17 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 17:16:46 GMT]]></title><description><![CDATA[<p>ok, so now I've tried netrecieve with oscparse , so I'm up to this now... and same issue...<br />
<img src="/uploads/files/1458319832144-screen-shot-2016-03-18-at-17.50.08.png" alt="Screen Shot 2016-03-18 at 17.50.08.png" class="img-responsive img-markdown" /></p>
<p>Ive been trying to get to grips with pure datas processing model,<br />
so Ive read control rate is 1 dsp buffer</p>
<p>so I've got in my audio settings a block size of 64, which i assume is 64 samples.<br />
at 48000 that means I should be getting  750hz (or 750 msg/sec )  , which should be enough, given thats what I have max set at.</p>
<p>I note, I cannot seem to change the block size as this seems to crash Pd <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/frowning.png" title=":(" alt=":(" /> ... I was hoping to try say 16.</p>
<p>(also I don't get what 'delay(msec)' is  ... the web page is a bit vague.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/7</guid><dc:creator><![CDATA[thetechnobear]]></dc:creator><pubDate>Fri, 18 Mar 2016 17:16:46 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Fri, 18 Mar 2016 17:39:07 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/pierre-guillot">@Pierre-Guillot</a> yeah I think your right, I can throttle the data back to a rate that works...</p>
<p>Ive just done some more tests, and I suspect I was 'just over' 750 msg/sec , which is why a few seconds of activity would result in a fractional delay.<br />
once I throttle back to around 500 msg/sec the issue seems to go away.</p>
<p>its got me wondering what Max is doing in this case (it set up the same and copes fine) , Im wondering if its doing something like rate limiting the messages, where as Pd, is just queuing them all up.</p>
<p>thanks to all for your help, not only have I learnt a some thing about Pd message processing, but I can now I can use vanilla pd objects, without extras <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/grinning.png" title=":)" alt=":)" /></p>
<p>cheers <img class="emoji emoji-extended" src="http://forum.pdpatchrepo.info/plugins/nodebb-plugin-emoji-extended/images/beers.png" title="beers" alt=":beers:" /></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/8</guid><dc:creator><![CDATA[thetechnobear]]></dc:creator><pubDate>Fri, 18 Mar 2016 17:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to poor performance on Sat, 19 Mar 2016 12:11:09 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-a" href="http://forum.pdpatchrepo.info/user/thetechnobear">@thetechnobear</a> It is definately a &quot;per port&quot; or a &quot;per thread&quot; issue in Pure Data.....<br />
These tests are built in extended........ turn down the volume before you start them........<br />
<a href="/uploads/files/1458389058412-message-tests.zip">message tests.zip</a><br />
nearly 700 osc message strings per second can be achieved &quot;on time&quot; per port with a maximum of 63 ports.  The 64th port kills the patch (I have stumbled upon this limit before)............<br />
So if you can spread your messages across ports then (about) 42600 messages per second can be processed on time...........<br />
Beyond the &quot;700ish&quot; limit per port/thread there are delays, but every value is still printed..........<br />
David.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/9904/poor-performance/9</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/9904/poor-performance/9</guid><dc:creator><![CDATA[whale-av]]></dc:creator><pubDate>Sat, 19 Mar 2016 12:11:09 GMT</pubDate></item></channel></rss>