<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
well, we actually do a lot of synchronization over the network, and it works amazingly well (with UDP). it's nowhere near sample accurate, but it's musically powerfully accurate, and it's important to keep in mind that "accuracy" in something like plork is not easy to define, since all the sound sources (multichannel hemispheres) are spatially separate and there is a lot going on with phase -- the speed of sound becomes a major factor!<div><br></div><div>if you are mixing multiple computers with a mixer, then i can well imagine that network sync will be insufficient, but when the room is doing the mixing, it is almost overly accurate; it feels un-natural how well a large ensemble can sync this way (and it is!).</div><div><br></div><div>dt<br><div><br><div><div>On Jan 27, 2009, at 7:39 PM, kevin wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">nobody in plork or slork is synced, which is, in my opinion, one of its stronger points. the music sounds more attached to the performers and less attached to a computer, if that makes any sense.<br><br>intra-computer sample-accurate syncing over a network is difficult because neither TCP nor UDP are suited to such things. TCP guarantees packet delivery by requiring a call-back (sometimes called a handshake). if the sender does not receive a call back, it assumes that the packet was dropped and then resends info. this works for things like websites, where the request is not time-sensitive.<br> <br>UDP on the other hand, does NOT guarantee packet delivery, and thus expects no call back. when packets get dropped over UDP, the sender is not notified, so the sender will not resend. this is better in situations like VoIP, where a single dropped packet will not ruin the audio stream (sure, there'll be a noticeable glitch). the idea is that if you're talking to someone, you'd rather hear a glitch than hear that packet arrive 5 seconds later.<br> <br>without modification, neither are sufficient for real-time synchronization.<br><br>and even if they are, wifi bandwidth will definitely get in your way. i haven't looked at any numbers, but i'd intuitively guess that wifi drops more packets than wired.<br> <br><br><br><div class="gmail_quote">On Tue, Jan 27, 2009 at 4:15 PM,  <span dir="ltr">&lt;<a href="mailto:james.hurlbut@utoronto.ca">james.hurlbut@utoronto.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> I see. so none of the Plork pieces are dependant on precise synchronization? I guess because I am coming from a dance music background its more critical for me that the music is running off a master clock. I was thinking that Chucks strongly timed quirkiness would enable me to send sample accurate osc messages albeit at a very high speed cost. I suppose I can try midi but was hoping for a wifi solution.<div> <div></div><div class="Wj3C7c"><br> <br> Quoting dan trueman &lt;<a href="mailto:dtrueman@princeton.edu" target="_blank">dtrueman@princeton.edu</a>>:<br> <br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> i don't think there is any way to get sample-accurate sync via<br> conventional networking...<br> <br> dt<br> <br> On Jan 27, 2009, at 6:51 PM, <a href="mailto:james.hurlbut@utoronto.ca" target="_blank">james.hurlbut@utoronto.ca</a> wrote:<br> <br> <blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"> Hi, chuck newbie here. I am wondering what the best way to get sample<br> accurate sync between two laptops. I have tried using<br> <a href="http://music.princeton.edu/%7Edan/plork/autosocket_chuck.zip" target="_blank">http://music.princeton.edu/~dan/plork/autosocket_chuck.zip</a> but the two<br> computers receive the 16th beats at slightly off times. I also have<br> tried sending an osc message every sample or 100 samples but that<br> completely bogs down the machine. Is the solution to have one machine do<br> all the audio and another just send program changes? Thanks,<br> <br> James<br> <br> <br> <br> _______________________________________________<br> chuck-users mailing list<br> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br> </blockquote> <br> _______________________________________________<br> chuck-users mailing list<br> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br> </blockquote> <br> <br> <br> _______________________________________________<br> chuck-users mailing list<br> <a href="mailto:chuck-users@lists.cs.princeton.edu" target="_blank">chuck-users@lists.cs.princeton.edu</a><br> <a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users" target="_blank">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a><br> </div></div></blockquote></div><br><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">chuck-users mailing list</div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="mailto:chuck-users@lists.cs.princeton.edu">chuck-users@lists.cs.princeton.edu</a></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><a href="https://lists.cs.princeton.edu/mailman/listinfo/chuck-users">https://lists.cs.princeton.edu/mailman/listinfo/chuck-users</a></div> </blockquote></div><br></div></div></body></html>