-
Notifications
You must be signed in to change notification settings - Fork 627
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
High-resolution volume control and normalisation #660
Merged
sashahilton00
merged 24 commits into
librespot-org:dev
from
roderickvd:hi-res-volume-control
Apr 10, 2021
Merged
High-resolution volume control and normalisation #660
sashahilton00
merged 24 commits into
librespot-org:dev
from
roderickvd:hi-res-volume-control
Apr 10, 2021
Commits on Mar 12, 2021
-
High-resolution volume control and normalisation
- Store and output samples as 32-bit floats instead of 16-bit integers. This provides 24-25 bits of transparency, allowing for 42-48 dB of headroom to do volume control and normalisation without throwing away bits or dropping dynamic range below 96 dB CD quality. - Perform volume control and normalisation in 64-bit arithmetic. - Add a dynamic limiter with configurable threshold, attack time, release or decay time, and steepness for the sigmoid transfer function. This mimics the native Spotify limiter, offering greater dynamic range than the old limiter, that just reduced overall gain to prevent clipping. - Make the configurable threshold also apply to the old limiter, which is still available. Resolves: librespot-org#608
Configuration menu - View commit details
-
Copy full SHA for f29e521 - Browse repository at this point
Copy the full SHA f29e521View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1672eb8 - Browse repository at this point
Copy the full SHA 1672eb8View commit details -
Add command-line option to set F32 or S16 bit output
Usage: `--format {F32|S16}`. Default is F32. - Implemented for all backends, except for JACK audio which itself only supports 32-bit output at this time. Setting JACK audio to S16 will panic and instruct the user to set output to F32. - The F32 default works fine for Rodio on macOS, but not on Raspian 10 with Alsa as host. Therefore users on Linux systems are warned to set output to S16 in case of garbled sound with Rodio. This seems an issue with cpal incorrectly detecting the output stream format. - While at it, DRY up lots of code in the backends and by that virtue, also enable OggData passthrough on the subprocess backend. - I tested Rodio, ALSA, pipe and subprocess quite a bit, and call on others to join in and test the other backends.
Configuration menu - View commit details
-
Copy full SHA for 5257be7 - Browse repository at this point
Copy the full SHA 5257be7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 6379926 - Browse repository at this point
Copy the full SHA 6379926View commit details -
Configuration menu - View commit details
-
Copy full SHA for a4ef174 - Browse repository at this point
Copy the full SHA a4ef174View commit details
Commits on Mar 13, 2021
-
Add support for S32 output format
While at it, add a small tweak when converting "silent" samples from float to integer. This ensures 0.0 converts to 0 and vice versa.
Configuration menu - View commit details
-
Copy full SHA for 5f26a74 - Browse repository at this point
Copy the full SHA 5f26a74View commit details
Commits on Mar 14, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 309e264 - Browse repository at this point
Copy the full SHA 309e264View commit details
Commits on Mar 16, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 9dcaeee - Browse repository at this point
Copy the full SHA 9dcaeeeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 770ea15 - Browse repository at this point
Copy the full SHA 770ea15View commit details
Commits on Mar 18, 2021
-
Configuration menu - View commit details
-
Copy full SHA for b94879d - Browse repository at this point
Copy the full SHA b94879dView commit details -
- DRY-ups - Remove incorrect optimization attempt in the libvorbis decoder, that skewed 0.0 samples non-linear - PortAudio and SDL backends do not support S24 output. The PortAudio bindings could, but not through this API.
Configuration menu - View commit details
-
Copy full SHA for a1326ba - Browse repository at this point
Copy the full SHA a1326baView commit details
Commits on Mar 19, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 001d3ca - Browse repository at this point
Copy the full SHA 001d3caView commit details
Commits on Mar 21, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 74b2fea - Browse repository at this point
Copy the full SHA 74b2feaView commit details
Commits on Mar 27, 2021
-
Configuration menu - View commit details
-
Copy full SHA for bfca1ec - Browse repository at this point
Copy the full SHA bfca1ecView commit details -
Configuration menu - View commit details
-
Copy full SHA for cdbce21 - Browse repository at this point
Copy the full SHA cdbce21View commit details -
Configuration menu - View commit details
-
Copy full SHA for a200b25 - Browse repository at this point
Copy the full SHA a200b25View commit details -
Configuration menu - View commit details
-
Copy full SHA for cc60dc1 - Browse repository at this point
Copy the full SHA cc60dc1View commit details -
Configuration menu - View commit details
-
Copy full SHA for d252eee - Browse repository at this point
Copy the full SHA d252eeeView commit details
Commits on Mar 31, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 07d710e - Browse repository at this point
Copy the full SHA 07d710eView commit details
Commits on Apr 5, 2021
-
Configuration menu - View commit details
-
Copy full SHA for 78bc621 - Browse repository at this point
Copy the full SHA 78bc621View commit details -
Configuration menu - View commit details
-
Copy full SHA for 928a673 - Browse repository at this point
Copy the full SHA 928a673View commit details
Commits on Apr 9, 2021
-
Configuration menu - View commit details
-
Copy full SHA for d0ea963 - Browse repository at this point
Copy the full SHA d0ea963View commit details -
Bump playback crates to the latest supporting Rust 1.41.1
For Rodio, this fixes garbled sound on some but not all Alsa hosts.
Configuration menu - View commit details
-
Copy full SHA for 222f9bb - Browse repository at this point
Copy the full SHA 222f9bbView commit details -
Configuration menu - View commit details
-
Copy full SHA for e20b96c - Browse repository at this point
Copy the full SHA e20b96cView commit details
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.