Skip to content

About

A super fast, phone-friendly meme soundboard you can make your own.

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

WebSoundboard Logo

WebSoundboard

A fast, phone-friendly meme soundboard you can customize, fork, and make completely your own.

Live Demo Soundboard

GitHub Repo Stars GitHub Forks MIT License GitHub Pages


⚡ Highlights & Key Features

🛠️ 100% Modular & Customizable

Make it entirely your own: fork the repo, customize sound categories, pick custom colors, adjust master boost, and drop in your audio files — everything adapts instantly with zero coding needed.

🚀 Pure Vanilla Performance

Written in zero-dependency Vanilla JS, HTML5, and CSS3. Loads instantly, runs smooth on any mobile device or desktop browser.

🤖 Auto-Updating Sounds Pipeline

Powered by GitHub Actions — just drop audio files into sounds/ and push. Manifests generate automatically.

📱 Native PWA App Feel

Installable directly to iOS & Android homescreens via Progressive Web App (PWA). Fully functional offline playback for cached sounds.

🎨 Custom Color Categories & Favorites

Group clips into customizable categories with full color-picker customization, custom order management, and quick-filter tabs.

📢 Extreme Volume Boost (100%–500%)

Powered by the Web Audio API GainNode. Can boost quiet memes up to 5× original amplitude (+14 dB) without browser volume clipping limits.

🔍 Instant Search & Shortcuts

Search any clip on the fly by pressing /. Fast keyboard navigation and responsive sound cards with live playback indicators.


🎧 Supported Audio Formats

Audio Codecs & Extensions Smart Naming & File Specs
Format Extension Support
MPEG Audio .mp3 Universal
Waveform .wav Universal (Lossless)
Ogg Vorbis .ogg, .oga Android & Desktop
AAC / MP4 .m4a, .aac iOS & Modern Web

✨ Automatic Label Formatting
Filenames like what-the-dog-doin.mp3 or meme_sound_01.wav are automatically converted into neat, clean button labels: what the dog doin.

🌐 Full UTF-8 & Emoji Support
Spaces, accents, dashes, Polish diacritics (ą, ę, ł), and emojis in filenames work right out of the box.

⚡ Background Audio Pre-loading
Audio files are loaded asynchronously and decoded in memory for instantaneous zero-latency playback.


🚀 Quick Start — Create Your Own Soundboard in 2 Minutes

You don't need to know coding to deploy your own version:

flowchart LR
    A["🍴 Fork Repo"] --> B["📂 Add MP3s to sounds/"]
    B --> C["🤖 GitHub Action runs"]
    C --> D["🌐 Instant Soundboard on Pages"]
Loading
  1. Fork the repository
    Click the Fork button in the upper-right corner of this repo.
  2. Add your sound clips
    Upload your favourite audio files directly into the sounds/ directory (via GitHub web upload or Git push).
  3. Turn on GitHub Actions & Pages
    • Head over to Settings → Actions → General → set Workflow permissions to Read and write permissions.
    • Go to Settings → Pages → choose Deploy from a branch → Select main and root /.
  4. Enjoy your Soundboard!
    Your custom soundboard is live at https://<YOUR-USERNAME>.github.io/<YOUR-REPO>/.

🎛️ How the Audio Engine Works

WebSoundboard combines instantaneous memory playback with smooth streaming fallback into a single unified master stage:

flowchart LR
    SoundEvent["User Clicks Sound"] --> CheckBuffer{"Cached in Memory?"}
    
    CheckBuffer -- "Yes" --> AudioBufferSource["AudioBufferSourceNode<br/><i>(Sub-millisecond)</i>"]
    CheckBuffer -- "No" --> FallbackAudio["HTMLAudioElement<br/><i>(Streaming)</i>"]
    
    FallbackAudio --> MediaElementSource["createMediaElementSource()"]
    
    AudioBufferSource --> MasterGainNode["Master GainNode<br/><b>100% to 500% (+14 dB)</b>"]
    MediaElementSource --> MasterGainNode
    
    MasterGainNode --> AudioContextDestination["Speakers / Headphones"]
Loading
  • Prebuffered Mode: On library load, high-priority clips are decoded into raw memory buffers via Web Audio API for sub-millisecond trigger latency.
  • Dynamic Gain Master: The master slider adjusts amplitude smoothly using setTargetAtTime, avoiding pops and distortion clicks.

💻 Local Development

No Node build steps or bundling needed. Run any simple static file server from the root directory:

# Using Python
python -m http.server 8080

# Or using Node.js
npx serve .

# Or using PHP
php -S localhost:8080

Then visit: http://localhost:8080


📱 Mobile Installation (PWA)

  • iOS (Safari): Open the soundboard link, tap the Share button, then tap Add to Home Screen.
  • Android (Chrome): Tap the ⋮ menu button in Chrome and select Install app or Add to Home Screen.

Made with ❤️ by Pepe-PL
Feel free to star ⭐ the repo if you like it!

About

A super fast, phone-friendly meme soundboard you can make your own.

Resources

Stars

1 star

Watchers

0 watching

Forks

Contributors

Languages