AudioPriorityBar logo

AudioPriorityBar

Priority-based audio switching for macOS menu bar

2025-12-30

Product Introduction

  1. 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.
  2. 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

  1. 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.
  2. 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.
  3. 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 UserDefaults for cross-session persistence.
    • Technologies: SwiftData-like storage logic, CoreAudio UID stability.

Problems Solved

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. Key Innovation: Dual independent priority lists for speakers/headphones with per-device ignore rules, enabling granular control unmatched by competitors.

Frequently Asked Questions (FAQ)

  1. Does AudioPriorityBar support Bluetooth device prioritization?
    Yes, it auto-detects and prioritizes Bluetooth headphones/speakers using CoreAudio metadata, including brand-specific IDs.
  2. Can I exclude specific devices from auto-switching?
    Enable "Ignore as [category]" or "Ignore entirely" via device hover menus to exempt devices from automation.
  3. How does it handle simultaneous input/output changes?
    CoreAudio notifications trigger parallel checks—output and input devices switch independently based on their priority queues.
  4. Is there a CLI or scripting API?
    Not currently; UI-driven prioritization is the focus, though UserDefaults plist files allow advanced manual configuration.
  5. Does it work with HDMI/DisplayPort audio devices?
    Yes, any CoreAudio-recognized device (including HDMI audio) is supported in priority lists.

Subscribe to Our Newsletter

Get weekly curated tool recommendations and stay updated with the latest product news