macOS Audio Profile Manager
AudioProfiles automatically switches audio input/output devices based on customizable profiles and hardware presence detection. It also includes a per-device equalizer with 4,800+ headphone presets.
macOS has some automatic audio device switching, but it never gets it right. As someone who regularly switches between different audio setups, I found myself constantly having to manually change devices even though macOS was supposed to handle this automatically.
The frustration was especially acute when moving between environments. I wanted something that would ensure the right devices are always used when I plug into my home setup versus my office setup. Having an external microphone, I also wanted to make sure I always use that microphone whether I'm using my headset or speakers.
I needed a solution that would:
- Reliably detect environments and switch to the right profile when plugging into home vs. office setups
- Consistently use my external microphone regardless of whether I'm using headphones or speakers
- Remember my actual preferences for different scenarios instead of guessing wrong
- Provide predictable behavior rather than macOS's inconsistent automatic switching
AudioProfiles is a native macOS menu bar app that reliably manages your audio devices through customizable profiles, and lets you fine-tune your sound with a built-in per-device equalizer.
- Automatic Profile Switching - Activates profiles when specific devices are connected
- Public/Private Modes - Separate device priorities for speakers vs. headphones scenarios
- Global Hotkeys - Keyboard shortcuts to instantly switch between profiles
- Device Priorities - Fallback lists when preferred devices aren't available
- Menu Bar Interface - Always-visible status with one-click profile switching
- Disable Auto-switching - Temporarily disable automatic changes, or use manual mode with quick profile-based setup
- 10-Band Parametric EQ - Interactive frequency response graph with draggable band controls
- 4,800+ Headphone Presets - Calibrated EQ curves from the AutoEQ database covering 569 brands
- 6 Target Curves - Harman, Diffuse Field, and more — pick the sound signature you prefer
- Measured Frequency Response - See your headphone's actual FR curve overlaid on the EQ graph
- Per-Device Persistence - EQ settings and preset selections are saved independently for each output device
- Transparent Audio Pipeline - Uses a lightweight HAL audio driver that routes through a real-time EQ processor; invisible when not in use
- Volume Sync - System volume controls work seamlessly while EQ is active
This app was built as a hobby project that served dual purposes:
- Solve a real problem: My daily audio device management frustrations
- Explore Vibe Coding: Learn more about AI-driven development
The entire development process was a deliberate learning experiment. I intentionally didn't write any code and instead tried to build a well-architected application purely by directing an AI developer, focusing on KISS, DRY, and SOLID principles. The goal was to see if I could create quality software by articulating requirements and architectural decisions without traditional coding knowledge—treating it as a personal exploration of what's possible with AI-driven development.
Full disclosure: Every single file in this project was generated by AI—the code, icons, this README, even the license file. I haven't read every line, so there are probably mistakes and hallucinations throughout. Use at your own risk. However, the code is open source, so you can read through it yourself or evaluate it through AI to understand what it actually does.
- Clone and build the project from source
- Launch the app — it creates a system default profile automatically
- Click the menu bar icon to see your current audio setup
- Click "Configure" to create profiles for your different audio scenarios
- Set up triggers by assigning devices that should activate each profile
- Open the EQ tab to install the audio driver (one-time, requires admin password) and set up per-device EQ
- Enjoy automatic switching and tuned audio as you connect/disconnect devices
This project welcomes contributions! Whether it's bug reports, feature suggestions, or code improvements, feel free to create an issue or submit a PR.
Especially interested in: If you see something in the codebase that could have been architected better, or have thoughts on how to achieve better outcomes through AI-driven development, I'd love to hear about it!
This project is licensed under the MIT License - see the LICENSE file for details.
This is one of several projects I've built using this AI-driven development process. Check out the others:
- NoDoze: MacOS menu bar app that intelligently prevents sleep, with a mode that automatically disables when displays are off.
- Swish: A macOS menu‑bar window manager that lets you swish windows into place—throw, resize, and move them across multiple monitors with keys or a flick of the mouse, no title bars or edges required.
- (More to come!)
If AudioProfiles saves you time and frustration with audio device switching, consider giving it a ⭐ on GitHub!
