An open-source effects rack and per-app audio router for the macOS menu bar.
Download patchbay.dmg · Watch the demo (45 s, silent)
Apple Silicon, macOS 15 or newer.
- Open
patchbay.dmgand drag patchbay into Applications. - Open it. macOS blocks the first launch because patchbay isn't signed with a paid Apple Developer ID. Go to System Settings → Privacy & Security and click Open Anyway. (Only if you trust this repo; you can also build it yourself.)
- Click the menu bar icon and turn the rack on. macOS asks once for System Audio Recording permission.
patchbay then updates itself: it checks once a day and asks before installing. Versions before 1.4.0 need one manual download.
- Effects chain on all system audio, up to 16 modules in any order:
- Tone: gain, parametric EQ (up to 32 bands), 16-band graphic EQ, filter, loudness
- Character: bass enhancer, exciter, crystalizer, crusher
- Dynamics: compressor, expander, gate, de-esser, limiter, maximizer, autogain
- Space: stereo tools, crossfeed, delay, reverb
- Headphone correction from one search across AutoEq and 130+ squig.link reviewer databases. Pick a measurement and patchbay chooses a Harman or neutral target and fits the EQ (5–32 filters).
- Per-app routing: send an app to a different output with its own chain.
- Per-device chains and presets: each output remembers its chain; presets can load automatically when you switch output.
- Undo/redo (⌘Z / ⇧⌘Z), bypass for A/B, live response graph and spectrum.
- Equalizer APO
ParametricEQ.txtimport and export. - Microphone chain into a virtual "patchbay Mic" for Zoom, Discord, OBS (optional driver).
- eqMac recovery tools on the Fix page.
patchbay uses Core Audio process taps instead of a virtual output driver:
system audio (minus routed apps) → system tap → [ chain ] → default device
app A → route tap → [ chain ] → device X
- System audio is muted only after patchbay proves it is capturing it, so a denied permission can't silence your Mac.
- If patchbay crashes, macOS removes its taps and audio falls back to the real device.
- The audio thread doesn't allocate or lock.
Microphone: Settings → Virtual microphone → Install adds a 90 KB
loopback driver (BlackHole,
source in VirtualMic/) to /Library/Audio/Plug-Ins/HAL. It needs your
password and restarts Core Audio for about 3 s. Remove uninstalls it.
- Input effects need the virtual microphone driver; taps only capture output.
- Don't run it alongside other tap-based apps (FineTune, CoreEQ): results range from double latency to silence.
Needs the Xcode Command Line Tools.
./build.sh && open patchbay.appThe first build downloads Sparkle 2.10.0 (the
updater) into .build/. Builds without the project's signing certificate ask for
audio permission again after each rebuild.
main and staging accept changes only through pull requests. To release, tag
a commit on main; the tag message becomes the release notes:
git switch main && git pull
git tag -a v1.4.1 -m "## Fixes
- …" && git push origin v1.4.1GitHub Actions builds and signs the app, creates the DMG and update feed, and
publishes the release. Tags on commits that aren't on main are rejected.
Required secrets: SIGNING_P12_BASE64, SIGNING_P12_PASSWORD,
SPARKLE_PRIVATE_KEY. If either key is lost, installed copies can't update.
GPLv3. AutoEq data: MIT, Jaakko Pasanen and contributors. BlackHole: GPLv3, Existential Audio Inc. Sparkle: MIT, Sparkle Project contributors.

