snapcast

Synchronous multiroom audio player

GPL-3.0 License

Downloads
35
Stars
5.7K
Committers
102

Bot releases are hidden (Show)

snapcast - Snapcast v0.28.0-beta.1 Latest Release

Published by badaix 7 months ago

Version 0.28.0-beta.1

Features

  • Server: Use filename as title for FileStreams

Bugfixes

  • Server: Fix noise caused by reading half samples (Issue #1170)
  • Server: Check open syscall error in PipeStream::do_connect (PR #1150)
  • Server: Tweak Airplay support (#1102)
  • Server: Lower log severity for shairport-sync (Issue #891)
  • Improve connect handling in meta_mopidy.py
  • Fix cppcheck issues

General

  • CI: Build debian bookworm and bullseye packages for amd64, arm and arm64
  • CI: Add cppcheck static analysis
  • Update documentation (PR #1130, PR #1067)
  • Delete deprecated Makefiles, CMake is the only supported buildsystem
  • Snapweb: Update to v0.7.0
snapcast - Snapcast v0.27.0

Published by badaix over 1 year ago

Version 0.27.0

Features

  • Server: Configurable default volume for new clients (Issue #910, PR #1024)
  • Server: New control script for mopidy: meta_mopidy.py
  • Server: New control script for librespot java: meta_librespot-java.py
  • Server: Add "mute" stream property

Bugfixes

  • Server: Fix random crash with meta stream (Issue #966)
  • Server: Fix compatibility with librespot 0.5-dev (Issue #1063, #1074, #1042)
  • Server: Not terminate on malformed json messages (Issue #1049)
  • Server: Fix random segfault (Issue #1047)
  • Server: Fix growing delay on input stream (Issue #1014)
  • Server: Fix segfault with Librespot on Alpine (Issue #1026)
  • Server: meta_mpd.py is installed with 755 (Issue #1021, #970)
  • Server: Add list of dependecies to meta_mpd.py (Issue #971)
  • Server: meta_mpd.py stopped working (Issue #997)
  • Client: Not terminate if codec is "null" (Issue #1076)
  • Fix test failures (Issue #961)

General

  • Fix compilation on macOS with Xcode 13.4.1 (Issue #1028)
  • Fix compilation with boost 1.81.0 (Issue #1082)
  • Remove debhelper files from project (moved to SnapOS project)
  • SnapOs uses containers to build deb packages (solves Issue #968)
  • Snapweb: Update to v0.5.0

Packages

The provided debian packages are automated builds from snapos github actions.

Debian

The packages snapclient_<version>_without_pulse_<arch>.deb are built without pulse audio player backend support (i.e. do not support --player pulse) and thus don't require the PulseAudio dependencies, recommended for headless, non-desktop systems.

Windows

There is no installer provided, the contained package vc_redist.exe must be installed to run snapclient.exe. The dll files must be located in your PATH or in the same directory with snapclient.exe.
stijnvdb88 provides with Snap.Net a control interface and a player as single file installer

snapcast - Snapcast v0.26.0

Published by badaix almost 3 years ago

Version 0.26.0

Features

  • Client: Disconnect from pulse when no audio is available (Issue #927, PR #931)
  • Server: New Metadata API for audio streams (Issue #803, #953)
  • Server: New Control API for audio streams (Issue #954)
  • Server: Lowered minimum buffer from 400ms to 20ms (Issue #329)

Bugfixes

  • Server: systemd.unit starts server after network-online (Issue #950)

General

  • Update documentation (Issue #804, PR #945, PR #951)
  • Snapweb: Update to v0.4.0

Packages

The provided debian packages are automated builds from the github actions.

Debian

The packages snapclient_<version>_without_pulse_<arch>.deb are built without pulse audio player backend support (i.e. do not support --player pulse) and thus don't require the PulseAudio dependencies, recommended for headless, non-desktop systems.

Windows

There is no installer provided, the contained package vc_redist.exe must be installed to run snapclient.exe. The dll files must be located in your PATH or in the same directory with snapclient.exe.
stijnvdb88 provides with Snap.Net a control interface and a player as single file installer

snapcast - Snapcast v0.25.0

Published by badaix over 3 years ago

Version 0.25.0

Features

  • Client: Editable PulseAudio properties, e.g. media.role=music (Issue #829)
  • Server: Configurable amplitute for silence detection in alsa stream (Issue #846)

Bugfixes

  • Client: Fix crash on Windows when system volume changes (PR #838)
  • Client: Removed a log message to stdout for file player backend (Issue #681)
  • Server: Fix percent-decoding for stream URIs (Issue #850)
  • Server: Fix double quotes in Airplay device names (Issue #851)
  • Server: Fix crash when feeding a 16 bit signal into 24 bit flac (Issue #866)

General

  • Server: less verbose librespot logging (Issue #874)
  • Snapweb: Update to v0.3.0
  • Add unit tests to the project

Packages

The provided debian packages are automated builds from the github actions.

Debian

The packages snapclient_<version>_without_pulse_<arch>.deb are built without pulse audio player backend support (i.e. do not support --player pulse) and thus don't require the PulseAudio dependencies, recommended for headless, non-desktop systems.

Windows

There is no installer provided, the contained package vc_redist.exe must be installed to run snapclient.exe. The dll files must be located in your PATH or in the same directory with snapclient.exe.
@stijnvdb88 provides with Snap.Net a control interface and a player as single file installer

snapcast - Snapcast v0.24.0

Published by badaix over 3 years ago

Version 0.24.0

Features

  • Client: Configurable server for Pulseaudio backend (Issue #779)

Bugfixes

  • Client: Fix dropouts in alsa player backend (Issue #774)
  • Client: Fix alsa player volume resetting to max (Issue #735)
  • Client: Fix noise while muted for Pulseaudio (Issue #785)
  • Client: Android support for opus readded (Issue #789)
  • Client: Fix host id for MacBook Pro (later 2016) (Issue #807)

General

  • Snapweb: Update to v0.2.0
  • Remove submodules with external libs from the git repository
  • Write version and revision (git sha) to log
  • Add documentation to the default files (Issue #791)

Packages

The provided debian packages are automated builds from the github actions.

Debian

The packages snapclient_<version>_without_pulse_<arch>.deb are built without pulse audio player backend support (i.e. do not support --player pulse) and thus don't require the PulseAudio dependencies, recommended for headless, non-desktop systems.

Windows

There is no installer provided, the contained package vc_redist.exe must be installed to run snapclient.exe. The dll files must be located in your PATH or in the same directory with snapclient.exe.
@stijnvdb88 provides with Snap.Net a control interface and a player as single file installer

snapcast - Snapcast v0.23.0

Published by badaix almost 4 years ago

Version 0.23.0

Features

  • Client: Add PulseAudio player backend (Issue #722)
  • Client: Configurable buffer time for alsa and pulse players
  • Server: If docroot is not configured, a default page is served (Issue #711)
  • Server: airplay source supports "password" parameter (Issue #754)

Bugfixes

  • Server: airplay source deletes Shairport's meta pipe on exit (Issue #672)
  • Server: alsa source will not send silece when going idle (Issue #729)
  • Server: pipe source will not send silence after 3h idle (Issue #741)
  • Server: Fix build error on FreeBSD (Issue #752)
  • Client: "make install" will set correct user/group for snapclient (Issue #728)
  • Client: Fix printing UTF-8 device names on Windows (Issue #732)
  • Client: Fix stuttering on alsa player backend (Issue #722, #727)
  • Client: Terminate if host is not configured and mDNS is unavailable

General

  • Server: Change librespot parameter "killall" default to false (Issue #746, #724)
  • Client: Android uses performance mode "none" to allow effects (Issue #766)
  • Snapweb: Update to v0.1.0
  • Build: Update CMakeLists.txt to build Snapclient on Android
snapcast - Snapcast v0.22.0

Published by badaix about 4 years ago

Version 0.22.0

Features

  • Server: Add Meta stream source (Issue #402, #569, #666)
  • Client: Add file audio backend (Issue #681)

Bugfixes

  • Add missing define for alsa stream to makefile (Issue #692)
  • Fix playback when plugging the headset on Android (Issue #699)
  • Server discards old chunks if not consumed (Issue #708)

General

  • Less verbose logging during pipe reconnects (Issue #696)
  • Add null encoder for streams used only as input for meta streams
  • Snapweb: Change latency range to [-10s, 10s] (Issue #695)
  • Update Snapweb, including PR #11, #12, #13, Issues #16, #17
snapcast - Snapcast v0.21.0

Published by badaix about 4 years ago

Version 0.21.0

Features

  • Server: Support for WebSocket streaming clients
  • Server: Install Snapweb web client (Issue #579)
  • Server: Resample input to 48000:16:2 when using opus codec
  • Server: Add Alsa stream source

Bugfixes

  • make install will setup the snapserver home dir (Issue #643)
  • Client retries to open a blocked alsa device (Issue #652)

General

  • debian packag generation switched from make to CMake buildsystem
  • Reintroduce MACOS define, hopefully not breaking anything on macOS
  • Snapcast uses GitHub actions for automated CI/CD
  • CMake installs man files (Issue #507)
  • Update documentation (Issue #615, #617)
snapcast - Snapcast v0.20.0

Published by badaix over 4 years ago

Version 0.20.0

Features

  • Client: Windows support (Issue #24)
  • Client: add hardware mixer (Issue #318)
  • Client: add "script" and "none" mixer (Issue #302)
  • Client: add sharingmode for audio device (if supported)
  • Logging: configurable sink and filters (Issue #30, #561, #122, #559)
  • Librespot: add option "disable-audio-cache=[false|true]"

Bugfixes

  • Fix build failure on FreeBSD (Issue #565)
  • Fix calling lsb_release multiple times (Issue #470)
  • Client: high CPU load and crash during playback (Issue #609, #628)
  • Client: improved handling of USB audio disconnects (Issue #64)
  • Client: latency is forgotten (Issue #476, #588, Snapdroid #11)
  • Client: fix segfault on mac when playback is paused (Issue #560)
  • Client: fix bonjour on mac reports empty IP (Issue #632)
  • Client: fix buzzing tone on Android (Issue #23, #24)
  • Server: fix crash if client disconnects during connect (Issue #639)
  • Server: fix reading metadata from shairport-sync (Issue #624)
  • Server: fix crash on FreeBSD if settings.json is empty (Issue #620)
  • Server: fix warning about unknown command line options (Issue #635)
  • Readme: openWrt documentation (Issue #633)
  • Fix setting the daemon's process priority (PR #448)

General

  • Client: use less threads and thus less ressources
  • Update links to xiph externals (Issue #637, PR #616)
snapcast - Snapcast v0.19.0

Published by badaix over 4 years ago

Version 0.19.0

Features

  • Option to not kill all running librespot instances (PR #539)
  • Add Airplay cover art to metadata (PR #543)
  • Anroid: add support for Oboe audio backend
  • Server: configurable PID file (Issue #554)
  • Server: configurable persistant storage directory (Issue #554)
  • Server: config file options can be overwritten on command line
  • Client: PCM stream can be resampled using the "--sampleformat" option
  • Librespot: add option "autoplay=[false|true]"

Bugfixes

  • Fix Airplay metadata, port selection and device names (PR #537)
  • Fix cmake build when libatomic is needed (PR #540)
  • Control: fix random crash (PR #543)

General

  • ALSA: improved latency estimation for better sync
  • Improved audio synchronization
  • Faster initial sync after client start and reconnect
  • Less playback tempo adaptions and jitter (Issue #525)
  • Playback is robust against system time changes (Issue #522)
  • Less "resyncs" in stream reader that were causing audio dropouts
  • Control: quicker response to group volume changes
  • Server uses less memory when sending PCM data to a stalled connection
snapcast - Snapcast v0.18.1

Published by badaix over 4 years ago

Version 0.18.1

Bugfixes

  • Fix random server crash or deadlock during stream client disconnect
  • Fix random server crash or deadlock during control client disconnect
  • Fix airplay stream buffer allocation (PR #536)
snapcast - Snapcast v0.18.0

Published by badaix over 4 years ago

Version 0.18.0

Features

  • Add TCP stream reader
  • Configurable number of server worker threads

Bugfixes

  • Client: fix hostname reporting on Android
  • Fix some small memory leaks
  • Fix Librespot stream causing zombie processes (Issue #530)
  • Process stream watchdog is configurable (Issue #517)
  • Fix Makefile for macOS (Issues #510, #514)

General

  • Refactored stream readers
  • Server can run on a single thread
snapcast - Snapcast v0.17.1

Published by badaix almost 5 years ago

Version 0.17.1

Bugfixes

  • Fix compile error if u_char is not defined (Issue #506)
  • Fix error "exception unknown codec ogg" (Issue #504)
  • Fix random crash during client disconnect
snapcast - Snapcast v0.17.0

Published by badaix almost 5 years ago

Version 0.17.0

Features

  • Support for Opus low-latency codec (PR #4)

Bugfixes

  • CMake: fix check for libatomic (Issue #490, PR #494)
  • WebUI: interface.html uses the server's IP for the websocket connection
  • Fix warnings (Issue #484)
  • Fix lock order inversions and data races identified by thread sanitizer
  • Makefiles: fix install targets (PR #493)
  • Makefiles: LDFLAGS are added from environment (PR #492)
  • CMake: required Boost version is raised to 1.70 (Issue #488)
  • Fix crash in websocket server

General

  • Stream server uses less threads (one in total, instead of 1+2n)
  • Changing group volume is much more responsive for larger groups
  • Unknown snapserver.conf options are logged as warning (Issue #487)
  • debian scripts: change usernames back to snapclient and snapserver
snapcast - Snapcast v0.16.0

Published by badaix about 5 years ago

Version 0.16.0

Features

  • Control server: websocket support for JSON RPC
  • Control server: simple webserver integrated to host web UIs
  • Control server: bind-to addresses are configurable
  • Control server: streams can be added and Removed (PR #443)
  • Control server: group names can be changed (PR #467)
  • Librespot: add onevent parameter (PR #465)

Bugfixes

  • Fix build on macOS (Issue #474)

General

  • Control server uses less threads (one in total, instead of 1+2n)
  • Snapserver: Configuration is moved into a file
  • Removed submodules "popl" and "aixlog" to ease build
  • Snapcast depends on boost::asio and boost::beast (header only)
  • Tidy up code base
  • Makefile doesn't statically link libgcc and libstdc++
snapcast - Snapcast v0.15.0

Published by badaix over 6 years ago

Version 0.15.0

Bugfixes

  • Snapserver: fix occasional deadlock
  • Snapclient: make systemd dependeny to avahi-daemon optional
  • cmake: fix build on FreeBSD

General

  • additional linker flags "ADD_LDFLAGS" can be passed to makefile
  • update man pages, fix lintian warnings
  • Support Android NDK r17
snapcast - Snapcast v0.14.0

Published by badaix over 6 years ago

Version 0.14.0

Features

  • Snapserver supports IPv4v6 dual stack and IPv4 + IPv6

Bugfixes

  • cmake: fix check for big endian (Issue #367)
  • cmake: fix linking against libatomic (PR #368)
  • Snapclient compiles with Android NDK API level 16 (Issue #365)
  • Fix compilation errors on FreeBSD (Issue #374, PR #375)

General

  • cmake: make dependency on avahi optional (PR #378)
  • cmake: Options to build snapserver and snapclient
  • cmake: works on FreeBSD
  • Update external libs (JSON for modern C++, ASIO, AixLog)
  • Restructured source tree
  • Moved Android app into seperate project snapdroid
snapcast - Snapcast v0.13.0

Published by badaix over 6 years ago

Version 0.13.0

Features

  • Support "volume" parameter for Librespot (PR #273)
  • Add support for metatags (PR #319)

Bugfixes

  • Fix overflow in timesync when the system time is many years off
  • Zeroconf works with IPv6
  • Snapclient unit file depends on avahi-daemon.service (PR #348)

General

  • Drop dependency to external "jsonrpc++"
  • Move OpenWrt and Buildroot support into separate project "SnapOS"
  • Add CMake support (not fully replacing Make yet) (PR #212)
  • Remove MIPS support for Android (deprecated by Google)
  • Use MAC address as default client id (override with "--hostID")
snapcast - Snapcast v0.12.0

Published by badaix about 7 years ago

Version 0.12.0

Features

  • Support for IPv6 (PR #273, #279)
  • Spotify plugin: onstart and onstop parameter (PR #225)
  • Snapclient: configurable client id (Issue #249)
  • Android: Snapclient support for ARM, MIPS and X86
  • Snapserver: Play some silence before going idle (PR #284)

Bugfixes

  • Fix linker error (Issue #255, #274)
  • Snapclient: more reliable unique client id (Issue #249, #246)
  • Snapserver: fix config file permissions (Issue #251)
  • Snapserver: fix crash on bye from control client (Issue #238)
  • Snapserver: fix crash on port scan (Issue #267)
  • Snapserver: fix crash when a malformed message is received (Issue #264)

General

  • Improved logging: Use --debug for debug logging
  • Log to file: Use --debug=<filename>
  • Improved exception handling and error logging (Issue #276)
  • Android: update to NDK r16 and clang++
  • hide spotify credentials in json control message (Issue #282)
snapcast - Snapcast v0.11.1

Published by badaix over 7 years ago

Version 0.11.1

Bugfixes

  • Snapserver produces high CPU load on some systems (Issue #174)
  • Snapserver compile error on FreeBSD

General

  • Updated Markdown files (PR #216, #218)
Package Rankings
Top 4.16% on Proxy.golang.org
Top 1.72% on Alpine-v3.18
Top 4.09% on Alpine-v3.10
Top 4.44% on Alpine-v3.11
Top 6.71% on Alpine-v3.14
Top 3.65% on Alpine-v3.13
Top 4.75% on Alpine-v3.9
Top 4.35% on Alpine-v3.16
Top 4.75% on Alpine-v3.17
Top 3.7% on Alpine-v3.12
Top 7.74% on Alpine-v3.15
Top 5.61% on Alpine-edge
Top 28.09% on Formulae.brew.sh
Badges
Extracted from project README
CI Github Releases GitHub Downloads Donate