Sasha Hilton
8fe2e01166
Merge pull request #660 from roderickvd/hi-res-volume-control
...
High-resolution volume control and normalisation
2021-04-10 01:26:20 +01:00
Roderick van Domburg
e20b96c598
Merge remote-tracking branch 'upstream/dev' into hi-res-volume-control
2021-04-09 20:06:20 +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
Roderick van Domburg
d0ea9631d2
Optimize requantizer to work in f32
, then round
2021-04-09 19:33:28 +02:00
Sasha Hilton
6df977907e
Merge pull request #664 from philippe44/passthrough-update
...
separated stream for each seek
2021-04-09 01:40:12 +01:00
Roderick van Domburg
928a673653
DRY up constructors
2021-04-05 23:14:02 +02:00
Roderick van Domburg
78bc621ebb
Move SamplesConverter into convert.rs
2021-04-05 21:30:40 +02:00
Roderick van Domburg
07d710e14f
Use AudioFormat size for SDL
2021-03-31 20:41:09 +02:00
Roderick van Domburg
d252eeedc5
Warn about broken backends
2021-03-27 22:53:05 +01:00
Roderick van Domburg
cc60dc11dc
Fix buffer size in JACK Audio backend
2021-03-27 22:52:43 +01:00
Roderick van Domburg
a200b25916
Fix formatting
2021-03-27 21:44:01 +01:00
Roderick van Domburg
cdbce21e71
Make S16 to F32 sample conversion less magical
2021-03-27 21:42:10 +01:00
Roderick van Domburg
bfca1ec15e
Minor code improvements and crates bump
2021-03-27 21:13:14 +01:00
Roderick van Domburg
74b2fea338
Refactor sample conversion into separate struct
2021-03-21 22:16:47 +01:00
philippe44
86dbaa8ed5
true/false don't need to be explicit
...
Co-authored-by: Johannesd3 <51954457+Johannesd3@users.noreply.github.com>
2021-03-20 12:11:49 -07:00
Roderick van Domburg
001d3ca1cf
Bump Alsa, cpal and GStreamer crates
2021-03-19 22:28:55 +01:00
Roderick van Domburg
a1326ba9f4
First round of refactoring
...
- 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.
2021-03-18 22:06:43 +01:00
Roderick van Domburg
b94879de62
Fix GStreamer buffer pool size [ref #660 review]
2021-03-18 20:51:53 +01:00
Roderick van Domburg
770ea15498
Add support for S24 and S24_3 output formats
2021-03-17 00:00:27 +01:00
Roderick van Domburg
9dcaeee6d4
Default to S16 output
2021-03-16 20:22:00 +01:00
Roderick van Domburg
309e26456e
Rename steepness to knee
2021-03-14 14:28:16 +01:00
Roderick van Domburg
5f26a745d7
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.
2021-03-13 23:43:24 +01:00
Roderick van Domburg
a4ef174fd0
Fix Alsa backend for 64-bit systems
2021-03-12 23:50:17 +01:00
Roderick van Domburg
6379926eb4
Fix example
2021-03-12 23:47:15 +01:00
Roderick van Domburg
5257be7824
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.
2021-03-12 23:09:15 +01:00
Roderick van Domburg
1672eb87ab
Fix build on Rust < 1.50.0
2021-03-12 23:09:15 +01:00
Roderick van Domburg
f29e5212c4
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/librespot#608
2021-03-12 23:09:15 +01:00
Philippe G
8dc1e80633
separated stream for each seek
2021-02-27 14:59:53 -08:00
Ash
56f1fb6dae
Merge pull request #595 from Johannesd3/const_versions
...
Replace version functions by constants
2021-02-26 10:47:44 +01:00
Sasha Hilton
4beb3d5e60
Add version string CLI parameter, set name to optional parameter, default to 'librespot'
2021-02-23 18:35:57 +00:00
Sasha Hilton
da0e913fa5
Merge pull request #647 from Johannesd3/msrv_1.41
...
Set MSRV to 1.41
2021-02-23 18:05:10 +00: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
Sasha Hilton
19e22ef486
Add note on issues/discussions.
2021-02-23 00:13:13 +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
b7c3609c7b
Update version numbers to 0.1.6
2021-02-22 00:37:28 +00:00
Sasha Hilton
6407c20ea3
Merge branch 'master' into dev
2021-02-22 00:21:50 +00:00
Sasha Hilton
2060901c1e
Merge pull request #605 from flaktack/spirc-command-play-pause
...
Fix state toggling in SpircCommand::PlayPause
2021-02-21 23:30:48 +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
Sasha Hilton
91152b47d8
Merge pull request #607 from willstott101/master
...
Stabilises #529 (NetBSD support)
2021-02-21 23:27:25 +00:00
Will Stott
89ad7a44a6
Update Cargo.lock
2021-02-21 19:01:31 +00:00
Will Stott
0b211f923f
Stabilization of libmdns at 0.2.7 (includes fix for NetBSD)
2021-02-21 18:54:16 +00: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
2c110ca256
Update version numbers to 0.1.5
2021-02-20 23:05:56 +00:00
Sasha Hilton
66566e0b26
remove errant live code in dry-run of publish.sh
2021-02-20 23:04:08 +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
Sasha Hilton
a173fa7cc5
Remove depreciated error description method
2021-02-20 21:55:12 +00:00