A little more control over your Mac’s audio.
Per-app volume, EQ, and output routing from the menu bar.
Download for macOS · Install · Buy me a coffee
Free and open source. Built with SwiftUI, AppKit, and Core Audio. No account, driver, analytics, or audio uploads.
Preview: per-app mixing still needs wider testing across devices and macOS versions. Downloads are ad-hoc signed and not notarized yet.
Requires macOS 14.2 or newer, on Apple Silicon or Intel.
- Download SoundSwipe.dmg from the release page.
- Open it and drag SoundSwipe.app onto Applications.
- Eject the disk, then open SoundSwipe from Applications.
- Look for the waveform icon in your menu bar. There is no Dock window.
If macOS blocks this preview, try opening the app first, then go to System Settings → Privacy & Security → Open Anyway if you trust the download. See Apple’s instructions. You do not need to disable Gatekeeper.
A ZIP is also available: unzip it and move the app to Applications. When updating, quit the existing app before replacing it. Your saved settings stay in place.
- Play sound in an app and click SoundSwipe’s menu bar icon.
- Adjust that app’s volume. Allow system-audio access when macOS asks.
- Use its output menu to pick a device or a 1× / 2× / 3× / 4× boost preset.
- Open the slider icon for EQ and balance.
An existing app route stays active when its volume returns to 100%; turn Mix off to release it. SoundSwipe checks system audio access before it starts mixing. The first time, it shows the macOS prompt; if access is off, the panel shows Open Settings…. Accessibility access is not needed: global shortcuts use registered hotkeys, and your Mac's volume keys keep controlling the real output device. If a permission or route attempt fails, further slider movements save your setting without retrying capture. Allow SoundSwipe in Privacy & Security, then click Retry or turn Mix on. If access keeps being requested after allowing it, quit all copies and open the installed app from Applications; ad-hoc preview signatures can require renewed approval after updates.
Turn off Mix to restore normal app playback. Device volume and switching work without capture permission. Audio is processed locally and never recorded or uploaded.
- Per-app volume and mute, from 0–400%, with a soft limiter for boost.
- 10-band EQ, 16 presets, EQ bypass, and left/right balance for each app.
- Output routing to one device per app, with fallback when a device disconnects.
- Speaker and microphone controls, device switching, and microphone-use indicators.
- Live level meters while the panel is open.
- Keyboard shortcuts for showing the panel, system volume, mute, microphone mute, and next output.
- Scroll over the menu bar icon for volume; right-click for quick controls.
- Saved mixes and launch at login, configured from the gear button.
| What you see | What to try |
|---|---|
| New changes missing | Check Settings → About for the version. Quit SoundSwipe, replace the app in Applications with the new download, and reopen it. A running copy keeps its old code until restarted. |
| No app window | Click the waveform in the menu bar. SoundSwipe runs there. |
| No apps listed | Start playing sound. Apps appear while playing or using the microphone, and stay briefly after stopping. |
| Per-app controls fail | Check SoundSwipe under System Settings → Privacy & Security → Screen & System Audio Recording. Permission labels vary by macOS version. Restart SoundSwipe after changing permission. |
| “Fixed volume” | That output doesn’t expose a volume control to macOS. Use its own controls. |
| Audio trouble after routing | Turn off Mix to restore normal playback, then report your device, macOS version, and the error shown. |
| Launch at login doesn’t work | Install in Applications first. Check System Settings → General → Login Items for approval. |
Report a bug. Include your macOS version, audio device, and the steps that caused it.
Mixing supports stereo, tightly packed 32-bit float PCM routes. Unsupported formats stop mixing and show an error. Some protected sources cannot be captured; Bluetooth call profiles and conferencing apps still need hardware testing.
The Mac app receives Chrome’s combined audio stream. For separate tab volume and mute, try the optional SoundSwipe Tabs preview. Its controls live in Chrome’s extension popup, and each tab must be enabled there. Microphone volume and mute apply to the input device, not individual apps. There is no recording, automatic updater, multi-device output, or AutoEQ yet.
See the roadmap, changelog, architecture, and test checklist.
git clone https://github.com/Hiteshldt/soundswipe.git
cd soundswipe
./scripts/test.sh
./scripts/build.sh --universal
open dist/SoundSwipe.appRequires Swift 5.10+ with Xcode 16+ or Command Line Tools. The build produces the app, a drag-to-Applications DMG, a ZIP, and SHA-256 checksums in dist/. Omit --universal to build for your current architecture.
Run the bundled app to test permissions and login items; swift run lacks its bundle metadata. See release instructions for signing and notarization.
Try it, tell me what broke, or read CONTRIBUTING.md if you’d like to change something. Security reports go through SECURITY.md.
If it helps you, you can buy me a coffee. Every feature stays free.
Original code inspired by Background Music and SoundSource; no code or assets from either, and no affiliation.
MIT license · Made by Hitesh Gupta · Website


