unsubbed.co

Snapcast

Snapcast handles synchronous multiroom audio server as a self-hosted solution.

Open-source synchronized audio, honestly reviewed. Not a music player — a precision sync layer that turns cheap hardware into a multiroom audio system.

TL;DR

  • What it is: Open-source (GPL-3.0) multiroom audio synchronization server and client. Not a standalone music player — it turns your existing audio stack (MPD, Mopidy, Spotify via librespot) into a Sonos-like multiroom system [README].
  • Who it’s for: Home lab enthusiasts, Raspberry Pi tinkerers, and anyone who has priced Sonos speakers and felt the sticker shock. Requires Linux comfort level to set up. Not for non-technical users who want a turnkey solution.
  • Cost savings: A Sonos One speaker costs ~$199. A Raspberry Pi 4 running Snapclient costs ~$50–80 for a comparable audio endpoint, with no subscription, no vendor lock-in, and no cloud dependency. Multiply by four rooms and the math becomes absurd.
  • Key strength: The synchronization quality is genuinely remarkable — timing deviation is typically below 0.2ms [README]. Audio across multiple rooms stays locked together at a precision that commercial multiroom solutions rarely document and rarely match.
  • Key weakness: Snapcast is not a music player and does not pretend to be one. You need a separate audio source (MPD, Mopidy, Spotify, whatever) feeding into it. That two-piece architecture is the thing that trips up beginners.

What is Snapcast

Snapcast describes itself in its own README as “a multiroom client-server audio player, where all clients are time synchronized with the server to play perfectly synced audio” [README]. That one sentence is both accurate and slightly misleading: it’s not a player in the sense most people use the word. There is no UI for browsing your library, no playlist queue, no album art. What Snapcast provides is the synchronization and distribution layer — the thing that ensures the audio coming out of your kitchen speaker and your living room speaker are playing the exact same sample at the exact same moment.

The architecture is straightforward: a snapserver process reads audio from a source (a named pipe, ALSA device, TCP stream, or the stdout of any process), encodes it, tags each chunk with a precise timestamp, and broadcasts it over TCP to any number of snapclient instances. Each client continuously synchronizes its clock with the server and plays out audio at the mathematically correct moment, adjusting for drift by imperceptibly speeding up or slowing down playback — removing or duplicating individual samples at the sub-millisecond level [README].

The project originates from Germany, sits at 7,510 GitHub stars, and is licensed under GPL-3.0 [README][2]. It runs on Linux, macOS, Windows, and Android — and it cross-compiles for Raspberry Pi, OpenWrt, Android, webOS, and FreeBSD, which tells you the primary audience: people building embedded audio endpoints, not running workstations [README].

The most common use case, explicitly called out in the README, is pairing it with MPD (Music Player Daemon) or Mopidy. MPD handles library management, playlist queuing, and playback. Its output gets piped into Snapserver via a named FIFO. Snapcast distributes that audio to every client on your network in perfect sync [README].


Why people choose it

The honest answer is: precision and price. There is no commercial equivalent that delivers sub-millisecond synchronization across arbitrary Linux hardware at zero licensing cost.

Versus Sonos. The comparison is obvious and the community makes it constantly. Sonos works well and the setup is genuinely frictionless — you plug in a speaker, open the app, done. But Sonos speakers are expensive ($199–$499 each), the ecosystem is closed, the company has a documented history of deprecating older hardware, and their subscription-like model has expanded over time. Snapcast gives you the same synchronized playback across as many endpoints as you want, on hardware you already own or can buy cheaply, running software you can inspect and modify [2][3].

Versus AirPlay multiroom. AirPlay 2 supports synchronized multiroom audio, but only on Apple-ecosystem devices. Snapcast runs on a $15 Raspberry Pi Zero 2W with a cheap USB DAC. The hardware flexibility gap is significant [2].

Versus PulseAudio/PipeWire network audio. Both can stream audio across a network, but neither was designed for precision multiroom sync. They work acceptably for single-room streaming but drift noticeably across multiple endpoints. Snapcast’s explicit design goal — and continuous clock correction mechanism — solves the drift problem systematically [README].

