Sources/VocaMac/Services/AudioEngine.swift is AVAudioEngine microphone capture — its own header says "Real-time microphone audio capture using AVAudioEngine". There is no path to what the machine is playing.
macOS 14.4 added Core Audio process taps (AudioHardwareCreateProcessTap plus an aggregate device), which is the current way to capture system or per-process audio without a virtual driver like BlackHole. ScreenCaptureKit is the alternative, and it is what the meeting-notes apps use — Mono asks for screen-recording permission for exactly this reason.
The same gap exists in the sibling clients: VocaLinux is on PortAudio, VocaWin on cpal. I am filing per platform because the implementation is entirely different in each.
This is irrelevant to dictation. It only matters if transcription of non-microphone audio ever comes into scope.
Came out of comparing what each Voca client takes from its platform. I do not have a Mac, so this is from reading the source rather than from using the app.
Same gap on the sibling clients: VocaHQ/vocalinux#751 (PipeWire) and VocaHQ/vocawin#38 (WASAPI loopback).
Sources/VocaMac/Services/AudioEngine.swiftis AVAudioEngine microphone capture — its own header says "Real-time microphone audio capture using AVAudioEngine". There is no path to what the machine is playing.macOS 14.4 added Core Audio process taps (
AudioHardwareCreateProcessTapplus an aggregate device), which is the current way to capture system or per-process audio without a virtual driver like BlackHole. ScreenCaptureKit is the alternative, and it is what the meeting-notes apps use — Mono asks for screen-recording permission for exactly this reason.The same gap exists in the sibling clients: VocaLinux is on PortAudio, VocaWin on cpal. I am filing per platform because the implementation is entirely different in each.
This is irrelevant to dictation. It only matters if transcription of non-microphone audio ever comes into scope.
Came out of comparing what each Voca client takes from its platform. I do not have a Mac, so this is from reading the source rather than from using the app.
Same gap on the sibling clients: VocaHQ/vocalinux#751 (PipeWire) and VocaHQ/vocawin#38 (WASAPI loopback).