https://github.com/petitstrawberry/spectrum
Audio mixer & router for macOS
https://github.com/petitstrawberry/spectrum
audio audiounit audiounit-host broadcast macos mixer music
Last synced: 5 months ago
JSON representation
Audio mixer & router for macOS
- Host: GitHub
- URL: https://github.com/petitstrawberry/spectrum
- Owner: petitstrawberry
- Created: 2025-12-05T15:05:37.000Z (7 months ago)
- Default Branch: dev
- Last Pushed: 2026-01-03T13:00:13.000Z (6 months ago)
- Last Synced: 2026-01-07T23:12:11.632Z (6 months ago)
- Topics: audio, audiounit, audiounit-host, broadcast, macos, mixer, music
- Language: Rust
- Homepage:
- Size: 4.13 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Spectrum
English | **[日本語](README_ja.md)**
**Spectrum** is a **Audio Mixer & Router** for macOS. Mix, route, and process audio from multiple sources to any output device with a visual graph-based interface.
> When paired with **Prism** (a virtual audio splitter), Spectrum lets you capture per-application audio and route it independently — perfect for streaming, recording, or complex monitoring setups.
## What Can Spectrum Do?
- **Visual Audio Routing**: Connect any input to any output with a node-based graph
- **Per-Application Control**: Route Discord, Spotify, game audio, etc. to different outputs (requires Prism)
- **Real-time Mixing**: Adjust levels, mute channels, and see live audio meters
- **AudioUnit Effects**: Add reverb, EQ, compression, and other AU plugins to any bus
- **Multi-Device Output**: Send audio to headphones, speakers, and recording software simultaneously
## Prerequisites
- **macOS** (10.15 or later)
- **Xcode Command Line Tools**: `xcode-select --install`
## Quick Start
### For Users
1. **Download Spectrum** (or build from source — see Development section below)
2. **Install Prism** (optional, for per-app audio routing):
```bash
cd prism
cargo install --path .
./build_driver.sh
sudo ./install.sh
# Reboot macOS
```
3. **Start Prism daemon** (if using Prism):
```bash
prismd --daemonize
```
4. **Launch Spectrum** and start routing audio!
## Development
### Repository Structure
- `src/` — Frontend (React UI)
- `src-tauri/` — Backend (Rust / Tauri)
- `docs/` — v2 architecture & improvement plans
### Setup
**Prerequisites:**
- **Node.js** and **pnpm**
- **Rust toolchain** (follows `rust-toolchain.toml`)
**Using Nix (Optional):**
```bash
nix develop
```
### Running
1. **Install Dependencies**
```bash
pnpm install
```
2. **Run Frontend Only** (UI dev server)
```bash
pnpm dev
```
- Vite dev server: http://localhost:1420
3. **Run Desktop App** (Tauri)
```bash
pnpm tauri dev
```
> Automatically starts both UI and backend
### Building
```bash
pnpm build
pnpm tauri build
```
## Documentation
- **Documentation Index**: `docs/README.md`
- **v2 Architecture (Essential Reading)**: `docs/architecture-v2.md`
- **Improvement Plans (Performance/Lock-free, etc.)**: `docs/improvements.md`
## About Prism
**Prism** is a macOS virtual audio splitter that assigns per-application audio to a 64-channel bus. **Spectrum** acts as the mixer/router, taking those channels as input sources and routing them to output devices.
For Prism build/install/usage instructions: see `prism/README.md`
## License
Spectrum is licensed under the [MIT License](LICENSE).