A turn-based JRPG where you cast spells by playing melodies on a real instrument. No menus, no buttons — just play.
Play it: Open index.html in a browser, allow microphone access, and start playing.
- You're a bard. Your instrument is your spellbook.
- Each spell is a melody (2-4 notes). Play the right notes and the game recognizes the spell.
- Enemies have weaknesses and resistances — pick the right spell for each fight.
- Nail the rhythm (note durations) for critical hits.
| Tier | Spell | Melody | Element |
|---|---|---|---|
| 1 | Ice Shard | C → D | Ice |
| 1 | Wind Blast | D → C | Wind |
| 1 | Fireball | E → G | Fire |
| 1 | Minor Heal | A → G | Heal |
| 2 | Blizzard | C → E → G | Ice |
| 2 | Tornado | D → E → G | Wind |
| 2 | Lightning | G → E → C | Lightning |
| 2 | Poison Cloud | F → D → E | Poison |
| 2 | Major Heal | A → C → E | Heal |
| 3 | Firestorm | E → C → D → E | Fire |
| 3 | Thunderstorm | G → A → G → E | Thunder |
| 3 | Barrier | B → A → G → E | Shield |
Works with any instrument that can hold a sustained pitch — melodica, recorder, flute, keyboard, etc. Use the Tune Up screen (from the menu) to test if your instrument is recognized.
- Phaser 3 for rendering
- Web Audio API with autocorrelation pitch detection (YIN-inspired)
- Melodica-optimized filters: harmonic purity, pitch stability, confidence thresholds
- Prefix-free melody design for unambiguous real-time matching
- No build step — pure HTML/JS, runs from a file or any static server
python3 -m http.server 8080
# open http://localhost:8080- Monster sprites: Dungeon Crawl 16x16 Pixel Art Asset Pack
- Spell effects: Spell Effects Pack
- Fonts: Cinzel Decorative, Cinzel, Nunito