Setup

Since one of my goals was to also stream from an analog input, it creates an extra layer of complication. My first iteration was simply multi-room Spotify streaming in anticipation of the upcoming Spotify HiFi service but every tutorial I found seemed unnecessarily complicated and seemed to unnecessarily use extra components like mopidy (this still be added as a source later on if needed). I ended up using Snapcast to setup the multi room aspect since it easily allows any kind of source as an input and has a web control interface/API built in. The first set of instructions is just for digital only streaming over WiFi such as Airplay or Spotify Connect.

Hardware

The Pi Zero does not have an analog audio output, therefore I'm using the Pirate Radio line out hat for the Raspberry Pi from Adafruit. I got this one specifically since it has a screen that I can eventually use to add album art and/or EQ visualization. The added benefit to using this kind of hat is that it has a high quality 24-bit 192Khz digital analog converter (DAC) which allows for extremely high fidelity playback. The super HiFi probably doesn't matter as much to most people and could easily just use a normal sized Raspberry Pi 1/2/3/4 with the built in line-out however I personally still prefer the Pi Zero due to size.

Line-out options for the Pi that I tested:

Spotify/Airplay

This setup is the most simple. I was even able to run both the snapserver and the snapclient from a Pi Zero W however I wouldn't recommend this if you plan on having more than a couple clients. Having a dedicated Pi 3 or Pi 4 connected to ethernet is the ideal scenario for the server but not critical if you have good WiFi speed and coverage.

Adding Analog Input

todo