From eff3dca1aadd972a7a06acb25269d690ebe55c4a Mon Sep 17 00:00:00 2001 From: Mike Brady Date: Fri, 29 Nov 2019 08:56:24 +0000 Subject: [PATCH 1/3] Update CONTRIBUTING.md --- CONTRIBUTING.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index ab4d5442..2b879f79 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,6 +12,25 @@ Issue Reports ---- Issue reports are welcome, but before you report an issue, please have a look though the existing [issues](https://github.com/mikebrady/shairport-sync/issues), both open and closed, and check for hints in the [TROUBLESHOOTING](TROUBLESHOOTING.md) page. It would be great to give some details of the device and version of Linux or FreeBSD in use along with the version of Shairport Sync you are using (use `$ shairport-sync -V` to get this). Then, if possible, some diagnostic information from the log or logfile would be useful. +If your system uses `systemd`, as most recent Linuxes do, try using: +``` +$ sudo systemctl status shairport-sync +``` +You might get something lke this: +``` +● shairport-sync.service - Shairport Sync - AirPlay Audio Receiver + Loaded: loaded (/lib/systemd/system/shairport-sync.service; disabled; vendor preset: enabled) + Active: active (running) since Fri 2019-11-29 08:52:47 GMT; 3s ago + Main PID: 19812 (shairport-sync) + Tasks: 10 (limit: 4915) + Memory: 2.0M + CGroup: /system.slice/shairport-sync.service + └─19812 /usr/local/bin/shairport-sync + +``` + +If so, please paste it in as code (see below) the output into your message. + In general, a log verbosity of 2 is adequate (`-vv`, or the relevant entry in the configuration file), and it's usually helpful if statistics have been enabled (`--statistics` on the command line, or the relevant entry in the configuration file). If you are pasting in code or a log file, format it as code by preceding it and following it with a line containing exactly three backquotes and nothing else ([see here](https://guides.github.com/features/mastering-markdown/) for more on formatting): From 4ee2eaf80f4ba4c443ec8850016e40f761e8690e Mon Sep 17 00:00:00 2001 From: Matt Blaha Date: Mon, 2 Dec 2019 11:43:28 -0600 Subject: [PATCH 2/3] Includ note about audio_backend_buffer_desired_length in TROUBLESHOOTING.md --- TROUBLESHOOTING.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 8a4e14e5..fd500e60 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -231,3 +231,20 @@ This will then be used by default by Shairport-Sync and any other applications u Note that some distributions (such as Volumio 2) don't use an asound.conf file by default, they instead specify the hardware details directly in '/etc/mpd.conf' files so some more in-depth modification is needed to override this. (Note: not tested by Mike B.) + +### Buffer underflow to audio backend + +**Problem ** + +Audio may seem to pause or drop for several seconds. iOS devices may regularly disconnect altogether and display an error message. This may be caused by a combination of factors listed above such as slow WiFi or limited resources on the device running Shairport Sync. + +**Possible Solution ** + +If none of the above steps completely remove the issue, try increasing the audio backend buffer setting in the backend section of shairport-sync.conf. (This section may vary depending on the value of the "output_backend" setting.) + +For example: + +```` +audio_backend_buffer_desired_length = 19845; +```` +Is triple the default for the ALSA backend and effectively solves the above issue with a Pi Zero on a busy network. From bd7c5611cf821592dfe93f6e0df6dd8f96737b01 Mon Sep 17 00:00:00 2001 From: Mike Brady Date: Wed, 11 Dec 2019 15:24:09 +0000 Subject: [PATCH 3/3] Update README.md --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index d9b5c8f7..b0aea260 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Shairport Sync ============= Shairport Sync is an AirPlay audio player – it plays audio streamed from iTunes, iOS, Apple TV and macOS devices and AirPlay sources such as Quicktime Player and [ForkedDaapd](http://ejurgensen.github.io/forked-daapd/), among others. -Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible for players that support it, such as iTunes. +Audio played by a Shairport Sync-powered device stays synchronised with the source and hence with similar devices playing the same source. In this way, synchronised multi-room audio is possible for players that support it, such as iTunes and the macOS Music app. Shairport Sync runs on Linux, FreeBSD and OpenBSD. It does not support AirPlay video or photo streaming. @@ -36,7 +36,7 @@ What else? * Output frame rates of 44,100, 88,200, 176,000 or 352,000 frames per second. * Fast Response — With hardware volume control, response is instantaneous; otherwise the response time is 0.20 seconds with `alsa`, 0.35 seconds with `sndio`. * Non-Interruptible — Shairport Sync sends back a "busy" signal if it's already playing audio from another source, so other sources can't disrupt an existing Shairport Sync session. (If a source disappears without warning, the session automatically terminates after two minutes and the device becomes available again.) -* Metadata — Shairport Sync can deliver metadata supplied by the source, such as Album Name, Artist Name, Cover Art, etc. through a pipe or UDP socket to a recipient application program — see https://github.com/mikebrady/shairport-sync-metadata-reader for a sample recipient. Sources that supply metadata include iTunes and the Music app in iOS. +* Metadata — Shairport Sync can deliver metadata supplied by the source, such as Album Name, Artist Name, Cover Art, etc. through a pipe or UDP socket to a recipient application program — see https://github.com/mikebrady/shairport-sync-metadata-reader for a sample recipient. Sources that supply metadata include iTunes and the Music app in macOS and iOS. * Compiles on Linux, Cygwin, FreeBSD, OpenBSD. * Outputs to [`alsa`](https://www.alsa-project.org/wiki/Main_Page), [`sndio`](http://www.sndio.org), [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/), [JACK](http://jackaudio.org), to a unix pipe or to `STDOUT`. It also has limited support for [libao](https://xiph.org/ao/) and for [`soundio`](http://libsound.io). * An [MPRIS](https://specifications.freedesktop.org/mpris-spec/2.2/) interface, partially complete and very functional, including access to metadata and artwork, and some limited remote control. @@ -504,7 +504,7 @@ general = { Metadata -------- -Shairport Sync can deliver metadata supplied by the source, such as Album Name, Artist Name, Cover Art, etc. through a pipe or UDP socket to a recipient application program — see https://github.com/mikebrady/shairport-sync-metadata-reader for a sample recipient. Sources that supply metadata include iTunes and the Music app in iOS. +Shairport Sync can deliver metadata supplied by the source, such as Album Name, Artist Name, Cover Art, etc. through a pipe or UDP socket to a recipient application program — see https://github.com/mikebrady/shairport-sync-metadata-reader for a sample recipient. Sources that supply metadata include iTunes and the Music app in macOS and iOS. **Metadata broadcasting over UDP**