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/bark

It 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:

GitHub - haileys/bark: live sync audio streaming for local networks

live sync audio streaming for local networks. Contribute to haileys/bark development by creating an account on GitHub.

GitHub

it is so so so cool to hear some music playing in my lounge room, and then on my desktop run `systemctl --user start bark-receive`, and hear the exact same thing out of my computer speakers.

The stream source is hooked to line-in on the lounge room server, so it can cast to the network anything playing from my cheap little spotify/airplay/bluetooth/etc stream box, or the Apple TV, or my FM radio even.

The latency added by Bark is basically imperceptible too!

@hailey is that all ethernet devices? How does wifi do? How big is the jitter buffer/input latency? The project sound exactly what i was searching earlier! Thanks for sharing!
@dunkelstern @hailey Wifi does _terribly_ since it'll be stuck at 6 Mbit/sec max