Skip to content

Releases: mikebrady/shairport-sync

V2.7.10 -- Development Version

27 Jan 11:15
Compare
Choose a tag to compare
Pre-release

New Feature

  • If the ignore_volume_control setting was yes, 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 a pvol 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

26 Jan 22:37
Compare
Choose a tag to compare
Pre-release

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

26 Jan 13:40
Compare
Choose a tag to compare
Pre-release

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

24 Jan 22:10
Compare
Choose a tag to compare
Pre-release

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)

30 Dec 12:41
Compare
Choose a tag to compare

New Features

Bug Fixes

  • Look for the correct tag name for desired ao buffer length: audio_backend_buffer_desired_length rather than audio_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

21 Dec 13:57
Compare
Choose a tag to compare
Pre-release

Enhancements

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 than audio_backend_buffer_desired_length_software.

V2.7.3 – Unstable Development Version -- Dither Code

27 Nov 10:44
Compare
Choose a tag to compare

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

24 Nov 12:30
Compare
Choose a tag to compare
Pre-release

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

09 Nov 13:35
Compare
Choose a tag to compare
Pre-release

Bug Fix
Ensure the ALSA back end correctly remembers the volume that's been set.

V2.7 – Unstable Development Version

08 Nov 12:25
Compare
Choose a tag to compare
Pre-release

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 the rtptime; if they refer to the same item, they will have the same rtptime tags. The update here is to add the rtptime value, if available, as data to the mdst and mden metadata items, which are sent before ("MetaData STart") and after ("MetaData ENd") a metadata sequence.
    In addition, similar tags -- pcst ("PiCture STart") and pcen ("PiCture ENd") are now sent before and after a picture with the rtptime 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 same rtptime as its middle element.