Releases: mikebrady/shairport-sync
V2.7.10 -- Development Version
New Feature
- If the
ignore_volume_control
setting wasyes
, Shairport Sync really did ignore volume control settings and did not send any volume metadata (i.e.pvol
coded metadata). Now, while continuing to ignore volume control settings, it sends apvol
token where the first number is the AirPlay volume, as before, but the remaining three parameters are set to zero.
Version 2.7.9 – Development Version
Bug Fix
- Brown-bag update. Fixed a crashing bug introduced in the last release, caused by not checking for a hardware mixer before trying to access it, duh.
V2.7.8 -- Development Version
Bug Fix
- Fixed an issue whereby Shairport Sync did not reset the hardware mixer volume level before resuming playing. The issue was caused by not releasing and later reaquiring the mixer when pausing and resuming. Thanks to Tim Curtis for reporting the issue.
Version 2.7.7 – Development Version
Enhancements
- Add note about the Arch Linux Community repository package
shairport-sync
. Thanks to Anatol Pomozov. - Shairport Sync doesn't ask for packets to be resent quite so quickly -- it waits about half a second now before asking for missing packets to be resent.
Bug Fixes
- Improved Shairport Sync's behaviour when it's asked to stop a play session and immediately start another. The signalling system used to stop threads was sometimes stopping threads belonging to the new session. This affected iOS 9.2 users going to the next track -- sometimes the player would become unavailable for an instant and disconnect the session. The problem still happens occasionally, but much less frequently.
- Removed code favouring the use of "public" IPv6 addresses as source addresses when connecting to a distant IPv6 port – Neither OpenWrt nor FreeBSD can use it at present. Also, it's not clear if any problems are being caused by not favouring public IPv6 addresses.
V2.7.6 – Development Version (includes 2.7.5)
New Features
- Ubuntu PPA files now available at https://launchpad.net/~dantheperson. Thanks to dantheperson.
- HomeBrew installation package now available for limited support in Mac OS X. Thanks to Serg Podtynnyi.
Bug Fixes
- Look for the correct tag name for desired
ao
buffer length:audio_backend_buffer_desired_length
rather thanaudio_backend_buffer_desired_length_software
. - Fix a few FreeBSD compilation bugs.
- Fix a few documentation issues and typos. Thanks to Chris Boot.
Enhancements
- Add automatic rebuild of manapage and html doc when xmltoman and friends are available. Thanks to Chris Boot.
- Favour the use of "public" IPv6 addresses as source addresses when connecting to a distant IPv6 port.
- Broaden the use of the value
$PREFIX
instead of the path/usr/local/bin
during configuration. Thanks to dantheperson.
V2.7.4 -- Development Version
Enhancements
- Use the correct method for finding the
systemd
unit path, as recomended by debain maintainers and
http://www.freedesktop.org/software/systemd/man/daemon.html#Installing%20Systemd%20Service%20Files. Thanks to dantheperson. - Rather than hardwire the path
/usr/local/bin
as the path to the shairport-sync executable, the value of$PREFIX
is now used during configuration. Thanks to Nick Steel. - Add some extra diagnostic messages if the hardware buffer in the DAC is smaller than desired.
- If metadata has been enabled, but if picture sending has not been requested and the source sends pictures anyway, omit them from the metadata feed. Thanks to Jörg Krause.
Bug Fixes
- Fixed a data alignment issue in the handling of metadata on some processors. Thanks to Jörg Krause.
- Removed an
assert
which would terminate the program if a malformed packet of data was received. - Look for the correct tag name for desired alsa buffer length:
audio_backend_buffer_desired_length
rather thanaudio_backend_buffer_desired_length_software
.
V2.7.3 – Unstable Development Version -- Dither Code
Bug Fix
The dither code was broken in Shairport Sync and also less than ideal anyway. Fixed and improved, but it presents a slightly heavier processing load.
Dither is added whenever you use the software volume control at less than full volume. See http://www.ece.rochester.edu/courses/ECE472/resources/Papers/Lipshitz_1992.pdf for a very influential paper by Lipshitz, Wannamaker and Vanderkooy, 1992. The dither code in Shairport Sync was inherited from Shairport and does not conform to the recommendations in the paper -- specifically the implementation would give one bit of dither where the paper recommends two bits peak-to-peak. The other thing is that the inherited dither code was actually broken in Shairport Sync. So, the new dither code gives a two bit peak-to-peak dither based on a Triangular Probability Distributing Function (TPDF). It sounds like a very low-level white noise, unmodulated by the audio material. It would be nice if it was even lower, but it's better than listening to the artifacts present when dithering is disabled.
V2.7.2 – Unstable Development Version
Bug Fix
Fix a bug that suppressed output of the rtptime
associated with metadata and with picture information coming from the audio source and passed on via the metadata pipe.
Other Changes
Added some more information to the log whenever problems are detected with the proposed alsa device.
V2.7.1 – Unstable Development Version
Bug Fix
Ensure the ALSA back end correctly remembers the volume that's been set.
V2.7 – Unstable Development Version
New Features
- Extend the volume range for some DACs. Background: some of the cheaper DACS have a very small volume range (that is, the ratio of the highest to the lowest volume, expressed in decibels). In some really cheap DACs it's only around 30 dB. That means that the difference betweeen the lowest and highest volume settings isn't large enough. With the new feature, if you set the
general
volume_range_db
to more than the hardware mixer's range, Shairport Sync will combine the hardware mixer's range with a software attenuator to give the desired range. For example, suppose you want a volume range of 70 dB and the hardware mixer offers only 30 dB, then Shairport Sync will make up the other 40 dB with a software attenuator. The drawbacks are that, when the volume is being changed, there may be a slight delay (0.15 seconds by default) as the audio, whose volume may have been adjusted in software, propagetes through the system. The other slight possible drawback is a slightly heavier load on the processor. - Check for underflow a little better when buffer aliasing occurs on very bad connections...
- Add extra debug messages to the alsa back end to diagnose strange DACs.
- Add configuration file for the libao back end -- to change the buffer size and the latency offset, same is for stdout.
- Add shairport-sync.exe to .gitignore.
- Add a check to see if compilation is for a CYGWIN platform.
- Add
rtptime
tags to metadata and picture information and add two new metadata items to precede and follow the transmission of a picture. Background: it seems that metadata and picture information for the same item, e.g. a track, are normally tagged with a timestamp called thertptime
; if they refer to the same item, they will have the samertptime
tags. The update here is to add thertptime
value, if available, as data to themdst
andmden
metadata items, which are sent before ("MetaData STart") and after ("MetaData ENd") a metadata sequence.
In addition, similar tags --pcst
("PiCture STart") andpcen
("PiCture ENd") are now sent before and after a picture with thertptime
value, if available, sent as data.
By the way, the progress metadata (prgr
for "PRoGRess"), which is sent just when a track starts, contains the samertptime
as its middle element.