[PD] latency issue

Mathieu Bouchard matju at artengine.ca
Wed Oct 21 15:33:01 CEST 2009


On Tue, 20 Oct 2009, Bjørn Nielsen wrote:

> The lowest delay in ms I have reached before the sound gets quicky is 
> 11ms, but it depends on whether I use Jackpilot and what audiointerface 
> I use (the macbook internal soundcard can't do 11ms, but my mbox2 can). 
> It was my impression that this delay is all the latency PD have,

I don't know, I'd risk saying that the delay in question is simply added 
to the base delay of the in/out system, but I wouldn't risk guaranteeing 
it without rereading all of the s_audio*.c code again... I forgot a fair 
bit of it.

In theory, the soundcard needs to fill a block before it can pass it to 
pd, then pd needs to process a whole block before a block of output is 
ready, and then the time it takes to play a block is a block duration, but 
if you look at the minimum time difference between in and out, you don't 
need to count the normal duration of the output block in there. So you 
only count blocksize once, and then, if the processing time is really 
smooth, then your minimum audiobuf size is the blocksize delay times the % 
of CPU that pd is using.

So if your patch takes 75% CPU and has 64-byte blocks at 48000 kHz, then 
you compute (1+75/100)*64/48000 = 0.002333... s = 2.333... ms; and you 
could set pd's audiobuf to (75/100)*64/48000 = 0.001 s = 1 ms exactly.

Obviously, this is not what you are getting, because the processing isn't 
that much smooth. This may depend on the speed of the multitasker in the 
OS itself, the quality of the realtime priority system, and various little 
hiccups that happen in Pd itself. Many Pd internals and externals make it 
hard, by expecting a file-open to take 0 ms of logical time, thus if it 
really takes 50 ms, then you need at least 50 ms - 0 ms = 50 ms of 
audiobuf on top of the minimum required audiobuf.

> but maybe I'm wrong? Is it even possible to measure where in the system 
> the latency occur?

The best you can do is make a laundry list of things be checking for, but 
Pd can't possibly have all the information.

Btw, can you get doc/7.stuff/tools/latency.pd to work? and how would one 
interpret that figure?

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard, Montréal, Québec. téléphone: +1.514.383.3801


More information about the Pd-list mailing list