Product Introduction
- Definition: AudioPriorityBar is a native macOS menu bar utility (technical category: audio device management software) that automates audio output/input selection based on user-defined priority hierarchies.
- Core Value Proposition: It eliminates manual audio device switching by instantly activating the highest-priority connected speaker, headphone, or microphone—optimizing workflow efficiency for macOS power users.
Main Features
Priority-Based Auto-Switching:
- How it works: Ranks devices via persistent UID tracking in
UserDefaults. When devices connect/disconnect, CoreAudio APIs trigger real-time switching to the top available device in the active category (speakers/headphones). - Technologies: SwiftUI for UI, CoreAudio for hardware monitoring, Combine for event handling.
- How it works: Ranks devices via persistent UID tracking in
Dual-Category Management:
- How it works: Separates output devices into isolated "speaker" (🔊) and "headphone" (🎧) priority lists. Each category maintains independent hierarchies, preventing conflicts (e.g., prioritizing speakers for meetings vs. headphones for media).
- Technologies: Enum-based categorization (
OutputCategory), device metadata parsing.
Persistent Device Memory & Edit Mode:
- How it works: Archives disconnected devices with "last seen" timestamps. Edit Mode exposes hidden devices for reordering/removal via drag handles or arrow controls, using
UserDefaultsfor cross-session persistence. - Technologies: SwiftData-like storage logic, CoreAudio UID stability.
- How it works: Archives disconnected devices with "last seen" timestamps. Edit Mode exposes hidden devices for reordering/removal via drag handles or arrow controls, using
Problems Solved
- Pain Point: Manual audio device juggling on macOS disrupts workflows (e.g., unplugging headphones doesn’t auto-revert to speakers). AudioPriorityBar automates this with zero latency.
- Target Audience:
- Hybrid Workers: Switch between conference speakers and noise-canceling headphones seamlessly.
- Content Creators: Prioritize studio mics over built-in mics during recordings.
- Multidevice Users: Manage Bluetooth headsets, USB DACs, and AirPlay speakers in unified hierarchies.
- Use Cases:
- Auto-fallback to speakers when disconnecting headphones during video calls.
- Prioritize USB-C headphones over Bluetooth devices to avoid latency.
- Silence non-critical mics during screen sharing.
Unique Advantages
- Differentiation: Unlike macOS’s native sound preferences (manual selection) or tools like SoundSource (manual routing), AudioPriorityBar uses rule-based automation with category isolation—no scripting required.
- Key Innovation: Dual independent priority lists for speakers/headphones with per-device ignore rules, enabling granular control unmatched by competitors.
Frequently Asked Questions (FAQ)
- Does AudioPriorityBar support Bluetooth device prioritization?
Yes, it auto-detects and prioritizes Bluetooth headphones/speakers using CoreAudio metadata, including brand-specific IDs. - Can I exclude specific devices from auto-switching?
Enable "Ignore as [category]" or "Ignore entirely" via device hover menus to exempt devices from automation. - How does it handle simultaneous input/output changes?
CoreAudio notifications trigger parallel checks—output and input devices switch independently based on their priority queues. - Is there a CLI or scripting API?
Not currently; UI-driven prioritization is the focus, thoughUserDefaultsplist files allow advanced manual configuration. - Does it work with HDMI/DisplayPort audio devices?
Yes, any CoreAudio-recognized device (including HDMI audio) is supported in priority lists.