The Sendspin comparison. A 2025 XDA Developers article [1] introduced Sendspin (formerly Resonate), a new protocol from the Open Home Foundation designed as a “next generation” multiroom audio protocol. Sendspin uses WebSockets and Opus instead of Snapcast’s TCP + configurable codec approach, adds a richer role system (audio player, controller, metadata display, artwork display, visualizer), and is designed to integrate natively with Music Assistant. The article explicitly benchmarks Sendspin’s synchronization against Snapcast and positions Sendspin as the spiritual successor for the Home Assistant ecosystem [1]. This is worth noting: Snapcast is the established project that new entrants are competing against, which is a signal of how well it has defined the category. But it also means the ecosystem around it is evolving, and some use cases — particularly Home Assistant integration — may shift toward newer protocols over time [1].

The 7,510 GitHub stars are the simplest evidence that this fills a real need [README]. That’s a substantial number for a piece of infrastructure software with no flashy UI.


Features

Audio sources (server side):

  • Named pipe — the most common integration point; MPD writes to /tmp/snapfifo, Snapserver reads it [README]
  • ALSA — capture from any ALSA device: line-in, microphone, or alsa-loop (to capture audio from other players running on the same machine) [README]
  • TCP — receive audio over the network from a remote source [README]
  • stdout of a process — Snapserver can launch an arbitrary process and pipe its output as a stream [README]
  • librespot — Snapserver can launch librespot (open-source Spotify Connect client) and expose it as a Snapcast stream, turning your whole multiroom setup into a Spotify Connect endpoint [README]
  • Airplay — same pattern: Snapserver launches an AirPlay receiver and routes its output [README]
  • File — play a PCM audio file as a stream [README]

Multiple sources can run in parallel. Clients can be grouped to receive different streams simultaneously — one group hears the Spotify stream, another hears what MPD is playing [README].

Codecs:

  • PCM — lossless uncompressed
  • FLAC — lossless compressed (default; good balance of quality and bandwidth)
  • Vorbis — lossy compression
  • Opus — lossy, low-latency (best choice for bandwidth-constrained networks) [README]

Client control:

  • JSON-RPC API over WebSocket for programmatic control of volume, mute, grouping, and stream assignment [README]
  • This is what Home Assistant and third-party controllers use to integrate with Snapcast

Mobile and remote clients:

  • Android app exists (listed in features: mobile_app) [README][2]
  • Web-based control interfaces exist as third-party projects built on the JSON-RPC API

Platform support:

  • Linux, macOS, Windows, Android — native [README][2]
  • Raspberry Pi cross-compile
  • OpenWrt (for router-as-audio-endpoint setups)
  • webOS (for LG smart TVs)
  • Android cross-compile [README]

What it does not include:

  • Music library management
  • Playlist interface
  • Album art display (natively)
  • Discovery UI

These are intentional absences. Snapcast does one thing and provides clean integration points for everything else.


Pricing: commercial multiroom vs. self-hosted math

There is no Snapcast SaaS. The software is free (GPL-3.0) and self-hosted only. The relevant cost comparison is against commercial multiroom audio systems [README].

Commercial multiroom audio (for reference):

  • Sonos Era 100: ~$249/speaker
  • Sonos Era 300: ~$449/speaker
  • Sonos Five: ~$599/speaker
  • A 4-room Sonos setup: $1,000–$2,000+ in hardware, plus ongoing cloud dependency

Snapcast self-hosted (per endpoint):

  • Raspberry Pi 4 (2GB): ~$45
  • Cheap USB DAC (e.g., Sabrent USB): ~$10
  • SD card: ~$8
  • Active speakers or amplifier: variable, already owned or $30–$200
  • Snapclient software: $0 [README]
  • Realistic cost per endpoint: $50–80 for the compute/audio hardware

4-room self-hosted setup:

  • Hardware: ~$200–320 total
  • Software: $0
  • Cloud dependency: none

Over 3 years, a Sonos setup might cost $1,500 in hardware plus whatever future subscription features Sonos decides to gate. A Snapcast setup costs $200–300 in hardware and $0 ongoing, with full control over the software stack. The realistic hardware savings on a 4-room setup are $1,000–1,500 compared to Sonos.

The catch — and it’s a real one — is that Snapcast itself is not a complete audio system. You also need MPD, Mopidy, or another player. Budget an additional afternoon to configure the full stack, and possibly a Raspberry Pi or NAS for the server role.


