60 comments

[ 3.0 ms ] story [ 178 ms ] thread
Is there an alternative? If I want to build a flexible, high-quality, open whole-house audio system that my whole family can use without cursing my name, do I have any options?

It feels like there has to be a prosumer/low-end-professional product I can shoehorn into my house, kind of like how I've moved up from awful home network products to Ubiquiti gear over which I feel like I have some actual control (though their more recent UniFi products seem like a step backwards in that regard...)

Years ago I helped a friend install a CasaTunes [1] setup in their house. They already had speakers installed in the ceilings of each room, but they were routed to local closets with the intention of putting a system in each closet. We pulled cable to haul them all back to one closet and installed the CasaTunes system. The result was very nice, smart phone app control over the music in each room. It worked well for individual listening or to set the atmosphere for events.

[1] https://www.casatunes.com/

Spotify Connect. Even though the whole article is making a case for consumer-grade DLNA, towards the middle the author concedes: "No one needs DLNA because they use Spotify, and Spotify has worked commercial partnerships to get Spotify Cast support in their A/V devices."

Except it's not open.

I operate a bunch of Raspberry Pi's that each run Raspotify and Snapclient.

Raspotify is a wrapper for librespot, which enables Spotify Connect to "cast" from my (Android) mobile app to each Raspberry Pi (which are connected to speakers of course).

The Snapclient instances connect to a central Snapserver instance that also runs librespot (again to enable Spotify Connect).

So now I can cast to an individual Raspberry Pi (powered by Raspotify) to play music in a specific room, or I can cast to the central Raspberry Pi that runs Snapserver to get the same music in every connected room.

While Spotify Connect is not open, librespot is open source, and it has been working fairly well for me for several years now.

One thing to note is that librespot requires Spotify Premium.

If you don't mind waiting until near-future for support for devices to actually support these, the group that's building out the Matter spec just confirmed yesterday[0] they're also working on casting functionality, and for audio in particular the Bluetooth ecosystem is slowly inching toward LE Audio.

[0] https://www.theverge.com/2021/12/9/22824559/matter-tv-stream...

> Matter TV, as we’ll call it for wont of an official name, will allow control of a television’s core functions — volume up / down, changing the channel, controlling inputs and outputs, and switching between HDMI ports.

This is the key for me. There are plenty of ways to play audio over bluetooth, but not enough ways to control which speakers are active from my phone.

Do you want the same music everywhere, or do you want each person to be able to play their own music where they are?

Almost all the installable-box systems assume the first: you want the same music in your office, the living room, your bedroom simultaneously, and if your husband picks up a controller and changes it to what he likes, that's what everybody gets.

If you want the second, you need a music server that makes a filesystem full of FLAC and MP3 available via NFS or CIFS or DLNA, and a bunch of clients with speakers around that house that can be used to select music and play it. Those clients can be Raspberry Pi based units that look as good as you're willing to pay for, and the whole thing will take you one afternoon.

Squeezebox (Logitech Media Server) with material-ui plugin is something which happens to work quite well. Family members are happy as well.

Syncs perfectly on multiroom setup, supports Spotify, works with Home Assistant and has at least enough device choices for playback.

+1 to LMS + material skin! Protip: You can embed the lms webui in the Home assistant frontend, so you have all your home automation in one place!
Yay for Squeezebox. That said, the network performance of my units is wildly unpredictable and I'm planning to replace them all with RPi + hifiberry + squeezeplayer. It's been 20+ years, though!
My wireless units sometimes lose network connectivity and have to be restarted, but the wired ones are troublefree.
My server runs an earlier version of MacOS, which could be the cause of the Spotify extension to my several Squeezeboxes not working. Are you using “Spotty” successfully?
Yep, Spotty is working for me flawlessly.

Funny and nice feature is that I can play different tracks on different squeezeboxes via one Spotify account.

Running server on Ubuntu 20.04.

* Server running mopidy [1] with all your audio loaded up on it and connected to Spotify.

* Install the Iris plugin for UI [2] on server

* Install snapcast [3] server on the audio server and snapcast client on raspberry pi's near all stereos you want to pipe audio into

* Put bookmarks to the Iris page on all family member's phone home screens.

