Mac Audio Profiles: How to Save and Restore Per-App Volume and Output Settings
macOS has no built-in audio profiles. Here's how to save per-app volume, mute, and output device settings and restore them instantly on Mac.
macOS has no concept of audio profiles - there's no built-in way to save your current per-app volumes, mute states, and output device assignments and restore them later with a single click or hotkey. If you switch between a desk speaker setup and headphones, or between focused work and video calls, you're adjusting everything by hand every time. Here's how to fix that.
Why macOS doesn't have audio profiles
macOS manages audio at the system level, with one global output device and one global volume. There's no per-app volume mixer built in (unlike Windows, which has had one since Vista), so there's nothing for a profile system to save. When you switch output devices - say, from your monitor's HDMI output to AirPods - macOS changes the destination for everything at once. Per-app preferences don't exist to persist.
The result: if you want Spotify quieter than Discord, or Teams routed to your headset while music plays through speakers, you have to set that up manually every time macOS or an app resets it. A work-from-home setup that sounds right for morning focus sessions sounds completely wrong for an afternoon video call.
What an audio profile actually needs to save
For a profile to be genuinely useful, it needs to capture at least four things per app:
- Volume level (including any overdrive above 100%)
- Mute state
- Output device assignment (which speakers or headphones that app routes to)
- EQ settings (if you're applying per-app equalisation)
And it needs to restore all of that in one action - not require you to go app by app.
The native macOS approach (and its limits)
There's no native route here. The closest macOS gets:
- System Settings → Sound: lets you pick a single global output device. That's it.
- Focus modes: can silence notifications, but touch nothing audio-related.
- Shortcuts app: can run AppleScript, but macOS exposes no scripting surface for per-app audio routing or volume.
If you want to script something close to a profile, you can use osascript to set the system output volume:
bash osascript -e 'set volume output volume 50'
But that sets the global volume only. It can't route Chrome to your headphones and leave Spotify on speakers. For per-app control, you need a third-party app that hooks into macOS's audio subsystem.
How Soundish handles audio profiles
Soundish (macOS 14.6+, Apple Silicon and Intel) has audio profiles. A profile saves the state of every app in Soundish's list - volume, mute, output device, and the 10-band EQ - and lets you restore it from the popover or a global hotkey.
Here's what the workflow looks like in practice:
Creating a profile:
- Set up your audio the way you want it - Spotify at 80% on your monitor speakers, Discord at 60% on your headphones, Chrome muted, Teams at 100% routed to your headset.
- Open Soundish from the menu bar.
- In the panel's Profiles section, click Save Current as Profile (once you have a profile, click the + after your profiles), type a name such as "Work calls" or "Music focus", and click Save Profile.
Restoring a profile:
- Click the profile name in the popover, or
- Assign it a global hotkey and trigger it from any app.
Profiles don't apply themselves: you choose one with a click or its hotkey.
A few things worth knowing:
- Soundish must be running for its settings to apply. Quit it and every app returns to macOS's native behaviour - nothing is permanently altered.
- The volume overdrive (up to 200%) is per-app and also saved in profiles, so if you've pushed a quiet video player louder than 100%, that carries across.
- Multi-process apps such as Chrome, Firefox, Discord and Slack are handled correctly - Soundish attributes audio back to the parent app rather than the helper process, so "Chrome" in a profile means all Chrome audio, not a subprocess you'd lose track of.
- macOS asks once to let Soundish capture system audio. Nothing is recorded or stored; the permission just lets it read the audio stream to identify and control each app's output.
Soundish costs $14.99 once, with a 7-day free trial and no card required.
A practical example: switching between two setups
Suppose your day looks like this:
- Morning, focused work: music at 70% through desk speakers, Slack muted, no video calls.
- Afternoon, calls: Teams at 100% through your USB headset, music paused or much quieter, Slack unmuted.
With Soundish profiles, you create "Focus" and "Calls" once. A hotkey switches between them. The whole audio environment - every app's volume, output, and EQ - snaps into place in under a second.
Without profiles, you're making five or six manual adjustments each time you shift modes. Across a working week, that adds up.
What about EQ?
Soundish includes a 10-band EQ per app, with nine presets. EQ settings are part of each profile, so if you boost the low end on Spotify for speaker listening but want a flatter response through headphones, two profiles handle that without touching anything manually.
If you need Audio Unit plug-in effects - compressors, room correction, convolution reverb - that's a different requirement. SoundSource from Rogue Amoeba supports Audio Unit plug-ins and is the honest recommendation for that use case. Soundish doesn't have plug-ins, and won't pretend to.
Output device rules: the default output that follows your hardware
Separately from profiles, Soundish's output device rules decide which device becomes your Mac's default output as devices connect. You rank your devices, and you can mark one, such as a monitor without speakers, as never the default. They're in Soundish's Settings, under Output Device Rules.
Rules choose the default output; profiles bring back every app's volume, output and equalizer. Use rules for which device plays by default, and profiles when your work mode changes.
For more on output routing specifics, see How to Set a Different Audio Output Per App on Mac.
Which apps are supported?
Soundish lists the apps that show in the Dock, and menu bar apps it recognizes as sound or video apps: browsers, communication apps, media players, DAWs, games. The harder cases are Electron apps (Slack, Discord) where audio comes from a helper process that doesn't advertise itself as the parent app. Soundish handles this attribution correctly, so "Slack" in a profile refers to Slack, not an anonymous subprocess.
For more on that problem and how it was solved, the full story is at The Support Email That Made Me Rewrite Soundish's Audio Engine.
If you also want Soundish to respond to how you're currently working - for example, pressing the volume keys to control whichever app is in the foreground rather than the global volume - that's covered in Mac Volume Hotkeys Per App: Control Individual App Volume Like a Pro.
Common questions
Does macOS have any built-in way to save audio settings?
No. macOS remembers your last-used output device and global volume, but there's no profile or preset system for audio. The Shortcuts app can set global volume via AppleScript, but cannot control per-app volume or output routing - that requires a third-party app.
Will my audio profiles survive a Mac restart?
In Soundish, yes: profiles are kept across restarts. Turn on Launch at Login in Soundish's settings so your app volumes are back after a restart too. It's off until you turn it on.
Can I have different EQ settings for speakers vs headphones in the same profile?
Not within a single profile - a profile captures one state. The way to handle this is to create two profiles (e.g. "Speakers" and "Headphones"), each with their own per-app EQ, and switch between them with a click or a hotkey. Each profile saves every app's EQ independently, so the two setups are fully separate.