• v0.3.0 afbdd11f45

    v0.3.0 Stable

    kerem released this 2021-10-13 17:30:13 +03:00 | 772 commits to dev since this release

    📅 Originally published on GitHub: Wed, 13 Oct 2021 18:48:53 GMT
    🏷️ Git tag created: Wed, 13 Oct 2021 14:30:13 GMT

    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)
    • [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 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 volume control unless specified otherwise
    • [playback] alsamixer: use --device name for --mixer-card unless specified otherwise
    • [playback] player: consider errors in sink.start, sink.stop and sink.write fatal and exit(1) (breaking)
    • [playback] player: make convert and decoder public so you can implement your own Sink
    • [playback] player: update default normalisation threshold to -2 dBFS
    • [playback] player: default normalisation type is now auto

    Deprecated

    • [connect] The discovery module was deprecated in favor of the librespot-discovery crate
    • [playback] alsamixer: renamed mixer-card to alsa-mixer-device
    • [playback] alsamixer: renamed mixer-name to alsa-mixer-control
    • [playback] alsamixer: renamed mixer-index to alsa-mixer-index

    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, now that --volume-ctrl {linear|log} work as expected on Alsa

    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
    • [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)
    Downloads