/// case study 021
macOS
Project 021

Fader

Windows has had a per-app volume mixer for fifteen years; macOS still has no public API to set another app's volume, and the paid tools that fill the gap install audio drivers. Fader is a menu-bar popover that lists only the apps currently playing audio, each with its own 0–150% slider (soft-limited boost), one-tap mute, and a live level meter. It uses Apple's Core Audio process taps — pure user-space, no kernel extension — to capture each app's audio and re-render it through a private aggregate device at the level you choose. Per-app levels persist across launches. Universal binary, macOS 15+, MIT.

v1.2 · .dmg
Release
macOS 15+ · Universal
Platform
None — user-space
Drivers
macOS
Category
The Problem

What Wasn't Working

macOS has no per-app volume mixer and no public API to set another app's volume — you ride one master slider while a game blasts and a video call whispers. The paid alternatives install audio drivers.

The Solution

How I Fixed It

Core Audio process taps capture each playing app's audio into one private aggregate device where a single real-time callback applies per-app gain and soft-limits — no driver, no account, audio never leaves the machine.

Stack

Technologies Used

Swift
SwiftUI
MenuBarExtra
Core Audio process taps
Sparkle
Results

Key Outcomes

Shipped v1.2 with signed Sparkle appcast for in-app updates
Per-app 0–150% volume with soft-limited boost, mute, and live meters
Browser/helper-process audio grouped under the parent app; levels persist across launches
Crash-safe teardown: leftover aggregate devices are cleaned up on next launch

Want something like this?

Let's build it. I ship fast and I ship clean.