{"id":118,"date":"2013-04-21T09:11:00","date_gmt":"2013-04-21T08:11:00","guid":{"rendered":"http:\/\/www.celesteh.com\/blog\/2013\/04\/21\/david-ogborn-espgrid\/"},"modified":"2015-06-19T00:23:12","modified_gmt":"2015-06-18T23:23:12","slug":"david-ogborn-espgrid","status":"publish","type":"post","link":"https:\/\/www.celesteh.com\/blog\/2013\/04\/21\/david-ogborn-espgrid\/","title":{"rendered":"David Ogborn: EspGrid"},"content":{"rendered":"<p>In Canada, laptop orchestras get tones of gigs.<br \/>\nNaive sync methods: do redundant packet transmission &#8211; 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 &#8211; so send a measure instead of just sending a beat.<br \/>\ndownload it from <a href=\"esp.mcmasters.ca\">esp.mcmasters.ca<\/a>. mac only<br \/>\n5 design principles<\/p>\n<ul>\n<li>Immediacy &#8211; launch it and you&#8217;ve got stuff going right away\n<li>Decentralisation &#8211; everything is peer to peer\n<li>Neutrality &#8211;  works with chuck, supercollider, whatever\n<li>Hybridity &#8211; they can even use different software on the same computer at the same time\n<li>Extensibility &#8211; it can schedule arbitrary stuff\n<\/ul>\n<p>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.<br \/>\nThe &#8220;private protocol&#8221; is not osc.  It&#8217;s going to use a binary format for transmission. Interoperability is thus only  based on client software, not based on the middleware.<br \/>\nBecause the Grid thing runs OSC to clients, it can run on a neighbour&#8217;s computer and send the osc messages to linux users or other unsupported OSes.<br \/>\nThe 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.<br \/>\nArbitrary osc messages will be echoed out, with a time stamp. you can schedule them for the future.<br \/>\nYou can publish papers on this stuff or use it to test shit for papers.  Like swap sync methods and test which works best.<br \/>\nReference Beacon does triangulation to figure out latencies.<br \/>\nHe wants to add WAN stuff, but not change the UI, so the users won&#8217;t notice.<\/p>\n<h3>Question<\/h3>\n<p>Have they considered client\/server topology for time sync?  No.  A server is a point of failure.<br \/>\nSecurity implications? He has not considered the possibility of sending naughty messages or how to stop them.<br \/>\nLicence? Some Open Source one&#8230; maybe GPL2. It&#8217;s on google code.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In Canada, laptop orchestras get tones of gigs. Naive sync methods: do redundant packet transmission &#8211; 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 &#8211; so send a measure &hellip; <a href=\"https:\/\/www.celesteh.com\/blog\/2013\/04\/21\/david-ogborn-espgrid\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">David Ogborn: EspGrid<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"activitypub_content_warning":"","activitypub_content_visibility":"","activitypub_max_image_attachments":4,"activitypub_interaction_policy_quote":"anyone","activitypub_status":"","footnotes":""},"categories":[1],"tags":[54,59,11,4],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-uncategorised","tag-live-blog","tag-live-code","tag-music","tag-network-music"],"_links":{"self":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/comments?post=118"}],"version-history":[{"count":1,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":2313,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/posts\/118\/revisions\/2313"}],"wp:attachment":[{"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/media?parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/categories?post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.celesteh.com\/blog\/wp-json\/wp\/v2\/tags?post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}