mirror of
https://github.com/librespot-org/librespot.git
synced 2024-11-08 16:45:43 +00:00
c8971dce63
Use `--volume-range` overrides
6.7 KiB
6.7 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
Changed
- [main] Enforce reasonable ranges for option values (breaking).
- [main] Don't evaluate options that would otherwise have no effect.
- [playback]
alsa
: Improve--device ?
functionality for the alsa backend. - [contrib] Hardened security of the systemd service units
- [main] Verbose logging mode (
-v
,--verbose
) now logs all parsed environment variables and command line arguments (credentials are redacted). - [playback]
Sink
:write()
now receives ownership of the packet (breaking). - [playback]
pipe
: create file if it doesn't already exist - [playback] More robust dynamic limiter for very wide dynamic range (breaking)
Added
- [cache] Add
disable-credential-cache
flag (breaking). - [main] Use different option descriptions and error messages based on what backends are enabled at build time.
- [main] Add a
-q
,--quiet
option that changes the logging level to warn. - [main] Add a short name for every flag and option.
- [main] Add the ability to parse environment variables.
Fixed
- [main] Prevent hang when discovery is disabled and there are no credentials or when bad credentials are given.
- [main] Don't panic when parsing options. Instead list valid values and exit.
- [main]
--alsa-mixer-device
and--alsa-mixer-index
now fallback to the card and index specified in--device
. - [core] Removed unsafe code (breaking)
- [playback] Adhere to ReplayGain spec when calculating gain normalisation factor.
- [playback]
alsa
: Use--volume-range
overrides for softvol controls
Removed
- [playback]
alsamixer
: previously deprecated optionmixer-card
has been removed. - [playback]
alsamixer
: previously deprecated optionmixer-name
has been removed. - [playback]
alsamixer
: previously deprecated optionmixer-index
has been removed.
0.3.1 - 2021-10-24
Changed
- Include build profile in the displayed version information
- [playback] Improve dithering CPU usage by about 33%
Fixed
- [connect] Partly fix behavior after last track of an album/playlist
0.3.0 - 2021-10-13
Added
- [discovery] The crate
librespot-discovery
for discovery in LAN was created. Its functionality was previously part oflibrespot-connect
. - [playback] Add support for dithering with
--dither
for lower requantization error (breaking) - [playback] Add
--volume-range
option to set dB range and controllog
andcubic
volume control curves - [playback]
alsamixer
: support for querying dB range from Alsa softvol - [playback] Add
--format F64
(supported by Alsa and GStreamer only) - [playback] Add
--normalisation-gain-type auto
that switches between album and track automatically
Changed
- [audio, playback] Moved
VorbisDecoder
,VorbisError
,AudioPacket
,PassthroughDecoder
,PassthroughError
,DecoderError
,AudioDecoder
and theconvert
module fromlibrespot-audio
tolibrespot-playback
. The underlying cratesvorbis
,librespot-tremor
,lewton
andogg
should be used directly. (breaking) - [audio, playback] Use
Duration
for time constants and functions (breaking) - [connect, playback] Moved volume controls from
librespot-connect
tolibrespot-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 volume control unless specified otherwise - [playback]
alsamixer
: use--device
name for--mixer-card
unless specified otherwise - [playback]
player
: consider errors insink.start
,sink.stop
andsink.write
fatal andexit(1)
(breaking) - [playback]
player
: makeconvert
anddecoder
public so you can implement your ownSink
- [playback]
player
: update default normalisation threshold to -2 dBFS - [playback]
player
: default normalisation type is nowauto
Deprecated
- [connect] The
discovery
module was deprecated in favor of thelibrespot-discovery
crate - [playback]
alsamixer
: renamedmixer-card
toalsa-mixer-device
- [playback]
alsamixer
: renamedmixer-name
toalsa-mixer-control
- [playback]
alsamixer
: renamedmixer-index
toalsa-mixer-index
Removed
- [connect] Removed no-op mixer started/stopped logic (breaking)
- [playback] Removed
with-vorbis
andwith-tremor
features - [playback]
alsamixer
: removed--mixer-linear-volume
option, now that--volume-ctrl {linear|log}
work as expected on Alsa
Fixed
- [connect] Fix step size on volume up/down events
- [connect] Fix looping back to the first track after the last track of an album or playlist
- [playback] Incorrect
PlayerConfig::default().normalisation_threshold
caused distortion when using dynamic volume normalisation downstream - [playback] Fix
log
andcubic
volume controls to be mute at zero volume - [playback] Fix
S24_3
format on big-endian systems - [playback]
alsamixer
: makecubic
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 - [playback]
alsa
: revert buffer size to ~500 ms - [playback]
alsa
,pipe
,pulseaudio
: better error handling - [metadata] Skip tracks whose Spotify ID's can't be found (e.g. local files, which aren't supported)