Vocal range test: how to measure it with a microphone
What is being measured, in what order, why the number moves, and what to check when it fails.
Vocal range and note names
Your vocal range is the span between the lowest and the highest note you can produce. People ask about it whenever they pick a song, yet almost nobody knows their own number. Sites that guess from a questionnaire never hear your voice at all, so there is no way to tell whether their answer is right.
A note name puts a name on that height. This tool uses scientific pitch notation: middle C is C4, the A above it is A4, and A4 is fixed at 440Hz by international convention. An octave holds twelve semitones, and a semitone splits into a hundred cents.
The notation matters because you will want to compare this result with other range tests and with sheet music. Saying low do and high do loses the octave, and C3 and C5 are two octaves apart, which is a completely different sound.
Stating the span in octaves makes it easy to read. Twenty-four semitones is two octaves. A wide span does not make anyone a better singer, and the part you actually use is usually narrower.
Here is why no song titles appear. Karaoke catalogues are protected as database-maker rights under Korean copyright law, and neither major operator publishes a licensed way to use them. That other sites carry the data is not a reason for us to. So this tool holds no titles, no lyrics, no track numbers and no audio, and stops at note names. Write the song in the note field if you want it, and it stays on your device.
How pitch is read from sound
A voice is made by the vocal folds opening and closing in a repeating cycle. The time one cycle takes is the period, and one divided by the period is the fundamental frequency. That number is what we hear as pitch.
So reading pitch means finding the repeat interval. Shift the sound against itself, see how well the two line up, and the shift that lines up best is the period. This tool uses the difference-function family: it squares the gap between the signal and its shifted copy and looks for the smallest total.
There is a trap here. If the signal lines up at period T, it lines up at 2T as well. Picking only the deepest match therefore returns a note an octave too low often enough to matter. That is the octave error. Choosing the first dip that crosses a threshold reduces it.
The opposite problem is resolution. Shifts are counted in whole samples, and at high pitches one sample is a wide step. Near 880Hz a single sample is close to 16Hz, which is far too coarse to report.
Two more steps fix that. A parabola through three points around the dip reads between the sample marks, and the measurement is repeated at a later repeat of the same period. Measuring at the tenth repeat makes the marks ten times finer.
Consonants and breath have no repeating cycle, so this method returns nothing for them. When that happens the tool reports nothing. Filling the gap with a guess would put a falsehood on the screen.
What this tool actually does
When you allow the microphone, the browser opens an audio track. The track feeds an analyser node, and the tool pulls time-domain frames out of it. One frame is 4096 samples, which is about 85 milliseconds on a common 48kHz device.
Each frame starts with a loudness check. Below the threshold it counts as silence and is skipped. Otherwise the fundamental is estimated as described above and discarded unless it falls between 60Hz and 1200Hz.
The frequency then becomes a note number. Take the logarithm against 440, round it, and you have the note name, with the leftover fraction as cents. That pair is what the current-note display shows.
Every frame also carries a clarity value between zero and one, saying how clean the repeat was. Only frames at clarity 90% or above are used for the end notes.
One more rule follows. A door closing or a voice cracking still produces a stray frame or two, and writing that stray frame down as your highest note would be a lie on the screen. So a note counts as an end note only when more than 3 frames land within a semitone of it.
The band labelled as where your voice stayed comes from lining the counted frames up and taking the 15th and 85th position. It means exactly that and nothing more.
Finally the result is checked for plausibility. A span wider than four octaves, a lowest note under 70Hz, or a highest note over 1100Hz is flagged as a possible octave error with a suggestion to measure again. A commercial range test we surveyed shipped a result spanning more than five octaves with no such check.
The value is never hidden. It is shown as measured, with the reason for doubt written next to it, because hiding it would be its own kind of falsehood.
Saving a result writes the date, the note names and your own note into this browser's storage. No audio is kept anywhere, because none is ever recorded.
The share card draws that result into a single image. The drawing happens in this browser too, and the finished image downloads straight to your device.
Tips while measuring
Work in a quiet room. A television or music in the background has a period of its own and the readings mix. Singing along to a backing track in particular gives this tool two voices it cannot separate.
Sit about a hand's width from the microphone and hold one note. A short stab never accumulates enough frames to count as an end note, so two or three seconds is comfortable.
For low notes an oh vowel is picked up more easily than an ah. Low notes tend to be quiet, and too quiet falls under the loudness threshold and is never counted.
For high notes go up a semitone at a time instead of jumping. Watching the note name change tells you where you are.
A headset microphone and a laptop's built-in microphone pick up different ranges. Use the same device across days if you want the records to be comparable.
Why the number moves
Morning and evening differ. Right after waking, the low end often drops a little further while the top refuses to come. That is why results are kept with a date. Do not take one session as your fixed range.
A voice with vibrato makes the number swing. Trained vibrato can be nearly a semitone wide, so a display that keeps moving is behaving correctly.
Falsetto is produced differently from full voice. This tool does not tell them apart; it only reads frequency. Whether to include falsetto is your call.
At very low pitches a short frame may not hold a full cycle, and nothing is reported. At least two cycles need to fit in a frame, which is why the lowest notes appear later than the rest.
Browsers apply processing to microphone input, such as noise suppression and automatic gain. When it is on, quiet sounds get pushed up. This tool asks for that processing to be turned off.
When the microphone fails
If you allowed access but nothing appears, check whether another program holds the microphone. A call or recording app running in the background stops the browser from opening it.
The lock icon at the left of the address bar shows this site's microphone permission. Once you deny it the browser stops asking, so switch it to allow there and reload.
Safari on iPhone and iPad refuses microphone access in some tab states and settings. When that happens this tool says so plainly rather than pretending to listen.
If the address is not https the browser blocks the microphone. This site is served over https, but a copied http address will be blocked on arrival.
A desktop with no microphone at all reports that none was found. Plugging in a headset gives it one.
If it still fails, open the page in Chrome or Firefox. The APIs this tool uses have been stable there for years.
Sources
- MDN, getUserMedia opens the microphone track (2026-09-16)
- MDN, getFloatTimeDomainData pulls time-domain frames (2026-09-16)
- W3C, Media Capture and Streams (2026-09-16)
- MDN, noise suppression and automatic gain constraints (2026-09-16)