A client-server audio player that synchronizes multiple clients for perfectly synced multiroom audio playback.
Snapcast is a multiroom client-server audio player that synchronizes audio playback across multiple clients with sub-millisecond precision. It captures audio from various sources (like MPD, AirPlay, or line-in) and streams it to connected clients, which can be grouped into zones. It solves the problem of achieving perfectly synced audio in a DIY multiroom setup without proprietary hardware.
DIY audio enthusiasts, home automation integrators, and developers looking to build or extend a synchronized multiroom audio system using existing audio players and hardware like Raspberry Pis.
Developers choose Snapcast for its precise synchronization, open-source flexibility, and ability to integrate with a wide range of audio sources and platforms. It offers a Sonos-like experience without vendor lock-in, supporting self-hosting and extensive customization via its JSON-RPC API.
Synchronous multiroom audio player
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Achieves sub-millisecond audio sync across clients using continuous time correction and low-level audio APIs, ensuring perfect multiroom playback as described in the how-it-works section.
Supports numerous audio sources including named pipes, ALSA, TCP, and processes, allowing integration with players like MPD, AirPlay, and Spotify via librespot, as listed in the configuration options.
Clients are available for Linux, macOS, Windows, Android, and embedded systems like Raspberry Pi, enabling deployment on diverse hardware per the installation guide.
Offers a JSON-RPC API over TCP, HTTP, or Websockets for volume control, muting, grouping, and stream assignment, with integrations for home automation systems like Home Assistant.
Requires configuring stream sources in /etc/snapserver.conf and setting up audio players to feed into snapfifo, involving multiple steps and file edits that can be daunting for new users.
The JSON-RPC API lacks features for adding or removing streams dynamically, as acknowledged in the project roadmap under unfinished items, limiting real-time configuration flexibility.
Synchronization introduces buffering delays with typical deviations below 0.2ms, making it unsuitable for applications requiring instant audio playback, such as live monitoring or interactive audio.
Snapcast is an open-source alternative to the following products: