FineTune - macOS Per-App Volume Mixer

macOS 开源菜单栏应用,提供 per-app 音量控制,免费替代 SoundSource。

Key Takeaways

核心 API

  • CATapDescription + AudioHardwareCreateProcessTap() — macOS 14+ Process Tap API,按 PID 拦截指定进程的音频流
  • AudioHardwareCreateAggregateDevice() — 创建 Aggregate Device,将 Process Tap 和输出设备组合
  • AudioDeviceCreateIOProcIDWithBlock() — 实时音频 I/O 回调,做 per-sample 音量缩放、EQ、软限幅
  • DDC/CI (I2C over IOKit) — 控制外接显示器硬件音量

架构

AudioEngine (中央协调器)
├── AudioProcessMonitor — 监听系统音频进程
├── AudioDeviceMonitor — 监听设备热插拔
├── ProcessTapController (每个 app 一个)
│   ├── CATapDescription → 拦截音频
│   ├── Aggregate Device → 路由到输出
│   ├── I/O Callback → 音量/EQ/限幅
│   └── CrossfadeState → 设备切换无缝过渡
└── DDCController — 外接显示器音量

亮点

  • 实时回调严格 RT 安全(无锁、无分配、无 ObjC)
  • ARM64 对齐原子读写代替锁做跨线程通信
  • Per-app 独立设备路由 + 多设备同步输出
  • 设备断连自动降级,重连自动恢复
  • brew install —cask finetune