* Add the snapdroid app [4] to each phone so people can adjust volume of each stereo and also play audio on their phone (or anything it's bluetoothed into)

[1] https://mopidy.com/

[2] https://mopidy.com/ext/iris/

[3] https://github.com/badaix/snapcast

[4] https://github.com/badaix/snapdroid

I believe Iris can talk to the Snap server directly for volume control, when you've configured it in the UI.
true. The snapdroid app can also stream audio to the phone.
Thanks for sharing. I would love to see an in depth description of a setup like this.

One big question, can you cast audio to this system from a phone and then redirect it to different outputs? Or just cast directly to outputs?

Nymphcast looks promising.

Otherwise for the sync there's stuff built around snapcast. It has the fundamental limitation that it's a dumb pipe. You can control the volume and mute it, but a pause only happens when the snapcast gets to the silent "paused" part of the buffer. The sync does work very well though.

Maybe something will be possible with pipewire?

I priced out a Sonos system for multi room audio and it was over $6k USD. Decided to build my own system with a combination of:

- Sony audio receivers for each room

- Chromecasts

- HDMI to RCA adapters

- Harmony Pro IR controller

- Raspberry PI with Home Assistant

I set up the Chromecasts with audio groups for the whole house and different areas. I configured the Home Assistant to control power for the receivers through the IR controller when they are cast to. (You could probably skip the IR setup and adapters with more expensive HDMI receivers, the stereo receivers were only $150 each)

Anyone on the WiFi can easily cast audio from any music app to any room, area or the whole house without having to install or configure anything. Works with Android and iOS. Whole set up cost less than $2k.

Nice setup!

It’s a bummer Google discontinued Chromecast Audio. I still have three of them and love them.

The new Nest Speakers don’t have audio out, so there no integration with nicer audio equipment.

Thanks! Yeah that is a shame, but this set up with regular Chromecasts works fine. The HDMI to RCA converter can be used to just output the audio.
Instead of the Chromecast Audio I got a Pi 4 and Startech 7.1 usb audio. With Pulseaudio you can remap channels, so I have 5.1 going to my old Yamaha (which lacks hdmi) and 2 channels going to a Denon that drives ceiling speakers in the adjoining kitchen. This handles movies, and has played everything up to Atmos, downmixed to 5.1. Also upmixes stereo to 5.1, sending <150Hz to the sub channel. It plays the same audio to both amps because it's open-plan, but the amps are separate so I can turn one down or off, or change to another source.

The Pi runs gmediarender-resurrect (a DLNA receiver) so I can fling audio from my laptop (pulseaudio-dlna) or phone (bubble upnp).

What you’re looking for is Roon.
I've been buying arylic https://www.arylic.com/ devices to see if i like them. You build them into your hardware, so more flexible than most. You are stuck with their system though, it can be controlled via homeassistant (or so it is claimed, I haven't tried that ) but you can't connect it to your computer via network which would be nice as I have a good audio interface already (for xlr microphones) and just want to extend that on.

There are diy solutions, but I don't have time to play anymore, I just want it to work. I also want it to look finished, not like a rats nest of wires.

I ran speaker wire through my walls when i removed coax, every room can toggle between whole house audio or plug in to play whatever they want… it’s dumb but no one ever asks me to troubleshoot it… most “smart” hardware has such garbage software it isn’t even worth it. This system was cheap and will probably outlive me
it depends on do you plan to use ceiling/wall speakers wired to central location or not ? if yes, you ideally need multi-zone amplifier to actually drive speakers with built-in or separate mixer (allows you to have multiple inputs and assign them to different outputs at will). Something like Dayton Audio DAX88 will be probably cheapest solution for such setup, while allowing individual control over each speaker (there are optional keypads for control, mobile apps and dlna support as input). If you to to higher end, you can get even systems with integrated intercoms in keypads and touchscreens for each speaker zone.

Or if you go with bookshelfs that are independently powered, well, there were a bunch of options described here

I recently moved into a home that has speakers in the ceiling in 4 different rooms, with all the cables running up to an upstairs (inconveniently-located) media closet. I can't figure out what to do with this setup. I'd like to be able to play music/podcasts from my phone into various rooms, and I'd only rarely want simultaneous audio in multiple rooms.

One thing I've considered is getting several cheap mini receivers and hooking each one up to a Belkin AirPlay adapter. There also seem to be some $50-ish bluetooth-enabled receivers, which would allow for the same functionality, except without the ability to play in multiple rooms simultaneously.

Has anyone dealt with a similar situation?

this is what i deal with. only 6 rooms

your best bet dax88 or dax66 (older) if you want flexibility.

alternative is passive speaker selector like Pyle PSPVC6 and Pyle PDA20 mini amp/bt receiver hooked up to audio source. alternatively you can try instead of PDA20 Amazon Link Amp (it weaker, not sure if it can drive speakers in 4 rooms)

