Reaction: Lower volume or pause media when you start talking#599
Merged
Conversation
Reacts to the AirPods speaking-detection event (AAP 0x4B): lowers media volume by a configurable amount or pauses playback when you start talking, and reverts when you stop. Per-profile, Pro-gated, opt-in (default off).
Decodes the speaking status from the last payload byte ({1,2}=start, {6,8,9}=stop, else keep-alive); engage/disengage with a frame-idle stale timeout to recover a dropped stop, plus disconnect and service-stop cleanup.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
AirPods "Conversational Awareness" can now drive a reaction in CAPod: when you start speaking, it can automatically lower the media volume (by an amount you choose) or pause playback, and restores it when you stop. It's opt-in per device and off by default, found under Reactions once Conversational Awareness is enabled. On Android the AirPods don't lower the volume on their own — this fills that gap.
Technical Context
0x4Bframe ({1,2}= started,{6,8,9}= stopped, others = keep-alive); confirmed against real AirPods Pro 3 captures and the librepods project. The earlier assumption read the wrong byte, which is why it never fired.Review checklist
{1,2}/{6,8,9}for models other than Pro 3 (only Pro 3 was tested on-device)Closes #581