/
/
# What does this implement/fix? AirPlay players that support hi-res audio play nothing but static when they are set to "AirPlay 2 - compatibility mode". That mode streams through the 16-bit RAOP flow, but the player still reported itself as AirPlay 2, so Music Assistant kept 24-bit playback switched on and sent the speaker 24-bit audio it cannot decode. This also hits people who never touched the setting: when a HomePod or Apple TV stops answering the AirPlay 2 control channel, Music Assistant switches that player to compatibility mode by itself for the next playback. One user with eight HomePod Pros had every speaker switched over after network trouble and got static on all of them. He [confirmed](https://github.com/orgs/music-assistant/discussions/5982#discussioncomment-18093762) that the audio returned to normal when he set the streaming mode back to automatic. The fix makes hi-res playback stand down while compatibility mode is in use. Everything else follows from that one switch: the offered sample rates, the audio format we produce and the bit depth we hand to the streaming binary. Not changed here: whether Music Assistant should switch players to compatibility mode on its own. That is a separate discussion. - Hi-res playback is now off while a player is in AirPlay 2 compatibility mode - Those players stay on the 16-bit 44.1 kHz format the mode actually supports - Tests added for a hi-res speaker pinned to compatibility mode ## Types of changes - [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. - [ ] 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.