A simple macOS app with one toggle that routes your audio into a virtual microphone ("Bypass") you can select in QuickTime, Zoom, Meet, OBS, etc.
Flip the toggle on → your system audio is duplicated into Bypass while you still hear it normally → pick Bypass as the mic anywhere.
Two pieces:
-
Bypass.driver— a Core Audio HAL plug-in (AudioServerPlugIn). It publishes a virtual device whose output is looped back to its input through a shared ring buffer, so anything played to Bypass can be recorded from Bypass — a virtual microphone. (Only a driver can add a selectable audio input on macOS; an app alone cannot.) -
Bypass.app— a SwiftUI app with a single toggle. When on, it builds a Multi-Output Device named “Bypass Output” that contains [your current output device + Bypass] and makes it the system default output. Your audio plays on your real speakers/headphones and is duplicated into Bypass at the same time. A small meter reads the Bypass mic so you can see audio arriving.
The first design used a Core Audio process tap to grab a specific app's audio. That turned out to feed back into itself (a global tap captures Bypass's own output → into Bypass → captured again …), which corrupts the stream. A multi-output device is driven on the real device's clock with no feedback, so the Bypass loopback stays clean. This was verified end-to-end (real app audio → Bypass mic = clean signal).
- Install the driver (one-time, asks for your password) — the Install
microphone button, or
cd BypassDriver && ./build_driver.sh && sudo ./install_driver.sh. - Flip the toggle on.
- In your app:
- Apps that follow the system output (browsers, QuickTime, Spotify, most players) need nothing — they're already routed.
- Apps that pick a specific output device (e.g. Ableton) — set their audio output to “Bypass Output”. You'll still hear everything.
- In QuickTime: New Audio Recording ▸ ⌄ ▸ Bypass. Its level moves with your audio.
# driver
cd BypassDriver && ./build_driver.sh # universal Bypass.driver
sudo ./install_driver.sh # install + restart coreaudiod
# (install strips the iCloud quarantine flag — coreaudiod won't load quarantined plug-ins)
# app — open Bypass.xcodeproj in Xcode and Run (⌘R), or:
xcodebuild -project Bypass.xcodeproj -scheme Bypass -configuration Debug buildIf you change the driver source, rebuild it and refresh the bundled copy the app installs:
cd BypassDriver && ./build_driver.sh
cd .. && ditto -c -k --keepParent BypassDriver/build/Bypass.driver Bypass/BypassDriver.zip- Quarantine: files under an iCloud-synced Desktop get
com.apple.quarantine; coreaudiod silently refuses to load a quarantined HAL plug-in. Install strips it. - Exported symbol: the plug-in factory function must be exported (no
-fvisibility=hidden), or CFPlugIn can't find it and the device never appears. - coreaudiod restart: SIP blocks
launchctl kickstart; usekillall coreaudiod. - Multi-output must not be private — a private aggregate can't be the system default and is hidden from apps like Ableton.
- The driver is ad-hoc signed (fine for local use; sign + notarize to distribute).