One-click mic mixing
Your microphone and any system audio are mixed into a single stereo stream. Independent gain sliders so your music doesn't drown out your voice.
macOS · Apple Silicon · 14.2+
WhiteHole is the GUI front-end BlackHole 2ch never had. Mix your microphone with audio from any app on your Mac — Spotify, a browser tab, a game, your DAW, a soundboard — and route the whole thing into Discord, Zoom, OBS, or anywhere else that takes an input device.
Your microphone and any system audio are mixed into a single stereo stream. Independent gain sliders so your music doesn't drown out your voice.
Bypasses the flaky ScreenCaptureKit audio path. Uses Apple's macOS 14.2+ Process Tap API to capture the system audio mix directly — minus WhiteHole's own playback, so no feedback loops.
Auto-detects every BlackHole device on your Mac and pipes the mix straight into it. Your output device list stays clean — just point Discord at BlackHole 2ch.
Status pill shows mic and app frame counts in real time. If audio dries up, you'll know exactly which side broke before Discord does.
WhiteHole is a regular signed app. It uses BlackHole 2ch (which you install once via Homebrew) as its loopback. Uninstalling is dragging it to the Trash.
Streaming a YouTube video to your call. Sharing in-game audio. Playing music from Spotify behind a podcast. WhiteHole doesn't care which app — if your Mac can play it, WhiteHole can route it.
WhiteHole starts an AVAudioEngine on your default microphone and a CoreAudio Process Tap on the rest of the system.
Both streams resample to 48 kHz / stereo / float32 and meet at a final mixer with per-source gain.
The mixed stream is written into BlackHole 2ch via a dedicated AVAudioEngine bound to the BlackHole device.
Set Discord's input to BlackHole 2ch. Your voice + your music arrive as one tidy input.
WhiteHole is the GUI; BlackHole is the loopback. Install it once via Homebrew:
brew install blackhole-2ch
No Homebrew? Grab the signed installer from Existential Audio:
Download BlackHole 2chGrab the zip, drag WhiteHole.app into /Applications, and double-click. macOS may ask you to grant Microphone access on first run.
Pick a BlackHole output device, balance your mic and app gain, and press Start. The status bubble will show mic:N app:M frames ticking up.
In Discord → User Settings → Voice & Video → Input Device: BlackHole 2ch. Set Output to your real headphones so you can still hear the call.
WhiteHole uses a global system tap that excludes itself, so every other app's audio is captured. Per-app filtering is on the roadmap — for now, mute the apps you don't want bleeding into the call.
BlackHole gives you a virtual loopback device, but it doesn't mix and it can't add your microphone. Without WhiteHole you'd need an aggregate device, a multi-output device, and probably Audio MIDI Setup tabs you didn't want to know about.
Never. Everything stays on your Mac. WhiteHole has no network code at all.
The build is Apple Silicon only. The CoreAudio Process Tap API works on Intel too in theory; if there's demand we'll cut a universal build.
Make sure your system Output is set to your headphones (not BlackHole), the mic input is your real mic, and that WhiteHole is allowed in System Settings → Privacy & Security → Microphone. The status pill will tell you which side is silent.