Clapster is an interactive rhythm–learning tool that listens to claps, detects rhythmic patterns, compares them to stored “master” patterns, and provides real-time feedback through an LCD display and audio cues.
It was developed as part of the Prototyping Interactive Systems course at Georgia Tech.
The project integrates audio sensing, pattern–matching algorithms, LCD UI design, EEPROM storage, and gamified interaction modes to help users practice timing and rhythmic accuracy.
The code is in Clapster.ino.
-
Microphone-based clap detection
Detects peaks in audio signal and extracts timing intervals. -
Interval normalization algorithm
Compares user input to target rhythm independent of tempo. -
Persistent pattern storage (EEPROM)
A user-recorded pattern survives resets/power cycles. -
LCD interface with dynamic UI
Status messages, instructions, animations, success/failure screens. -
Audio feedback (buzzer)
Clicks, short melodies, success/failure cues. -
Two modes of operation:
- Learning Mode — Record, replay, and practice a rhythm.
- Gaming Mode — Three increasingly difficult built-in rhythms, three lives, progression-based gameplay.
-
Two-button interaction system
- A — Ready/Start/Playback/Cancel recording/Confirm
- B — Mode switching (Learning ↔ Gaming)
- Listen for amplitude peaks from the microphone.
- Extract time intervals between consecutive claps.
- Normalize intervals to make rhythms tempo-independent.
- Compare user rhythm against stored pattern using tolerance thresholds.
- Output evaluation:
- LCD message
- Buzzer feedback melody
- Replay the stored “key” rhythm pattern.
- User performs it by clapping.
- Device evaluates accuracy.
- Button A:
- Click → Playback stored pattern
- Long press → Enter Recording Mode
- Press again → Cancel recording
- Three built-in rhythm levels.
- User gets 3 lives total.
- Each attempt:
- Rhythm is played via buzzer.
- LCD shows numeric representation.
- User performs pattern.
- Button A = “Ready”.
- Button B = Switch modes anytime.
- Arduino Uno
- Sensor detection module (mic)
- 16×2 LCD (with potentiometer for contrast)
- Buzzer
- 2× push buttons
- 2x resistors for the buttons
- Battery pack (3×AA)
- Jumper wires + breadboard
- Laser-cut acrylic enclosure
