8bit16bars
Inspiration
I can't play any instruments. I kept seeing YouTube Shorts of people making incredible MIDI music and wished I could do that too. So I built a system where you just hum, beatbox, or describe what you want — and AI turns it into 8-bit video game music.
What it does
You open an empty pixel-art garage. Hum a melody or type "make me a chill exploration theme." AI generates patterns on a 16-step sequencer, and robot performers roll onto the stage. Add layers — drums, bass, melody, chords — each one brings a new robot. The band plays in sync, the stage lights up, and your composition loops seamlessly like real NES-era game BGM.
How we built it
Built entirely with Claude Code orchestrating multiple AI agents across 6 phases. The core is a custom DSL (domain-specific language) that every component reads from — audio engine, grid UI, AI, and visuals all share one representation. Backend is Python/FastAPI, frontend is React/TypeScript with Tone.js for authentic 8-bit synthesis (pulse, triangle, noise waveforms) and HTML5 Canvas for the robot stage. All notes are constrained to valid scales:
$$S(r, \text{type}) = {(r + i) \bmod 12 \mid i \in \text{intervals}(\text{type})}$$
so it's impossible to play a wrong note.
Challenges we ran into
Getting AI to produce musically valid output consistently. The system prompt encodes scale formulas, chord progressions in the active key, pitch ranges per role, and 8-bit style conventions. Also: resisting the urge to make it a DAW. The constraints (16 steps, 16 bars, 5 waveforms) are the design, not limitations.
What we learned
Constraints breed creativity. The bounded 8-bit palette made AI output more reliable than open-ended generation ever could. And voice really is the most accessible instrument — everyone can hum.
What's next for 8-bit tracks and beats AI
Better voice interpretation, style packs that change both sound and visuals together, shareable compositions, and a taste system that learns what kind of music you like over time.
Log in or sign up for Devpost to join the conversation.