Metasyntactic
Posts: 13
Joined: Tue Dec 08, 2015 8:32 pm

Synchronized Multiroom Audio

Mon May 28, 2018 2:10 pm

I've been working the last few months on a homebrew version of Alexa for my home. I'm currently installing a Raspberry Pi 3 b+ with a respeaker in every room and intended to put in Pyle bluetooth speakers. Right now, a Pi runs hotword detection on all audio it receives from the respeaker and passes on appropriate audio, over ethernet, to my PC, which runs my smart home functionality as well as speech to text and text to speech services. The PC manages all the house operations. For whatever relevance it may hold, I'm planning on setting up a synology NAS to store and manage all my media.

Whatever solution I go with needs to be able to play audio through Pis individually or synchronized audio through a group of them, as delegated through the PC. I'd also like to be able to play multiple files at the same time (for example, have a music stream play at lower volume while the system plays a text to speech message). I also need whatever solution I go with to have some form of api to allow me to programmatically control what files are playing.

I'm wondering what type of solutions are available to me. I've been looking at using JACK, which has a lot of glowing reviews. Squeezebox seems to be the standard but it looks like support is being phased out. There's also Plex but I haven't looked into it that deeply. I've also seen people discussing using pulseaudio setups but haven't heard many reviews. Do any of these solutions lend themselves well to my application or are there any better options out there? I'm kind of trying to avoid spending a lot of time playing with something only to find it won't work.

epoch1970
Posts: 3864
Joined: Thu May 05, 2016 9:33 am
Location: Paris, France

Re: Synchronized Multiroom Audio

Mon May 28, 2018 4:30 pm

LMS is not phased out, the hardware players were.
It does what you want (API, multi synced, multi separate) except "any source". To keep players in sync the server is the source, so with standard setup and usual plugins this means sources are files available to LMS and radios. After that you can fiddle with the design and inject PCM into the server (like the CD-player plugin does) but it gets complicated if the source is a remote PC. There is noticeable latency between input and stream output, so something like lip-syncing will not work via LMS.

AFAIK: Plex is not multiroom. Pulseaudio will network "any source", but sends PCM over multicast and wants bandwidth. Snapcast is a "many sources" and unicast alternative to PA. Never used it.
"S'il n'y a pas de solution, c'est qu'il n'y a pas de problème." Les Shadoks, J. Rouxel

Return to “General discussion”