Ask HN: Can there be a true real-time collaboration over any distance on earth?
I made the following simple calculation - the biggest distance on earth between 2 points would be 1/2 * 40000km (the circumference of the Earth on the equator) = 20000km.
Lets say these 2 points are connected with an absolutely straight optical fibre. For simplicity's sake, there are no penalties for signal amplification and repetition and the speed of the signal is 300000 km/s.
From these const's we get that the latency (in milliseconds) of this signal would be:
1000 / ( 300000 / 20000 ) ~ 67 milliseconds.
So, 2 people, 1 in Sydney AS and the other in London UK, will have a theoretical min latency = 1000 / ( 300000 / 16983 ) ~ 57 milliseconds.
While this might seem OK, its far away from it - when a piano player plays on a midi keyboard, the perceptible latency between hitting a key and hearing the sound starts from 10 milliseconds, grows annoying on 20 and for most becomes hard (even impossible) to play from >30 milliseconds.
If I was to attempt to design a solution I would probably divide earth's area on regions, but still I am not sure what the real distance would be for latency <=10 milliseconds?
It will be really interesting to read your thoughts on this topic.
40 comments
[ 3.4 ms ] story [ 90.1 ms ] threadNinjam[1] arranges realtime music collaboration by exploiting musical structure and its construction in intervals. Human collaboration which can be similarly structured could still be arranged to work with.
Counter examples: games appear to work over latencies because a lot of them are about restricting other's agency and making an experience worse (i.e. not true collaboration) 2d fighting game can be seen for instance as two game designers attempts to make a game worse for the others. It would be interesting to study why games like left4dead (which requires team play and collaboration) still work.
[1] http://www.cockos.com/ninjam/
As you've observed, even under theoretically perfect conditions, the latency is much more than would be tolerable for true real-time applications. And that's not even counting the time spent in hardware, on the various cpus in the path, buffers, etc.
I guess the current speed, judging by [1] is about 200000 km/s (for light in optical fibre), which leads to 2000 km radius (or diameter, if more than 2 parties are involved).
[1] https://news.ycombinator.com/item?id=7862412
For videoconferencing, musical-instrument-playing (as in your example), or multiplayer video games with less latency than the speed of light appears to allow, you could take advantage of Libet's work (see http://en.wikipedia.org/wiki/Neuroscience_of_free_will) showing that with neural interfaces you can reliably predict people's physical actions hundreds of milliseconds before they actually do it … which would give you hundreds of milliseconds to send off the signal and get a response which you play back to them "instantly" when they perform the action.
Your math is also slightly off because the speed of light in fiber optic is only 200000km/s, so the minimum latency between two opposite points on the globe using fiber is 100ms.
PS: The circumference of the earth is also 40 thousand km not 40km, so I suppose the correct notation is 40Mm, although that's unusual.
I left 300000 km/s, because I thought that maybe this is the absolute theoretical limit (there might be some breakthrough in reflective materials, who knows?).
Sorry for the typo of the circumference of the earth, I think I've fixed it before your comment. https://news.ycombinator.com/item?id=7862387
It would be hard to do a distributed band. It's an interesting case because it's not a question-response situation where the roundtrip is crucial, because for the most part each musician is playing independently and only listening to the rest to stay in sync. I wonder if you could do this:
1) Have every member stream to every other member directly with an accurate absolute timecode (good NTP-adjusted or even GPS clocks)
2) Have every member mix in all the streams using the absolute time code and buffering as much as needed for the slowest stream (so you'd have 100ms of buffer in the worst case).
This would give you a synced up band where every member listens to the same mixed stream and yet everyone is listening to themselves on a slight delay. I wonder how well our brains could cope with that introduced delay and if it would then screw up live performance, or if we can adapt to that sort of thing quickly.
Too true. Early on, when people were still connecting over modems, the ping times were pretty much guaranteed to be well north of 100ms, even to servers that were relatively local. As universities started getting equipped with expensive low-latency/high-bandwidth internet connections players started getting <100ms pings and as a result these "low ping bastards" (lpb) ended up dominating servers.
Very quickly hpb and lpb servers developed to serve and enforce a bifurcation of the two groups of technology users. Scripts usually ran to kick/ban lpb players from hpb server and to warn hbp players they were on an lpb server.
Importantly, if you get get <100ms ping times, the predictive engines in the games (designed to help "help ping bastards" or hpb players) solved most of the rest. A good player with a <50ms ping was virtually unstoppable.
You could also tell when certain players were likely cheating, Team Fortress snipers with >200ms pings but incredibly high kill:shot ratios were usually the form it took on the games I played. From their perspective, everybody was jumping around in huge gaps and prediction by the player, even once you got used to the lag, would have been virtually impossible.
I used to work at an ISP connected to a tier-1 provider connected to MAE-EAST and routinely had 10-20ms ping times and enjoyed high placement on leaderboards for quite a while.
More recently, with my in-laws now on the other side of the planet, and having spent some time conversing on Satellite Communication links, 500ms for voice communications is doable, but definitely disruptive.
On a sidenote, I checked pingtimes from my FiOS connection to Japan (yahoo) and to a local server and inside my home network.
Home Network: <1ms
Local site (10 minutes away): <25ms 12 hops
Japan: <200ms 16 hops
http://livingwithlag.com
I would love to be able to jam with friends over long distances. For this to actually be enjoyable without frustration the latency would have to be no more than 5-10ms.
I wonder how much latency a local telephone call would use? Then maybe it is possible to set something up where you jam over the telephone line and each musician can hear each other just fine.
[I realize that such instruments as table tops and cutlery are readily available, but I wonder if restricting regular practice to an electronic instrument with artificial lag would counter this. Possibly the music would only be enjoyable to others who practised similarly..]
So even if you are in a conversation with people directly in front of you, you do not actually have a real-time system. It takes roughly 400 ms until the image of a face of a person standing in front of you is processed in the ventral stream and is actually detected. On the other hand there is the auditory modality which is much more sensitive to latencies. But in the end the brain gives you the illusion that anything you perceive is actually real-time, although it is not. So if your brain decides to give a motor signal to actually press a piano key, then only many 100 ms later the actual sound will arrive. The perceptible latency of hearing a sound is actually only because the brain itself takes into account the delays in itself.
So in the end it comes down to trick the brain into believing something is real-time. This is for example done in multiplayer ego-shooters where the motions of other players are actually interpolated into the future and later on corrected if the other player actually changed their last motion command.
[1] Barragan-Jason G, Besson G, Ceccaldi M and Barbeau EJ (2013) Fast and famous: looking for the fastest speed at which a face can be recognized. Front. Psychol. 4:100. doi: 10.3389/fpsyg.2013.00100
http://en.wikipedia.org/wiki/Superluminal_communication
When talking on the phone to someone on a satellite phone in a distant desert, you get a noticeable delay but its not a problem.
"Real time collaboration" anywhere on earth has worked for a century.
However, it's important to note that FPS games use a lot of tricks with client-side estimations to infer the game state. But depending on the application, you could probably use similar tricks to make things feel responsive.
I have to check something, though - how do things change if all musicians tracks go through a mixer and everyone listens to his own mix in headphones. On stage, the delay from the main speakers is huge for the perfomers. That's why they have either in-ear headphone or speaker monitor. Can't this work for symphonic orchestras? And does it solve their latency problem?