An open API service indexing awesome lists of open source software.

https://github.com/gigaptera/fabar

Free open-source macOS menu bar app for per-app volume control. No virtual audio driver required.
https://github.com/gigaptera/fabar

audio audio-control blackhole core-audio coreaudio macos macos-app macos-utility menu-bar menubar-app open-source per-app-volume productivity sound-mixer swift swiftui volume-control volume-mixer

Last synced: about 17 hours ago
JSON representation

Free open-source macOS menu bar app for per-app volume control. No virtual audio driver required.

Awesome Lists containing this project

README

          

# Fabar — macOS Per-App Volume Control

[![CI](https://github.com/gigaptera/fabar/actions/workflows/ci.yml/badge.svg)](https://github.com/gigaptera/fabar/actions/workflows/ci.yml)
[![Release](https://img.shields.io/github/v/release/gigaptera/fabar)](https://github.com/gigaptera/fabar/releases/latest)
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
![macOS 14.4+](https://img.shields.io/badge/macOS-14.4%2B-black)

A lightweight, high-performance macOS menu bar app that lets you adjust the volume of individual applications independently.


Fabar — per-app volume control for macOS

**Website**: [fabar.gigaptera.com](https://fabar.gigaptera.com) · **Download**: [Latest release](https://github.com/gigaptera/fabar/releases/latest)

> If Fabar is useful to you, please consider giving it a ⭐ — it helps the project reach more Mac users and supports ongoing development.

## Features

- 🎚️ **Per-App Volume Control** — Adjust volume for any application independently
- 🔊 **Boost Quiet Apps up to 200%** — Not just attenuation; amplify apps that are too quiet
- 🔇 **Mute Individual Apps** — Silence specific apps without affecting master volume
- 💾 **Persistent Settings** — Your volume preferences are saved and restored
- ⚡ **Lightweight** — ~30 MB memory footprint, minimal CPU
- 🎧 **Plays Nice with Audio Gear** — Designed to play nicely with USB/Thunderbolt interfaces and Multi-Output/aggregate devices such as BlackHole; devices are never reconfigured
- 🔄 **Auto-Update** — Checks for updates automatically; manual check via ⋯ → Check for Updates…
- 🎯 **Menu Bar Only** — No Dock icon, zero visual clutter
- 🌏 **English & Japanese** — fully localized UI

## How Fabar Compares

| | **Fabar** | **[BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic)** | **[FineTune](https://github.com/ronitsingh10/FineTune)** | **[SoundSource](https://rogueamoeba.com/soundsource/)** |
|---|---|---|---|---|
| Price | Free | Free | Free | $49 |
| License | MIT | GPL-2.0 | GPL-3.0 | Proprietary |
| Architecture | Process tap | Virtual driver | Process tap | Virtual driver |
| Installs a driver | No | Yes | No | Yes |
| Unadjusted apps | Native path | All routed | Native path | All routed |
| Volume boost | 200% | — | 400% | ✓ |
| Per-app routing | — | — | ✓ | ✓ |
| EQ / effects | — | — | ✓ | ✓ |
| Install | DMG | DMG / brew | brew | DMG |
| macOS | 14.4+ | 10.13+ | 14.2+ | 15+ |

Fabar focuses on one thing: simple, per-app volume from your menu bar. If you need EQ, per-app output routing, or audio effects, [SoundSource](https://rogueamoeba.com/soundsource/) and [FineTune](https://github.com/ronitsingh10/FineTune) are great choices. If you want the lightest tool that doesn't touch your system audio stack, that's Fabar.

## Installation

### Option 1: Download DMG (Easiest) ⭐

1. Download the latest **Fabar.dmg** from [Releases](https://github.com/gigaptera/fabar/releases)
2. Open the DMG file
3. Drag `Fabar.app` to `/Applications`
4. Launch Fabar from Applications

The first time you adjust an app's volume, macOS asks for the **Audio Recording** permission — Fabar needs it to process other apps' audio (System Settings → Privacy & Security → Audio Recording).

### Option 2: Build from Source

Requires **Xcode 16+** and **xcodegen** (`brew install xcodegen`):

```bash
git clone https://github.com/gigaptera/fabar.git
cd fabar/fabar-app
./build.sh
```

Output: `Build/Fabar.app` — copy to `/Applications`.

See [DEVELOPMENT.md](docs/DEVELOPMENT.md) for detailed setup and production builds.

**Requirements**: macOS 14.4 (Sonoma) or later, Apple Silicon or Intel Mac

## How It Works

Fabar uses **Core Audio Process Tap** to intercept app audio, adjust gain, and re-render it to the output device. This approach:

- ✅ Works with any app (Spotify, Slack, Chrome, etc.)
- ✅ Supports USB/Thunderbolt devices without distortion
- ✅ Preserves audio quality — when the tap and device share a sample rate there is no resampling; gain is the only processing applied
- ✅ Apps you never adjust stay on the native audio path, completely untouched
- ✅ Adjusted apps run through a ~30 ms buffer — imperceptible for music and video

For technical details, see [ARCHITECTURE.md](docs/ARCHITECTURE.md).

## Privacy

Fabar requires macOS **Audio Recording** permission because Core Audio Process Tap needs it to process other apps' audio. Fabar does **not** record, save, upload, or transmit your audio. Audio is processed locally on your Mac only for volume adjustment.

## Compatibility Testing

Fabar is currently being validated across different macOS versions and audio setups.

**Tested by the maintainer:**

- macOS 14.4+
- Built-in speakers
- BlackHole
- Multi-Output Devices

**Looking for reports from:**

- macOS 14.4, 14.5, 15.x, and newer versions
- Apple Silicon and Intel Macs
- AirPods / Bluetooth devices
- USB / Thunderbolt audio interfaces
- OBS, DAWs, Discord, Zoom, browsers, music apps

If you try Fabar, please open a [Compatibility report](https://github.com/gigaptera/fabar/issues/new?template=compatibility_report.yml).

## Known Limitations

- **Per-app output routing**: Not supported — adjusted apps play on the system default output. This only matters if you've explicitly pointed an app (a DAW, Zoom, etc.) at a different device inside that app; everything else follows the default and is unaffected
- **Per-tab volume**: Not implemented (requires browser extension)
- **AirPods / Bluetooth**: Inherent latency from the Bluetooth stack; adjusted apps may briefly glitch right after switching output devices while sessions rebuild

See [LIMITATIONS.md](docs/LIMITATIONS.md) for workarounds and detailed explanations.

## Documentation

- **[ARCHITECTURE.md](docs/ARCHITECTURE.md)** — How the audio pipeline works
- **[LIMITATIONS.md](docs/LIMITATIONS.md)** — Known issues and workarounds
- **[DEVELOPMENT.md](docs/DEVELOPMENT.md)** — Build, test, and contribute

## Scopes

### Fabar Lite (Current)

- Per-app volume adjustment
- Per-app mute
- Persistent settings
- Login item toggle

### Fabar Lite Plus (Planned, Separate App)

- Per-app output device selection
- Advanced routing

## Contributing

Bug reports, feature ideas, and pull requests are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) for the workflow and [DEVELOPMENT.md](docs/DEVELOPMENT.md) for build instructions. For security issues, see [SECURITY.md](SECURITY.md).

## Support Fabar

Fabar is free and will always be free. Here's how you can help:

- ⭐ **Star this repo** — helps Fabar reach more Mac users
- 🧪 **[Open a compatibility report](https://github.com/gigaptera/fabar/issues/new?template=compatibility_report.yml)** — helps us validate across setups
- 🐛 **File issues and PRs** — see [CONTRIBUTING.md](CONTRIBUTING.md)
- ☕ **[Buy Me a Coffee](https://buymeacoffee.com/gigaptera)** — funds development and hardware testing

See [SPONSORS.md](SPONSORS.md) for details.

## License

MIT License — see [LICENSE](LICENSE) for details.