Deployment reality check

The installation options are reasonable: prebuilt packages for Debian, Alpine, Arch, Void, and OpenWrt; Homebrew for macOS; or build from source [README].

brew install snapcast

That gets you running on macOS. On Debian/Raspberry Pi OS, you grab the .deb from GitHub releases.

What a basic setup actually involves:

  1. Install snapserver on a machine that will be the audio hub (often the same machine running MPD)
  2. Configure /etc/snapserver.conf to point at your audio source — typically the FIFO pipe that MPD writes to
  3. Install snapclient on each audio endpoint
  4. Configure each client to point at the server’s IP

The configuration is INI-style, not YAML or JSON, and the documentation is solid for the core use cases. The man pages (man snapserver, man snapclient) cover all options [README].

What actually causes friction:

  • The two-piece requirement. New users try to run Snapcast without a music player feeding it and find silence. The README explains this clearly, but people skim READMEs.
  • ALSA configuration on Linux. If you want to capture audio from an existing system player and route it through Snapcast, you need alsa-loop or similar, which requires understanding ALSA beyond the basics.
  • librespot/AirPlay integration. The Snapcast server can spawn these processes, but you have to install them separately and understand how they hand off audio.
  • No web UI bundled. Volume control and stream switching require either the Android app, a third-party web interface, or direct JSON-RPC calls. This surprises people who expect a management console.

What a non-technical user actually needs: A technical person to do the initial setup. Once it’s running, Snapcast requires almost no maintenance — it’s infrastructure, not an app. But the initial configuration is firmly in command-line territory.

Realistic time estimate for someone comfortable with Linux and MPD: 1–2 hours for a working 2-room setup. For someone new to both: budget a full day and a guide written specifically for their hardware.


Pros and cons

Pros

  • Synchronization precision that commercial systems don’t publicly match. Sub-0.2ms timing deviation is an engineering achievement, not a marketing claim — it’s a result of the continuous clock correction mechanism described in the binary protocol documentation [README].
  • Runs on anything. Raspberry Pi Zero, OpenWrt router, Android phone, old laptop, NAS — if it runs Linux or Android, it can be a Snapclient [README][2].
  • Multiple simultaneous streams with client grouping. One server can serve different audio streams to different groups of clients simultaneously, which Sonos charges extra for [README].
  • Codec flexibility. FLAC for quality, Opus for bandwidth-constrained WiFi, PCM for zero-latency monitoring — your choice per stream [README].
  • No cloud dependency. No Sonos account, no vendor server, no service discontinuation risk. Audio stays entirely on your local network.
  • Active project with hardware breadth. 7,510 stars and cross-compilation support for webOS, Raspberry Pi, OpenWrt, and Android indicates a genuinely maintained project with a real community [README][2].
  • Clean JSON-RPC API. Every client parameter — volume, mute, stream assignment, grouping — is controllable programmatically. This is why Home Assistant and Music Assistant integrate with it cleanly [README].

Cons

  • Not a standalone audio system. The most common stumbling block: Snapcast requires a separate music player. This is a fundamental architecture choice, not a bug, but it means “install Snapcast” is the beginning of a multi-component setup [README].
  • No bundled management UI. Volume control requires the Android app, a third-party web interface, or JSON-RPC. For a household where non-technical family members need to adjust volume, this needs a separate solution.
  • GPL-3.0 license. Not MIT. If you’re planning to embed Snapcast in a commercial product, the GPL-3.0 copyleft requirements apply. Read them before shipping.
  • Positioned as legacy by the emerging Home Assistant ecosystem. The Sendspin protocol from the Open Home Foundation is explicitly designed as a more capable alternative, with richer client roles, visualizer support, and tighter Music Assistant integration [1]. Snapcast isn’t going anywhere soon, but the ecosystem is moving.
  • ALSA loop configuration is painful. Capturing audio from an existing player via ALSA loopback is a legitimate use case that the project supports, but ALSA configuration on Linux is notoriously fiddly.
  • Windows client is second-class. The build guide mentions Windows via vcpkg, but the project’s primary development and testing environment is Linux/Raspberry Pi. Windows users report more friction [README].

