[chuck-users] other ways to live-code with time

Mark Cerqueira mcerquei at princeton.edu
Wed Apr 29 13:22:13 EDT 2009

I've spent this semester doing some independent work with Perry and Dan 
on how to get good network synchronization for PLOrk so that we don't 
need a conductor and can focus on doing other things. I implemented a 
Time-Tagged OSC protocol similar to the stuff Adrian Freed does. 
Essentially the protocol first synchronizes everyone's clock via a 
protocol that is based on the Network Time Protocol (NTP). On the PLOrk 
network, one machine runs as a NTP Server and all others run as NTP 
Clients - NTP Clients calculate the offset of their VM time to the 
server VM time, as well as keeping track of the round-trip time of 
packets sent to synchronize to account for that in the offset.

Once the clocks are synchronized, packets sent over the network include 
the current time (which should be synchronized pretty closely if the 
above protocol works) and a time-to-execute offset. When someone 
receives the packet they add the current time plus the time-to-execute 
offset and schedule the packet to be opened only at that time. The 
NTP-like synchronization protocol I described above also keeps track of 
all RTTs and broadcasts to everyone what a good time-to-execute field is 
(i.e. make sure we give enough time for the packet to travel over the 
network). If all works well, everyone should open the packet at the same 

Not sure how successful this implementation will be...I'm testing it 
tomorrow during PLOrk rehearsal! If anyone's interested in seeing the 
code/my write-up I can pass around a copy once I *crosses fingers* 
complete it and hand it in on Monday.


Tom Lieber wrote:
> On Wed, Apr 29, 2009 at 12:28 PM, Kassen <signal.automatique at gmail.com> wrote:
> Yeah, a wireless network. And for whatever reason (AirPort updates, OS
> X updates, variation in laptop hardware), timing issues got worse from
> the previous year. Actually, I don't know how this was solved in the
> end, because I think things had improved by the end (or maybe we
> stopped relying on the network so much and I didn't notice)...
> On Wed, Apr 29, 2009 at 12:27 PM, Daniel Trueman <dtrueman at princeton.edu> wrote:
>> On Apr 29, 2009, at 11:36 AM, Tom Lieber wrote:
>>> A lot
>>> of rehearsal time in PLOrk this past semester was dedicated to
>>> synchronizing the performers because we lacked good network
>>> synchronization.
>> i've come to view this as a feature, not a bug... ;--}
> I chose my words carefully! There's no way I can view getting
> everybody to practice being in sync as a bad thing, but having the
> option of good network synchronization means we can make pieces where
> players can give their full attention to something else, like making
> patterns in beepsh.

More information about the chuck-users mailing list