Snapcast config

Hi everyone. Im running volumio 2.773 on 2 Raspberry pi 4’s, 65GB SD cards. The ‘server’ works like a champ, I can access my NAS, play it out the HDMI etc. It does everything I want it to do.

The 2nd one (client) is same version, same hardware, connected to a speaker via the audio jack. I have snapcast installed in both, one as a server, one as a client. The client doesnt see the server in the pulldown though, so I assign it the address of the server but still no luck.

The way I understand it is, from either the server (that I web into) or my iphone, I can play some audio, and have it play out the snapcast client, but thats not happening. Ive read, searched, youtubed etc and cant find a good how to on setting up snapcast. one place had a great video but also talks about a snapcast app for the iphone which doesnt seem to exist.

Just to be clear, my iphone running the volumio app works great and I can control the volumio raspberry pi just great, and play whatever I select out the hdmi. its perfect! I just cant get it playing out of the second pi.

Any tips appreciated!
bob

I found this youtube video which is somewhat helpful.

youtube.com/watch?v=oA0L4tSvPKk

He talks about a snapcast client for iphone/android but I cant seem to find it. Is there a recommended one?

Hi Bob,

Are you still interested in enabling snapcast with volumio? If so, let me tell you a small story;

Many Many moons ago there was an artist called Michaelangelo… NAH!!

Background

For whatever reason I wanted to dabble in Streaming / Multi-Room audio with the express desire to use my Synology NAS as the server / host. I did not intend to use additional hardware. The obvious choices were Icecast and Ices. Because the NAS runs a Linux that is both stripped down and a bit obscure embedded variant (busybox i think), it took me a while to get going.

Once I did get going though , I quickly learnt that I was in the consumer space not the producer space, meaning, I am lazy and just wanted to consume something that was already built that gave me easy access to my music as well as additional stuff like Web-Radio and specialized streaming services like spotify.

That led me to finding Volumio. However, there was a major challenge for me to 1) understand and 2) overcome.

  1. Volumio and related ecosystem is primarily built for Raspberry PI and derivatives.

  2. Snapcast is excellent for realtime sync for multi-room but how to get Volumio to work with snapcast?

Enter the Plugin

Saiyato has built and maintains a snapcast plugin for Volumio that does exactly this. However, in my case the installation failed because my architecture is identified by the underlying Debian (Volumio runs on) as i686 and despite saiyato’s plugin supporting this architecture (at least according to his install.sh)

elif [ $cpu = “i686” ]; then
# wget $(curl -s https://api.github.com/repos/badaix/snapcast/releases/latest | grep ‘armhf’ | cut -d" -f4) -P /home/volumio/snapcast

when checking the installation location, I can see that there is no instance of neither the snapcast server nor the client.

The Moolah

So why this longwinded explanation; simply because, while the installation script said all was well, (ok more or less well), I was seeing tons of errors when restarting the service for example after making changes in the Volumio UI. The snapfifo (the file that snapcast uses) was never touched and so on…

So did I make it? Yes, Sir I did. But hold on, lets look at snapserver first or at lest debunk some stuff written above.

  • Snapcast contains

    • A snapserver --> Runs generally once in a landscape and sometimes multiple times (not usual)
    • A snapClient --> Runs multiple times in a landscape *** including the host where the server is installed.
  • BadAix provides what he calls a test tool which is an app found on the Google Playstore named ### snapdroid.

There is an Android client snapdroidavailable in Releases and on Google Play

  • There is ### no iOS client from BadAix.
    • There is however a simple webclient

Given those facts, what you need to ensure is

  • The snapserver (RPi1) and snapclients (RPi1 & RPi2) are indeed installed.
  • The mpd.conf (mpd is the underlying software Volumio wraps) output section actually contains the section with “type” = “fifo” that outputs to a location like /tmp/snapfifo

audio_output
{
type “fifo”
enabled “yes”
name “”
path “/tmp/snapfifo”
format “480000:16:2”
}

  • The target RPi also has the snapclient running.

Finally, use the snapdroid app as a simple way to verify your installation.

and yes, I was able to install the snapcast server inside the volumio on my synology, by first running the plugin, allowing it to succeed / fail and then manually installing the server and client on volumio.

Happy to answer any questions or help if required.

Enjoy!
PS - 2 link limit? WTF?

Super funny that the date posted says May 10th! :flushed:

Hi @69Boss302 and @snappyVol,

I know, I know… late to the party. However, I’ve been working on revamping the plugin(s) <- multiple now, because I wanted to carve out the client part for obvious reasons.

Ok, so your explanation rings true:

  • There is little to no multi-arch support in the current plugin
  • Failing during install, will not cause the plugin to NOT install, so you can install the plugin (and fail) and install the binaries, after which everything should work.
  • There is no iOS client (I’m not gonna touch on this, as this is beyond me)
  • A “landscape” exists off of 1 server and x clients (note that the server can run a client, but it’s not necessary)

Some things I’ve been working on:

  • Creating a container for both the server and the client; multi-arch when using the ‘latest’ tag (has a manifest containing info for several architectures)
  • Revamping the plugin config screen, for clarity
  • Carving out the client; effectively making two packages (client and server)
  • Supporting the new VolSpotConnect2 configs, SPOP & MPD right out of the ‘box’ (still working on Airplay)

It’s always wise to read the manual and understand what you’re doing. Especially when enabling a secondary stream (not recommended for beginners). You will probably want to test functionality, easiest way is to use the Android client (which can be installed from the App Store). The Android client is also perfect to configure streams and subscribers, the same applies here, only if you know what you’re doing :wink: