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
Roderick van Domburg
d8ec98015c
Merge pull request #673 from Johannesd3/discovery-crate
...
Create separate discovery crate
2021-05-26 20:21:43 +02:00
johannesd3
1ade02b7ad
Add basic websocket support
2021-05-26 16:51:13 +02:00
Roderick van Domburg
a590b778de
Bump jack and Rodio crates
2021-05-25 22:35:35 +02:00
johannesd3
9b6ba49026
Add "discovery" compat layer to "connect"
2021-05-19 21:09:38 +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
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
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
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
1c62af9160
Unpin protobuf version
2021-05-08 22:09:37 +02:00
Sasha Hilton
59683d7965
Update Cargo.lock
2021-05-04 13:27:57 +01:00
johannesd3
17b04c4b6e
Remove libc dep
2021-05-01 13:00:30 +02:00
johannesd3
9d55f9aa5f
Update Cargo.lock
2021-05-01 12:59:28 +02:00
johannesd3
1681574846
Bump hmac and pbkdf2
2021-05-01 10:53:14 +02:00
johannesd3
6077a1ef4e
Remove unused block-modes dep
2021-05-01 10:41:39 +02:00
johannesd3
e355d4a4f1
Add cache-size-limit command line argument
2021-04-21 11:29:32 +02:00
johannesd3
e9dc9cd839
Add size limit to cache
2021-04-21 11:29:08 +02:00
johannesd3
26c127c2ec
Merge branch 'dev' into tokio_migration
2021-04-10 12:59:47 +02:00
johannesd3
e688e7e886
Almost eliminate util module
2021-04-10 12:50:30 +02:00
johannesd3
9378ae5b6f
Bump num-bigint dependency
2021-04-09 22:39:51 +02:00
johannesd3
7ddb1a20bb
Reuse librespot-core's Diffie Hellman in discovery
2021-04-09 22:39:47 +02:00
Roderick van Domburg
222f9bbd01
Bump playback crates to the latest supporting Rust 1.41.1
...
For Rodio, this fixes garbled sound on some but not all Alsa hosts.
2021-04-09 20:01:21 +02:00
johannesd3
f5274f5ada
Merge branch 'dev' into tokio_migration
2021-04-09 10:39:06 +02:00
Ash
d4dfd4890f
Merge pull request #674 from Johannesd3/proxy-support
...
[Tokio migration] Add back hyper-proxy
2021-03-29 21:00:18 +02:00
Roderick van Domburg
bfca1ec15e
Minor code improvements and crates bump
2021-03-27 21:13:14 +01:00
johannesd3
95fedf5357
Add back hyper-proxy
2021-03-27 15:36:33 +01:00
ThouCheese
ec1ec59b8a
update examples
...
Re-add default impl to SessionConfig and make Credentials::with_password generic over Into<String>
add docs for Credential
reintroduce old Default impl for SessionConfig
use the third argument for the track-to-play rather than a testing id
2021-03-24 01:14:44 +01:00
Roderick van Domburg
001d3ca1cf
Bump Alsa, cpal and GStreamer crates
2021-03-19 22:28:55 +01:00
Roderick van Domburg
770ea15498
Add support for S24 and S24_3 output formats
2021-03-17 00:00:27 +01:00
johannesd3
f22b41956f
Update url crate to 2.1
2021-02-23 22:22:53 +01:00
johannesd3
18179e73ec
Remove unused dependencies and fix feature flags
2021-02-23 22:22:53 +01:00
johannesd3
59c556635e
Clean up librespot-connect dependencies
2021-02-23 22:22:53 +01:00
johannesd3
d064ffc670
Use tokio channels and fix compilation errors
2021-02-23 22:22:53 +01:00
johannesd3
27f308b82f
Replace error_chain by thiserror
2021-02-23 22:22:52 +01:00
johannesd3
5aeb733ad9
Clean up dependencies in librespot-playback
...
* Use futures-util instead of futures
* Use tokio channels instead of futures channels
* Removed "extern crate"s
2021-02-23 22:22:52 +01:00
johannesd3
5c42d2e879
Clean up dependencies in librespot-audio
...
* Remove unused deps
* Use futures-util instead of futures
* Replace futures channels by tokio channels
* Remove unnecessary pin_project
* Reordered "use" statements
2021-02-23 22:22:52 +01:00
johannesd3
746e6c863e
Put lewton behind feature flag
2021-02-23 22:22:52 +01:00
johannesd3
a6ed6857d2
Clean up dependencies in librespot-metadata
...
* Replaced LinearMap by HashMap
* Removed unnecessary dependencies
* Removed "extern crate"s
2021-02-23 22:22:52 +01:00
johannesd3
10827bd6a8
Clean up dependencies of librespot-core
...
* Use sub-crates of future
* Remove unnecessary pin-project
* Removed unused crates and features
* Replace futures channels by tokio channels
* Use serde's "derive" feature flag instead of serde_derive
2021-02-23 22:22:51 +01:00
johannesd3
8cff10e983
Put apresolve behind feature flag
2021-02-23 22:22:51 +01:00
johannesd3
9253be7bc9
Small refactor of librespot-core
...
* Remove default impl for `SessionConfig`
* Move util mod to single file
* Restore privacy of mods
* Move `fn get_credentials` to application
* Remove `extern crate` statements
2021-02-23 22:22:51 +01:00
johannesd3
c0942f14e8
Restore rodiojack support
...
Probably more simple than the previous approach which
doubles the code: Instead of implementing the `Open` trait,
we simply use custom SinkBuilder, one for the default host,
and one for the "jack" host.
2021-02-23 22:22:51 +01:00
johannesd3
678d1777fd
Merge branch 'dev' into tokio_migration
2021-02-23 22:22:49 +01:00
johannesd3
1fc5267a71
Revert "Merge pull request #548 from Lcchy/rodiojack-backend"
...
This reverts commit f483075b2c
, reversing
changes made to ea8ece36d9
.
2021-02-23 22:20:58 +01:00
Johannes Dertmann
58bd339e90
Restore MSRV to 1.41
2021-02-23 09:36:57 +01:00
Sasha Hilton
e8204c970e
Merge pull request #569 from philippe44/passthrough-v3
...
Allow pipeline writer to spit out Ogg directly, including when seeking
2021-02-23 00:16:01 +00:00
Philippe G
34bc286d9b
ogg passthrough
...
rename
2021-02-22 13:45:53 -08:00
Sasha Hilton
d8c1b491c4
Merge branch 'master' into dev
2021-02-22 00:57:45 +00:00
Sasha Hilton
d4b36b2398
Bump cargo.lock
2021-02-22 00:48:14 +00:00
Sasha Hilton
4e1c24d98d
Merge pull request #602 from Johannesd3/bumb_crypto_crates
...
Bump crypto crates
2021-02-21 23:29:00 +00:00
Will Stott
89ad7a44a6
Update Cargo.lock
2021-02-21 19:01:31 +00:00
johannesd3
220061e158
Migrate application to tokio 1.0
2021-02-21 17:05:36 +01:00
johannesd3
daf7ecd23a
Migrate librespot-connect to tokio 1.0
2021-02-21 14:09:31 +01:00
Sasha Hilton
7f705ed148
Merge branch 'master' into dev
2021-02-20 23:31:04 +00:00
Sasha Hilton
91dc14794c
Update Cargo.lock
2021-02-20 23:23:44 +00:00
Sasha Hilton
4e0f5e46a5
Add skip-merge and dry-run options to publish script. Update Cargo.lock.
2021-02-20 22:59:35 +00:00
johannesd3
34733baa75
Bump crypto crates
2021-02-13 19:10:57 +01:00
johannesd3
b2f1be4374
Make RodioSink
Send
and improve error handling
2021-02-12 19:34:28 +01:00
johannesd3
872fab62d8
Merge branch 'dev' into tokio_migration
2021-02-10 21:51:33 +01:00
Lcchy
52438b1cc2
Use rodio for jackaudio backend
2021-02-09 17:45:21 +01:00
Sasha Hilton
4990351dba
Merge pull request #585 from ericonr/patch-1
2021-02-02 01:10:27 +00:00
Sasha Hilton
5e4e574f78
Bump alsa version in playback crate, remove duplicate dependency
2021-01-31 02:50:20 +00:00
Sasha Hilton
4a97108c8c
Update librespot-tremor Cargo.lock dependency
2021-01-31 01:38:56 +00:00
johannesd3
bb44b99c92
Use proxytunnel in apresolve
...
Implementing the tower_service::Service trait for a newly created
ProxyTunnel struct, so it can be used as connector in hyper.
2021-01-30 14:45:31 +01:00
johannesd3
a45fe85c27
Enable logging in test
2021-01-30 13:53:44 +01:00
johannesd3
78614c9d7a
Bump lewton to 0.10
2021-01-29 11:25:09 +01:00
johannesd3
07514c9dcc
Add proxy support to apresolve
2021-01-25 20:55:49 +01:00
johannesd3
91d7d0422b
Preparing main crate for testing
2021-01-25 09:04:47 +01:00
Lyndon Brown
e114558e28
bump rpassword
dependency further (v4 to v5)
...
not sure from brief look at commit log why they jumped to v5, did not care
to dig into it; compiles fine with v5.
2020-12-14 11:53:54 +00:00
Lyndon Brown
a01e0ddaca
bump rpassword
(v3 to v4)
...
they just bumped their `winapi` dependency.
2020-12-14 11:53:54 +00:00
Lyndon Brown
e0b7ce8ecd
bump env_logger
dependency (v0.6 to v0.8)
...
seems to compile fine.
2020-12-14 11:53:54 +00:00
Lyndon Brown
bda91339b3
bump hex
dependency (v0.3 to v0.4)
...
very little changed, compile fine after.
2020-12-14 11:53:54 +00:00
Lyndon Brown
4fbbe44ab8
bump base64
dependency (v0.10 to v0.13)
...
very little changed, compiles fine after.
2020-12-14 11:53:54 +00:00
Lyndon Brown
0460429380
bump num-bigint
dependency (v0.2 to v0.3)
...
compiles fine after version change; version changes seem to be very minimal.
2020-12-14 11:53:54 +00:00
Lyndon Brown
8ea200088c
bump sdl2
dependency (v0.32 to v0.34)
...
doesn't seem to have any compatibility issues - compiled cleanly with sdl2
feature after version bump.
2020-12-14 11:53:54 +00:00
Lyndon Brown
3ba05845d2
upgrade jack
dependency from v0.5 to v0.6
...
A bunch of stuff got moved around; means of constructing audio output port
changed.
I simply used the commits, mostly from [1], to their examples to figure
out how to address the errors that resulted from compiling after the
version bump. It compiles cleanly again now.
[1]: https://github.com/RustAudio/rust-jack/pull/89
2020-12-14 11:53:54 +00:00
Lyndon Brown
594de54bec
bump zerocopy
dependency
...
doesn't seem to have any compatibility issues.
2020-12-14 11:53:54 +00:00
Lyndon Brown
21b2110da2
bump glib
and gstreamer
dependency versions
...
(needed to be done together)
there was no changelog for gstreamer and far too many commits to check
compatibility, but compiling with the gstreamer backend feature works fine
with these new versions.
2020-12-14 11:53:54 +00:00
Lyndon Brown
bc973d02dc
bump uuid
dependency from 0.7 to 0.8
...
seems compatible
2020-12-14 11:53:54 +00:00
Lyndon Brown
2f809ea6e1
bump shell-words
dependency to v1.0.0
...
nothing has changed, as noted here:
ae583f7a19
2020-12-14 11:53:54 +00:00
Lyndon Brown
0411e69548
convert PulseAudio backend to use the available binding crates
...
rather than the raw 'sys' layer.
2020-12-13 17:51:41 +00:00
Lyndon Brown
28061dffe2
upgrade to newer PulseAudio crate dependency
...
requires adding dependency on libpulse-simple-sys since the PulseAudio
simple components were moved to their own crate (the original version
did not stick to the one crate per one system library rule).
this fixes the licensing compatibility issue discussed in #539 ([1])
(the original v0.0.0 was LGPL-3.0 licensed, while v1.11 onwards are
'MIT OR Apache-2.0').
[1]: https://github.com/librespot-org/librespot/issues/539
2020-12-13 17:50:23 +00:00
Will Stott
8ff1dc24bd
Quick minimal hack to get latest rodio working.
2020-12-02 19:45:46 +00:00
Will Stott
dfef2cb433
Bump libmdns to 0.2.7 hopefully fixes : #520
2020-10-05 18:32:25 +01:00
Sasha Hilton
1cd69ab028
Update Cargo.lock
2020-07-29 16:40:24 +01:00
Sasha Hilton
4886d4eed2
Merge pull request #504 from librespot-org/build-fixes
...
General fixes to protobuf bindings, depreciation warnings and publish.sh
2020-07-27 00:17:38 +01:00
Sasha Hilton
16462b34e2
Accidentally bumped protobuf version
2020-07-25 04:50:58 +01:00
Sasha Hilton
e97911e3cf
Generate proto bindings in OUT_DIR, remove precompiled bindings
2020-07-25 04:43:01 +01:00
Sasha Hilton
a45695c9d3
Merge dev to current branch, fix Cargo.lock error
2020-07-25 02:52:37 +01:00
Sasha Hilton
e1c33422a1
Update Cargo.lock & Add notes on todo in publish.sh
2020-07-22 17:10:30 +01:00
Sasha Hilton
258db6ba42
Downgrade vorbis lib due to upstream issue
2020-07-22 16:23:44 +01:00
Sasha Hilton
4e4557da8d
Update Cargo.lock and travis compiler version to 1.40.0
2020-07-22 15:26:08 +01:00