For the past several months, some friends and I have been working on a
project for singing together over the internet (
originally). It's still not done, but
this weekend a friend hosted a singing party on it and it went
well. If you're interested in playing with it, you're welcome to
try it out. There's only one
shared instance, and if you want to host something you can book time
on it by sending a calendar invitation to
you run into any problems, please
Unfortunately it currently only works in the Blink-based browsers:
Chrome, new Edge, Brave, Opera, etc. It depends on two new browser
features that other browser engines are working
but haven't added yet.
When you first visit the page it will as permission to use your
If there is currently an event scheduled, it will tell you. Everything
is honor system right now; please don't mess up anyone else's events.
It will ask some clarifying questions, and encourage you to use wired
headphones. Wireless has inconsistent latency, and the system is
dependent on latency staying absolutely constant, while when you don't
use headphones feedback (though not the squealy kind) can be a problem.
It asks you for your name; this is honor system as well. No accounts yet:
It also asks you to choose your input device. Typically starting with the
default is a good approach, and then only coming back here if there's
In order to perfectly line up everybody's voice with everyone else, it
needs to know how much time there is from (a) when it asks the browser
to send audio out to your speakers or headphones until (b) when it
receives audio back in from your microphone. The time from (a) to (b)
depends on your audio hardware, your computer, and isn't even always
consistent if you refresh the page. Worse, we can't just ask the
browser how long this latency is, all we can do is measure it. We
send a series of beeps out the speaker/headphones and time how long it
takes until they come back in the microphone.
There's also the problem that not everyone has a setup where their
computer will detect them as singing at the same volume. Some people
have a microphone right up by their face, other people have won
several feet away. In a video call it typically sets your volume
automatically, but if we use that algorithm, built into the browser,
it will do things like slowly turn your volume down as you hold a long
loud note. Instead, we ask everyone to sing a little bit so we can
set a level for them.
Once you're fully calibrated, you can see who else is on the system
and choose to lead a song or sing along. There's also a rudimentary
chat system so you can coordinate with others.
Glenn, Taymon, and I have worked hard on this, and feedback
is most welcome! It's also open source, if you'd like to look at the
Nice! My friend group was looking for just this kind of thing a few weeks ago, ideally with video as well, and saving a multiscreen recording at the end.
Video would make it a lot more work, though I do think it would be nice.
Often when musicians want to do this they are a smaller number of people and they want the option of multiple takes, so each one will fully record their piece to their satisfaction before sending it on to the next to "overdub".
True. I've been doing this with the 4XCamera app on iPad, it's clunky and doesn't have live collaboration, but for take by take recording it's ok. I heard Acapella was better, but the subscription model turned me off.