A chromatic tuner and ear/fretboard-training game for macOS.
Plug in your guitar (or any monophonic instrument) and either tune up or run timed drills that train note recognition, intervals, scale degrees, chords, string-skipping, and the circle of fifths — the app listens to what you play and times how fast you find each target.
- Real-time pitch detection with a cents-accurate tuning meter (±1¢ resolution on a clean signal). The meter dot is green within ±5¢, yellow within ±15¢, red beyond.
Every practice mode runs as a timed session (1 / 3 / 5 / 10 min) and reports notes hit, wrong notes, average time per note, and notes-per-minute (NPM). Best NPM per session length and training type is saved across launches.
- Trainer — a random pitch class (C, C#, …, B) appears; play it on any string in any octave. Targets are shown as either spelling (e.g. "C#" or "Db") and either is accepted.
- Find the Note — a fretboard position is shown; play it, then name it by clicking or typing the letter to reinforce recall.
- Intervals — play the named interval above a root. An optional extended mode walks root → interval → name, with a confirmation cue the moment the root lands.
- Scale Degrees — play a scale degree (2–7, major and/or minor) above a tonic, with the same optional play-tonic-then-name flow.
- Circle of 5ths — active-recall practice of the circle: a key is shown and you retrieve and play the next position from memory — a fifth up (clockwise), a fourth up (counter-clockwise), or the relative minor. Random order by default (maximum retrieval); an optional ordered cycle (C → G → D → …) drills the sequence. Keys are spelled conventionally — Bb, Eb, Ab, Db, Gb on the flat side.
- Chord Builder — find a seed note on a string, then build a triad or 7th chord around it, playing the remaining tones anywhere on the neck. Toggles: find-on-a-string first, let the anchor be any chord tone (so you work out the root), and name the notes at the end (each tone as you go, or all together).
- Note on String — find a target note on a specific string, with an open-string verification step. Restrict the drill to any subset of strings.
- Open Strings — a pure string-skipping speed drill. One open string (E A D G B E) is named at a time; pluck it as fast as you can. Octave-aware, so a "high E" prompt isn't satisfied by ringing the low E.
- Bending Trainer — a timed drill for bend intonation: the app names a note and a bend width (+1…+4 semitones, the wider ones rarer); play that note anywhere and bend up to the target. A live cents meter tracks the bend, and the pitch you reach and hold is scored 0–100 on cents accuracy. Optionally hear the two notes first.
- A precise, in-app-synthesized click (beep or drum, optional time signatures and accented downbeat). An experimental Detect my tempo layer listens while you play along on a USB/DI instrument and reports your live tempo, your timing (early/late against the click, after a one-time latency calibration), and your consistency — recording each run to History.
- Practice zones — restrict any fretboard drill to a chosen set of strings and neck sections (0–7, 7–12, 12–19, 19–24). Enforced on the position-generating drills (Find the Note, Note on String, Open Strings) and honor-system on the pitch-class ones; either way the zone is what your History and adaptive difficulty partition by. Persisted per exercise.
- Adaptive note selection (opt-in) — Settings → Practice. Biases random selection toward the notes/intervals/strings you're slowest at, using the SM-2 spaced-repetition algorithm. Each exercise keeps its own difficulty map per practice zone. Off by default (uniform random).
- Show detected note (opt-in) — a small "Heard: X" line under the prompt, tinted on a green→red gradient by how far the detected pitch is from the target, so you can see how off you are at a glance.
- Wrong-note counting — each session tallies wrong notes uniformly across every mode, with onset gating and decay suppression so sustained ring-out and low-level noise don't get charged as mistakes.
- History — Progress & Mastery, across every mode. A Mode picker spans the note exercises plus Tempo (metronome detection runs) and Bending drills. Progress charts your trend over time (notes-per-minute plus four other metrics, against Date or Session #), with Adaptive and Uniform distinguished by colour and shape and an All / Adaptive / Normal filter. Mastery breaks each exercise down to the specific thing it trains — the interval, chord tone, scale degree, string, circle relationship, or bend width — as a weakest-first table with recent average time, miss rate, attempt count, and an improving/worsening trend arrow. Two questions, two views: am I improving? and what am I weakest at right now? (The Trainer even distinguishes enharmonic spellings — is "Eb" slower for you than "D#"?) The daily-practice badge counts all of it — exercises, bending, and metronome time.
- Input device picker with hot-swap — built-in mics, USB interfaces, and aggregate devices.
- YIN-based pitch detection — 8192-sample analysis window with parabolic interpolation and envelope-based onset detection. Monophonic only.
- Chord ID (in the View menu, not the main picker) — a live readout that names the major/minor triad you're holding, via frequency-domain chroma analysis with harmonic suppression. Separate from the monophonic detector the exercises use; best on a clean DI signal. A confidence and "3rd-strength" meter flags the classic single-note-overtone false positive (a lone note's overtones spell its own major triad).
- macOS 14 (Sonoma) or later
- Apple Silicon (arm64)
- A microphone or audio input device
- Download FretboardTrainer-x.y.z-arm64.zip from the Releases page.
- Unzip it.
- Drag FretboardTrainer.app into your /Applications folder.
You will hit a Gatekeeper warning. This is normal, and there are two clicks to get past it. It happens because the app is signed locally rather than by Apple ($99/yr Developer Program); the code is the same code you can read in the repository.
The two-click way (recommended):
- Open /Applications in Finder.
- Right-click (or hold Control and click) FretboardTrainer.app → choose Open.
- A dialog says it's from an unidentified developer. Click Open anyway.
- macOS will remember your decision — double-clicking works normally from now on.
The Terminal way (if the right-click flow doesn't show "Open"):
xattr -d com.apple.quarantine /Applications/FretboardTrainer.app
open /Applications/FretboardTrainer.appThis strips the quarantine flag macOS attached to the downloaded file.
On the first launch, macOS will prompt for microphone access. Click OK — the app cannot detect notes without it. If you accidentally clicked Don't Allow, the app will show a red banner with an Open Settings button that takes you straight to the right panel.
- Click Start Listening.
- Pick your input device from the dropdown if needed.
- Play a note. The detected pitch, frequency in Hz, and a ±50 cents tuning meter appear.
- Pick a mode from the segmented control (Trainer, Find the Note, Intervals, Scale Degrees, Circle of 5ths, Chord Builder, Note on String, Open Strings).
- Click Start Listening if you haven't already.
- Choose a session length (1 / 3 / 5 / 10 min) and, optionally, a training-type label so history groups related sessions together.
- Click Start Session and play each target as it appears. When the app hears the right note, you advance.
- When the timer ends you'll see your notes per minute, total notes, wrong notes, and average time. Beat your previous best for that mode + length and a NEW BEST badge appears.
Tip: the app gives you the benefit of the doubt. Fumbles and stray notes while reaching for the target are ignored — only playing the correct pitch advances you. Wrong notes are still counted (after a real pluck), but never block progress.
| Key | Action |
|---|---|
⌘1 … ⌘0 |
Switch mode: Tuner / Trainer / Find the Note / Intervals / Scale Degrees / Circle of 5ths / Chord Builder / Note on String / Open Strings / History (⌘0) |
⌘N |
New Session |
⌘. |
Stop Session |
⌘→ |
Skip current note |
⌘L or Space |
Toggle Listening |
⌘, |
Settings |
⇧⌘⌫ |
Reset Session History |
⇧⌘/ |
Show keyboard shortcuts |
A–G |
Play natural note (in letter-naming steps) |
⇧A–⇧G |
Play sharp note (⇧C = C#, etc.) |
The experimental Chord ID mode has no accelerator — open it from the View menu.
The same list is available in the app via Help → Keyboard Shortcuts.
No input devices in the dropdown — click the refresh button next to the picker. If your interface still doesn't appear, check System Settings → Privacy & Security → Microphone and ensure FretboardTrainer is allowed.
Pitch detection is unreliable — the detector is monophonic. Single notes work cleanly; chords, palm-muted notes, and very low/quiet notes are harder. Make sure your signal level fills the meter at least halfway when you play.
App won't launch — re-run the xattr command above, or right-click → Open from Finder. If you've already moved the app and granted Gatekeeper approval, normal double-click should work.
See CHANGELOG.md for the full release history.
MIT © 2026 dasaro