How Scoring Works

After every phrase you play back, the app gives you a percentage and a grade. This page explains what the score actually measures, what gets rewarded, what gets forgiven, and where the boundaries of "Great" and "Try Again" sit.

The headline numbers

NumberWhat it measures
Pitch accuracyHow many of the right notes you played, with a small bonus for being in tune.
Rhythm accuracyHow close to the written rhythm your notes landed.
Overallpitch × 0.60 + rhythm × 0.40.
GradeA label assigned from the overall percentage.

Pitch is weighted more heavily than rhythm — 60/40 — because in practice it's harder to hit the right note than the right beat. Most beginners can rush a beat and still play the right pitch; getting the wrong pitch (especially on a fast line over changing harmony) is the larger ear-training challenge. The 60/40 split is also what most reasonable jazz teachers would say if you asked them to grade a transcription.

The grades

GradeThresholdWhat it means
Perfect≥ 95%Right in the pocket. Move on.
Great≥ 85%Cookin'. The phrase is solidly in your ear.
Good≥ 70%Swinging along. You passed — the next phrase is queued up.
Fair≥ 55%Off the changes here and there. The same phrase comes round again.
Try Again< 55%Take it again from the top.

On Side A, the pass line is 70% — at that threshold the app moves you on, and below it the same phrase replays once so you can take another swing (miss it twice and the loop moves on regardless). Side B is tighter: each key lands in one of three bands — 90% and up, 75–89%, under 75%. A key at 90%+ is what counts toward tempo bumps and key unlocks; the middle band holds the line without earning either; a single key under 75% blocks tempo increases and unlocks until you bring it back up. A 90% key on its own doesn't unlock anything — the next key needs the session average at 90%+, three clean passes on the newest key, and no key under 75% anywhere. (The colours on the key ring are a finer five-step scale, gold down to a deep shade, and don't mark these lines exactly — see the three bands.) See The Practice Modes and How to Practice. The grades themselves don't gate anything — the per-mode thresholds are what move the practice forward.

Tricks are scored on a different axis again — not "did you play these exact notes" but "does what you played obey the device's formula". The percentage and the grades come out on the same scale, so a Great is a Great; what feeds them is described in Practicing Tricks.

Each grade picks one of about ten captions from a pool, mixing Blue Note one-liners with quotes from the giants of the genre — so the feedback stays fresh across a session.

How the app aligns what you played with what was written

Your playback won't be note-for-note identical to the original. You might be a beat behind. You might drop a note. You might add an extra one. You might play the whole thing slightly late (which is normal — there's a fraction of a second of human reaction time built into the loop).

