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
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
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
Érico Nogueira Rolim
7662bc5064
librespot-audio: update librespot-tremor.
...
This picks up a fix for librespot-tremor when building with Rust 1.48.
2021-02-20 21:54:14 +00:00
Zsombor Welker
392a12af92
Fix toggling in SpircCommand::PlayPause
...
Fix play/pause toggling in handle_play_pause() to correctly call handled_play()/handle_pause() based on the state.
2021-02-20 15:05:53 +01:00
Johannes Dertmann
c8e45ab690
Modified startup message
2021-02-17 15:13:57 +01:00
johannesd3
bce4858b9e
Add semver constant, rename "build id" env var
2021-02-17 15:04:16 +01:00
johannesd3
34733baa75
Bump crypto crates
2021-02-13 19:10:57 +01:00
johannesd3
85be0d075a
Adjust documentation
2021-02-12 20:21:07 +01:00
Sasha Hilton
f483075b2c
Merge pull request #548 from Lcchy/rodiojack-backend
...
Use rodio for the jackaudio backend
2021-02-11 02:24:48 +00:00