A professional broadcast-grade soundboard modeled on the 360 Systems Shortcut cart machine, built with JUCE C++ for low-latency audio playback.
188 assignable slots across a full QWERTY keyboard layout and 4 banks — pre-labeled with deep cuts from the Weird Al universe: UHF film, VHS rarities, Al TV interviews, song hooks, and specialty clips.
A web prototype (index.html) is also included for quick previewing in a browser.
- 47 trigger keys across the full keyboard (
` 1–0 -=/ QWERTY / ASDF / ZXCV / Space) - 4 banks (Ctrl+A/B/C/D) = 188 total assignable slots
- ASIO / WASAPI support — sub-10ms latency with a proper audio interface
- 64-voice polyphony — every key fires independently; nothing stops anything else
- 5 playback modes: FIRE/STOP · PLAY-END · MOMENTARY · LOOP FIRE · RESTART
- Per-slot controls: gain, trim-in, trim-out
- Live waveform display with trim handles and animated playhead
- 16-segment LED VU meters with peak hold (L/R)
- Drag-and-drop audio files directly onto keys
- Right-click context menu: load, rename, clear, copy to another key
| Tool | Version |
|---|---|
| Visual Studio 2022 | 17.x (Community is free) |
| CMake | ≥ 3.22 |
| Git | any |
CMake fetches JUCE automatically — no separate JUCE install needed.
git clone https://github.com/punktilend/AtomicButton.git
cd AtomicButton
cmake -B build -G "Visual Studio 17 2022" -A x64
cmake --build build --config Release
.\build\AtomicButton_artefacts\Release\"Shortcut Pro.exe"cmake -B build -G Xcode
cmake --build build --config Release
open build/AtomicButton_artefacts/Release/ShortcutPro.app# Install JUCE system deps first:
sudo apt install libasound2-dev libfreetype-dev libcurl4-openssl-dev \
libwebkit2gtk-4.1-dev libgtk-3-dev
cmake -B build
cmake --build build --config Release
./build/AtomicButton_artefacts/Release/ShortcutProASIO gives sub-10ms round-trip latency for live radio and TV use.
- Download the ASIO SDK 2.3.3 from Steinberg (free registration required)
- Extract to e.g.
C:\SDKs\ASIOSDK2.3.3 - Pass the path to CMake:
cmake -B build -G "Visual Studio 17 2022" -A x64 `
-DASIO_SDK_DIR="C:\SDKs\ASIOSDK2.3.3"- In-app: Options → Audio Device Settings → select your ASIO device
Without ASIO the app uses WASAPI Exclusive (~10–20ms) or DirectSound (~20–40ms) automatically.
` 1 2 3 4 5 6 7 8 9 0 - = ← 13 keys (Bank row 1)
q w e r t y u i o p [ ] ← 12 keys (Bank row 2)
a s d f g h j k l ; ' ← 11 keys (Bank row 3)
z x c v b n m , . / ← 10 keys (Bank row 4)
[ space ] ← 1 key
| Shortcut | Action |
|---|---|
| Any trigger key | Fire / toggle clip |
Ctrl+A / B / C / D |
Switch bank |
Ctrl+L |
Toggle loop-all |
Ctrl+. |
Kill all voices |
Enter |
Play selected slot |
Ctrl+Del |
Clear selected slot |
| Drag file onto key | Assign audio |
| Right-click key | Load · Rename · Clear · Copy |
| Bank | Theme |
|---|---|
| A | UHF film / VHS — "No Stinking Badgers", Spatula City, Gandhi II, Wheel of Fish… |
| B | Classic song hooks — Eat It, Fat, Amish Paradise, White & Nerdy, Albuquerque… |
| C | Al TV interviews, deep cuts, tour diaries, bonus VHS content |
| D | Specialty / rarities — Weasel Stomping Day, Foil, Virus Alert, Zelda Polka… |
All slot names are pre-labeled and fully renameable.
| Format | Notes |
|---|---|
| WAV / AIFF | Always supported |
| FLAC | Built in |
| OGG Vorbis | Built in |
| MP3 | Disabled by default (Fraunhofer licence required) |
AtomicButton/
├── CMakeLists.txt Build system (JUCE via FetchContent)
├── BUILD.md Detailed build + ASIO setup guide
├── Source/
│ ├── Main.cpp JUCE application entry point
│ ├── SoundSlot.h Data model — slots, voices, preset names
│ ├── AudioEngine.h/.cpp ASIO/WASAPI audio, 64-voice polyphony
│ ├── WaveformDisplay.h/.cpp LCD waveform, trim handles, playhead
│ ├── VUMeterComponent.h/.cpp 16-seg LED VU with peak hold
│ ├── KeyboardComponent.h/.cpp Full keyboard grid, drag-drop, menus
│ └── MainComponent.h/.cpp Top-level UI, transport, bank switching
├── index.html Web prototype (no install required)
├── style.css Broadcast aesthetic CSS
└── soundboard.js Web prototype JS
Open index.html in any modern browser for a zero-install preview.
Drag audio files onto keys, use the same keyboard shortcuts.
Latency is browser-dependent (~30–100ms) — fine for previewing, not for broadcast.
MIT — see LICENSE
The ASIO SDK is © Steinberg Media Technologies and is not included.
JUCE is © Raw Material Software — see JUCE licence for terms.