How to control system sound on Mac (without a mixer)
macOS does not have per-app volume sliders. It does not have hotkeys for switching outputs. The good news: Apple quietly added the right APIs in macOS 14.2, and the right kind of small app can give you both without virtual drivers.
Windows has had per-app audio volume since Vista. ChromeOS has it. Linux desktops have had it through PulseAudio for over a decade. macOS still does not, in 2026. The system Sound preference pane has one volume slider for the whole machine and a list of output devices to pick from. If you want Spotify quieter than Zoom, or you want Slack on speakers and Music on AirPods at the same time, the OS does not help you.
This was harder than it should have been for years. The community workarounds (Soundflower, BlackHole, BackgroundMusic) all involve installing a virtual audio driver that intercepts every app's audio and re-routes it. They work, but kernel extensions and virtual drivers became increasingly painful on Apple Silicon Macs (signed system extensions, reduced-security mode, kernel collection rebuilds).
Apple shipped a fix in macOS 14.2 that almost nobody noticed. A new Core Audio API called CATaps lets a regular sandboxed app capture and modify any app's audio output, with no driver, no kext, and no system permission gymnastics. Modern Mac audio utilities can now do per-app volume the right way. Here is what that looks like in practice.
What macOS gives you natively
Worth being precise about the gap.
- Master output volume. F11 down, F12 up. Affects all apps proportionally.
- Master output mute. F10.
- Output device picker. Click the volume icon in Control Center, click Sound, click a device. Two clicks for one device, slow.
- Input device picker. Same path, even slower because Sound has to expand first.
- Per-app input volume. Does not exist. The mic is shared by all apps.
- Per-app output volume. Does not exist.
- Hotkeys for switching outputs. Do not exist. ⌥-click the volume menu lets you switch, but it is not a keyboard shortcut.
Most users want at least the per-app output volume and a fast way to switch devices. Neither is built in.
The driver-free approach with CATaps
Some context for what changed in 2024.
Before macOS 14.2, the only way for a third-party app to control per-app audio was to insert itself between the app and the speakers. Tools like Soundflower (now abandoned), BlackHole, and BackgroundMusic all do this by installing a virtual audio device that the app sends audio to, then mixing those streams and forwarding them to the real speakers. The virtual device is a kernel extension or a DriverKit system extension, and on Apple Silicon Macs both are second-class citizens with restricted-mode boot requirements that scare off normal users.
Core Audio Taps (CATaps) flipped the model. Instead of inserting a virtual device, an app can ask Core Audio for a tap on a specific app's audio output. The tap is a real-time audio stream that the app can read, modify, and write to an aggregate device that targets the real speakers. No drivers. No kexts. No virtual audio devices. Just a sandboxed Mac app and an Apple-blessed API.
The catch: CATaps technically capture audio (even though the only thing being modified is the app's own audio), so macOS asks for the audio recording permission on first use. The app gets nothing it should not have, and the permission scope makes sense once you understand the API, but the System Settings, Privacy and Security, Microphone dialog can confuse first-time users. Worth flagging.
Option 1: TeenySound ($9.99 once)
What I ship. Native Swift, $9.99 lifetime, 3-day free trial. Built on top of the CATaps API, so no driver install, no virtual audio device, no system extension to approve in System Settings. The first launch asks for audio recording permission once and that is the whole setup.
What you get:
- Per-app volume sliders. Each audio-producing app shows up automatically in the menu bar popup with its own slider. The slider does software gain ramping with a ~30ms ramp at 48kHz, so volume changes are smooth without zipper noise.
- Per-app mute. Independent of the master mute. Slack muted, Spotify playing, no problem.
- Per-app output device routing. Send Music to AirPods and Slack notifications to your built-in speakers, simultaneously. Each app gets its own aggregate device targeting the chosen output.
- Master volume software fallback. For output devices without hardware volume (some Bluetooth, some HDMI), teenysound applies gain in software so the system volume keys still work.
- Global keyboard shortcuts. Mute everything, mute one app, switch output device.
- Live app detection. New apps that start playing audio appear in the mixer immediately.
- Device volume memory. Per-device volume levels are remembered, so switching outputs does not reset everything.
- Right-click controls on each slider for fine adjustment.
Things teenysound does not do: cross-device sync (single Mac), system audio recording (the CATaps are read-modify-write, not save-to-file), audio effects or EQ (different category of tool).
Option 2: BackgroundMusic (free, open source)
BackgroundMusic by kyleneideck is the open-source per-app volume tool, MIT licensed, free. It predates CATaps and uses the older virtual-audio-driver approach. Installs a HAL audio plugin or a system extension that intercepts every app's audio.
It works. The setup is fiddlier than installing a regular app: on Apple Silicon Macs, the system extension requires reduced-security mode (Recovery Mode reboot, csrutil, the whole thing). Some users do it, most do not. Maintenance has slowed since 2022, but the project still works on current macOS as of this writing.
Pick if: you specifically want free and open source and you are comfortable with system-extension setup. Otherwise the CATaps-based options are more pleasant.
Option 3: SoundSource ($39 once) and Loopback ($99 once)
Rogue Amoeba is the long-running Mac pro-audio shop. SoundSource is their consumer tool: per-app volume, per-app EQ, per-app output routing, in a polished menu bar app. Loopback is the virtual-audio-router for advanced setups (podcasting, streaming, complex routing graphs).
Rogue Amoeba's tools are excellent and have been for over a decade. The catch is the price. SoundSource at $39 once is more capable than teenysound at four times the price; the extra money buys EQ, more sophisticated routing, and the deepest pro-audio app integration on the Mac. If you do streaming, podcasting, or have specific advanced needs, the spend is justified. For a casual user who wants per-app volume, it is overkill.
Both tools predate CATaps and use Rogue Amoeba's Audio Capture Engine, a long-running technology they have shipped through several macOS audio API generations. They do not require system-extension setup; the engine handles it transparently.
Option 4: macOS Shortcuts.app for output switching
For output device switching specifically (no per-app volume), macOS Shortcuts has a Set Audio Output action. Bind a Shortcut to a global hotkey via Settings, Keyboard, Shortcuts, App Shortcuts. Now you have a hotkey for "switch output to AirPods" or "switch back to built-in speakers" without installing anything.
Limitations: this does not help with per-app volume. There is no Shortcuts action for per-app audio because Apple did not expose CATaps to Shortcuts. The free Shortcuts route covers the device-switching half of the problem.
Setting up TeenySound
- Download from teenysound.com, drag to Applications, launch.
- First launch asks for audio recording permission. This is required for CATaps to function. Approve.
- The mixer appears in your menu bar. Click the icon to see sliders for every app currently producing audio.
- Optional: bind global keyboard shortcuts in Preferences for "mute everything," "switch output device," and similar.
- Optional: per-app output routing. Right-click on an app's slider, pick a target device, audio routes to that device only for that app.
Total setup is under three minutes. Most of that is approving the recording permission and finding the menu bar icon.
Common questions
Why does it ask for microphone permission?
Core Audio Taps go through the same permission gate as real audio capture. The app is not actually accessing the microphone, but Apple wraps the CATaps API in the same TCC bucket. Approve once and you are done.
Will it conflict with Zoom or other apps that capture audio?
No. CATaps capture output audio (what apps are sending to speakers), not input audio. Zoom's mic capture is independent.
What about Spotify Connect, AirPlay, casted audio?
If an app sends audio to a remote device (Sonos, AirPlay, Spotify Connect target), the audio bypasses the local Mac speakers, which means it bypasses the local CATaps too. teenysound can only control audio that flows through the Mac's audio output. Cast targets are out of scope.
Does it work with games?
Most games, yes. Some games use exclusive-mode audio output for low latency, in which case the standard CATaps approach falls back to software gain on the master device. The end result is still per-game volume control, just implemented differently behind the scenes.
What about Apple Silicon vs Intel?
CATaps work the same way on both, as long as you are running macOS 14.2 or later. teenysound requires macOS 14.2 minimum because of this. Older macOS versions need the virtual-driver approach (BackgroundMusic, SoundSource).
Is per-app volume saved between launches?
Yes. teenysound remembers each app's volume and reapplies it when the app starts producing audio again, even after a reboot.
The bottom line
Per-app audio control on the Mac was a hack for over a decade. Apple shipped the right API in macOS 14.2 and the indie market caught up over the following year. teenysound at $9.99 lifetime is the cleanest paid path. BackgroundMusic is the free path with system-extension overhead. SoundSource is the premium path with EQ and pro-audio integration. macOS Shortcuts handles the output-switching half for free.
Pick based on whether you want simple paid, free with setup, or premium polish.
$9.99 once. CATaps-based. No drivers.
teenysound is the modern paid path to per-app volume on Mac. Native Swift, lifetime, 3-day free trial.