librespot/CHANGELOG.md
Roderick van Domburg ad19b69bfb
Various code improvements (#777)
* Remove deprecated use of std::u16::MAX
* Use `FromStr` for fallible `&str` conversions
* DRY up strings into constants
* Change `as_ref().map()` into `as_deref()`
* Use `Duration` for time constants and functions
* Optimize `Vec` with response times
* Move comments for `rustdoc` to parse
2021-05-31 22:32:39 +02:00

3.6 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning since v0.2.0.

Unreleased

Added

  • [discovery] The crate librespot-discovery for discovery in LAN was created. Its functionality was previously part of librespot-connect.
  • [playback] Add support for dithering with --dither for lower requantization error (breaking)
  • [playback] Add --volume-range option to set dB range and control log and cubic volume control curves
  • [playback] alsamixer: support for querying dB range from Alsa softvol
  • [playback] Add --format F64 (supported by Alsa and GStreamer only)

Changed

  • [audio, playback] Moved VorbisDecoder, VorbisError, AudioPacket, PassthroughDecoder, PassthroughError, AudioError, AudioDecoder and the convert module from librespot-audio to librespot-playback. The underlying crates vorbis, librespot-tremor, lewton and ogg should be used directly. (breaking)
  • [audio, playback] Use Duration for time constants and functions (breaking)
  • [connect, playback] Moved volume controls from librespot-connect to librespot-playback crate
  • [connect] Synchronize player volume with mixer volume on playback
  • [playback] Store and pass samples in 64-bit floating point
  • [playback] Make cubic volume control available to all mixers with --volume-ctrl cubic
  • [playback] Normalize volumes to [0.0..1.0] instead of [0..65535] for greater precision and performance (breaking)
  • [playback] alsamixer: complete rewrite (breaking)
  • [playback] alsamixer: query card dB range for the log volume control unless specified otherwise
  • [playback] alsamixer: use --device name for --mixer-card unless specified otherwise

Deprecated

  • [connect] The discovery module was deprecated in favor of the librespot-discovery crate

Removed

  • [connect] Removed no-op mixer started/stopped logic (breaking)
  • [playback] Removed with-vorbis and with-tremor features
  • [playback] alsamixer: removed --mixer-linear-volume option; use --volume-ctrl linear instead

Fixed

  • [connect] Fix step size on volume up/down events
  • [playback] Incorrect PlayerConfig::default().normalisation_threshold caused distortion when using dynamic volume normalisation downstream
  • [playback] Fix log and cubic volume controls to be mute at zero volume
  • [playback] Fix S24_3 format on big-endian systems
  • [playback] alsamixer: make cubic consistent between cards that report minimum volume as mute, and cards that report some dB value
  • [playback] alsamixer: make --volume-ctrl {linear|log} work as expected
  • [playback] alsa, gstreamer, pulseaudio: always output in native endianness

0.2.0 - 2021-05-04

0.1.6 - 2021-02-22

0.1.5 - 2021-02-21

0.1.3 - 2020-07-29

0.1.2 - 2020-07-22

0.1.1 - 2020-01-30

0.1.0 - 2019-11-06