In Canada, laptop orchestras get tones of gigs.
Naive sync methods: do redundant packet transmission - so send the same value several times in a row. This actually increases the chance of collision, but probably one will get through. Or you can schedule further in advance and schedule larger chunks - so send a measure instead of just sending a beat.
download it from esp.mcmasters.ca. mac only
5 design principles
- Immediacy - launch it and you've got stuff going right away
- Decentralisation - everything is peer to peer
- Neutrality - works with chuck, supercollider, whatever
- Hybridity - they can even use different software on the same computer at the same time
- Extensibility - it can schedule arbitrary stuff
The grid has public and private parts. EspGrid communicates with other apps via localhost OSC. Your copy of supercollider does not talk to the larger network. EspGrid handles all that.
The "private protocol" is not osc. It's going to use a binary format for transmission. Interoperability is thus only based on client software, not based on the middleware.
Because the Grid thing runs OSC to clients, it can run on a neighbour's computer and send the osc messages to linux users or other unsupported OSes.
The program is largely meant to be run in the background. You can turn a beat on or off, and this is shared across the network. You can chat. You can share clipboards. Also, Chuck will dump stuff directly.
Arbitrary osc messages will be echoed out, with a time stamp. you can schedule them for the future.
You can publish papers on this stuff or use it to test shit for papers. Like swap sync methods and test which works best.
Reference Beacon does triangulation to figure out latencies.
He wants to add WAN stuff, but not change the UI, so the users won't notice.
Have they considered client/server topology for time sync? No. A server is a point of failure.
Security implications? He has not considered the possibility of sending naughty messages or how to stop them.
Licence? Some Open Source one... maybe GPL2. It's on google code.