~/projects/memorybeat

GAMES2026live

MemoryBeat

A real-time multiplayer web game where players race to type the title of a 30-second song clip, with speed-based scoring, a global daily challenge, and custom rooms.

TIMELINE
Aug 2026 – Sep 2026
TEAM
Solo
CONTEXT
Personal project
887songs in the All Time pack
2,578unique songs across the combined song packs

Overview

MemoryBeat is a skribbl-style music guessing game: a 30-second song clip plays and players race to type the correct title in chat, with points awarded on a speed-decaying curve. It supports singleplayer, custom multiplayer rooms, and a daily global challenge with the same five songs for every player.

Features

  • Real-time multiplayer rooms with join codes, shareable links, player limits, and optional passwords
  • Singleplayer mode with selectable song packs or an imported playlist
  • Daily challenge: the same five songs worldwide per day, with Discord sign-in and a global leaderboard
  • Kahoot-style score decay that rewards faster correct guesses
  • Adjustable difficulty slider that reweights song selection toward deeper cuts without hard-filtering
  • Multiple-choice answer mode with decoys drawn from songs of similar popularity
  • Playlist import from Deezer or Spotify, validated for playability before a room starts
  • Web Audio API-driven audio visualizer and vote-kick in rooms

How it works

Song packs are built offline by scraping Billboard Year-End Hot 100 data and Last.fm listener counts into a SQLite database, where each track is scored for popularity. At runtime, tracks are resolved against the iTunes Search API for 30-second preview clips, proxied through the server so the answer isn’t visible in devtools. Gameplay — rooms, chat-as-guess interception, scoring, lobby state — runs over Socket.IO with an Express backend, while the daily challenge uses a date-seeded shuffle frozen into the database on first request so a failed song lookup doesn’t affect every player’s run.