β Click here to minimize once you're set up
Sound folder
Supported formats are MP3, WAV, OGG, M4A, AAC, and FLAC. Other formats (like WMA) won't be picked up.
Your browser can't remember folder access between page loads, so you'll need to re-add your sound folder(s) each time you open this page. The "Re-add" button above will appear once you've added a folder, so you don't have to hunt for it again.
Your browser's permission popup for this may say "Upload" and ask if you want to "upload all files" from the folder, that's just generic wording the browser uses for local file access. Nothing is actually uploaded or sent anywhere. The files are only read into this page's own memory, on your computer, so you can play them.
Audio output devices
In Discord: Settings (gear icon) β Voice & Video β under Mic Test, click "Let's Check." Then click this Tone button. If everything's routed correctly, you'll hear the tone played back to you by Discord.
In Zoom: Settings β Audio β under Microphone, click "Test Mic." That starts a short recording, click this Tone button while it's recording, then click Stop/Recording to hear it played back.
Other apps without a built-in mic test: hop into a live call with someone, click this Tone button, and ask if they heard it. If that app uses Push-to-Talk, hold your PTT key yourself while the tone plays, this button won't press it for you until the companion script is set up (later in this wizard).
Click "Reveal device names" first, browsers hide real device names until you grant one-time audio permission (on some browsers, like Firefox, this doesn't stay granted across reloads, so you may need to click it again next time). For "Send audio to," pick whichever device has "VB-Audio Virtual Cable" in its name, it may show as "CABLE Input," "Speakers," or something else depending on your system, see the FAQ below if you're not sure which one to pick. On Linux, there's no VB-Cable, look instead for the virtual sink you created in the Setup Wizard's Step 1 ("Soundboard Cable" if you used the example command there).
Push-to-Talk key
This companion script must be run in a Terminal window and remain running in the background while you use this Soundboard page for your Hotkeys and PTT to work. Installation and running instructions are included inside the zip file.
Back up your settings
Saves your categories, colors, sound labels/volumes, category and color
assignments, Quickplay order, Push-to-Talk settings, and everything else in this
page's settings as a JSON file you can keep as a backup or move to another
computer.
The Sound folder access itself can't be included, browsers don't
allow that to be exported, so after restoring you'll still need to re-add your
sound folder(s) above. Once re-added, restored labels/volumes/categories
reattach automatically to any sound whose folder and file name match; anything
that doesn't match yet just sits unused until that folder is re-added, nothing
errors out.
Mixer
Your browser doesn't support boosting volume past 100%, so any slider value above that won't make sounds louder, only values at or below 100% will have an effect.
Master cable volume here, each category's own Vol slider (in its Quickplay section header), and each sound's individual Cable % all multiply together for what's sent down the cable, e.g. Master 100% Γ Category 50% Γ Sound 100% plays that sound at half level. Local monitor volume is separate and unaffected by any of that, it only ever depends on this slider and the mute button.
Effects
Your browser only supports the Speed effect here (needs Chrome or Edge for the rest); Filter, Distortion, Echo, and Reverb are hidden below.
Toggle any of these on before hitting Play/Quickplay to shape the next sound. Since the board only ever plays one sound at a time, these apply live to whatever's about to play (or is currently playing) rather than being saved per-sound.
Quickplay categories
β Click here to minimize once your categories and colors are set up
Use categories to group your Quickplay sound buttons for similar sounds, so you can quickly find just the right sound at the right moment. Then use the dropdown next to a sound in the library below to assign it to a category. Drag a category chip to reorder its Quickplay section on the page.
No categories yet. Add one above, then assign sounds to it from the list below.
This row builds and reorders itself from whatever you actually play the most this session, it's not something you assign sounds to. A sound can show up here and still keep its normal category at the same time. Counts reset when the page reloads.
Colors let you flag Quickplay buttons at a glance without changing their layout. Click the swatch to change a color anytime. Assign a color to a sound from the dropdown next to it in the library below.
No colors yet. Add one above, then assign it to a sound from the list below.
Sound library
βΆ sends a sound down the cable for others to hear; π§ plays it only in your own local monitor, so you can preview a sound without anyone else hearing it.
Sound names can be edited (this will not affect the file name). Changing the name of a sound will also change the name shown on its Quickplay button above.
A few hundred sounds or more loaded here can make this list feel a little sluggish to scroll or search, since every row is real content on the page. That's separate from the audio files themselves, which are only read from disk when you actually play them.
Add a folder above to load your sound files.
Troubleshooting & FAQ
Why can't people hear my sounds, even though I pressed my PTT key?
Almost always a device-selection mismatch. Check both sides:
- In Discord: Settings β Voice & Video β Microphone must be set to "Cable Output (VB-Audio Virtual Cable)", not your real microphone.
- On this page: Settings β Audio output devices β "Send audio to" must be set to whichever device has "VB-Audio Virtual Cable" in its name, not your headphones/speakers.
- Confirm VB-Audio Virtual Cable is actually installed and you rebooted afterward (Setup Wizard, step 1).
What if my VB-Audio Virtual Cable device isn't labeled "Cable Output" or "Speakers"?
The exact label can vary by system and driver version, it's not always the same across every computer. In Settings β Audio output devices, look for whichever playback device includes "VB-Audio Virtual Cable" in its name, it might show as "CABLE Input", "Speakers", or something else. Use your judgement: as long as "VB-Audio Virtual Cable" appears somewhere in the name, that's the right one to pick. It also won't match the name you selected in Discord's microphone settings back in the Setup Wizard's step 2, since that's the opposite end of the same cable (Discord listens to the cable's "Output" side as its mic, this page sends audio to the cable's "Input" side), so seeing two different names there is expected, not a sign something's wrong.
People can hear my sounds, but they can't hear me talking anymore.
This happens once Discord's microphone is switched to "Cable Output." Discord now only hears whatever comes out of the virtual cable, and your real mic isn't part of that unless you route it there yourself. Follow the Setup Wizard's step 3, "Mix in your real microphone too" (re-run it from Settings if you need it again): Sound Control Panel β Recording tab β right-click your real mic β Properties β Listen tab β check "Listen to this device" β set "Playback through this device" to "Speakers (VB-Audio Virtual Cable)." This mixes your real voice into the same cable the soundboard uses, so Discord hears both.
My Push-to-Talk key doesn't press automatically when I play a sound.
This requires the separate companion script (top right "β¬ Download Companion Script"), since browsers aren't allowed to send key presses to other apps like Discord. Check:
- The script (
python companion.py) is actually running. Its terminal window should say "listening on ws://127.0.0.1:8765" and stay open. - The "Companion Script" status pill at the top of the page shows "connected," not "not running."
- The PTT key field (Settings β Push-to-Talk key) exactly matches Discord's own Push to Talk
keybind, and uses the underscore format (e.g.
ctrl_r), notctrl+r.
Without the script running, sounds still play and route correctly. You'll just need to hold your PTT key yourself while a sound plays.
My hotkey doesn't play a sound when I'm tabbed into a game.
Global hotkeys (working outside the browser tab) also need the companion script running, the same one used for automatic Push-to-Talk. Check:
- The companion script is running and the "Companion Script" status pill shows "connected."
- Each sound's Hotkey field in your sound list has a combo assigned, in the same
underscore format as the PTT key (e.g.
f9orctrl_alt_s). - No other running app or game has already claimed that same combo as its own global hotkey; if it has, either app may "win" it depending on load order.
Without the script running, you can still click or tap a sound in this tab to play it, you just won't be able to trigger it from outside the page.
Why did a popup tell me to pick my audio device before it would play a sound?
This shows up if you try to play a sound (via its βΆ button or a Quickplay button) before completing Settings β Audio output devices. Without a chosen device, the sound would only play through your computer's normal speakers or headphones, the same as any other website playing audio, but never actually reach your voice chat. That can sound like success and make it seem like the tool is working when it isn't, so playback is blocked with this reminder instead until that's done. The π§ "play locally" button is unaffected, since that one's meant to play through your regular device anyway.
My sounds come through distorted, or the volume sliders don't seem to do anything.
This is almost always Discord's own Automatic Gain Control and/or Noise Suppression fighting the volume you set. Turn both off in Discord's Voice & Video settings, then re-test your Master Cable Volume and each sound's individual Cable % slider. Those settings actively normalize incoming audio back toward one loudness target, which can make a quieter source sound just as loud (or distorted) as a full-volume one.
The page says "Unsupported browser," but I'm using Chrome.
Do a hard refresh (Ctrl+Shift+R) to make sure you're not looking at a
cached copy of the page, and make sure Chrome or Edge is reasonably up to date. This
tool relies on APIs added in Chrome/Edge 110+.
The device dropdown says "No devices found."
Click "Reveal device names" (Settings β Audio output devices) and allow the microphone permission prompt, since device names stay hidden from the page until you do. If it still shows nothing afterward, try a full page reload. If it's still empty, check that "CABLE Input" isn't disabled in Windows: Sound Control Panel β Playback tab β right-click in the empty space β "Show Disabled Devices."
I added a folder, but no sounds show up in the library.
Supported formats are MP3, WAV, OGG, M4A, AAC, and FLAC. Other formats (like WMA) won't be picked up. Also double-check the folder (or its subfolders) actually contains audio files and not just more empty folders.
I have to re-select my sound folder every time I come back to the page.
This is a browser security limitation, not a bug. Sites aren't allowed to silently keep permanent access to your filesystem. Your categories, sound names, and volume settings are all still remembered (they're stored separately in your browser's local storage); only the folder access itself needs re-confirming, and only occasionally, typically after closing the browser fully, switching profiles, or clearing site data.
Does this only work with Discord?
No. Discord is just the most common destination, so it's what the Setup Wizard walks through. Anything that lets you choose a specific microphone/input device works the same way: Zoom, TeamSpeak, Mumble, Google Meet, Skype, and most other voice chat or calling apps will all pick up sound played through CABLE Output once you select it as their microphone, exactly like the Setup Wizard's step 2.
Can I use this in a Zoom meeting?
Yes. Zoom lets you pick a specific microphone the same way Discord does, so the setup is nearly identical: install VB-Cable, then in Zoom go to Settings β Audio β Microphone and select "Cable Output (VB-Audio Virtual Cable)." The Setup Wizard's step 2 walks through the exact menu path.
Can I use this without installing VB-Audio Virtual Cable at all?
Yes. Sounds will still play through your chosen local monitor device so you can hear them yourself. You just won't be able to send them into a Discord call, since that specifically requires a virtual audio device like VB-Cable to bridge browser audio into something Discord can pick up as a "microphone."