Snapcast & Garbage

Garbage the PiNode
Welcome 'garbage', the latest member of PiNet. Garbage makes me smile every time I go into Bldg S2.

Snapcast Is Really Wonderful

Garbage is too!

Wha? Garbage is the name given to the latest node of my PiNet. It has that name because it is made mostly of leftover parts from other projects. It is a Pi 3 A+, a camera and a pair of old PC speakers whose subwoofer/amplifier died years ago. At least that's how it started. I wound up buying a DSP hat and a 15W DROK audio amp, and then printing some nice new parts to hold it all together. So now it's only half as trashy as it was.

Garbage functions as a Snapcast client in Bldg S2. What is Snapcast? Read on.

The Whole Trashy Package
Here's Garbage pausing on his way out of S1 to his permanent home in S2. I just love his openness and transparency. Very endearing characteristics.

The thing that really stands out in this project is the music delivery system. And the star of that show is Snapcast.

For me, music begins when I get a new CD in the mail. No music rental for me. I want physical media.

I rip it to FLAC formatted files. They live in a "Artist"/"Albumname"/trackno-Title.flac folder structure.
MPD (Music Player Daemon) handles getting that music off the harddrive and into one of many output formats.
One of the output formats my MPD install is configured to support is a "named pipe".
MPD sends the audio to that pipe, which is a filename in a folder.
Snapserver ingests the audio from that named pipe, processes it and serves it out. In a TCP stream, in my case.
Snapclient runs on as many computers as I want. They each attach to the stream from snapserver.
Each client synchronizes with a timecode provided by the server. This keeps playback on all connected servers synchronized with each other.
Snapcast provides a web interface where I can adjust the volume level on any playing client. I can also mute them as desired.

This is WAY better than the way I used to do it. Prior to this, I had an MPD server running on each music capable computer. When I was working around my place I would have music playing in several places, but it was all disjointed. Moving from one place to another was anything but seamless. Going from Kenny G to Disturbed could be . . . shall I say it? Disturbing.

Snapcast makes it all so much easier. Now I have a single MPD server to deal with. I can use any one of many MPD clients to handle playback. Instead of dancing between servers, now there's one. One place to start/stop/pause or to set a master volume. Then if I need to balance levels between machines, they are all on one browser app.

So these days it's just "start the music, and move about freely while enjoying the sound."

I shot this phone video to see if I could demonstrate the synced sound of Snapcast.

I know you're not supposed to do this in portrait orientation, but I didn't expect it to turn out so good.

The Demo:


That actually worked better than I hoped. From one end to the other there are three different computers playing the snapserver stream through their own speakers. They are all in sync, so it sounds like one source. That's pretty amazing!

All of the initial evidences point to Snapcast being a A Thing That Works. I do expect that is the case, and I believe time will bear this out.

Thank you, badaix!

link to home page

links

social

-->