Short version: macOS sends every app to one output device at a time, so there's no built-in way to play music on AirPods while calls go to your speakers. To route a single app to its own output you need either a free virtual-device setup (more fiddly) or a per-app routing app (set it once and forget it). This guide covers both.
This is the second half of the per-app audio problem. The first is volume — covered in controlling individual app volume on a Mac. Routing is the "where does the sound come out" version, and macOS is just as silent on it: one output for everything.
The free DIY method: BlackHole + Multi-Output
You can build this for nothing. Install BlackHole (a free virtual audio device), open Audio MIDI Setup, and create Multi-Output or Aggregate devices that combine BlackHole with a real output. Point an app at the virtual device, route that device onward to the hardware you want. It works, and audio tinkerers swear by it.
The honest catch: it's setup-heavy, the routing logic is easy to get tangled, and not every app lets you pick its output device in the first place. Many apps have no output picker at all, which is the whole reason per-app routing tools exist.
The simple method: a per-app routing app
A routing app does at the OS level what the apps won't do themselves: assign each app an output device, independent of the system default. Set Spotify → AirPods, Zoom → headset, alerts → speakers, and it persists. Background Music (free) does basic routing; SoundSource (paid) does it with depth; Fader (paid) does it as a clean per-app list in its Pro routing tab.
| Method | Setup effort | Works for apps with no picker | Cost |
|---|---|---|---|
| BlackHole + Multi-Output | High | Sometimes | Free |
| Background Music | Low | Yes | Free |
| SoundSource | Low | Yes | ~$47 one-time |
| Fader (Pro routing) | Low | Yes | $19.99 one-time |
The setup most people actually want
The classic case: music on your AirPods, video calls on a dedicated headset, system alerts out loud on the speakers so you don't miss them. With a per-app routing app you set those three rules once. No swapping the system output every time you start a call, no audio landing on the wrong device mid-meeting.
In Fader you open the Routing tab, pick a device per app from a dropdown, and it sticks across restarts. Because Fader also handles per-app volume from the keyboard, the same app covers both halves of the problem — how loud each app is and where it comes out.
Bottom line
macOS won't route apps to separate outputs for you. If you enjoy tinkering, BlackHole plus a Multi-Output device is free and capable. If you'd rather set a rule per app and move on, a per-app routing app is the quicker path — and if you also want fast per-app volume in the same tool, that's Fader's lane.
Per-app volume and routing in one app
Fader rides levels from your keyboard and routes each app to its own output. $19.99 one-time, 3-day free trial, no account. macOS 14.4+.