Skip to content

Repository files navigation

🎧 BindPlayer - Dual WASAPI Soundboard for Windows

Version .NET 8.0 Platform Audio UI License

A high-performance, ultra-low latency soundboard designed specifically for gamers, streamers, and Discord users. Built from the ground up in C# / WPF (.NET 8) with direct WASAPI hardware mixing and low-level keyboard hooks.


✨ Features

  • 🔊 True Dual WASAPI Routing: Plays audio simultaneously to your headphones (so you hear it clearly) and to your virtual broadcast cable (so teammates hear it in-game/Discord) with 0ms sync offset.
  • 🎮 Bypasses Windows UIPI for Fullscreen Games: Uses Windows Low-Level Keyboard Hooks (WH_KEYBOARD_LL) and elevation, allowing hotkeys to trigger flawlessly even when playing competitive fullscreen games with anti-cheats (e.g. RV There Yet, CS2, Valorant, Apex Legends).
  • 🔢 Strict Numpad Separation: Numpad keys (Num 0Num 9) are strictly separated from top-row numbers (19). Switching weapons or using inventory will never accidentally trigger your soundboard.
  • 🌐 Bilingual Support (English & Polish): One-click language toggle in the title bar or settings. Default is English; your preference is automatically saved across sessions.
  • 🎚️ Granular Volume Controls: Per-bind volume sliders (boost up to 200%) plus a real-time Master volume control.
  • 🛑 Global Panic Stop: Press Ctrl+Alt+S at any moment to instantly silence all active soundboard audio streams.
  • 📥 Drag & Drop Import: Simply drag MP3, WAV, OGG, or FLAC files directly into the window.
  • Zero Bloat & Zero Background Lag: Self-contained, lightweight, minimal memory footprint (~35MB RAM).

🎙️ VB-Audio Virtual Cable Setup Tutorial

To broadcast soundboard sounds into Discord, TeamSpeak, Steam Voice, or in-game voice chat (like RV There Yet or Counter-Strike), follow this simple 5-minute setup:

Step 1: Download & Install VB-Audio Virtual Cable

  1. Download the free driver from VB-Audio Cable Official Site.
  2. Extract the downloaded ZIP archive.
  3. Right-click VBCABLE_Setup_x64.exe and select Run as Administrator.
  4. Click Install Driver and restart your computer if prompted.

Step 2: Configure BindPlayer

  1. Open BindPlayer.
  2. Navigate to the 🔊 Audio & Devices tab.
  3. Set Headphones Output (Your Ears) to your physical headset/speakers (e.g. Headphones (Realtek Audio)).
  4. Set Broadcast Output to CABLE Input (VB-Audio Virtual Cable).
  5. Click ▶ Test Dual Output — you should hear the sound in your headphones, and Windows Volume Mixer will show activity on CABLE Input.

Step 3: Combine Your Microphone + Soundboard (The "Listen" Method)

If you want teammates to hear both your physical microphone and your soundboard sounds:

  1. Press Win + R, type mmsys.cpl, and press Enter (this opens the classic Windows Sound Control Panel).
  2. Go to the Recording tab.
  3. Right-click your physical microphone (e.g. HyperX SoloCast, Blue Yeti, or Realtek Mic) and click Properties.
  4. Switch to the Listen tab.
  5. Check the box: ☑ Listen to this device.
  6. Under Playback through this device, choose CABLE Input (VB-Audio Virtual Cable).
  7. Click Apply and OK.

💡 What this does: Windows will forward your voice into VB-Cable, while BindPlayer simultaneously forwards soundboard audio into VB-Cable. Both streams blend together cleanly without needing Voicemeeter or extra mixer software!

Step 4: Configure Discord & Fullscreen Games

  • Discord:
    • Go to User Settings -> Voice & Video.
    • Set Input Device to CABLE Output (VB-Audio Virtual Cable).
    • Set Output Device to your physical headset.
  • In-Game (e.g. RV There Yet, CS2, Rust):
    • Open the in-game audio/voice settings.
    • Set Microphone / Recording Device to CABLE Output (VB-Audio Virtual Cable) or set CABLE Output as your Default Recording Device in Windows.

⌨️ Global Hotkeys & Fullscreen Games

Feature Details
Numpad Binds Num 0 through Num 9, Num /, Num *, Num -, Num +, Num .
Function Keys F1 through F12
Key Combinations Supports Ctrl, Alt, Shift modifiers (e.g. Ctrl+Num 1)
Panic Shortcut Default Ctrl+Alt+S (Customizable in Hotkeys tab)
Fullscreen Games Runs with Administrator rights to bypass Windows UIPI restrictions

🛠️ Building From Source

Prerequisites

Clone & Build

# Clone the repository
git clone https://github.com/moordex/BindPlayer.git
cd BindPlayer

# Restore and build
dotnet build -c Release

# Publish a single-file executable
dotnet publish -c Release -r win-x64 --self-contained false -p:PublishSingleFile=true -o dist

📦 Project Structure

BindPlayer/
├── Audio/
│   ├── AudioDeviceManager.cs   # WASAPI MMDevice enumerator & selector
│   └── AudioEngine.cs          # Dual-output low-latency NAudio playback mixer
├── Models/
│   ├── AppSettings.cs          # Language, device names, volume & hotkeys
│   ├── AudioDeviceInfo.cs      # WASAPI endpoint metadata
│   └── Bind.cs                 # Bind model (file, hotkey, volume, duration)
├── Services/
│   ├── GlobalHotkeyManager.cs  # Windows WH_KEYBOARD_LL hook & key parser
│   ├── LocalizationService.cs  # Dynamic thread-safe EN / PL localization
│   └── StorageService.cs       # JSON persistence & sound file scanner
├── Views/
│   ├── MainWindow.xaml(.cs)    # Modern Mica WPF UI with sidebar & tabs
│   └── BindEditDialog.xaml(.cs)# Hotkey recording & bind editor modal
└── sounds/                     # Your audio files (MP3, WAV, OGG, FLAC)

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

About

High-performance Dual WASAPI Soundboard for Windows with global low-level game hotkeys, Numpad separation, and zero latency.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages