/
/
# What does this implement/fix? <!-- Quick description and explanation of changes. --> Players whose Sendspin output is a linked bridge logged No Sendspin group to visualize for … every three seconds and never showed a visualizer. The relay matched a player id against Sendspin ids by suffix, and those ids have nothing in common when the bridge rides on another protocol, so no tap was ever created. It now asks the player for its Sendspin output directly. And a natively rendering player never switched to Sendspin, so there was nothing to tap. The tap now registers as an ordinary Sendspin client (a hidden SendspinVisualizerPlayer) and joins via cmd_set_members(), so the existing protocol grouping performs the handover, mid-track, exactly as when any Sendspin player joins. It is ungrouped and removed when the last viewer leaves, and the now-unused headless client mechanism from #5511 is gone. Note: while running, the tap is a real group member, so it appears in the group dialog and DSP chain. Frontend PR: https://github.com/music-assistant/frontend/pull/2538 **Related issue (if applicable):** - related issue <link to issue> ## Types of changes <!-- Tick exactly one box. CI (.github/workflows/pr-labels.yaml) derives the label from the ticked box and applies it automatically; the release-notes generator uses that same label to slot this change into the next release notes. --> - [x] Bugfix (non-breaking change which fixes an issue) — `bugfix` - [ ] New feature (non-breaking change which adds functionality) — `new-feature` - [ ] Enhancement to an existing feature — `enhancement` - [ ] New music/player/metadata/plugin provider — `new-provider` - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) — `breaking-change` - [ ] Refactor (no behaviour change) — `refactor` - [ ] Documentation only — `documentation` - [ ] Maintenance / chore — `maintenance` - [ ] CI / workflow change — `ci` - [ ] Dependencies bump — `dependencies` ## Checklist - [x] The code change is tested and works locally. - [x] `pre-commit run --all-files` passes. - [x] `pytest` passes, and tests have been added/updated under `tests/` where applicable. - [ ] For changes to shared models, the companion PR in `music-assistant/models` is linked. - [x] For changes affecting the UI, the companion PR in `music-assistant/frontend` is linked. - [x] I have read and complied with the project's [AI Policy](https://github.com/music-assistant/.github/blob/main/AI_POLICY.md) for any AI-assisted contributions. - [ ] I have [raised a PR against the documentation repository](https://github.com/music-assistant/music-assistant.io/blob/main/CONTRIBUTING.md) targeting the main or beta branch as appropriate. --------- Co-authored-by: Marvin Schenkel <[email protected]>