Revamped Crossfade support (#2087)
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 31 Mar 2025 20:05:20 +0000 (22:05 +0200)
committerGitHub <noreply@github.com>
Mon, 31 Mar 2025 20:05:20 +0000 (22:05 +0200)
commit3040bd2abe223b5d7205a03fc1d0db924fc1d504
tree2df7fcc0210e1a31924ead19331ce1993e9e99c9
parent380ddb657bc549bbcdc85d6ea9acac1891a5fd3c
Revamped Crossfade support (#2087)

* Completely refactor crossfade support

Handle crossfade entirely in the streams controller, even if a player natively supports crossfading.

Support crossfading without flow mode if a player supports gapless.

Optionally support crossfade between different sample rate (only if player supports that).

Do not crossfade tracks of same album.

Unify the crossfade settings.

All players can now set the crossfade duration

Allow crossfade duration up to 15s

* Chore: Ensure sonos queue gets refreshed when items update
21 files changed:
music_assistant/constants.py
music_assistant/controllers/player_queues.py
music_assistant/controllers/streams.py
music_assistant/helpers/audio.py
music_assistant/helpers/ffmpeg.py
music_assistant/helpers/process.py
music_assistant/models/player_provider.py
music_assistant/providers/_template_player_provider/__init__.py
music_assistant/providers/airplay/provider.py
music_assistant/providers/bluesound/__init__.py
music_assistant/providers/builtin_player/__init__.py
music_assistant/providers/chromecast/__init__.py
music_assistant/providers/dlna/__init__.py
music_assistant/providers/fully_kiosk/__init__.py
music_assistant/providers/player_group/__init__.py
music_assistant/providers/snapcast/__init__.py
music_assistant/providers/sonos/const.py
music_assistant/providers/sonos/player.py
music_assistant/providers/sonos/provider.py
music_assistant/providers/sonos_s1/__init__.py
music_assistant/providers/squeezelite/__init__.py