Technical methodology · Reviewed July 10, 2026
How the microphone test works
A useful tester should explain what its numbers mean. This page documents the live signal path and the formulas used by the four meters so you can decide what the results do—and do not—prove.
The entire audio path stays in your browser
When you press Start, the browser asks for microphone permission through getUserMedia(). The resulting MediaStream is connected to a Web Audio AnalyserNode for live measurements. If you choose to record, MediaRecorder builds a local Blob that is played or downloaded from an object URL. The application has no audio upload endpoint, and no transcript, recording, device label, or raw sample is sent to TestMic.Online.
1. Capture
The browser creates a microphone MediaStream only after you grant permission.
2. Analyze
One AnalyserNode reads 2,048-sample time-domain frames and a 1,024-bin frequency spectrum.
3. Display locally
React updates the meters and waveform. Optional recordings remain a local browser Blob.
What each meter calculates
The scores are practical browser-side heuristics, not calibrated laboratory measurements. Compare results on the same device, in the same room, at the same speaking distance.
Volume
RMS = √(mean(sample²)); score = min(100, RMS × 100)Each unsigned waveform byte is centered around 128 and normalized to −1…1. Root-mean-square amplitude gives a stable input-level score. The green 20–60% band is an operating target for this meter; it is not a dB SPL reading.
Clarity
score = min(100, voice-band magnitude / total magnitude × 150)The analyzer sums spectral magnitude from 85 Hz to 3,400 Hz and compares it with the full spectrum. A higher score means more captured energy is concentrated in the main speech band. It does not measure intelligibility, microphone frequency response, or true signal-to-noise ratio.
Noise
score = min(100, mean(|byte − 128|) / 50 × 100)This is a waveform-activity heuristic. Read it during a pause, not while speaking: voice also moves the waveform and will raise the score. Use it to compare a quiet room with fans, traffic, electrical hum, or a different microphone position.
Browser latency estimate
milliseconds = AudioContext.baseLatency × 1,000This is the browser audio context’s base processing latency when the browser exposes it. It is not microphone round-trip latency and does not include Bluetooth buffering, a meeting app, network delay, or the listener’s device. A value of 0 can mean the browser did not report a base latency.
A repeatable two-minute test protocol
- 1Use the microphone, port, browser, and physical position you will use in the real call or recording.
- 2Stay silent for five seconds and note the Noise score. Then speak normally for ten seconds and watch Volume and Clarity.
- 3Record one sentence, play it back through headphones, and listen for clipping, pumping, hum, room echo, and missing word beginnings.
- 4Change one variable at a time—distance, input gain, USB port, noise suppression—then repeat the same sentence.
- 5Confirm the final device again inside Zoom, Teams, Meet, Discord, or your recording software. This browser test cannot inspect another app’s device selection.
How to verify the privacy claim yourself
- Open browser developer tools and select the Network panel before starting the microphone.
- Run the live test and make a short recording. You should see no request carrying audio, a Blob, a transcript, or a device label.
- After the page has loaded, disconnect the network and continue testing. Analysis, playback, and download still work because they are local browser operations.
- Stop the test and confirm the browser’s microphone-in-use indicator disappears. The MediaStream tracks and AudioContext are closed during cleanup.
Important limits
TestMic.Online can confirm that a browser receives a signal and help you compare level, spectral concentration, quiet-room activity, and the browser’s reported processing latency. It cannot certify broadcast quality, identify a hardware defect with certainty, measure acoustic dB, grade speech intelligibility, or predict network call quality. Trust the playback and a real application test when a decision matters.
Standards and API references
- MDN: MediaDevices.getUserMedia() ↗
- MDN: AnalyserNode ↗
- MDN: MediaRecorder ↗
- W3C: Media Capture and Streams ↗