Recommendation for OpenSource Whole home audio?

Hi,

I currently use a Squeezeplug server/player on a Raspberry Pi 1 to stream internet radio and some songs on my NAS home server. It uses the Logitech Media Server, which as a standalone system serves me very well. I want to upgrade the audio in my house, preferably with a whole home audio solution similar to Sonos where I can select the stream and where to stream it to. I have read this article on the main page before, so I know this would work well with HA.

What I am curious about though is, alternatively to a manual install of mopidy and Snapcast (and possible UI? HAvne’t tried this yet) is there another solution that would suit these needs:

  • Can connect with HA and status updates/is controllable/etc.
  • Has a Web UI interface (minimum) or app support for ease of control from smartphone/tablet
  • Can interact with internet radio streams, local music (MP3 and Flac) and Spotify as a minimum.

Figured there are other distributions out there that I may not know about. Volumio is close, but no Snapcast/mopidy support.

Apart from HA, I would suggest Vortexbox. http://vortexbox.org/about

its basically the Logitech Media Server but allows multiroom or squeezeplay/dlna support.
Also has Sonos support, and android/ios apps for sqeezeplay/mpd, etc

If you were going with rPi Squeezebox player (https://sites.google.com/site/picoreplayer/home) for each room with speakers, Vortexbox should handle it all. It can interface the MAC of a device to a output.

I’ve only setup 2 PC’s and android and sync’ed music with it and know it works, its pretty stable, we have it at work to stream music on a old laptop.

I really recommend http://ejurgensen.github.io/forked-daapd/ you can play to airplay speakers and also chrome cast. Remote control applications exist for Android and iOS. It can be controlled via mpd component from home-assistant as well

Hi @HickHackerz and @snizzleorg

I’ve been looking all day into the options you both mentioned, and I find pros and cons to both. I ended up doing more research on just Snapcast itself, and came to realize that it works with more than just mopidy; but anything based off it or mpd. So, i’m back to the first choice I came across: Volumio which has Spotify support as well as internet radio (although, I have to find how to add my local radio stations to this one), local files, and most important, controllable from HA (appeared as soon as I added the server).

I’ll work on trying to add the Multi-Room Audio support on the weekend. It looks pretty straight forward with installing the .deb and changing 1 line of configuration; just hope adding the player support is as easy.

Thanks again!

just to mention: forked-daapd has spotify and internet radio support as well.

I’m using snapcast at home and it works very well.

At first I ran it together with Mopidy, but noticed that a) I mostly use Internet Radio and Spotify and b) it is quite annoying to have to switch apps all the time (Spotify, HASS, Mopidy Client). So I ended up running running Spotify Connect Web and Radio.py controllable via HASS. This reduces the apps to HASS & Spotify.

On advantage of snapcast is the smal footprint of the client software. I have it running on a couple of TP-Link WR710N OpenWRT routers. Cheap and easy.

FWIW I’ve been using Logitech Media Server (Squeezebox) for years to stream music throughout my house and it’s still outstanding. I usually have music playing to multiple rooms, synchronized, without any problems at all. (Amazing to me how this all just works, to be honest. And how much more affordable it is than Sonos.)

Just in case anyone here isn’t aware, there are newer versions of the server software past the official releases and plenty of people are still developing useful plug-ins and client & controller software.

Most discussion happens here, near as I can tell: http://forums.slimdevices.com/

Latest & greatest LMS is 7.9, which you can find here: http://downloads.slimdevices.com/nightly/

(Don’t be confused by the existence of version 10-- that’s from when Logitech tried to turn Squeezeboxes into UE boxes-- it’s a long story, but most people by far prefer the older software which is now newer software really since I don’t think 10 is being developed while 7.9 is. Numbers, man.)

Given how old the software is by now, many are surprised when they learn it supports Tidal, Spotify, Pandora, other services I’m less familiar with. And Airplay and Chromecast.

There’s lots that can be done at the command line which likely could be integrated further into a HASS setup, I haven’t delved into it yet myself.

hi @lakrahn

Thanks for pointing back to LMS. i’ve downloaded the latest nightly, and have my local internet radio working. But, Spotify now does not work. I have my account linked up through the website, but when I try to play a playlist it just skips through each song one after the other.

Is Spotify support working for you, or is this just me? I’ve installed it using the max2play os…

I’m running Mopidy+Snapcast+HA (my blog post is linked) and can answer any questions people have about that setup. It works great for me.

hi @happyleaves

I don’t see a link to your blog post. Could you post it again please?

Thanks,

EDIT: Nevermind, found the link. I think I tried this and it failed for me. I’ll try again on the long weekend. Thanks again!

I don’t use Spotify so am no use there, but if I recall correctly there are multiple Spotify plug-ins available for LMS these days so maybe check which one you’re using and try a different one? Checking the aforelinked forums where they talk about LMS might be good if it’s still an issue, there are probably topics specifically for Spotify and/or the specific Spotify plug-ins.

Not sure why forked-daapd doesn’t get any love here. I think its by far the best solution if you don’t want to buy into a songs system.

@lakrahn

Not sure I know what you mean by plugin.Doesn’t this all work through the Mysqueezebox website? I have Spotify enabled through there - thought that was all that was needed.

@snizzleorg

Not easy enough to implement. If forked-daaped was it’s own distro, tuned right to the beginner music uesr, it would be great.

Currently i’m still using mopidy, but I’m not sure where I want to go. If I could get LMS to work, it would be perfect but just can’t get Spotify to work at all.

@happyleaves

Hi, just wanted to say thanks to you and your guide, i’ve gotten to the point that I have multi-room audio working wonderfully though my Raspberry Pi’s in my home, and Mopidy.

BUT… I can’t get the local instance of Mopidy to work after using the multi-room instance one. On my local instance, I get this error from the logs:


Sep 22 16:05:44 mopidy3 pulseaudio[992]: [alsa-sink-USB Audio] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Sep 22 16:05:45 mopidy3 pulseaudio[992]: [alsa-sink-USB Audio] alsa-sink.c: Error opening PCM device front:0: Device or resource busy
Sep 22 16:13:48 mopidy3 pulseaudio[992]: [alsa-sink-USB Audio] alsa-sink.c: Error opening PCM device front:0: Device or resource busy

From what I can gather, snapserver doesn’t release the sound card (i’m using a USB sound card right now). Is there something i’m missing?

1 Like

I have just started down this road, and the solution that i am using is just spotify and snapcast. I am outlining it all here.

it will have a single output at the moment - spotify, and it’ll sync all nodes with that. The control is all via the spotify client, which is either local or via spotify connect. You can of course add the snapcast component ot HASS to control volumes.

To get it going:

Install Spotify as normal.
Install Snapcast
Give your user access to the pulse system:
sudo usermod -a -G pulse-access <username>

Then the following needs to be completed on every reboot:

sudo service snapserver stop
sudo rm -f /tmp/snapfifo
pacmd load-module module-pipe-sink file=/tmp/snapfifo sink_name=Snapcast
pacmd update-sink-proplist Snapcast device.description=Snapcast
pacmd set-default-sink Snapcast
sudo service snapserver start

TODO:
Automatically perform all those steps on startup
create a script that will route all audio inputs to the Snapcast sink at startup

If I understand you correctly, you’ve got a official spotify client on your snapserver computer, and you just push audio out into the snapcast pipe, right? Then maybe on your phone, you can use spotify connect to specify that audio is played on your server (and thereby eventually played on your snapclients).

thats right!

It avoids the mess that is thrid party integrations with spotify, and allows any number of remote controls for your home audio.