<div dir="ltr"><div>It works on my Mac Mini M1 (upgraded to Ventura 13.2 last night) as well. The callbacks setting doesn't seem to have any obvious effect, but I didn't do anything too crazy with it.</div><div><br></div><div>Thanks for all the troubleshooting on this, it's a big help for me right now!</div><div><br></div><div><br></div><div>-Theron<br>^<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Feb 4, 2023 at 3:22 AM Dan Wilcox <<a href="mailto:danomatika@gmail.com">danomatika@gmail.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 style="overflow-wrap: break-word;"><br><div><blockquote type="cite"><div>On Feb 4, 2023, at 11:46 AM, Denis Połeć <<a href="mailto:denis.polec@gmail.com" target="_blank">denis.polec@gmail.com</a>> wrote:</div><div><br><div style="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;text-decoration:none"><div>As far as I can tell, everything is going smoothly with the callback settings. </div><div>However, I still haven't quite understood what it is for.</div></div></div></blockquote><br></div><div>There was some discussion, maybe a year ago, about changing the name of this option and finding ways to make it clear what it does.</div><div><br></div><div>Copy/paste from Christof's email replay to Romain, to which you were not in CC:</div><div><br></div><div><blockquote type="cite"><blockquote type="cite"> Are there situations when using<br>callbacks  (on CoreAudio) bring any benefit?<br></blockquote><br>With "callbacks" enabled, Pd runs directly on the audio thread. <br>Generally, this is not really recommended because Pd itself is not <br>realtime safe. Many operations block for an indeterminate amount of <br>time, e.g. any call to "malloc()", network IO, file system operations, <br>etc. The upside is that you can avoid some extra delay (see below).<br><br>With Pd's ringbuffer scheduler (= "callbacks" disabled), you can freely <br>adjust the delay according to? your needs. (The "delay" parameter <br>basically sets the size of the ringbuffer.) The price you pay is some <br>extra delay (1x the hardware buffer size). To minimize this extra delay, <br>you would set the /hardware buffer size/ as low as possible (e.g. 64 <br>samples) since the audio callback does nothing but transfer a bunch of <br>samples. In this case, the extra latency would be as low as 64 samples, <br>so nothing to worry about too much.<br><br>(The "callback" option can indeed make a noticable difference when using <br>Jack with larger block sizes. Ideally you would just use the smallest <br>Jack block size possible, but this might not work well for other Jack <br>clients...)<br><br>As a side note: up until now, Pd's scheduler thread regularly goes to <br>sleep for a fixed duration, so it may wake up a bit too late. If the <br>delay setting is too low, this can lead to drop outs. With my <br>"scheduler_fix" branch, the scheduler thread waits on a semaphore and is <br>notified immediately when audio data is available. In my experience so <br>far, this allows for lower "delay" settings than before.<br><br>Christof</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>
<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>