Introducing Bark! Low-latency multi-receiver live-sync lossless audio streaming for local networks. It's like Sonos, but open source, so nobody can brick your devices remotely. It's also written in Rust :)
https://github.com/haileys/barkIt sends 48khz uncompressed float32 data over UDP multicast. It can achieve playback sync to within hundreds of microseconds in ideal conditions, and usually to within a millisecond.
I've been working on it in my spare time over the past week, and I'm pretty happy with how it's shaped up. I have three receivers setup and it works remarkably well at keeping everything in sync as I walk around my house. For now it only really works on Linux, and supports Pipewire (and Pulse in theory), but there's no huge impediment to making it truly cross-platform.
It also features a fancy live stats subcommand, which can used on any computer in the same multicast domain to watch the status of the stream cluster:
bark stats command on my local network. The command reads from ~/.config/bark.toml, and then shows each node in the cluster. There are three receivers, and they are all fairly in-sync with each other, all within a millisecond. <br>There's some other stats too, showing how much audio is in the buffers, the network latency, and the clock prediction offset." title="A screenshot of the
bark stats
command on my local network. The command reads from ~/.config/bark.toml, and then shows each node in the cluster. There are three receivers, and they are all fairly in-sync with each other, all within a millisecond. <br>There's some other stats too, showing how much audio is in the buffers, the network latency, and the clock prediction offset." src="https://hails.org/system/media_attachments/files/110/919/619/565/590/666/original/d96dadb4d370f3ea.png" >