openclaw / openclaw/openclaw-facetime

Replace SoX audio pumping and diagnostics with native Core Audio

Open
#9 0 comments 0 reactions 1 assignee View on GitHub

@omarshahine is already working on this.

Since Aug 4, 2026.

enhancement
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-Mic loopback 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.