A premium, high-performance, and feature-rich global Soundboard application built with C# and WPF (.NET 8).
SonicBoard is designed for gamers, streamers, and content creators who want seamless control over their audio assets during live streams, gameplays, or voice calls.
- 🎹 Global System-Wide Hotkeys: Bind sounds to key combinations using Win32 Low-Level Keyboard Hooks (
SetWindowsHookEx). Play sounds instantly even when the app is minimized or you are in a full-screen game. - 🚫 Block/Suppress Hotkey Keypress: Choose to block keypresses from propagating to other open applications when triggering a sound, preventing accidental typing in in-game chats.
- 🔀 Multi-Device Audio Routing: Play sounds through multiple output devices simultaneously (e.g., hear it in your local headphones and route it to a Virtual Audio Cable to play in Discord/in-game chat).
- 🎙️ Smart Auto-Mute Microphone: Automatically mutes your physical microphone when a soundboard sound is playing, preventing audio feedback loop/leak, and unmutes it immediately when the sound finishes.
- 📁 Profile Management: Organise your sounds into different profiles (e.g., "Gaming", "Streaming", "Memes") and switch between them on the fly.
- ⚡ Admin Privilege Escalation: One-click option to relaunch as Administrator so global hotkeys function smoothly in elevated games like Valorant, CS2, or PUBG/BGMI.
- 🎨 Adaptive UI Layouts: Toggle between a detailed List View with comprehensive settings and a clean Button Grid View featuring customizable colors for rapid clicking.
- 🔁 Per-Sound Controls: Individual volume adjustments and loop toggles for every audio file.
- 🎲 Play Random Sound: Add surprise to your streams with the "Play Random" button or hotkey trigger.
- 🛞 System Tray Integration: Minimize the application to the system tray to keep your taskbar clean.
- 🤝 Drag & Drop Audio Files: Quickly add sounds to your active profile by dropping them directly into the application.
- Framework: .NET 8.0 (Windows Presentation Foundation - WPF)
- Audio Engine: NAudio (v2.2.1) — handles device enumeration, WASAPI shared outputs, and real-time mixing.
- Decoder Support: NAudio.Vorbis (v1.5.0) for native Ogg Vorbis files.
- Serialization: Newtonsoft.Json (v13.0.4) for profile saving/loading and persistent user configurations.
- Operating System: Windows 10 / Windows 11 (64-bit)
- Runtime: .NET 8.0 Desktop Runtime or higher.
- Virtual Audio Device (Optional): VB-CABLE Virtual Audio Cable (highly recommended for routing audio directly into Discord, Teams, or Game Chats).
- Clone the repository:
git clone https://github.com/Kunal-CodeLab/SonicBoard.git
- Navigate to the project directory:
cd SonicBoard - Build and run using the .NET SDK:
dotnet build dotnet run
Alternatively, open SonicBoard.csproj or the root folder in Visual Studio 2022 and hit F5 to run.
- You can drag and drop supported audio files (
.mp3,.wav,.ogg,.flac,.m4a,.aac, etc.) directly onto the main window. - Or, click the ➕ Add Sound button in the toolbar to browse files manually.
- Select a sound from the list.
- Click inside the Hotkey text box in the bottom action bar.
- Press your desired key combination (e.g.,
Ctrl+Shift+Num5). - Click the Set button to apply.
- If you want keys to not register in games when pressed, enable the Block Hotkey Keypress checkbox on the options panel.
- Install a virtual audio device like VB-Cable.
- Set your game or Discord input device (Microphone) to Cable Output.
- In SonicBoard, check/enable both:
- Your main headphones/speakers (so you can hear the sounds locally).
- Cable Input (VB-Audio Virtual Cable) (so the sound goes into the virtual microphone).
- Enjoy playing high-quality sounds to your friends!
Tip
Enable the Auto-Mute Mic option under settings. This mutes your real voice microphone while soundboard audio plays, preventing background noise/feedback from leaking through your virtual mic.
Warning
Windows disables Drag & Drop functionality for apps running in Admin Mode due to security policies. If you launch SonicBoard as Administrator, please use the Add Sound button instead of drag & drop.
SonicBoard/
│
├── Assets/ # Image assets, logo, and application icon
├── Models/ # Data contracts & profiles
│ ├── AppSettings.cs # User settings configurations
│ ├── SoundItem.cs # Sound model (name, path, hotkey bindings, volume)
│ └── SoundProfile.cs # Profile model (collection of SoundItems)
│
├── Services/ # Core application logic
│ ├── AudioEngine.cs # NAudio WASAPI & mixing layer
│ ├── HotkeyManager.cs # Global low-level hook keyboard manager
│ └── ProfileManager.cs # JSON profiles load/save manager
│
├── Helpers/ # WPF Converters and RelayCommand implementation
├── Resources/ # WPF Application resources and dark theme dictionaries
│
├── MainWindow.xaml # UI layout and styling
├── MainWindow.xaml.cs # UI logic and event handlers
├── App.xaml / App.xaml.cs # App entry point and global resource merging
└── SonicBoard.csproj # MSBuild project file
Thanks to NAudio and Media Foundation integrations, SonicBoard supports a wide range of audio files:
- MPEG Layer 3 (
.mp3) - Waveform Audio (
.wav) - Ogg Vorbis (
.ogg) - Free Lossless Audio Codec (
.flac) - Advanced Audio Coding (
.aac,.m4a) - Windows Media Audio (
.wma) - Audio Interchange File Format (
.aiff,.aif)
- Kunal Choudhary - Main Developer & Designer
This project is licensed under the MIT License.
