A small web app I built to stop being bad at naming notes on the guitar. It shows me a note, speaks its name out loud, then plays the note on a synthesised guitar tone — so I just watch, listen, and let it sink in. No quizzes, no wrong answers, no pressure. Almost like a metronome, but for note names.
Why I made it
I can sight-read tab, I can play songs from memory, but ask me what note sits on the 7th fret of the D string and my brain goes blank. Most fretboard trainers I found treat this like a test — flash a note, time you, mark you wrong. That’s not how memorisation works for me. I wanted something I could leave running in a browser tab while I held the guitar, and let repetition do the slow, boring work.
How it works
The loop is simple: pick a random note from the set you enabled, display it, speak it out loud, wait a beat, then play a synthesised guitar tone. The voice comes from the Web Speech API; the guitar sound is built in the browser with the Web Audio API — five additive harmonics and a plucked-string envelope, so it actually rings rather than beeps. The BPM slider controls how fast the loop runs. I usually sit somewhere around 40–60 BPM, slow enough that I have time to find the note on the neck before the tone plays.
How to use it
- Tap Open the Trainer above.
- Pick which notes you want to practise (or leave all twelve enabled).
- Set the BPM to something relaxed.
- Hit Start and put the phone on your music stand.
- Every time a note comes up, find it on the neck before the tone plays. No score, no timer — just reps.
Languages
The trainer speaks note names in English (C, D, E, F, G, A, B) or German (C, D, E, F, G, A, H — and Cis, Dis, Fis, Gis, Ais for the sharps). Pick whichever matches how you think about music.
Under the hood
It’s a self-contained HTML page — about 40 KB, no dependencies, no frameworks, no tracking, no cookies. Your BPM and note-selection preferences are saved in localStorage so the trainer remembers how you left it. There is a matching SwiftUI iOS version I keep alongside it, but the web version is the one I use day to day.

