Independent volume sliders for every app producing audio. Music, Zoom, Chrome — drive them separately from one beautiful panel. Auto-ducks media when someone speaks on a call.
Built with CoreAudio Process Taps on macOS 14.2+. Audio routes through a lock-free realtime IOProc — gain changes apply in under 10 ms.
Every app currently making sound gets its own slider. Drag to attenuate in real time.
Tap any app's icon to mute it instantly. A red badge tells you which apps are silenced.
When Zoom, Teams, or Slack speaks, your music quiets automatically. Adjustable amount.
The master slider drives macOS system volume — and follows F11/F12 keyboard keys.
Realtime DSP done right. Lock-free SPSC ring buffer, allocation-free IOProcs.
No Dock icon, no window on launch. Just a waveform glyph in your menu bar.
SonicFlow never requests microphone permission. Process Taps capture output, not input.
MIT licensed. Inspect the IOProc, file an issue, ship a PR. Zero telemetry.
No magic. Real CoreAudio APIs. Real Swift code you can read.
SonicFlow watches kAudioHardwarePropertyProcessObjectList. Whenever an app starts producing output, you see it appear in the panel within ~1 second.
For each active app, SonicFlow creates a CATapDescription with CATapMutedWhenTapped — the app's normal output is silenced; its audio gets routed to our private aggregate device.
A capture IOProc reads each tap's input, multiplies by the per-app gain (the slider value), mixes to stereo, writes to a lock-free ring buffer. Zero allocation, zero locks on the audio thread.
A second IOProc on your real default output device reads from the ring buffer and adds the gained samples to the output — mixed with any non-tapped audio that goes through the system mixer normally.
Requires macOS 14.2 or newer. Apple Silicon and Intel.
No purple dot — that's microphone access, which SonicFlow never requests. Process Taps are output-capture, not input. On macOS 14.4+ you may briefly see the orange audio-capture indicator, same as SoundSource / Audio Hijack.
Apple ships per-app volume on iOS but not macOS. There's no public macOS UI for it. SonicFlow uses the same low-level APIs Apple gives third-party audio devs and builds the UI Apple didn't.
Yes. The playback IOProc binds to whatever your current default output device is. Headphone hot-swap support is on the roadmap — for now, restart the app after changing output.
Lossless — gain is a single floating-point multiply per sample, with soft-clipping to prevent overshoot. Bit-perfect for non-tapped apps (they go through the system mixer unchanged).
SoundSource is a polished commercial product ($39). SonicFlow is free, open-source, and focused on the core "per-app volume + ducking" use case. If you need EQ, audio routing, or recording, buy SoundSource.
Idle CPU is 0.0%. With taps active, ~1% on M-series. The ring buffer is lock-free SPSC, the IOProcs are allocation-free.
All ~2,400 lines of Swift live at github.com/altuzar/sonicflow. MIT licensed. Read it, fork it, ship PRs.