The app handles this with a flexible alignment. The expected notes and the detected notes are paired up the way two transcribers would compare takes: each note in the original is matched to the closest detected note in time and pitch, allowing for missed notes (you didn't play it) and extra notes (you played something not in the original). The math behind it is called Dynamic Time Warping — it's the same idea used in speech recognition to match words against an audio file when the speaker pauses or rushes.

What this means for you, in plain terms:

  • You can be a little late. A beat or so off and the alignment still finds the match.
  • You can be a little early. Same.
  • You can play in a different octave where the app allows it: Side B's continuous mode (which assumes you might move a lick to keep it on the horn) and tune practice at every strictness level (nothing is demonstrated there, so there is no register to match). Side A and Side B's Call & Response are strict about the octave — both play the phrase first, so the register is a heard target. Tricks never care about the octave.
  • Missed notes don't ruin everything else. If you skip note 3, the app still tries to match notes 4, 5, and 6 against their counterparts. It just docks you for the missed one.
  • Extra notes don't ruin everything else. If you add an extra grace note, the alignment treats it as an extra and grades the rest against the original.
  • A stray note doesn't shift everything after it. An attack that cracks an octave, or a click that reads as a note, is an extra; the notes after it are still matched to their own places, not to the place before.

Pitch accuracy, note by note

Each note in the original gets a pitch score:

  • Right pitch → 1.0 (with a small in-tune bonus, up to about +0.10, that maxes out at zero cents off).
  • Wrong pitch → 0.
  • Rest → 1.0 automatically (you correctly played silence).
  • Missed note (the alignment found nothing matching it) → 0.

The bonus for tuning is small on purpose — it tips ties on otherwise correct notes, but a slightly out-of-tune correct note still beats a perfectly-tuned wrong note by a wide margin.

The pitch accuracy you see is the average across all the original notes.

Rhythm accuracy, note by note

Each note's rhythm score depends on how close to the written beat it landed, scaled by the tempo.

  • Land on the beat → score near 1.0.
  • The further off, the lower the score.
  • Rests → 1.0 automatically.
  • The tolerance is looser at slow tempos and tighter at fast ones: at 60 BPM the score doesn't fall to zero until you're more than a full beat off; at 200 BPM the same fraction of a beat is a much tighter window in absolute time, so the curve is steeper. This is intentional — the same fraction-of-a-beat error feels "tight" at 200 BPM and "very loose" at 60.

Latency correction

Every player — and every microphone — has a fraction of a second of constant delay. The app measures the median offset across all your matched notes and subtracts it before scoring. So if you played the whole phrase 80 ms late, the app absorbs the 80 ms and only judges your relative timing between notes. You don't get docked for reaction time.

Swing

If the session swings — the Swing setting, which ear training always follows and the band follows on the Swing backing style — and the original phrase has off-beat eighth notes, the expected position of those off-beats shifts by the same amount. You won't get rhythmically dinged for swinging when you're supposed to swing; on a straight style (Bossa Nova, Straight) the scorer expects even eighths.

Why missing or adding a note hurts both pitch and rhythm

This is worth knowing because it explains some "harsh" scores.

When the alignment marks a note as missed, or as an extra that you plausibly played, the app counts it as a zero in both pitch accuracy and rhythm accuracy — for that one note. The reasoning is mechanical (a missed note has no pitch and no timing to score), but the effect is that drops and additions punch a bigger hole in your overall percentage than a wrong-note-played-on-time does.

Not every extra counts. The pitch tracker sometimes splits one note in two, reads a scooped attack as two or three notes, or hears the click the window opened on as a short low pitch, and none of those is something you played. So an extra is charged only when it looks like a real note (src/lib/scoring/extras.ts, 2026-10-07): at least 150 ms long, confidently tracked, not a ghost, not sharing its pitch class with the note beside it (a split), inside the written line (not after its end, not more than a tenth of a second before its first note), and not a short transition — a scoop, a crack, or a brief chromatic slip of a quarter-second or less within two semitones of a correctly played neighbour. A longer or more distant stray is charged; the results screen marks the ones that were. Before 2026-10-07 every extra was free, which let a take with a fumbled last bar save as "great".

The practical takeaway: it's better to play every note of a 4-note phrase, even if one is wrong, than to skip a note. A 4-note phrase with one wrong pitch on time is (3 × 1.0 + 0) / 4 = 0.75 pitch and full rhythm, for 0.75 × 0.6 + 1.0 × 0.4 = 0.85 overall — a Great. A 4-note phrase where you played 3 in time and dropped the last one is 0.75 pitch and 0.75 rhythm, for 0.75 overall — still a Good, but with less margin and a worse rhythm component.

A worked example

Suppose the original is a four-note phrase at 120 BPM: C–E–G–C. You play:

BeatOriginalYou playedPitchRhythm
1CC, 10 ms late1.0~0.98
2EE, 20 ms late1.0~0.96
3GA♭ (semitone off), on time01.0
4C(missed)00
  • Pitch accuracy: (1 + 1 + 0 + 0) / 4 = 0.50
  • Rhythm accuracy: (0.98 + 0.96 + 1.0 + 0) / 4 ≈ 0.74
  • Overall: 0.50 × 0.6 + 0.74 × 0.4 ≈ 0.59
  • Grade: Fair

The two notes you played correctly carry most of the credit. The wrong-pitch G drags pitch accuracy down. The missed last C drags both. To get to a Good, fix either the wrong pitch (overall jumps to ~0.74, Good) or at least play something in time for the last note — even if it's still the wrong pitch, the rhythm score recovers and overall jumps to ~0.69, just under Good.

What the app doesn't score

A few things deliberately stay out of the score:

  • Tone, dynamics, and articulation. The pitch detector hears the fundamental frequency, not your sound. A breathy ghost note and a fortissimo accent score the same as long as the pitch and timing land — and a ghost that lands more than half a semitone out of tune counts as the wrong note, like any other (see Ghost notes).
  • Vibrato and bends. The pitch detector takes a median across each note's duration, so a bend that resolves to the right pitch is counted as the right pitch.
  • Phrasing nuance like swing degree or laid-back feel. Beyond the swing-aware scoring of off-beat eighths, the app doesn't try to read your phrasing. If you're playing the right notes at roughly the right times, you'll pass.

The score is a tool for tracking your accuracy on the content of the phrase. Once you're consistently passing at a given level, the practicing of sound is on you — the app is happy to call a clean attempt with no tone a Perfect, but a real teacher wouldn't, and you shouldn't either.

Bleed filtering

If you don't use headphones, your microphone may pick up the playback or the backing track and mistake it for notes you played. To prevent that, the app runs a bleed filter on the detected notes before scoring: notes that line up with active backing-track pitches are dropped if the signal is weak. The filter is conservative — it only drops what looks like room bleed, not what looks like you playing the same note as the backing track.

There is no user-facing switch for it. The filter always runs, but whether its result becomes your score is decided for you: Tune Practice turns it on at every strictness level, and everywhere else the app scores the unfiltered notes. On headphones none of this matters — there's no bleed to find.

When the score doesn't match how it felt

Two situations commonly cause the score to disagree with your gut:

  • You played it cleanly but the score is low. Usually a microphone problem — the room is noisy, the mic is far from the bell, or the input level is too low and the pitch detector is losing clarity. There's no live meter in the practice rooms, but the diagnostics page (/diagnostics) replays a saved take and lists the notes it heard with their clarity; if the clarity of your sustained notes is low or the notes are chopped up, that's why.
  • You stumbled but the score is high. Usually because you stopped playing instead of finishing the phrase wrong. The app stops listening after about two seconds of silence; if you cut yourself off, the missed notes don't get logged because the alignment never sees them. This rounds in your favor in the short term, but it doesn't help your ear, so finishing through a stumble is the right move even when it costs a few points.