[PD] timing question

Claude Heiland-Allen claudiusmaximus at goto10.org
Mon Dec 17 16:20:21 CET 2007

Derek Holzer wrote:
> Thanks, Zen-Master Claudius. Your quantum revelations still leave me 
> wondering, however, what is the minimum time between two events which 
> can be scheduled?

[delay 0] works.

> I teach my students that the reason you can't send audio to "message" 
> (i.e. non-audio) objects is that "message" objects run slower.  While
> this may not be "logically" correct to many of the hackers that live on 
> this list, it is a convenient way to explain the difference to artists 
> just beginning in this world. Block size was the technical answer I gave.

You can send audio to message objects, eg: [tabsend~].  What you can't 
do is have a ( message -> non-clock-aware-audio -> message ) turnaround 
less than a block size, as all messages that can affect an audio block 
are computed before the audio block is computed.

> Now that I know this is false, I need a new explanation. Plus I'd like 
> to know what the limits of message processing speed are. In "real time", 
> please.

Actually, "message" time is in advance of "audio" time, which is in 
advance of "real" time: a message sent to a [vline~] logically occurs in 
the future, compared to the time the [vline~] starts computing the 
particular audio block when the event will have occured, which is in the 
future compared to the "real" time when the audio plays.  (Sorry for 
tense confusion, it's tricky...).

message computation happens before audio computation happens before 
audio playback

Pd has no notion of "real" time, only "logical" time, of which "audio 
logical time" is as close to real time as you are likely to get if you 
don't overload your CPU and cause dropouts.

The limit of message processing speed depends on how fast your CPU is 
compared to the messages you want to process.  No CPU is fast enough to 
compute ( "bang"--[until] ) in a finite time...


BTW, I like how I can turn on [pix_write] and [writesf~] and have 
everything work in logical time (with very many dropouts) and the final 
video be in perfect sync with the sound.  Using [gemhead] for sequencing 
the audio is kinda fun too, but I'm just afraid I'll get bored with 
125bpm ;)

> best,
> d.
> Claude Heiland-Allen wrote:
>> Derek Holzer wrote:
>>> Hi all,
>>> Charles Henry wrote:
>>>> On Dec 17, 2007 3:03 AM, Frank Barknecht <fbar at footils.org> wrote:
>>>>> Hallo,
>>>>> Charles Henry hat gesagt: // Charles Henry wrote:
>>>>>> [metro 1] creates a bang each millisecond, approximately.  The 
>>>>>> message
>>>>>> rate is constrained by the block size, so you would want to put 
>>>>>> [metro
>>>>>> 1] inside of a subpatch with [block~ 1] for best time resolution.
>>>>> That's not true. Message rate is not related to the dsp vector size.
>>>> My mistake.  I thought messages had to run in between dsp blocks.
>>> Someone please refresh/adjust my memory... what IS the message rate 
>>> in PD? I also thought it was related to block size all these years. 
>>> And how can it be changed if needed?
>> There is no fixed rate, it's event-based with continuous time (or as 
>> continuous as floating point numbers gets you).  But - it works with 
>> "logical" time, any relationship to "real" time is purely a coincidence.
>> Claude

More information about the Pd-list mailing list