|February 13th, 2021
|audio, bucket_brigade, tech
Backing track, lyrics, and image uploads. When singing or playing with a group of people, it can be useful to have something to coordinate on. When someone leads a song, before they start singing they have the option to upload an mp3, text, or image to share.
An mp3 will be treated as being in a bucket before the very first bucket, while text and images will show on everyone's screens.
All of these are ephemeral.
Three mute states. With larger groups you typically want to have a setting like "muted during the conversational parts, unmuted during songs", so this is now an option.
When you've chosen it you can either click a button to turn your mic on, or you can hold down spacebar to talk. If you join a call with a lot of people in it, it will default to the setting, and it gives you a little pop-up to let you know you're starting muted.
Explanatory text. Historically, I or someone else would need to do a lot of talking to explain how all of it worked. At this point, I've put in enough in-line help text that if you're willing to read the instructions you should be good on your own.
Network quality meter. There are little green boxes at the bottom of the page that tell you how well your network is doing. If you're having trouble keeping all the boxes lit, you probably want to try to move closer to your wifi router.
Technically, what the boxes are measuring is how much time it's been since the local audio buffer ran dry.
More robust mixing console. The previous iteration of the console was built to be just good enough to support the mixing I needed to do during solstice, but now it no longer breaks horribly if multiple people try to use it at the same time. You can also now monitor multiple people. I've promoted it from the "Debug" tab to the "Advanced" tab.
[beta] Presentation mode. If you want to run a concert or virtual contra dance and bucket brigade, I think you probably want to stream its output to Zoom or something instead of having all of the attendees join. I'm not entirely sure how you would handle of the audio routing for that, though it will probably involves some kind of virtual device that captures the output from the browser, but I've been working a version of the interface for streaming:
There's a checkbox on the debug page if you want to try it. Still experimental.
Indicators for mute status and current speaker status. People who are muted have a red outline, while the current speaker (ignoring yourself) has a green outline.
Password support. While I don't think anyone has run a password-protected event yet, it is possible. You enable password support by putting a hash of the password into the calendar event. It is a very minimal form of security, and it's only checked client side, but the goal is to let you avoid the risk of uninvited guests if that is important to you. If this does end up being something people want I'll move the verification server side, at which point it will actually be pretty robust.
Bucket assignment. If you are spectating or muted, it will now try and put you after everyone else. Since no one is going to hear you anyway, might as well let you hear as many people as possible. Of course you can still jump earlier if you would like to hear what it sounds like in other buckets.
Chime. It plays a little chime when someone joins the video call. This is very minor, but was fun to write. Getting it to play a piece of recorded audio was too annoying, so I synthesize the time each time we need to play it. It runs for a quarter of a second, with a linear sweep down from 2kHz to 400Hz and back.
Better support for small screens. I have a pretty big screen attached to my laptop, so I often forget that many people are on screens with fewer pixels. Early versions were pretty painful on those screens, with lots of space allocated for minor things and a lot of scrolling.
Bug fixes. So many.