Don't Sonos, Ultimate Ears, Echo, Google Home etc solve this problem pretty effectively? I know there was a bit of a patent war between them for a while, but don't they still have this feature?
It's not open source or free, but Roon provides multi-zone synchronized playback and has excellent Linux support (including x64 and arm easy install scripts). See:
Many Roon users use Raspberry Pi's as audio "bridge" devices for their various audio setups around the house. There's even dedicated RPi distros that offer Roon packages:
It's not free, to the tune of $10/month! I'm willing to pay for things, but I'm sorry, that's just not workable. I'm not going to pay for yet another subscription service, especially one for my speakers.
I was really hopeful for a competitor to Sonos too. Ah well, back to hoping Google ever brings back Chromecast audio.
Interesting... so this isn't a device-specific firmware hack, but a pipe? Does that mean it only works on things running user-accessible Linux, not your typical smart speaker?
OpenWRT also got it packaged. So a solid and easy way to run it is to just throw the client on some old routers with OpenWRT support, connected to $20 USB DACs with S/PDIF.
Yes, you wouldn't get this running on an existing smart speaker (without first rooting it and some serious hacking).
If you'r in the Apple ecosystem and are using AirPlay with your smart speaker(s), it's however possible to also play synchronized audio across to your own DIY speaker setup, using another open source project.
Or you could of course choose to only use your old dumb speakers with this, and they will pop up as easily selectable sound output devices on all Apple devices connected to your network.
Or combine it (and librespot[2], owntone[3]...) with Snapcast to create a virtual speaker for your whole house that shows up everywhere.
FWIW, most of the patent war was about how Sonos syncs the volume controls so that changing a master volume level changes all the synced volumes. Seems obvious (and therefore unpatentable) but there is an ever-so-slightly-not-quite-obvious-at-first-glance aspect to it.
I believe Google caved on this and doesn’t allow master level control with their devices. And of course they have been counter suing Sonos on other patents as a result.
It has to do with tracking the levels in the group.
You want to be able to slide a master level up and down and have the levels maintain the "same" balance, even if one of the players ends up going to (effectively) zero level when you have turned it down. Takes a little bit of thinking about how you represent the range of the levels.
I think the patent is actually quite a bit broader, and covers using a UI that has a master volume control across players whose individual volume levels are displayed as well.
Google pulled all "master" level control in response.
Those send the actual file data to the speakers, so you're not "playing the audio" so much as each speaker literally playing its own copy of the file, using synced playback timing.
Is that the case even when you're streaming from Spotify or Airplay, or say using their wireless 5.1 setup from the soundbar?
And I mean, in the age of wireless speakers... aren't all digital speakers receiving "file data", whether it's one file at a time or one chunk at a time? What's the difference?
Even if it's just timing data, I don't think I would be able to figure out how to sync up two different devices' times down to that level of precision. A little bit off and you'd build up weird interferences, wouldn't you?