[PD-dev] slowing down dsp function inside perform loop

Mathieu Bouchard matju at artengine.ca
Wed Dec 6 05:03:49 CET 2006


On Tue, 5 Dec 2006, Hans-Christoph Steiner wrote:
> On Dec 5, 2006, at 10:13 PM, Mathieu Bouchard wrote:
>> Is it that all the audio is high-priority and all the non-audio is 
>> low-priority?
> Isn't that basically the way it is now?

In Pd CANONICAL? where? where? no, there's only one thread. (apart from 
the watchdog and pd-gui and the threads that some externs use)

> Correct me if I am wrong, but isn't audio data processed first in each 
> cycle, then message data?

In Pd CANONICAL that's in the same thread, so it doesn't matter whether 
it's the first in each cycle, because a message cycle can expand and take 
the time allocated to 20 cycles at once. If your soundcard is running at 
48000 Hz and your blocksize is 64, then your block-clock is running at 750 
Hz, which is 25 times the full NTSC video framerate or 30 times the full 
PAL framerate; and then both GEM and GridFlow process each frame in one 
message cycle; I think I remember that PDP can do it differently, but I 
think that most people don't use that feature (?).

> FYI: Max since 4.3 (I believe) has two audio threads, a high priority 
> and a low priority.  "qelems" and the defer() functions give you access 
> to the low priority thread in externals.  Another detail of not is that 
> the threads are cooperative, not pre-emptive.  If a give process doesn't 
> defer(), then it won't give up that thread until its done processing.

Ok, that's not the kind of threads that I was thinking about. What is MAX 
doing to keep JITTER from causing audio JITTER ?

  _ _ __ ___ _____ ________ _____________ _____________________ ...
| Mathieu Bouchard - tél:+1.514.383.3801 - http://artengine.ca/matju
| Freelance Digital Arts Engineer, Montréal QC Canada


More information about the Pd-dev mailing list