brumm.ai

Benchmark · pitch detector

Pitch detector benchmark

How often the pitch detector names the wrong octave, how many cents it is off and how fast its reading settles: 65 generated tones in four device profiles, 93 hummed notes with a known note, 56 notes from the app's own takes.

Mika, the resident

Mika checked none of these numbers. A script did, with the page's own reader.

Measured on 28 October 2026, with the reader the pitch detector runs.

The numbers

Generated tones, B0 to C7

As the page reads them, with the octave check. Right: within half a semitone.
ToneRightOctave errorsCents off (median / worst)
Sine15 of 1500.1 / 10.3
Saw15 of 1500.1 / 12.9
8085 of 500.1 / 0.1
808 through a phone speaker5 of 500 / 0
Sung vowel10 of 1002.6 / 6.3
Overtone ten times louder than the note15 of 1504.6 / 15.8
All65 of 6500.7 / 15.8
The reader alone, no octave check42 of 65160.9 / 42.3

The reader alone missed 7 tones entirely. Settling time, from the start of the tone to the stretch that holds within 25 cents: median 20 ms, 90% within 120 ms. The 808s settle last (120 ms), because their pitch drops first; the sung vowel with vibrato takes 70 ms.

Per device profile (simulated)

The same tones through four simulated microphones, read with the octave check.
ProfileRightOctave errorsSettling (median / 90%)
Line in65 of 65020 / 120 ms
Laptop in a room65 of 65020 / 140 ms
Phone microphone63 of 65 (1 not heard)120 / 120 ms
Headset microphone59 of 65 (6 not heard)020 / 120 ms

Real recordings

RecordingsNotesOctave errorsSettling (median / 90%)
Sing-back hums, 12 takes, written notes930100 / 270 ms
The app's takes, 8, no written notes58–50 / 310 ms

Of the 93 sing-back notes, 73 were read as the written note, 13 as another note and 7 were too short to read; the octave check changed none of them. Of the app's 58 notes, 56 got a steady reading.

How it was measured

  • Each generated tone lasts 1.5 seconds with a little noise under it, one every five semitones from B0 (30.9 Hz) to C7 (2,093 Hz); the 808s from B0 to B2, the sung vowel from D2 to C6. The noise is seeded, so every run gives the same numbers.
  • The reader is the pitch detector's own code, built as the site serves it and run in headless Chromium.
  • Right means within half a semitone of the tone; an octave error is a whole number of octaves off. Cents are counted on the right readings.
  • Settling time runs from the start of the sound (on a hum, its first pitched moment) to the start of the stretch that holds within 25 cents. The reader looks every 10 ms.
  • The device profiles are filters on the same tones. Line in: the tone as made. Laptop: a short room reverb, noise, the top rolled off at 8 kHz. Phone: nothing below about 150 Hz, a soft limiter, noise. Headset: 300 Hz to 3.4 kHz and more noise.
  • Sing-back hums: takes where a melody was played and hummed back, each note against its written note, in the octave the rest of its take was hummed in. A hummed note counts as right within a semitone.
  • The app's takes: the notes the app heard in its own saved takes. There is no written melody, so they count for settling only.

Where the numbers stop

  • Every real recording comes from one laptop microphone (Chrome, echo cancellation on, 48 kHz) and two voices. No real phone or headset was measured: those rows are simulations.
  • The tones are single clean notes. A chord, a full mix or two notes at once is not measured, and the detector is not made for them.
  • Nothing below B0 (30.9 Hz) was measured; the reader's deep pass stops there.
  • When a hum is read as another note, the take can't tell whether the voice slid or the reader missed.
  • Your phone, its processing and your room are not in these tables.

Open the pitch detector