Submix notes

How Submix actually controls one app's volume at a time

Submix gives every running app its own volume, mute, and live meter through a Core Audio process tap, with no driver and no admin password. Here is the mechanism behind the mixer, what it does not do yet, and who it will not fit.

On this page

A browser tab starts an ad at full volume while music is already playing through your speakers and a call is waiting in another window, and macOS gives you exactly one system volume to fight all three with. Submix puts a separate volume, mute, and live meter on every app currently making sound, so turning one down does not mean turning them all down. It needs an Apple silicon Mac on a macOS carrying the API the app is built on, which Apple opened in macOS 14.2.

I build Submix. Every fact about the app traces to its own source code or to its own build script, checked on 23 July 2026.

Why one slider was never going to be enough

The system volume control on a Mac is one dial for every app at once, so silencing a browser tab has always meant silencing your music with it, or leaving both running and reaching for the tab's own controls instead, if it happens to have any. Submix exists to put that choice back in one place: open it, and every app currently playing sound gets its own row, its own level, and its own mute, without hunting through each app's separate settings pane.

See which of your own apps show up before you touch anything.

Volume, mute, and the live meters run for free in Submix, no trial and no license required for that part, and the same page covers what the paid routing and boost features add on top.

One multiplication does the entire job of mixing

Each app you control gets its own audio tap, a private connection Submix opens directly against that app's output, wrapped in its own private virtual device whose real destination is whatever output you chose. The entire signal path through that device is one multiplication: every sample gets scaled by your slider's value before it reaches the speaker, and the same pass tracks the loudest sample it sees, which is where the live meter comes from at no extra cost. Muting does not tear any of that down. It sets the multiplier to zero and leaves the tap running, which is why an app comes back at full strength the instant you unmute it rather than needing to reconnect.

None of this touches a driver, a kernel extension, or anything that survives after you quit. The full reasoning behind that choice, and the one real cost it carries, is written up separately, since a driverless design trades one kind of convenience for another.

Naming a channel, and why some apps disappear from the list

Submix only lists an app once Core Audio reports it as actually producing sound, so a channel will not appear for something that has not played anything yet this session, and it fades out again after that app has been silent for a couple of seconds. Helper processes get folded back into the app you actually recognize, so a browser's dozen background helpers show up as one row for the browser itself rather than a dozen confusing entries. System sounds and alert chimes are filtered out entirely and never appear as a channel you could accidentally silence.

Changing where an app's audio goes is not a quiet handoff, either. Picking a new output tears the entire chain down and rebuilds it against the new destination, so switching a channel's output while it is playing causes a brief, expected interruption rather than an instant jump from one device to the other.

The top slider above the app list is not a Submix mix bus. It writes the real volume property on your default output device directly, and on an interface or an aggregate device that exposes no adjustable master level, that slider simply disables itself and says so, since there is nothing under it to move.

Two things Submix does not do yet, stated plainly

Submix has no working equalizer. The catalog and the trial both list a per app equalizer as a real feature, and the underlying settings model exists in the code, but the audio path performs no filtering of any kind between the tap and the output. There is nothing to switch on, and describing a tone control here would be describing a feature that does not exist yet.

Nothing you set survives a quit, either. Every level, every mute, and every routing choice lives in memory for the length of that session only, and the only setting written to disk across launches is whether you have finished the first run walkthrough. Reopen the app tomorrow and every app starts back at its normal volume, unmuted, on its default output, regardless of what you left it on today.

This will not fit every setup

If you need saved profiles that come back the way you left them tomorrow, or a real per app tone control today, Submix cannot give you either yet, and no amount of clicking around will find a setting that isn't there. If you are on an Intel Mac, the app will not launch at all, since the build targets Apple silicon exclusively. And if what you actually want is one app's audio sent to one output while everything else stays put, rather than independent volumes for everything at once, that specific routing job has its own explanation of what a Multi-Output Device can and cannot do for you.

If none of Submix's limits above are dealbreakers and you are only trying to understand why nothing like this ships with macOS itself, the Core Audio reason, and the three other ways people have worked around it, covers that ground in full.

Questions people ask

Does Submix need a driver or an admin password?

No. It runs entirely inside its own process using Core Audio's tap APIs, and the only thing it asks for is the macOS audio recording permission, the same kind of grant a microphone app would request.

Will my volumes still be set the way I left them tomorrow?

No, not yet. Everything resets on quit, because per app settings exist only in memory while the app is open and nothing is saved to disk for them.

Does Submix have an equalizer?

Not one that changes anything you hear. The setting exists in the interface's underlying data model, but the audio path applies no filtering, so turning it does nothing to the sound.

What happens to my audio if Submix crashes?

A normal quit is intercepted long enough to run that same teardown before the app actually exits, un-routing every channel and destroying every tap it built; if one of those Core Audio calls fails partway through, Submix keeps retrying every 2 seconds until it succeeds. A crash or a force quit gives the app no chance to run any of that, and in that case Core Audio releases the dead process's taps and devices on its own.

Can I set a volume for an app before it starts playing anything?

No. A channel only exists once Core Audio reports that app as actively producing sound, so there is nothing to adjust in advance for an app that has not made a sound yet this session.

Changelog: 22 July 2026, rewritten from a short product summary into a full explainer covering the tap mechanism, channel naming, and what the app does not do yet.

Back to Submix