This is a personal project built for my own bass practice. It is not designed as a general-purpose tool and may not be useful or usable for anyone else.
A browser-based practice tool for bass. Drop in your Guitar Pro files, plug in your mic, and play along — the app listens in real time and tells you how tight your groove is.
- Listens to you play via microphone, detecting pitch and timing as you go
- Scores your performance after each exercise: note accuracy, timing consistency, and a Groove Lock score that shows whether you rush or drag
- Renders interactive tablature with both standard notation and tab, so you can loop sections, adjust the tempo, and use a built-in metronome to work on tough passages
- Tracks your progress across sessions, saving your best scores per exercise
- Loads your own GP files — drop Guitar Pro files into
repository-exercises/and they appear instantly in the file browser, no conversion needed - Chromatic tuner — built-in tuner with visual needle and note detection
- Standalone metronome — configurable with accent, click sound, and subdivisions
Built-in exercises range from beginner to advanced and cover groove patterns, melodic movement, string crossing, sixteenth-note foundations, and speed builders. You can also load any Guitar Pro file (.gp, .gpx, .gp3–.gp5) from the directory browser.
Put Guitar Pro files anywhere under repository-exercises/, organized in subfolders however you like:
repository-exercises/
└── Jules/
└── 2026-03-23/
├── Fly Away.gp
└── groove exercise.gp
They show up in the directory browser automatically after a page reload (Vite picks them up at build time).
npm install
npm run devSelect an exercise from the sidebar or the directory browser, enable your microphone, and hit play. A count-in gives you time to settle before evaluation begins.
| Key | Action |
|---|---|
Space |
Play / Pause |
Esc |
Stop |
L |
Toggle loop |
M |
Toggle metronome |
F |
Fullscreen |
← / → |
Tempo ±5 BPM |
↑ / ↓ |
Tempo ±1 BPM |
React · TypeScript · Vite · AlphaTab (sheet music rendering & GP parsing) · Web Audio API
