Skip to content

Fix realtime audio engine failures and teardown stalls on macOS - #196

Merged
jamesrochabrun merged 2 commits into
mainfrom
jroch-test-v1-fast
Aug 11, 2026
Merged

Fix realtime audio engine failures and teardown stalls on macOS#196
jamesrochabrun merged 2 commits into
mainfrom
jroch-test-v1-fast

Conversation

@jamesrochabrun

Copy link
Copy Markdown
Owner
  • Build the playback graph before enabling voice processing: enabling VP first leaves AVAudioEngine unable to initialize (-10875).
  • Route the player through mainMixerNode: connecting 24 kHz mono straight into the output node fails AUGraph init on mismatched hardware formats.
  • Expose isPlaybackActive so clients can gate their microphone while assistant audio is audibly playing (half-duplex echo suppression).
  • Stop disabling voice processing in the capture vendor's stop(): the engine is single-use, and the call blocks on default-QoS CoreAudio work, tripping priority-inversion diagnostics.

- Build the playback graph before enabling voice processing: enabling VP
  first leaves AVAudioEngine unable to initialize (-10875).
- Route the player through mainMixerNode: connecting 24 kHz mono straight
  into the output node fails AUGraph init on mismatched hardware formats.
- Expose isPlaybackActive so clients can gate their microphone while
  assistant audio is audibly playing (half-duplex echo suppression).
- Stop disabling voice processing in the capture vendor's stop(): the
  engine is single-use, and the call blocks on default-QoS CoreAudio work,
  tripping priority-inversion diagnostics.
@jamesrochabrun
jamesrochabrun merged commit 1525028 into main Aug 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant