openclaw / openclaw/openclaw-facetime
Replace SoX audio pumping and diagnostics with native Core Audio
@omarshahine is already working on this.
Since Aug 4, 2026.
- Dominant language
- Objective-C
- Stars
- 0
- Forks
- 1
- Avg merge
- 12h 44m
- Merged PRs (30d)
- 12
Description
Problem
The experimental plugin depends on SoX at runtime to convert OpenAI Realtime 24 kHz mono PCM into Core Audio output for OpenClaw-Feed. Setup and preflight also use SoX to generate tones, capture the paired microphone, and measure signal levels.
This adds a Homebrew dependency and a child-process failure mode to every live call.
Proposed direction
Move these responsibilities into the native FaceTime companion:
- stream signed 16-bit little-endian PCM to
OpenClaw-Feed - preserve bounded buffering, interruption clearing, and immediate safety shutdown
- generate deterministic preflight tones
- capture and measure the
OpenClaw-Micloopback signal - report structured route and signal errors to the plugin
Keep the existing TypeScript audio-output interface stable while replacing its SoX-backed implementation.
Acceptance criteria
- live model speech reaches the caller without SoX installed
- interruption clears already queued speech
- media suspension stops output immediately
- paired-driver preflight proves signal strength without SoX
- automated tests cover PCM format, buffering, restart, and shutdown behavior
- live audio and video acceptance passes with Mac speaker suppression
- setup and documentation no longer require
brew install sox
Timing
Do this after the experimental carrier behavior is stable enough to preserve as a native contract.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.