mirror of
https://github.com/masonasons/AudioRouter.git
synced 2026-03-18 00:07:02 -07:00
Windows audio routing application with RNNoise noise suppression and system tray support
- C++ 92%
- CMake 7.6%
- Batchfile 0.4%
- Add grace period slider (0-1000ms) to RNNoise settings - Add --rnnoise-grace command-line parameter - Save grace period to batch file along with VAD threshold |
||
|---|---|---|
| .claude | ||
| .github/workflows | ||
| external/speexdsp_config | ||
| src | ||
| .gitignore | ||
| build.bat | ||
| CMakeLists.txt | ||
| README.md | ||
Audio Router
A simple Windows application for routing audio from input devices to output devices with optional RNNoise noise suppression.
Download
Or visit the Releases Page for more information.
Features
- Route audio from any input device (microphone, line-in) to any output device (speakers, headphones)
- RNNoise neural network noise suppression (optional, configurable)
- System tray integration with minimize to tray
- Command line parameters for automation (
--input,--output,--noise,--autostart,--autohide) - Batch file generation for startup scripts
- Sample rate and channel conversion support
- Simple Win32 interface with keyboard navigation (Tab, Ctrl+S)
- Low-latency audio routing using WASAPI event-driven mode
Requirements
- Windows 10 or later
- Visual Studio 2019 or later (or MinGW with CMake)
- CMake 3.15 or later
Building
Using CMake (Command Line)
mkdir build
cd build
cmake ..
cmake --build . --config Release
Using Visual Studio
mkdir build
cd build
cmake .. -G "Visual Studio 16 2019"
Then open AudioRouter.sln in Visual Studio and build.
Quick Build Script
You can also use the provided batch file:
build.bat
Usage
Basic Usage
- Launch
AudioRouter.exe - Select your input device (e.g., microphone) from the dropdown
- Select your output device (e.g., speakers or headphones) from the dropdown
- (Optional) Check "Enable Noise Suppression" to reduce background noise
- Click "Start" to begin routing audio (or press Ctrl+S)
- Click "Stop" to stop routing (or press Ctrl+S again)
- Click "Save Settings" to create a batch file for quick startup
Command Line Usage
AudioRouter.exe --input "Microphone" --output "Speakers" --noise --autostart --autohide
Parameters:
--input <device>or-i <device>- Select input device by name or index--output <device>or-o <device>- Select output device by name or index--noiseor-n- Enable noise suppression--autostartor-a- Automatically start audio routing--autohideor-h- Launch minimized to system tray
System Tray
- Minimize the window to send it to the system tray
- Left-click the tray icon to restore the window
- Right-click the tray icon for options (Restore, Exit)
- Tray tooltip shows the current audio routing when active
Noise Suppression
The application includes full RNNoise neural network noise suppression. RNNoise is automatically downloaded and built during the CMake build process.
How it works:
- Uses the Xiph.org RNNoise library for deep learning-based noise reduction
- Processes audio in 480-sample frames at any sample rate (with automatic resampling)
- Supports mono and stereo input/output with automatic channel conversion
- Maintains low latency while providing effective noise suppression
Architecture
- main.cpp: Win32 GUI and application entry point
- AudioDeviceManager: Enumerates audio devices using WASAPI
- AudioEngine: Handles audio capture, routing, and playback
- NoiseSuppress: Wrapper for RNNoise noise suppression
License
This is a simple example application. Feel free to modify and use as needed.