[PD] tight syncing of two pd machines...

chris clepper cgc at humboldtblvd.com
Tue Dec 16 18:57:36 CET 2003

At 9:47 AM -0500 12/16/03, B. Bogart wrote:
>I need to do some syncing, but not sample accurage, 1/60th of a second would
>be sufficient I think.
>Do I need to worry about jitter? What delay size is commonly needed for
>sample-accurate stuff?

SuperCollider uses timetags to schedule events if I'm not mistaken. 
The thing about timetags is that you have to schedule everything in 
the future - you cannot say 'do this NOW!'

I would look into setting up an object that would keep track of a 
timeline and fire off received events at the specified time with an 
acceptable amount of granularity and jitter.  This could be placed at 
either the send or receive end of the chain and do something like 

myType  *eventQueue; //holds all the event data
int	event;  //which event in the queue

if (timenow+ jitteroffset + granularity <= timenow + interval) {

	//there is enough time to this event and it's within the 
specified window
	//send out the float or list or symbol in 
eventQueue[nexttime] to an outlet

	event++;  //increment by the callback interval of the timer

	//possibly call s_clockdelay

	//whoops not enough time for out event
	//figure out what to do with a missed opportunity ;)

This would most likely achieve Ben's 1/60 of a second accuracy, but 
sample accurate timing would probably require a DSP loop.


At 10:19 AM +0100 12/16/03, Hans-Christoph Steiner wrote:
>Well, if you can get the timetag aspect of OSC working, then it 
>would  be good.  You just need to set the delay on the OSC timetags 
>to be  greater than the jitter, then it will be reliable (as 
>reliable as your  computer's clock).  That is, of course, depending 
>on implementation.  
>Many if not most OSC implementations do not do timetags, AFAIK.

More information about the Pd-list mailing list