The biggest pain point with Bucket Brigade has been that you generally wanted to be running a video call in parallel. You kept needing to switch windows, and you needed to remember to mute and unmute in the call at the beginning and end of each song. Solstice used Twilio Video, which packages up WebRTC with server-side support and a developer-friendly API, and I decided to integrate it as well. Now when you join you'll see it ask for camera permissions:
Before showing your video to anyone else, it will ask you whether you are OK with it:
Since I have an external camera with a better angle, I'll press "Switch camera":
Now I'm happy, so I'll choose "Use this camera", but it will also work fine if you choose "Continue without camera".
Once you're in, you'll see all the people in their buckets:
During a song you hear people via Bucket Brigade, and the rest of the time you'll hear people through the video call. Since we aren't doing anything custom for the videos, you'll see people out of sync with their singing. At some point it would be nice to try routing videos through a server we control, so we can add appropriate amounts of latency. Adding latency on the server would not be precise enough for audio, which we need aligned at the millisecond level, but I think it would be ok for video? Of course there's nothing you can do for video for buckets after you...
The hardest part of the integration was getting it to behave correctly around people turning their video on and off. Twilio's recommended approach doesn't turn the camera light off when you turn your video off, which seems broken to me, so I took their not recommended approach of unpublishing video tracks. This changed which events I need to listen to for video being re-enabled, but once I got it all working it seems reliable.
Previously Bucket Brigade was cheap to run: it essentially only needs CPU and bandwidth, and the bottom-tier VPS (~$5/month) that powers jefftk.com can handle about 40 simultaneous users. Twilio calls cost 25¢/person/hour, which is reasonable but not negligible. I'm hoping to keep it free to play with, and if the cost starts adding up we'll probably ask if frequent users could chip in?
Comment via: facebook