Who should use this / who shouldn’t

Use Snapcast if:

  • You already run MPD, Mopidy, or another Linux-native audio player and want to extend it to multiple rooms.
  • You want Sonos-quality synchronization without Sonos prices.
  • You’re comfortable with SSH, config files, and the concept of a named pipe.
  • You’re building a Home Assistant or self-hosted smart home setup and need a battle-tested audio sync layer.
  • You want to stream Spotify or AirPlay to multiple synchronized endpoints without paying for Sonos hardware.

Skip it (not your tool) if:

  • You want to install one thing and have music playing across your house in under 30 minutes without reading documentation.
  • Your household includes people who need to control audio without a technical intermediary — the lack of a built-in UI is a real usability problem.
  • You’re on a fully Windows household; Linux is where Snapcast is happiest.

Consider Sendspin/Music Assistant instead if:

  • You’re building a new Home Assistant-integrated audio setup and don’t have existing MPD infrastructure. Sendspin is designed for this use case from scratch and has Music Assistant integration out of the box [1].

Consider Airfoil instead if:

  • You’re on macOS and want to stream audio from any app to multiple speakers without a server component. Airfoil is commercial but simpler [2][3].

Alternatives worth considering

  • Sendspin (via Music Assistant) — The emerging open-source alternative from the Open Home Foundation. WebSocket-based, Opus audio, richer client role system (audio, metadata, artwork, visualizer), designed for Home Assistant/Music Assistant integration. Still in tech preview as of late 2025. The spiritual successor for new builds in the Home Assistant ecosystem [1].
  • Mopidy — Not an alternative but a companion. A Python-based music server that integrates with Snapcast via its audio output. Adds Spotify, SoundCloud, and other backend support [README].
  • MPD (Music Player Daemon) — The other classic Snapcast companion. Lean, stable, wide client support. If Mopidy is too heavy, MPD is the answer [README].
  • shairport-sync — AirPlay receiver for Linux. Can be combined with Snapcast (Snapserver launches it as a source) or used standalone for single-zone AirPlay [README].
  • Airfoil (Rogue Amoeba) — Commercial, macOS-focused, simpler setup, no Linux server required. Good for Mac-centric households that don’t want a Linux server [2][3].
  • PulseAudio/PipeWire network audio — Built into most Linux distros, no extra install. Adequate for streaming to one other machine, problematic for synchronized multiroom [README].
  • Sonos — The commercial standard this project replaces. Easier setup, worse economics, proprietary ecosystem, cloud-dependent [2].

Bottom line

Snapcast solves one problem with unusual precision: getting the same audio sample to play out of multiple speakers at the same millisecond, on arbitrary Linux hardware, for free. It has done this reliably for years and has the 7,510 GitHub stars to prove it’s not an abandoned experiment. The GPL-3.0 license, no cloud dependency, and broad hardware support (Raspberry Pi through webOS) make it the default choice for anyone building a self-hosted multiroom audio system.

The honest caveat is that Snapcast is infrastructure, not an appliance. It needs a music player in front of it and a control interface alongside it. For someone who already runs MPD and knows their way around an SSH session, that’s fine — the stack is well-documented and the components fit together cleanly. For a non-technical founder looking to replace a SaaS expense, this is a project to hand off to a technical person once, then forget about. The setup cost is real. The ongoing cost, once it’s running, is essentially zero.

If the Sonos bill is the pain point, Snapcast on four Raspberry Pi endpoints versus four Sonos speakers saves you roughly $1,000–1,500 in hardware alone — before factoring in the indefinite subscription-free future.


Sources

  1. Adam Conway, XDA Developers“Sendspin is ESPHome’s answer to Sonos-style multi-room audio” (Dec 17, 2025). https://www.xda-developers.com/sendspin-esphome-multi-room-audio/
  2. AlternativeTo“AllCast Alternatives — Snapcast listing” (Nov 29, 2024). https://alternativeto.net/software/allcast/
  3. AlternativeTo“Allconnect – Play & Stream Alternatives — Snapcast listing” (Mar 12, 2026). https://alternativeto.net/software/allconnect—play-and-stream/

Primary sources:

Features

Integrations & APIs

  • Plugin / Extension System

Mobile & Desktop

  • Mobile App