Commit graph

1470 commits

Author SHA1 Message Date
Roderick van Domburg 5d43b7dc31
Merge pull request #764 from roderickvd/print-normalisation-pregain
Print normalisation pregain in verbose mode
2021-05-26 23:34:02 +02:00
Roderick van Domburg f2d31b73bb
Print normalisation pregain in verbose mode 2021-05-26 23:14:24 +02:00
Roderick van Domburg d5070a107a
Merge pull request #761 from librespot-org/Johannesd3-fix-changelog
Fix changelog
2021-05-26 22:31:12 +02:00
Roderick van Domburg 87743394d9
Improve getopts and stderr message consistency in main (#757) 2021-05-26 22:30:32 +02:00
Roderick van Domburg 8abc0becaf
Print normalisation setup once and add units (#759) 2021-05-26 22:03:52 +02:00
johannesd3 14c1779056
Adjust arg types of Credentials::with_blob
... to avoid redundant utf-8 checking
2021-05-26 21:52:36 +02:00
Roderick van Domburg 11dfedea3b
Remove with-vorbis and with-tremor features (#750) 2021-05-26 21:43:20 +02:00
Roderick van Domburg bb3dd64c87
Implement dithering (#694)
Dithering lowers digital-to-analog conversion ("requantization") error, linearizing output, lowering distortion and replacing it with a constant, fixed noise level, which is more pleasant to the ear than the distortion.

Guidance:

- On S24, S24_3 and S24, the default is to use triangular dithering. Depending on personal preference you may use Gaussian dithering instead; it's not as good objectively, but it may be preferred subjectively if you are looking for a more "analog" sound akin to tape hiss.

- Advanced users who know that they have a DAC without noise shaping have a third option: high-passed dithering, which is like triangular dithering except that it moves dithering noise up in frequency where it is less audible. Note: 99% of DACs are of delta-sigma design with noise shaping, so unless you have a multibit / R2R DAC, or otherwise know what you are doing, this is not for you.

- Don't dither or shape noise on S32 or F32. On F32 it's not supported anyway (there are no integer conversions and so no rounding errors) and on S32 the noise level is so far down that it is simply inaudible even after volume normalisation and control.

New command line option:

--dither DITHER Specify the dither algorithm to use - [none, gpdf,
                tpdf, tpdf_hp]. Defaults to 'tpdf' for formats S16
                S24, S24_3 and 'none' for other formats.

Notes:

This PR also features some opportunistic improvements. Worthy of mention are:
- matching reference Vorbis sample conversion techniques for lower noise
- a cleanup of the convert API
2021-05-26 21:19:17 +02:00
Johannesd3 db71f6d87e
Fix changelog 2021-05-26 21:03:06 +02:00
Roderick van Domburg 7f113b37c3
Merge pull request #685 from roderickvd/log-volume-ctrl-optimisations
Optimize volume control logic
2021-05-26 20:51:27 +02:00
Roderick van Domburg 3a2455d686
Merge branch 'dev' into log-volume-ctrl-optimisations 2021-05-26 20:50:42 +02:00
Roderick van Domburg d8ec98015c
Merge pull request #673 from Johannesd3/discovery-crate
Create separate discovery crate
2021-05-26 20:21:43 +02:00
Roderick van Domburg 08ba3ad7d7
Merge pull request #758 from roderickvd/bump-rodio-and-jack-crates
Bump jack and Rodio crates
2021-05-25 23:01:33 +02:00
Roderick van Domburg a590b778de
Bump jack and Rodio crates 2021-05-25 22:35:35 +02:00
Roderick van Domburg 9efd886e91
Describe new mixer-card getopts behavior
Also remove some other getopts and string changes to a separate PR.
2021-05-25 20:48:20 +02:00
Johannesd3 28dd842e05 Fix bug in MercurySender 2021-05-24 16:31:34 +02:00
Roderick van Domburg eca505c387
Improve volume controls
This is a squashed commit featuring the following:

Connect:
- Synchronize player volume with mixer volume on playback
- Fix step size on volume up/down events
- Remove no-op mixer started/stopped logic

Playback:
- Move from `connect` to `playback` crate
- Make cubic volume control available to all mixers with `--volume-ctrl cubic`
- Normalize volumes to `[0.0..1.0]` instead of `[0..65535]` for greater precision and performance (breaking)
- Add `--volume-range` option to set dB range and control `log` and `cubic` volume control curves
- Fix `log` and `cubic` volume controls to be mute at zero volume

Alsa mixer:
- Complete rewrite (breaking)
- Query card dB range for the `log` volume control unless specified otherwise
- Query dB range from Alsa softvol (previously only from hardware)
- Use `--device` name for `--mixer-card` unless specified otherwise
- Fix consistency for `cubic` between cards that report minimum volume as mute, and cards that report some dB value
- Fix `--volume-ctrl {linear|log}` to work as expected
- Removed `--mixer-linear-volume` option; use `--volume-ctrl linear` instead
2021-05-24 15:53:32 +02:00
Johannesd3 4448ce0c09
Set correct libraryVersion 2021-05-24 11:54:01 +02:00
johannesd3 ceab363429
Update changelog 2021-05-19 21:11:01 +02:00
johannesd3 9b6ba49026
Add "discovery" compat layer to "connect" 2021-05-19 21:09:38 +02:00
johannesd3 c49e1320d4
Update workflow 2021-05-19 21:09:38 +02:00
johannesd3 16de6a7f68
Improve api of discovery crate's builder 2021-05-19 21:05:20 +02:00
johannesd3 a7f9e0a20b
Add an error type to librespot_discovery 2021-05-19 21:05:20 +02:00
johannesd3 1ec5dd21fa
Add discovery example 2021-05-19 21:05:20 +02:00
Johannesd3 ebea5397b9
Add librespot-discovery crate 2021-05-19 21:05:19 +02:00
johannesd3 68818758a2
Add timeout to test 2021-05-18 15:17:30 +02:00
Sasha Hilton 79f75b9119
Merge pull request #749 from roderickvd/fix-default-threshold 2021-05-18 04:40:46 +01:00
Roderick van Domburg 9b44fd4f4a
Skip processing when normalisation is disabled 2021-05-17 21:27:34 +02:00
Roderick van Domburg a4ad6d4aa8
Fix default normalisation threshold [#745] 2021-05-16 22:30:35 +02:00
johannesd3 041f084d7f Fix warnings 2021-05-13 22:42:55 +02:00
dependabot[bot] 3134e1a0c5 Bump sha-1 from 0.9.5 to 0.9.6
Bumps [sha-1](https://github.com/RustCrypto/hashes) from 0.9.5 to 0.9.6.
- [Release notes](https://github.com/RustCrypto/hashes/releases)
- [Commits](https://github.com/RustCrypto/hashes/compare/sha-1-v0.9.5...sha-1-v0.9.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-12 17:12:11 +02:00
dependabot[bot] 48c5a82071 Bump futures-executor from 0.3.14 to 0.3.15
Bumps [futures-executor](https://github.com/rust-lang/futures-rs) from 0.3.14 to 0.3.15.
- [Release notes](https://github.com/rust-lang/futures-rs/releases)
- [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.14...0.3.15)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-12 17:11:36 +02:00
Sasha Hilton 6f7b49e7d2
Merge pull request #739 from librespot-org/Johannesd3-remove-dependabot
Remove dependabot
2021-05-12 16:09:18 +01:00
Johannesd3 ecfe5a0cf1
Remove dependabot 2021-05-12 16:38:51 +02:00
Sasha Hilton b7685e3ac2
Merge pull request #692 from Johannesd3/move-decoder-to-playback
Move decoder to playback crate
2021-05-12 00:30:02 +01:00
johannesd3 555274b5af
Move decoder to playback crate 2021-05-11 20:36:53 +02:00
dependabot[bot] 255f0c6ccf Bump js-sys from 0.3.50 to 0.3.51
Bumps [js-sys](https://github.com/rustwasm/wasm-bindgen) from 0.3.50 to 0.3.51.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/commits)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 13:43:09 +02:00
dependabot[bot] b7d1199068 Bump wasm-bindgen from 0.2.73 to 0.2.74
Bumps [wasm-bindgen](https://github.com/rustwasm/wasm-bindgen) from 0.2.73 to 0.2.74.
- [Release notes](https://github.com/rustwasm/wasm-bindgen/releases)
- [Changelog](https://github.com/rustwasm/wasm-bindgen/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rustwasm/wasm-bindgen/compare/0.2.73...0.2.74)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-11 13:42:36 +02:00
Johannesd3 e74054f2e2 Fix dependabot 2021-05-11 13:39:25 +02:00
Johannesd3 e5e1f006c9 Add indirect dependencies to dependabot 2021-05-11 13:35:10 +02:00
dependabot[bot] fce91f4e61
Bump jack from 0.6.6 to 0.7.0 (#720) 2021-05-09 21:03:25 +00:00
dependabot[bot] 539e9669a4
Merge pull request #717 from librespot-org/dependabot/cargo/url-2.2.2 2021-05-09 08:11:10 +00:00
johannesd3 85aa4eed89
Bump url and update Cargo.lock 2021-05-09 09:53:20 +02:00
dependabot[bot] 91a60ccac7
Bump sha-1 from 0.9.4 to 0.9.5 (#725) 2021-05-08 22:46:35 +00:00
johannesd3 92e0a28e55
Fix workflow 2021-05-08 22:55:03 +02:00
johannesd3 1c62af9160
Unpin protobuf version 2021-05-08 22:09:37 +02:00
johannesd3 e7b3050a90
Add changelog 2021-05-08 22:04:02 +02:00
Johannesd3 4c875c0e59
Create dependabot.yml 2021-05-08 22:00:07 +02:00
Sasha Hilton 59683d7965 Update Cargo.lock 2021-05-04 13:27:57 +01:00
Sasha Hilton 3cd5ef32c4 Merge branch 'dev' 2021-05-04 13:16:39 +01:00