Comment by mongol
6 years ago
I have replaced my Chromecast Audio with Raspberry Pi with a Snapcast client. On the Snapcast server side I run a DLNA renderer ("gmrender resurrect"). This allows me to cast audio synchronously to multiple speakers using the Android app Bubble UPNP. Basically, instead of clicking the cast button in an app, I select share, then Bubble UPNP. One advantage to this is that I can "cast" Youtube and get the audio, which Chromecast audio does not support.
Btw, Snapcast works great.
The latency of your suggestion is making me cringe. Mpd if you desire a sonos-like synchronized low-lag experience. Streaming direct to pulseaudio is also an option, but requires bandwidth (uncompressed audio)
What latency are you referring to? Latency between the source and the sound from the speaker? For me is this only a problem for the audio that goes with video. For pure music I don't mind. But in the video case I switch to pulseaudio directly but obviously lose the multispeaker setup.
Your setup streamed to two different rooms will have two distinct delays of the source audio. Probably fine for most use cases, but drives me nuts and why consumers head to sonos.
Pulseaudio can stream to multiple speakers and audio devices simultaneously. Switching to JACKd instead of gstreamer for the pulseaudio backend allows for a much more powerful audio processing subsystem (at the expense of resources since jackd likes a real-time kernel). Using mpd allows for a lightweight low latency server/client to stream audio to remote destinations. It’s not quite plug and play (DLNA doesn’t care about synchronization) but dropping mpd onto a raspberry pi is the simple fix (and simulates the hardware inside of a sonos speaker)
I’m sorry I’m on mobile or i would make a diagram showing this in detail. I’ve been thinking of what an open source Sonos clone would look like for a long time. Maybe it’s time to open up that git repo to the public
1 reply →