you can try to look through monoprice/pyle sites, they may have something different for 4 rooms - there are more options than for 6 rooms. But in general, if you want some remote control (volume, select inputs/output), it quickly jumps ~1k.

Thanks, I am getting the sense that the price floor for these features is relatively high. That's why I'm thinking it will be cheaper to buy several bluetooth-enabled mini-receivers. Only one of my rooms has five speakers to drive; the rest have just one or two. I'm not looking for super great sound (I don't even know what kind of speakers they are) — I just want to be able to send sound to different rooms from my phone.
do you mean to make a cluster of mini-receivers in location that has all speaker cables ?
Yes. It seems loony, but it appears that it might be substantially less expensive than a single unit solution.
at some point of time you would like to play same music (ambient or whatever) in multiple rooms. at this case your setup will break... imho, it's better to bite a bullet and get something capable. you should also check ebay. there is plenty of oldish multi-zone amplifiers/controllers for more reasonable prices. they are not as fancy as new stuff but you will have more over your rooms.
(comment deleted)
I'm only half joking with this low-tech solution:

https://www.amazon.com/Retekess-Transmitter-Microphone-Trans...

This extremely low-tech solution would give you 10 room audio from a single source (like MPD, but it could be anything at all since you just plug a line-in - your old turntable for example). If the transmitter isn't up to snuff for your huge abode, you could get a slightly larger transmitter that does about 900ft.

With 3 transmitters on different frequencies and say 5 receivers dotted throughout the house, you could tune a room to "Dad FM" or "WTF is that racket FM"

I seriously considered this for laughs but didn't follow through.

