Hi everyone,
I’ve been researching whole home audio hardware options all week, and I’m looking for recommendations on how to create the simplest quality DIY hardware solution for any speakers in the house.
It seems as if the ‘best’ (de-facto) solution for ‘whole home’ audio (where you can play different streams across speakers, or have a single stream of audio sync’d across multiple speakers - aka rooms or ‘zones’) for most people starting down this path is to go with a Logitech Media Server-based system (and many thanks to @bkprath for the very excellent overview here: How to: Build a LMS based whole house audio system)
I understand this system to work as follows (please feel free to clarify anything I might have missed or mistaken):
-
A Logitech Media Server (LMS) server daemon in charge of all audio content runs somewhere in your home network - either running embedded/managed by Home Assistant, or on its own server (or even a Raspberry Pi), or in a virtual machine on Proxmox, etc.
-
Multiple LMS clients on the network, aka ‘players’, connected to stereo audio-out hardware. Each player runs an LMS squeezelite client process to consume a digital audio stream from LMS, and sends that audio to the audio-out hardware where it can be heard. This is most commonly achieved (as far as I can tell) in one of two ways:
a. The player itself is running on hardware that has a DAC, and sends the digital audio stream to the DAC and the DAC’s analog output is sent to on-board audio-out hardware, usually a 3.5mm audio jack or speaker wire terminals.
b. The player might be associated with a bluetooth-connected speaker, and forwards its stream to the speaker, and the bluetooth speaker likely has its own DAC and does the DAC conversion there.
It seems common enough for a player to have on-board hardware that allows both a and b.
I read about two common approaches for DIY hardware players:
-
An ESP32 device paired with a DAC module and audio-out hardware. ESP32 devices are very low power, so they rarely have enough power to drive the speakers directly. Also, the ESP32 native DAC is only 8-bit and not sufficient for quality audio streams (e.g. 24-32 bit), so it must be paired with a higher quality DAC module.
The Raspiaudio Muse Proto board seems to be referenced often enough for something like this, but even then its output appears to be only 3 Watts, not nearly enough to drive dedicated room speakers. Plus it appears that it’s mono (not stereo) output only. So while I’m sure it has great uses for low-power/less-expensive audio scenarios, quality stereo home audio doesn’t seem feasible. I’ve not attempted to build anything like this, so I could be quite wrong, please let me know otherwise.
-
The much more common and simpler route, using a Raspberry Pi with hardware and power that meets the needs of the listener. Most using a Raspberry Pi don’t set-up/run a squeezelite client themselves, but instead install something that handles all of the heavy-lifting like piCorePlayer (which runs/manages the squeezelite client automatically).
Because the Raspberry Pi route seems much simpler, that’s probably the one I’d go with, unless there is a ‘slam dunk’ ESP32 solution that people have been happy with that I don’t know about. Anyone?
So, what I’m trying to understand now is, what is the simplest/best hardware option to get good stereo audio?
In my particular case, I have a new construction home, so I’ve hardwired speaker drops to each room in the house where I want audio, and I want wired network connectivity, so I’ve been thinking of using a RPi 4 with Ethernet (and disabling WiFi).
But I’ve heard that the RPi native DAC isn’t exactly great, so it seems pairing it with a dedicated DAC is the way to go, such as the HiFiBerry DAC+ or the better quality HiFiBerry DAC2 Pro.
I looked into that, but then realized that decent stereo speakers need power, so ideally you’d need to run the RPi audio output to an amplifier that then drives each speaker or set of speakers.
The first good out of the box solution for this seemed to be Monoprice’s 6-Zone Home Audio Multizone Controller and Amplifier Kit. Assuming this solution, I’d need to buy this kit plus for each stereo speaker pair:
- One RPi 4
- One HiFiBerry DAC+ or DAC2 Pro
- DC power supply
At this time of writing, the Monoprice amp/kit is $650.00. Assuming 6 zones, that’s $108.33 per zone just for the amp, not including the price of the RPi, DAC and power supply. Add those in and you’re approaching $200 per zone.
That’s pretty decent actually, all things considered, but then I noticed something on HiFiBerry’s site that seems like an even better solution:
The HiFiBerry Amp4 has enough power to drive two speakers (L and R channel) at 60 Watts and it already comes with their DAC+. This seems sweet!
So if I’ve got my data correct, that means, for each stereo speaker (pair), you only need to buy:
- Any one of the RPis that work with the the HiFiBerry Amp4
- One HiFiBerry AMP4
- One 20-24V DC power supply.
All in, that’s pretty close to $100 per zone, basically half of the RPi solution with a Monoprice amp kit.
This also has the benefit of modularity - you only buy what you need for the number of ‘zones’ you need. With a 6 or 8-zone integrated piece of hardware, if you don’t need as many zones that are supported by the hardware, you’re paying extra for something you won’t use.
So that’s where I am with my research and what I think might be an ‘ideal’ hardware solutions for quality Home Assistant-controllable multi-zone audio.
Am I missing anything, or are any of my assumptions off? Is there anything that might be perceived as ‘better’ than this for a hardware controller + power required for speakers that I haven’t found yet?
Thanks!