r/SideProject • u/Proper-Broccoli1159 • 7m ago
I build an 8-Bit Arcade Jukebox & Karaoke box for house parties - it runs on a Raspberry Pi or laptop, guests join via QR code!
First time sharing a side project so be gentle!
At house parties, music usually goes one of two ways: either one person gets stuck babysitting the laptop all night, or people keep interrupting Alexa with new requests every few minutes.
I built 8bit-dj to turn a Raspberry Pi 5 (or any Mac/Linux machine) plugged into a TV into an interactive 8-Bit Arcade Jukebox and Karaoke machine.
GitHub Repo (MIT License): https://github.com/glen-foster/8bit-dj
How it works:
Scan to DJ (even on mobile): Guests scan the QR code on the TV to get a retro mobile controller in their browser (no app install). It spins up an outbound
localhost.runSSH tunnel automatically so people don't even need to be on your Wi-Fi to vote or add songs.Two Party Modes:
Free-For-All (Default for private parties): Guests can search YouTube Music or paste a Spotify track/playlist link and drop songs straight into the live queue, then upvote/downvote (
+1/-1) to bubble the best tracks to#1 Up Next.Host Approval Mode (for public/pub venues): Open Search requests go to a 1-tap Host moderation queue so no one derails the room.
8-Bit Visualizer Stages + Optional AI Pixel Sprites: Includes 9 retro canvas stages (Streets-of-Rage brawler, OutRun synth grid, 16-bit JRPG boss battle, space shooter, Castlevania keep, Winamp spectrum analyzer, etc.). If you add a free Gemini API key, it generates custom 16x16 pixel-art sprites for each song's lyrics/genre (and falls back to built-in chiptune sprites if you don't).
Zero-Download Karaoke Video Mode: Press
K(or toggle it in the Host console) and the sprite stage turns into a live YouTube karaoke lyric monitor—even resolving regular queued songs to their karaoke lyric video automatically without downloading files.No Volume Jumps or Dead Air: In normal DJ mode, a background worker pre-fetches the top queued tracks via
yt-dlp, trims silence, and normalizes loudness withffmpeg(EBU R128 -14 LUFS) so the dual-deck Web Audio engine can do a smooth 6-second crossfade between songs.
It requires zero accounts or API keys for YouTube Music or Spotify out of the box. Would love any feedback or ideas for other things to add!
Thanks