+++
title = "My multiroom audio setup"
date = "2022-11-08"
+++

I've put my home audio solution together out of the following components.

- [Snapcast](https://github.com/badaix/snapcast)
- [MPD](https://www.musicpd.org/)
- [Librespot](https://github.com/librespot-org/librespot)
- [Shairport-sync](https://github.com/mikebrady/shairport-sync)

- A mini-PC in my closet running the above software
- Two Raspberry Pi 4s
- Four Raspberry Pi Zero Ws
- Some desktop speakers and some Bluetooth speakers (wired to the Pis)

Each of the Raspberry Pis is in a room or porch attached to a speaker.

Snapcast lets me take an audio source and synchronize it across multiple
clients. Each of the Raspberry Pis are running a `snapclient` instance and play
whatever the `snapserver` instance tells them to.

Snapcast is setup to send whichever of the streams (MPD, Spotify, Shairport-sync/AirPlay) is playing audio to each of the clients that are connected to it.

This lets me or anyone else on my WiFi network play directly on one or more of the speakers - each named for the room that they're in using either Spotify, AirPlay, picking from my own music collection or by pointing at a URL (like to a podcast episode).

This works out great and we've used it at home for the past year.

I'd like to get the podcast experience to a more seamless place but it's pretty OK right now using AirMusic on my phone to play audio to the speakers over AirPlay.
