We recently had dinner at our friends’ house and they had outdoor speakers that really intrigued me. The setup was quite simple - speakers, amp, and an airplay streamer. I was inspired!

Luckily for me Amazon Prime Day was coming up. I bought a set of Polk Atrium 6’s, a Fosi Audio BT20A amp, and some speaker wire. I installed the speakers on our back deck. Running the speaker wire was by far the hardest part. I had to crawl under our deck to run the wires into our basement. It was a tight fit and there were a bunch of cobwebs under there!

Once I had the wires ran and connected to my amp it was time to test out the sound. My amp has bluetooth built in so I was able to quickly connect and play some test music. Everything worked great, which doesn’t happen on my first try very often.

Bluetooth connectivity is great, but I knew I wanted to use an Airplay setup like our friends. All of the Airplay streamers I found were pretty expensive, I figured there had to be a way to turn a Raspberry Pi into an Airplay streamer. Luckily there is and it is an awesome repo called shairport-sync.

I chose to use the Docker setup, which once you have docker installed it is as simple as

$ docker run -d --restart unless-stopped --net host --device /dev/snd \
    mikebrady/shairport-sync:latest \
    -a DeckSpeakers -- -d hw:0 -c PCM

I connected the Raspberry Pi to the amp via an RCA adapter from the 3.5mm jack on the Raspberry Pi. The initial test went well, again, shocking. However, the speakers clipped when the volume got turned up a little. I did some research and found out how to control the audio on the Raspberry Pi using alsamixer. I used an oscilloscope to dial in what level was needed before the audio started clipping. I found that 85 was a good level, YMMV.

Everything sounds great and no more clipping! I had another Raspberry Pi laying around so I hooked it up to our bar speakers where our record player is. Now we can have music playing in the bar and outside all in sync! If we want to add more zones in the future all we have to do is set up another Airplay capable speaker.