Skip to content

Microphone: stream the iPhone or iPad microphone to the Mac (#190) - #191

Open
addhumal wants to merge 1 commit into
Saffsanity:mainfrom
addhumal:device-microphone
Open

addhumal wants to merge 1 commit into
Saffsanity:mainfrom
addhumal:device-microphone

Conversation

@addhumal

@addhumal addhumal commented Oct 20, 2026 •

Copy link
Copy Markdown

Closes #190.

What it does

  • Wire (Sources/StreamProtocol): Adds kind 45 (StreamMessageKind.microphone = 45), WindowList.microphone: Int?, and MicrophoneCodec, MicrophoneFormat, MicrophonePackets, and MicrophoneMessage (matching pull request The Mac's sound on the device: Send Audio, kind 43, AAC-ELD (#83) #94's type-1 JSON format + type-2 binary packet framing).
  • Host (Sources/SillHost): Adds HostMicrophone (HostClipboard.swift, wired in StreamCoordinator.swift), which decodes incoming 48 kHz PCM16 packets and schedules them on a low-latency AVAudioEngine / AVAudioPlayerNode sink (ready to route into Sill's AudioDriverKit virtual microphone once Apple grants the DriverKit entitlement).
  • Device (iOSClient): Adds Share Microphone (Sill.shareMicrophone, off by default) in Settings › This iPad / This iPhone, NSMicrophoneUsageDescription in Info.plist and Info-Debug.plist, and DeviceMicrophoneCapture (AVAudioEngine input tap converted to 48 kHz mono PCM16).

Why

  • Completes Roadmap Item 9, letting an iPhone or iPad forward its microphone audio to the Mac during a session.

Checks

  • Tests/checks/compatibility/run.sh: 116 checks passed (26 of 26 mutants caught).
  • Tests/checks/clipboard/run.sh: 259 checks passed.
  • Tests/checks/protocol/run.sh: 192 + 8 checks passed.
  • swift build -c release and .build/local27.sh (iOS simulator): clean.

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.

Share the iPhone or iPad microphone with the Mac

1 participant