Bucket Brigade Singing

November 3rd, 2020
audio, bucket_brigade, singing, tech
For the past several months, some friends and I have been working on a project for singing together over the internet (previously, previously, 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 gsc268k1lu78lbvfbhphdr0cs4@group.calendar.google.com. If you run into any problems, please file a bug.

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 on adding but haven't added yet.

When you first visit the page it will as permission to use your microphone:

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 a problem.

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 one 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 code.

Referenced in:

Comment via: facebook, hacker news, substack

Recent posts on blogs I like:

Thing of Things AI use policy

dynomight recently wrote an article calling for bloggers to state publicly whether and how they use AI

via Thing of Things July 6, 2026

Agentic test processes, LLM benchmarks, and other notes on agentic coding from Galapagos Island

I've been using AI fairly heavily since last November and the whole thing is a funny experience. An agent will do something that, if a human did it, you'd immediately fire them. My reaction, of course, is to act as if this is great and spin up a t…

via Posts on July 3, 2026

Variable fonts aren't universally supported

I make a lot of webpages. I also use Lockdown Mode on iOS and MacOS for a bit of extra security. Sometimes I realize that I forgot to test on Safari and it looks like crap, or I test and don’t notice that there’s been a problem for months (as was the case…

via Home June 27, 2026

more     (via openring)