spotifyd icon indicating copy to clipboard operation
spotifyd copied to clipboard

Cannot set different that S16 (S24 or S32)

Open mastier opened this issue 2 months ago • 1 comments

Description

I cannot set other audio format. Runing v0.4.1 release. The OS is Ubuntu 24.04.3. Platform is x86-64 I used -full binary

To Reproduce

  1. Have the app already authenticatd
  2. Start spotifyd with --audio-format=s24 or s32

Expected behavior The daemon starts normally and allows play music

Logs

./spotifyd --verbose --no-daemon --audio-format=s24
[INFO spotifyd::config] Loading config from "/home/mastier/.config/spotifyd/spotifyd.conf"
[DEBUG spotifyd::config] No proxy specified
[INFO spotifyd::setup] Using software volume controller.
[INFO librespot_playback::mixer::softmixer] Mixing with softvol and volume control: Log(60.0)
[INFO spotifyd::setup] Login via OAuth as user mastier.
[INFO spotifyd::setup] Starting zeroconf server to advertise on local network.
[DEBUG spotifyd::setup] Using device id '2d90af1f484dc46eb52419c796864b6d5e41e1b8'
[DEBUG librespot_discovery::server] Zeroconf server listening on 0.0.0.0:33303
[DEBUG librespot_core::session] new Session
[DEBUG librespot_connect::spirc] new Spirc[0]
[DEBUG librespot::component] new MercuryManager
[DEBUG librespot::component] new SpClient
[DEBUG librespot_core::spclient] Client token unavailable or expired, requesting new token.
[DEBUG librespot_playback::player] new Player [0]
[INFO librespot_playback::convert] Converting with ditherer: tpdf
[DEBUG librespot_core::http_client] Requesting https://clienttoken.spotify.com/v1/clienttoken
[INFO librespot_playback::audio_backend::rodio] Using Rodio sink with format S24 and cpal host: ALSA
The application panicked (crashed).
Message:  not implemented: Rodio currently only supports F32 and S16 formats
Location: /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/librespot-playback-0.6.0/src/audio_backend/rodio.rs:174

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
[DEBUG hyper_rustls::config] with_native_roots processed 151 valid and 0 invalid certs
[DEBUG hyper_rustls::config] with_native_roots processed 151 valid and 0 invalid certs
[DEBUG rustls::client::hs] No cached session for DnsName("clienttoken.spotify.com")
[DEBUG rustls::client::hs] Not resuming any session
[DEBUG rustls::client::hs] Using ciphersuite TLS13_AES_256_GCM_SHA384
[DEBUG rustls::client::tls13] Not resuming
[DEBUG rustls::client::tls13] TLS1.3 encrypted extensions: [ServerNameAck, Protocols([ProtocolName(6832)])]
[DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
[DEBUG librespot_core::spclient] Received a granted token
[DEBUG librespot::component] new ApResolver
[DEBUG librespot_core::http_client] Requesting https://apresolve.spotify.com/?type=accesspoint&type=dealer&type=spclient
[DEBUG rustls::client::hs] No cached session for DnsName("apresolve.spotify.com")
[DEBUG rustls::client::hs] Not resuming any session
[DEBUG rustls::client::hs] Using ciphersuite TLS13_AES_256_GCM_SHA384
[DEBUG rustls::client::tls13] Not resuming
[DEBUG rustls::client::tls13] TLS1.3 encrypted extensions: [ServerNameAck, Protocols([ProtocolName(6832)])]
[DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
[INFO librespot_core::session] Connecting to AP "ap-gew4.spotify.com:443"
[DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS
[INFO librespot_core::session] Authenticated as 'mastier' !
[DEBUG librespot_connect::spirc] canonical_username: mastier
[ERROR librespot_playback::player] Player Commands Error: channel closed
[DEBUG librespot_playback::mixer::mappings] Input volume 58958 mapped to: 49.99%
[DEBUG librespot_core::session] Session strong=3 weak=5
[INFO librespot_core::session] Country: "PL"
[ERROR librespot_playback::player] Player Commands Error: channel closed
[DEBUG librespot_core::mercury] listening to uri=hm://remote/user/
[DEBUG librespot_core::mercury] listening to uri=spotify:user:attributes:update
[DEBUG librespot_core::mercury] listening to uri=spotify:user:attributes:mutated
[DEBUG librespot_core::mercury] listening to uri=hm://pusher/v1/connections/
The application panicked (crashed).
Message:  called `Option::unwrap()` on a `None` value
Location: src/main_loop.rs:244

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
[DEBUG librespot_connect::spirc] drop Spirc[0]
[DEBUG librespot_playback::player] Shutting down player thread ...
[ERROR librespot_playback::player] Player thread Error: Any { .. }
[DEBUG librespot_core::session] drop Session
[DEBUG librespot::component] drop ApResolver
[DEBUG librespot::component] drop MercuryManager
[DEBUG librespot::component] drop SpClient
[DEBUG librespot_core::session] drop Dispatch
./spotifyd --verbose --no-daemon --audio-format=s32
[INFO spotifyd::config] Loading config from "/home/mastier/.config/spotifyd/spotifyd.conf"
[DEBUG spotifyd::config] No proxy specified
[INFO spotifyd::setup] Using software volume controller.
[INFO librespot_playback::mixer::softmixer] Mixing with softvol and volume control: Log(60.0)
[INFO spotifyd::setup] Login via OAuth as user mastier.
[INFO spotifyd::setup] Starting zeroconf server to advertise on local network.
[DEBUG spotifyd::setup] Using device id '2d90af1f484dc46eb52419c796864b6d5e41e1b8'
[DEBUG librespot_discovery::server] Zeroconf server listening on 0.0.0.0:37913
[DEBUG librespot_core::session] new Session
[DEBUG librespot_connect::spirc] new Spirc[0]
[DEBUG librespot::component] new MercuryManager
[DEBUG librespot::component] new SpClient
[DEBUG librespot_core::spclient] Client token unavailable or expired, requesting new token.
[DEBUG librespot_playback::player] new Player [0]
[INFO librespot_playback::audio_backend::rodio] Using Rodio sink with format S32 and cpal host: ALSA
[DEBUG librespot_core::http_client] Requesting https://clienttoken.spotify.com/v1/clienttoken
The application panicked (crashed).
Message:  not implemented: Rodio currently only supports F32 and S16 formats
Location: /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/librespot-playback-0.6.0/src/audio_backend/rodio.rs:174

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
[DEBUG hyper_rustls::config] with_native_roots processed 151 valid and 0 invalid certs
[DEBUG hyper_rustls::config] with_native_roots processed 151 valid and 0 invalid certs
[DEBUG rustls::client::hs] No cached session for DnsName("clienttoken.spotify.com")
[DEBUG rustls::client::hs] Not resuming any session
[DEBUG rustls::client::hs] Using ciphersuite TLS13_AES_256_GCM_SHA384
[DEBUG rustls::client::tls13] Not resuming
[DEBUG rustls::client::tls13] TLS1.3 encrypted extensions: [ServerNameAck, Protocols([ProtocolName(6832)])]
[DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
[DEBUG librespot_core::spclient] Received a granted token
[DEBUG librespot::component] new ApResolver
[DEBUG librespot_core::http_client] Requesting https://apresolve.spotify.com/?type=accesspoint&type=dealer&type=spclient
[DEBUG rustls::client::hs] No cached session for DnsName("apresolve.spotify.com")
[DEBUG rustls::client::hs] Not resuming any session
[DEBUG rustls::client::hs] Using ciphersuite TLS13_AES_256_GCM_SHA384
[DEBUG rustls::client::tls13] Not resuming
[DEBUG rustls::client::tls13] TLS1.3 encrypted extensions: [ServerNameAck, Protocols([ProtocolName(6832)])]
[DEBUG rustls::client::hs] ALPN protocol is Some(b"h2")
[INFO librespot_core::session] Connecting to AP "ap-gew4.spotify.com:443"
[DEBUG librespot_core::connection] Authenticating with AP using AUTHENTICATION_STORED_SPOTIFY_CREDENTIALS
[INFO librespot_core::session] Authenticated as 'mastier' !
[DEBUG librespot_connect::spirc] canonical_username: mastier
[ERROR librespot_playback::player] Player Commands Error: channel closed
[DEBUG librespot_playback::mixer::mappings] Input volume 58958 mapped to: 49.99%
[DEBUG librespot_core::session] Session strong=3 weak=5
[INFO librespot_core::session] Country: "PL"
[ERROR librespot_playback::player] Player Commands Error: channel closed
[DEBUG librespot_core::mercury] listening to uri=spotify:user:attributes:mutated
[DEBUG librespot_core::mercury] listening to uri=hm://pusher/v1/connections/
[DEBUG librespot_core::mercury] listening to uri=hm://remote/user/
[DEBUG librespot_core::mercury] listening to uri=spotify:user:attributes:update
The application panicked (crashed).
Message:  called `Option::unwrap()` on a `None` value
Location: src/main_loop.rs:244

Backtrace omitted. Run with RUST_BACKTRACE=1 environment variable to display it.
Run with RUST_BACKTRACE=full to include source snippets.
[DEBUG librespot_connect::spirc] drop Spirc[0]
[DEBUG librespot_playback::player] Shutting down player thread ...
[ERROR librespot_playback::player] Player thread Error: Any { .. }
[DEBUG librespot_core::session] drop Session
[DEBUG librespot::component] drop ApResolver
[DEBUG librespot::component] drop MercuryManager
[DEBUG librespot::component] drop SpClient
[DEBUG rustls::common_state] Sending warning alert CloseNotify
[DEBUG rustls::common_state] Sending warning alert CloseNotify
[DEBUG librespot_core::session] drop Dispatch

Compilation flags

  • [ ] dbus_mpris
  • [x] alsa_backend
  • [ ] portaudio_backend
  • [ ] pulseaudio_backend
  • [ ] rodio_backend

Versions (please complete the following information):

  • OS: Ubuntu 24.04.3
  • Spotifyd: v0.4.1
  • cargo: -

mastier avatar Oct 14 '25 12:10 mastier

Thank you for the report! As the logs say, Rodio (one of the audio backends we offer) apparently doesn't support these audio formats. Have you tried with a different backend? Using e.g. --backend=alsa?

eladyn avatar Nov 23 '25 10:11 eladyn