How does Rehearsal Live Share handle latency?
The holy grail for this type of feature is to have a full ensemble singing, playing and - most importantly hearing - together as if they are in the same room. Anyone who has experimented with music-making over Zoom or other platforms knows the hearing part usually fails. This is because of latency. One person on the call may hear the audio a half second late. Another might get it after a quarter second. With different delays for everyone, it becomes impossible to synchronize and perform as a unit.
We understood this dilemma from the beginning. At first we thought we might tackle it by limiting the scope to users within a small geographic region, performers within a 30 mile radius, say. You couldn't in that case use RLS with people across the country, but we reasoned people in a show would probably live close together - and therefore it would be more plausable. However, after a solid bit of coding and testing, we concluded that even with short distances, latency would likely creep in. This is due to a long established problem known as bufferbloat. There is just no getting around the fact that each users' data travels over different routes, involving different switches, relay equipment, and buffering schemes. In short, there's no way to control bufferbloat from the software side. If there were, you'd probably already see this feature on Zoom and elsewhere.
So we pivoted…
We realized that the holy grail, as cool as it undoubtedly would be, is really more of a performance experience. We could still offer something unique and value added by focusing on the rehearsal side. RLS is aimed at the music director/teacher interactions with the performers/students. Multiple singers can rehearse together, each singing to the music. They would not hear each other, but the music director/teacher would hear everyone. The MD/teacher gets the full sound with all voices and accompaniment in sync, mixes each part independently, gives notes in real-time ("Watch the pitch, Linda…"), can play or share the full recording back to the group, and more. In this way, we get around the latency problem and create a powerful, first-in-class tool for remote rehearsing.