music-assistant-server.git
10 months agoFix squeezelite sync group source selection (#2642)
OzGav [Sun, 16 Nov 2025 19:13:40 +0000 (05:13 +1000)]
Fix squeezelite sync group source selection (#2642)

Fix squeezelite group playback

10 months agofix: tracks tab not being populated (#2637)
anatosun [Sun, 16 Nov 2025 09:16:15 +0000 (10:16 +0100)]
fix: tracks tab not being populated (#2637)

10 months agofix: abs progress (again!) (#2641)
Fabian Munkes [Sun, 16 Nov 2025 08:46:28 +0000 (09:46 +0100)]
fix: abs progress (again!) (#2641)

* fix: another progress fix

* fix: forgot a not

10 months agoUpdate Resonate provider with `MULTI_DEVICE_DSP` support and other improvements ...
Maxim Raznatovski [Fri, 14 Nov 2025 15:02:16 +0000 (16:02 +0100)]
Update Resonate provider with `MULTI_DEVICE_DSP` support and other improvements (#2616)

* Update `MediaStream` usage

* Support `MULTI_DEVICE_DSP` for resonate

* Rename `stream` to `channel` in `MediaStream`

* Initial working implementation for per player DSP support

* Refactors, fixes, and comments

* Rename `shared_buffer` to `chunk_buffer`

* Use `UUID` instead of `str`

* Use seconds in `multi_client_stream`

* Move attribute definitions to class level

* Remove dead code

* Refactor `_cleanup_old_chunks`

* Rename `MultiClientStream` to `TimedClientStream`

* Refactor `_read_chunk_from`

* Convert main channel to 16-bit PCM for aioresonate compatibility

* Use separate host and advertise_host

Pass bind_ip for socket binding and publish_ip for mDNS advertising to
correctly handle scenarios where the server binds to all interfaces
(0.0.0.0) but advertises a specific IP address to clients.

* Bump `aioresonate`

* Add safety check to `TimedClientStream` to avoid memory leaks

* Update `MIN_BUFFER_DURATION` comment with findings

* Update music_assistant/providers/resonate/timed_client_stream.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Clean up `timed_client_stream` reference after playback

* Bump `aioresonate`

* Update call to the now async friendly `set_media_art`

* Update `playback_state` when joining a new group

* Update `group_members` based on `aioresonate` events

Instead of optimistically setting them.

* Move `MusicAssistantMediaStream` outside a method

* Run audio cleanup immediately

* Remove redundant type annotation

* Use `anext()`

* Remove unused async from `_cleanup_old_chunks`

* Simplify method name and clarify lock requirement

* Move `_generate` to class-level method

* Refactor `MusicAssistantMediaStream` parameters

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
10 months agoDelete and ignore uv.lock file
Marvin Schenkel [Fri, 14 Nov 2025 14:04:30 +0000 (15:04 +0100)]
Delete and ignore uv.lock file

10 months agoFix CI by installing all provider's dependencies when linting (#2619)
Maxim Raznatovski [Fri, 14 Nov 2025 13:32:45 +0000 (14:32 +0100)]
Fix CI by installing all provider's dependencies when linting (#2619)

Fix CI lint job by installing all provider dependencies

10 months agoAdded deno for YTMusic Provider (#2636)
Dnny44 [Thu, 13 Nov 2025 17:35:14 +0000 (11:35 -0600)]
Added deno for YTMusic Provider (#2636)

* Added deno for YTMusic Provider

* Commiting uv lock

11 months agoFix UGP member detection in `get_stream` (#2617)
Maxim Raznatovski [Mon, 10 Nov 2025 13:39:59 +0000 (14:39 +0100)]
Fix UGP member detection in `get_stream` (#2617)

11 months agoUse `get_stream` helper in builtin player (#2618)
Maxim Raznatovski [Mon, 10 Nov 2025 13:38:57 +0000 (14:38 +0100)]
Use `get_stream` helper in builtin player (#2618)

11 months agoTyping fixes for the Qobuz provider (#2610)
OzGav [Mon, 10 Nov 2025 09:43:22 +0000 (19:43 +1000)]
Typing fixes for the Qobuz provider (#2610)

11 months agoUse secure connection to MusicBrainz API (#2615)
mtdcr [Sun, 9 Nov 2025 23:01:10 +0000 (00:01 +0100)]
Use secure connection to MusicBrainz API (#2615)

11 months agoUpdate base image versions to 1.4.8
Marcel van der Veldt [Sun, 9 Nov 2025 08:34:19 +0000 (09:34 +0100)]
Update base image versions to 1.4.8

11 months agoRemove explicit lvvmlite and numpy dependencies now that we are using debian.
Marvin Schenkel [Sat, 8 Nov 2025 15:59:59 +0000 (16:59 +0100)]
Remove explicit lvvmlite and numpy dependencies now that we are using debian.

11 months agoApple Music: Add remaining favourite parsing + custom music token config (#2609)
Marvin Schenkel [Sat, 8 Nov 2025 11:49:19 +0000 (12:49 +0100)]
Apple Music: Add remaining favourite parsing + custom music token config (#2609)

11 months agoAdd logging filter
Marcel van der Veldt [Sat, 8 Nov 2025 11:39:37 +0000 (12:39 +0100)]
Add logging filter

11 months agoFix bugs in webserver
Marcel van der Veldt [Fri, 7 Nov 2025 17:43:11 +0000 (18:43 +0100)]
Fix bugs in webserver

11 months agoTyping fixes for the config controller (#2570)
OzGav [Fri, 7 Nov 2025 16:18:39 +0000 (02:18 +1000)]
Typing fixes for the config controller (#2570)

11 months agoRefactor Smart fades (#2582)
Marvin Schenkel [Fri, 7 Nov 2025 16:16:53 +0000 (17:16 +0100)]
Refactor Smart fades (#2582)

11 months agoTyping fixes for the squeezelite provider (#2589)
OzGav [Fri, 7 Nov 2025 16:16:21 +0000 (02:16 +1000)]
Typing fixes for the squeezelite provider (#2589)

11 months agofix macos librespot binary
Marcel van der Veldt [Fri, 7 Nov 2025 16:12:35 +0000 (17:12 +0100)]
fix macos librespot binary

11 months agoApple music improvements (#2607)
Marvin Schenkel [Fri, 7 Nov 2025 15:51:42 +0000 (16:51 +0100)]
Apple music improvements (#2607)

11 months agoRemove sonos workaround
Marcel van der Veldt [Fri, 7 Nov 2025 14:47:30 +0000 (15:47 +0100)]
Remove sonos workaround

11 months agoMore crossfade tweaks
Marcel van der Veldt [Fri, 7 Nov 2025 14:47:18 +0000 (15:47 +0100)]
More crossfade tweaks

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Fri, 7 Nov 2025 11:48:43 +0000 (12:48 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoAdd more debugging of stopped streams
Marcel van der Veldt [Fri, 7 Nov 2025 11:48:38 +0000 (12:48 +0100)]
Add more debugging of stopped streams

11 months agofix: abs: another in progress fix (#2605)
Fabian Munkes [Fri, 7 Nov 2025 10:47:01 +0000 (11:47 +0100)]
fix: abs: another in progress fix (#2605)

11 months agofix: MusicCast - non-existing player in zone handling (#2606)
Fabian Munkes [Fri, 7 Nov 2025 10:46:01 +0000 (11:46 +0100)]
fix: MusicCast - non-existing player in zone handling (#2606)

11 months agoyield to loop tweaks
Marcel van der Veldt [Fri, 7 Nov 2025 10:38:49 +0000 (11:38 +0100)]
yield to loop tweaks

11 months agoTyping fixes for the Webserver controller (#2586)
OzGav [Fri, 7 Nov 2025 08:06:25 +0000 (18:06 +1000)]
Typing fixes for the Webserver controller (#2586)

* Fix merge conflicts

* more mypy fixes

* Drafting post upstream changes

* fix run_handler

* PR review comment

* Merge conflict fixes

* Fix WebserverController __init__ signature to match CoreController

11 months agoEnsure Spotify Connect is passive
Marcel van der Veldt [Fri, 7 Nov 2025 00:54:55 +0000 (01:54 +0100)]
Ensure Spotify Connect is passive

11 months agoAdd some temporary debug info to stream controller
Marcel van der Veldt [Fri, 7 Nov 2025 00:49:11 +0000 (01:49 +0100)]
Add some temporary debug info to stream controller

11 months agoAdd Airport Receiver Plugin provider (#2604)
Marcel van der Veldt [Fri, 7 Nov 2025 00:04:14 +0000 (01:04 +0100)]
Add Airport Receiver Plugin provider (#2604)

11 months agoAdd logging to Spotify streaming
Marcel van der Veldt [Thu, 6 Nov 2025 21:19:58 +0000 (22:19 +0100)]
Add logging to Spotify streaming

11 months agoFix Spotify streaming (#2603)
Marcel van der Veldt [Thu, 6 Nov 2025 20:33:51 +0000 (21:33 +0100)]
Fix Spotify streaming (#2603)

11 months agoFix deadlock when trying to join a paused Airplay player to a group (#2602)
Marvin Schenkel [Thu, 6 Nov 2025 20:25:56 +0000 (21:25 +0100)]
Fix deadlock when trying to join a paused Airplay player to a group (#2602)

11 months agoAdd more error handling and logging to (different sample rate) crossfade actions
Marcel van der Veldt [Thu, 6 Nov 2025 13:06:40 +0000 (14:06 +0100)]
Add more error handling and logging to (different sample rate) crossfade actions

11 months agoFix: start stream as fast as possible
Marcel van der Veldt [Thu, 6 Nov 2025 11:44:27 +0000 (12:44 +0100)]
Fix: start stream as fast as possible

Dont wait until the buffer has the crossfade duration if we just started playback

11 months agotry other values for readrate
Marcel van der Veldt [Thu, 6 Nov 2025 03:06:21 +0000 (04:06 +0100)]
try other values for readrate

11 months agoSmall fix for source switching
Marcel van der Veldt [Thu, 6 Nov 2025 00:22:17 +0000 (01:22 +0100)]
Small fix for source switching

11 months agodebug log check_binary returncode and output
Brad Keifer [Wed, 5 Nov 2025 04:57:49 +0000 (15:57 +1100)]
debug log check_binary returncode and output

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Wed, 5 Nov 2025 20:37:38 +0000 (21:37 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoFix AirPlay late join sync
Marcel van der Veldt [Wed, 5 Nov 2025 20:37:34 +0000 (21:37 +0100)]
Fix AirPlay late join sync

11 months agoFix typo in active source property
Marcel van der Veldt [Wed, 5 Nov 2025 20:36:56 +0000 (21:36 +0100)]
Fix typo in active source property

11 months agoAllow buffered named pipe writing
Marcel van der Veldt [Wed, 5 Nov 2025 20:36:35 +0000 (21:36 +0100)]
Allow buffered named pipe writing

11 months agoChore(deps-dev): Bump ruff from 0.13.2 to 0.14.3 (#2591)
dependabot[bot] [Wed, 5 Nov 2025 15:27:44 +0000 (16:27 +0100)]
Chore(deps-dev): Bump ruff from 0.13.2 to 0.14.3 (#2591)

Bumps [ruff](https://github.com/astral-sh/ruff) from 0.13.2 to 0.14.3.
- [Release notes](https://github.com/astral-sh/ruff/releases)
- [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md)
- [Commits](https://github.com/astral-sh/ruff/compare/0.13.2...0.14.3)

---
updated-dependencies:
- dependency-name: ruff
  dependency-version: 0.14.3
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
11 months agoFix CoreController init signature to match model (#2594)
OzGav [Wed, 5 Nov 2025 15:27:17 +0000 (01:27 +1000)]
Fix CoreController init signature to match model (#2594)

11 months agoSpotify: Refactor search method to reduce complexity (#2601)
OzGav [Wed, 5 Nov 2025 15:26:20 +0000 (01:26 +1000)]
Spotify: Refactor search method to reduce complexity (#2601)

Refactor search method to reduce complexity by extracting helper methods

11 months agoDon't stop the music improvements (#2597)
Marvin Schenkel [Wed, 5 Nov 2025 15:23:33 +0000 (16:23 +0100)]
Don't stop the music improvements (#2597)

11 months agoFixed various issues with (plugin)sources (#2600)
Marcel van der Veldt [Wed, 5 Nov 2025 01:52:45 +0000 (02:52 +0100)]
Fixed various issues with (plugin)sources (#2600)

11 months agoEnforce flow mode when player does not support enqueueing (#2595)
Marvin Schenkel [Tue, 4 Nov 2025 22:21:18 +0000 (23:21 +0100)]
Enforce flow mode when player does not support enqueueing (#2595)

11 months agoPhish.in Remove erroneous provider feature (#2596)
OzGav [Tue, 4 Nov 2025 22:18:47 +0000 (08:18 +1000)]
Phish.in Remove erroneous provider feature (#2596)

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Tue, 4 Nov 2025 22:14:08 +0000 (23:14 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoAirPlay: Issue the extra volume command on RAOP only
Marcel van der Veldt [Tue, 4 Nov 2025 22:14:04 +0000 (23:14 +0100)]
AirPlay: Issue the extra volume command on RAOP only

11 months agofix: abs - discarded progress (#2598)
Fabian Munkes [Tue, 4 Nov 2025 22:07:39 +0000 (23:07 +0100)]
fix: abs - discarded progress (#2598)

11 months agoFix japanese language code (#2599)
Marvin Schenkel [Tue, 4 Nov 2025 22:03:47 +0000 (23:03 +0100)]
Fix japanese language code (#2599)

Fix japanese language code.

11 months agoPrevent old streamdetails being reused when buffer still present
Marcel van der Veldt [Tue, 4 Nov 2025 18:48:59 +0000 (19:48 +0100)]
Prevent old streamdetails being reused when buffer still present

11 months agoFix AirPlay discovery info
Marcel van der Veldt [Tue, 4 Nov 2025 18:37:54 +0000 (19:37 +0100)]
Fix AirPlay discovery info

11 months agoFix Sonos enqueue issues
Marcel van der Veldt [Tue, 4 Nov 2025 00:12:57 +0000 (01:12 +0100)]
Fix Sonos enqueue issues

11 months agoModify sonos queue items debug log
Marcel van der Veldt [Mon, 3 Nov 2025 23:50:12 +0000 (00:50 +0100)]
Modify sonos queue items debug log

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Mon, 3 Nov 2025 23:26:28 +0000 (00:26 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoFixed format conversion in crossfade discard calculation
Marcel van der Veldt [Mon, 3 Nov 2025 23:26:25 +0000 (00:26 +0100)]
Fixed format conversion in crossfade discard calculation

11 months agoSubsonic: Use loudness tags when present (#2580)
Eric Munson [Mon, 3 Nov 2025 23:21:50 +0000 (18:21 -0500)]
Subsonic: Use loudness tags when present (#2580)

The Open Subsonic API supports tagging items with loudness values and
will report them, when present. If they are given to us, pass them onto
MA.

Signed-off-by: Eric B Munson <eric@munsonfam.org>
11 months agoBetter handling of errors during streaming
Marcel van der Veldt [Mon, 3 Nov 2025 22:35:53 +0000 (23:35 +0100)]
Better handling of errors during streaming

Try to recover from a failed stream while streaming queue tracks

11 months agoSmall tweaks
Marcel van der Veldt [Mon, 3 Nov 2025 19:24:36 +0000 (20:24 +0100)]
Small tweaks

11 months agoCorrect Resonate flow pcm format
Marcel van der Veldt [Mon, 3 Nov 2025 18:36:19 +0000 (19:36 +0100)]
Correct Resonate flow pcm format

11 months agoUse correct pcm format for airplay flow stream
Marcel van der Veldt [Mon, 3 Nov 2025 18:31:43 +0000 (19:31 +0100)]
Use correct pcm format for airplay flow stream

11 months agouse select source helper in squeezelite
Marcel van der Veldt [Mon, 3 Nov 2025 18:31:09 +0000 (19:31 +0100)]
use select source helper in squeezelite

11 months agoSwap initialization order of AirPlay
Marcel van der Veldt [Mon, 3 Nov 2025 17:32:13 +0000 (18:32 +0100)]
Swap initialization order of AirPlay

only start streaming to airplay if we have received the first audio chunk

11 months agoFix race conditions in closing a (ffmpeg) process
Marcel van der Veldt [Mon, 3 Nov 2025 17:29:39 +0000 (18:29 +0100)]
Fix race conditions in closing a (ffmpeg) process

11 months agoremove radio workaround
Marcel van der Veldt [Mon, 3 Nov 2025 17:28:08 +0000 (18:28 +0100)]
remove radio workaround

11 months agoFix type hints on play_media function
Marcel van der Veldt [Mon, 3 Nov 2025 15:11:12 +0000 (16:11 +0100)]
Fix type hints on play_media function

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Mon, 3 Nov 2025 15:10:41 +0000 (16:10 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoAPI docs tweaks
Marcel van der Veldt [Mon, 3 Nov 2025 15:10:36 +0000 (16:10 +0100)]
API docs tweaks

11 months agoAdd missing enforced flow mode config entry for Resonate (#2587)
Maxim Raznatovski [Mon, 3 Nov 2025 13:05:48 +0000 (14:05 +0100)]
Add missing enforced flow mode config entry for Resonate (#2587)

11 months agoWorkaround for slow starting radio streams
Marcel van der Veldt [Mon, 3 Nov 2025 01:13:06 +0000 (02:13 +0100)]
Workaround for slow starting radio streams

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Mon, 3 Nov 2025 00:41:36 +0000 (01:41 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoUse get_stream helper consistently
Marcel van der Veldt [Mon, 3 Nov 2025 00:41:31 +0000 (01:41 +0100)]
Use get_stream helper consistently

11 months ago Fix HLS radio stream playback and exception handling (#2585)
OzGav [Mon, 3 Nov 2025 00:20:21 +0000 (10:20 +1000)]
 Fix HLS radio stream playback and exception handling (#2585)

11 months agoTyping fixes for the Radio media controller (#2574)
OzGav [Mon, 3 Nov 2025 00:15:54 +0000 (10:15 +1000)]
Typing fixes for the Radio media controller (#2574)

11 months agoFix Squeezelite sample rate for multi client streams (#2565)
OzGav [Mon, 3 Nov 2025 00:13:58 +0000 (10:13 +1000)]
Fix Squeezelite sample rate for multi client streams (#2565)

11 months agoUpdate airplay binaries
Marcel van der Veldt [Mon, 3 Nov 2025 00:11:17 +0000 (01:11 +0100)]
Update airplay binaries

11 months agoAdd a bit of diagnostic info to troubleshoot the Sonos issue of playback stopping
Marcel van der Veldt [Mon, 3 Nov 2025 00:08:41 +0000 (01:08 +0100)]
Add a bit of diagnostic info to troubleshoot the Sonos issue of playback stopping

11 months agoFix stop on stream end in AirPlay provider
Marcel van der Veldt [Mon, 3 Nov 2025 00:07:54 +0000 (01:07 +0100)]
Fix stop on stream end in AirPlay provider

11 months agoOne more fix for infinite recursion
Marcel van der Veldt [Sun, 2 Nov 2025 23:12:25 +0000 (00:12 +0100)]
One more fix for infinite recursion

11 months agoCleanup and fix start time calculation
Marcel van der Veldt [Sun, 2 Nov 2025 23:12:01 +0000 (00:12 +0100)]
Cleanup and fix start time calculation

11 months agoRemove leftover elapsed time reporting
Marcel van der Veldt [Sun, 2 Nov 2025 23:11:38 +0000 (00:11 +0100)]
Remove leftover elapsed time reporting

No longer needed as we just calculate from start time

11 months agoEnsure frame alignment after silence stripping
Marcel van der Veldt [Sun, 2 Nov 2025 23:10:21 +0000 (00:10 +0100)]
Ensure frame alignment after silence stripping

11 months agoFix leftover typo
Marcel van der Veldt [Sun, 2 Nov 2025 23:09:55 +0000 (00:09 +0100)]
Fix leftover typo

11 months agoFix recursion issue in Player model
Marcel van der Veldt [Sun, 2 Nov 2025 22:30:45 +0000 (23:30 +0100)]
Fix recursion issue in Player model

11 months agoBetter handling of crossfade buffer frame aligment
Marcel van der Veldt [Sun, 2 Nov 2025 22:26:31 +0000 (23:26 +0100)]
Better handling of crossfade buffer frame aligment

11 months agoFix docstring
Marcel van der Veldt [Sun, 2 Nov 2025 21:55:28 +0000 (22:55 +0100)]
Fix docstring

11 months agoSplit up chunks if needed
Marcel van der Veldt [Sun, 2 Nov 2025 21:55:18 +0000 (22:55 +0100)]
Split up chunks if needed

11 months agoSimplify named pipe approach
Marcel van der Veldt [Sun, 2 Nov 2025 21:54:57 +0000 (22:54 +0100)]
Simplify named pipe approach

11 months agoMerge branch 'dev' of https://github.com/music-assistant/server into dev
Marcel van der Veldt [Sun, 2 Nov 2025 19:01:16 +0000 (20:01 +0100)]
Merge branch 'dev' of https://github.com/music-assistant/server into dev

11 months agoSimplify buffered generator
Marcel van der Veldt [Sun, 2 Nov 2025 19:01:04 +0000 (20:01 +0100)]
Simplify buffered generator

11 months agoFix small typo
Marcel van der Veldt [Sun, 2 Nov 2025 19:00:31 +0000 (20:00 +0100)]
Fix small typo

11 months ago⬆️ Update music-assistant-models to 1.1.68 (#2578)
music-assistant-machine [Sun, 2 Nov 2025 18:57:54 +0000 (19:57 +0100)]
⬆️ Update music-assistant-models to 1.1.68 (#2578)

Co-authored-by: MarvinSchenkel <17671719+MarvinSchenkel@users.noreply.github.com>
Co-authored-by: Marcel van der Veldt <m.vanderveldt@outlook.com>
11 months agoFix custom name & image for manually added radio URL's (#2583)
OzGav [Sun, 2 Nov 2025 18:51:17 +0000 (04:51 +1000)]
Fix custom name & image for manually added radio URL's (#2583)

11 months agoFix missing message_id in api command on json rpc
Marcel van der Veldt [Sun, 2 Nov 2025 17:45:23 +0000 (18:45 +0100)]
Fix missing message_id in api command on json rpc

11 months agoMark buffer as cancelled when producer fails
Marcel van der Veldt [Sun, 2 Nov 2025 17:01:26 +0000 (18:01 +0100)]
Mark buffer as cancelled when producer fails