I've been wanting to do something like this for a while, but never got around to it. What I'd probably do is get a bunch of Raspberry Pis, buy HiFiBerry HATs for all of them, connect speakers, and install snapcast (https://github.com/badaix/snapcast).

But I'd still be afraid that it'd be fiddly and require too much maintenance. I really don't think there's anything commercial you can get that isn't kinda expensive, and almost certainly nothing that's open source / open hardware / open anything.

I have done exactly this, and am quite happy with the result.

I wrote a python script to listen to state changes of a multi select option in Home Assist, that then calls the snapcast control API to switch between different configurations.

This allows me to map different input sources of snapcast (e.g. two separate instances of librespot, two instances of mopidy) to be routed either just my living room, just the kitchen, or both at the same time.

Honestly, I just resulted to using a network of Echo Studios/Echo Dots and grouping them. Quality isn't great, but you can't get easier than saying "Alexa, play Christmas Music everywhere."
Im my experience Serviio was the only thing that made DNLA even half work and even with that it was flakey.

https://serviio.org/

(comment deleted)
What I've got:

The media server is a Debian x86 box with a big RAID on it. It has MP3 and FLAC rips of all the discs. That filesystem can be accessed via read-only NFS or CIFS or AFP. It is running:

Owntone - MPD compatible, web interface, can stream to any client that can handle ChromeCast or AirPlay, including machines running shairport-sync. That's how you get multiroom party audio.

minidlna - DLNA server, no interface, makes the library available to clients that only speak DLNA. That's a way of getting local play.

Various devices around the house speak DLNA or mount the filesystem and present a local player.

Always had problems with choppiness with shairport-sync. Currently running MPD which feeds in to Snapcast for sending audio to clients.
In practice, it turns out that I just want music where I am, not the rest of the house, every day.

This could be pandemics related.

A good alternative to get airplay working is to get a cheap used Airport Express second generation. Use or borrow an iPhone to configure it, and you can set it up to just act as an Airplay receiver. The airport express can connect via Ethernet and outputs either over analog audio or via mini-TOSLINK. It also has the advantage of being able to use Airplay 2.

That's odd about the choppiness of shairport-sync; my setup is an old thin client running archlinux and shairport-sync. I have it hooked up via Ethernet and connected to my receiver with a cheap AliExpress USB>SPDIF adapter. I have shairport-sync configured to use ALSA directly. I've never had any issues with this setup.

What a great read! I have been playing with DLNA equipment lately and have found that, while extremely niche, is still alive and quite flexible for the few of us who like to curate local copies of our own music.

I do sometimes pirate music, but I have found that buying used CDs at thrift-shops and at Discogs is cheap (and much more fun!) and lets me rip to FLAC with my own preferences.

I've found discogs to be especially dangerous to my wallet. It's extremely tempting to pick up <$10 cds and rip them.
This article is a really fun trip down memory lane:

“Some of you may remember installing an IDE CD drive and having to connect the three-wire analogue audio output from the CD drive to the sound card.”

And until today, I never knew the real “why”. Fascinating

After this post, I wrote another about UPnP itself. If you are interested in the underlying network issues, you might like it. It also lead to an HN discussion that was more about DLNA than UPnP, I guess I'm not the only one that has a weird nostalgia for it.

https://computer.rip/2021-11-26-no-u-pnp.html

Not sure how anyone could write this article without mentioning Squeezebox (later Logitech). AFAICT, it solved these problems before Sonos was even a thing. It's a tragedy that Logitech let the hardware side flounder, but there's still Squeezeplayer that can be run on anything that can run ... Perl.
To be honest it's because I never owned a Squeezebox so I'm hesitant to comment on them too much. But it was indeed a really important part of the landscape, and sort of a parallel story to DLNA... Even better, as the community figured out at least partial interoperation between the two. Logitech had a lot more success on the hardware side than DLNA did, and really I think has responsibility for the brief reign of "internet radio" as a physical device.
That timing doesn’t line up. Sonos hit the market first, and besides squeezebox didn’t solve the hard problems that Sonos solved in their first revision.
According to Wikipedia, Sonos didn't reach market till 2005.

Slimp3 was out in 2001 and Squeezebox in 2003.

As TFA mentions, DLNA implementations were terrible. I had two DLNA devices and both of them could only play a very limited number of formats over compared to what they could play over USB. It took me days of fiddling with ffmpeg options to find the combination of codecs and container formats that would work.

After all of that, the only format that worked on both of them was MPEG2 in a transport stream main-profile at 480p with MP3 audio. They both would play high-def content but there was no combination I found that would do high-def and worked on both of them.

Meanwhile just about any H.264 muxed with just about any audio (even Vorbis) worked just fine on both on a USB stick.

Even software implementations are flakey. It took me ages to find a Goldilocks configuration for pulseaudio-dlna to gmediarender-resurrect (opus 96k send, 1s buffer on receive - everything else was unreliable)
Man, that brought back a bunch of memories. I worked at Netgear between 2004 and 2009, and we had a line of networked audio and video products that never really took off. At some point we got on the DLNA train, and the best part of that was that Intel and Microsoft would host interoperability events[0] in fun cities around the world, several times a year, and I got to go to many of them. (At that point the team was just me and one other guy, and he had a family, so it was easier for me, the single guy in his 20s, to go to these things.)

The integrations on the hardware were buggy (at that time Netgear outsourced the software for these boxes to firms in southeast Asia, so we didn't have all that much control over the quality), Windows MCE was buggy, everything was buggy (the whole power management stuff mentioned in the article rang a bell; it was distinctly hard for our devices to reliably wake up a sleeping MCE box despite following the spec exactly). And the user experience was just terrible; it was hard to understand what you needed to do to get things set up properly, and the software was pretty clunky.

[0] Basically you and your competitors would go stay at a hotel where a bunch of Intel and MS reps (and all your competitors) had booked a bunch of rooms, and you'd bring your hardware to a few different hotel rooms each day, hook things up, and make sure everything worked with each other. It was funny because this all took place in regular hotel rooms with beds and everything; they usually didn't book conference rooms or anything like that. They always scheduled a full week of this, but it would usually end up only taking 3 days or so, so I'd turn it into a long-weekend vacation in Paris, Berlin, Venice, etc.

> Also frankly all the DLNA products pretty much sucked but hey, I'm running on nostalgia.

Great detail, great writing. Thanks for sharing.

This article was riveting and invoked nostalgia I didn't even know I had. I forgot how badly I wanted to buy a TV tuner card so I could run MCE on my crappy tower at the time and being sad that I couldn't afford it (I was in high school). And I definitely remember hard-wiring old CD-ROM drives to good ol' Creative Sound Blasters and ripping at 1x. Some folks made a great business out of this at the time.

I agree with the author: the state of consumer a/v tech is kind of sad. It is unfortunate that there really isn't a universally-supported open standard for _easily_ casting audio or video to a renderer (TV, projector) from a phone.

Miracast is cool and works great but isn't built into iOS or Android and is a non-starter for non-technical folks. And the only affordable wireless multi-speaker tech is offered by Amazon (Echo) and Apple (AirPlay/HomePod) as loss-leaders to push more home assistants and collect more data. Sonos isn't exactly cheap and it also locks you into their system.

Ideally, I'd like to buy wireless speakers from, say, Anker (okay, not great quality, but good enough to stash around the house) and drive them with Alexa or stream Spotify/Apple Music/$MEDIA_PLAYER through Miracast or whatever. But there's no money in that.

Any of these with voice control? Preferably without internet connection.