Skip to content

Sdomit/AudioManager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

217 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AudioManager

CI Platform Tauri Rust React License

Route any audio input to any output bus. Per-input and per-send gain, real-time metering,
per-bus DSP, and preset snapshots. Built for streaming, podcasting, and complex routing.

Features · Signal Flow · Getting Started · Streaming · Docs


Features

Capability What it does
4 fixed output buses A1 A2 B1 (Stream) B2, each with volume, mute, enable, and live metering
Routing matrix Send any input to any combination of buses, independently
Per-input controls Master gain and mute for each capture device
Per-send controls Volume, mute, and enable on every input to bus connection
Per-bus DSP High-pass, noise gate, compressor, EQ, soft limiter, ducking
Advanced metering Peak, RMS, LUFS, and clip detection
Per-bus output routing Assign each bus to any playback device
Preset snapshots Save and load full routing configs (V2 format, V1 migration)
Wireless phone input Pair a phone over Wi-Fi and use it as a routable mixer input
B1 stream output Built-in guidance for virtual cable routing to OBS, Discord, Zoom

Coming Soon

Feature Description
Phone remote control Mute, adjust gain, and toggle effects on the desktop mixer directly from the paired phone's browser — no app install required
Live sound gate — stream buses Per-input noise gate exposed as a one-click control on stream buses, pre-tuned for voice; threshold, attack, hold, and release adjustable without leaving the routing view
Live sound gate — phone inputs Same gate applied per wireless phone input — silences the room between sentences so background noise never bleeds into the stream
Multi-phone proximity gating When multiple phones are connected in the same room, each phone's gate listens for the loudest nearby voice and opens only for it. If two phones pick up the same person, the quieter input is suppressed automatically — eliminating echo, phasing, and duplicate audio on the mix. Each participant is captured by the phone closest to them; everyone else is gated out.

Signal Flow

Inputs pass through the routing matrix into four buses. Each bus runs its own DSP chain and metering, then drives an output device, a virtual cable, or a file.

AudioManager signal flow: inputs to routing matrix to buses to outputs

Architecture

Layer Stack
Frontend React + TypeScript + Vite
Desktop shell Tauri 2
Audio backend Rust with CPAL and WASAPI for low-latency capture and playback
Storage JSON presets stored locally

For the full design and audio pipeline, see ARCHITECTURE.md.

Getting Started

Prerequisites: Windows 10/11 x64, Node.js 18+ with pnpm, Rust 1.70+.

# Install dependencies
pnpm install

# Dev mode (live reload; uses the development CSP)
pnpm tauri:dev

# Build for release
pnpm tauri build

# Run tests
cargo test --manifest-path src-tauri/Cargo.toml

For detailed setup, see SETUP.md.

Virtual Stream Output

Use B1 (Stream Output) with a virtual audio cable to send audio into OBS, Discord, Zoom, or any app.

  1. Download and install VB-CABLE from VB-Audio as an administrator, then restart Windows
  2. Assign B1 to the cable's playback device (usually CABLE Input)
  3. In your streaming app, select the matching recording device (usually CABLE Output)
  4. Route audio to B1 in the input matrix
  5. Start streaming

Naming gotcha: the AudioManager playback side (CABLE Input) is the recording side in OBS/Discord.

For setup and troubleshooting, see STREAMING_SETUP.md.

Smoke Test Checklist

After launching the app:

  • App opens without errors
  • A1, A2, B1, B2 buses are visible
  • Assign A1 and B1 to output devices
  • Add a microphone input
  • Enable microphone to A1 and to B1
  • A1 and B1 show "running" status
  • Microphone meter moves when speaking, bus meter updates
  • Send volume sliders and bus mute work
  • Clip indicator appears when loud
  • Preset save / load / delete works
  • No console errors

Safety Notes

⚠️ Always use headphones during testing to prevent feedback loops.

  • Keep input volume below 50% when testing a microphone near speakers
  • B1 stream output does not play on your computer, it only routes to the virtual cable
  • Audio routes exactly as configured: input to B1 with B1 assigned to speakers will feed back

VB-CABLE

AudioManager supports VB-CABLE for sending B1 to OBS, Discord, Zoom, and similar apps. VB-CABLE is a separate third-party Windows driver: it is not included, installed, or managed by the AudioManager installer. Download it from VB-Audio, run its setup as an administrator, and restart Windows before selecting its devices in AudioManager.

Known Limitations

  • VB-CABLE is installed separately; the AudioManager installer does not include third-party audio drivers
  • No ASIO support (uses WASAPI)
  • No sample-rate conversion (device sample rates must match)
  • Windows first (macOS / Linux untested)

Documentation

Doc Contents
ARCHITECTURE.md Technical design and audio pipeline
SETUP.md Installation and development
STREAMING_SETUP.md Virtual cable workflow
TROUBLESHOOTING.md Common issues and solutions
ROADMAP.md Planned features and phases
DEVELOPMENT.md Dev environment setup
CHANGELOG.md Release history

License

AudioManager source code is licensed under the Apache License, Version 2.0. See NOTICE for the AudioManager name, logo, product artwork, website content, and third-party attribution boundaries.

Contributing

AudioManager is licensed under Apache-2.0, but external code contributions are not accepted during the current pre-1.0 phase. Non-security bug reports and suggestions are welcome through GitHub Issues; see CONTRIBUTING.md and SECURITY.md.

Built with Tauri · React · TypeScript · Rust · CPAL

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages