the setup

I wanted to perform and teach guitar over Zoom from my Mac.

Not just strum acoustic — actual amp-simmed electric tone. Morgan Amps Suite (my guitar amp-sim app), processed mic, low-latency headphone monitoring, no voice delay. All of it landing cleanly in Zoom.

The stack: Loopback (Rogue Amoeba's virtual audio router), BlackHole 2ch (a free silent virtual audio cable by Existential Audio), and Ableton (my DAW, handling mic FX). One setup that works every time I open Zoom.

the wall

Guitar kept dying.

Morgan was set to output to BlackHole 2ch. That should have piped the signal into the virtual cable and out to Zoom. The config screen said: correct. Zoom disagreed.

I restarted Zoom. Re-checked BlackHole. Re-checked the Loopback device monitor list. Opened Audio MIDI Setup and stared at it.

Everything looked fine. Guitar: still dead.

what I missed

Here's the thing about Loopback: when you add an app as a source in a Loopback device, Loopback takes over that app's audio stream entirely.

Not "taps into it." Takes it over.

Morgan's own output-device setting — the one showing BlackHole 2ch in the dropdown — went dead the moment I added it as a Loopback source. The UI still showed the setting. The setting was doing absolutely nothing. Loopback had seized ownership, and the handoff was invisible.

I spent a whole debugging round staring at config screens that LIED.

the fix

Add BlackHole 2ch as a monitor on the Loopback device itself.

Loopback captures Morgan → Loopback re-emits the captured audio onto BlackHole 2ch via its own monitor path → Zoom sees the guitar. The app's output setting is now irrelevant. Loopback owns the stream; you tell Loopback where to send it.

the working topology

Ableton (mic → USB codec → FX) ──────────────→ BlackHole 2ch ──→ Zoom mic
Morgan Amps Suite (captured by Loopback) ──┬──→ Headphones      (low-latency monitor)
                                           └──→ BlackHole 2ch   (re-emit so Zoom hears guitar)

A few rules that made this stick:

  • 48kHz everywhere — Ableton, BlackHole, the Loopback device. Mismatch = crackle and drift.
  • Don't monitor your own voice through this chain. The Ableton buffer + BlackHole + Loopback latency reads as audible delay against bone conduction. Monitor the instrument only.
  • BlackHole is silent — anything you want heard must be explicitly re-emitted via a Loopback monitor. That's not a bug; it's the whole model.

why this matters to me

The lesson isn't really about Loopback.

It's that when a tool captures something as a "source," it can take silent ownership of the whole resource — and leave the old config sitting there looking correct, doing nothing.

I've hit the same pattern in proxies, stream wrappers, database connection pools. The screen says one thing. The signal path says something else entirely. Verify the actual flow, not the config that got orphaned.