How Browser Sound Measurement Works
Every displayed number comes from one typed engine — no component computes levels on its own.
Last materially reviewed: 2026-09-16
Browser microphone access
Pressing Start calls getUserMedia with explicit media constraints requesting echo cancellation, noise suppression and automatic gain control off, plus mono input. The browser may refuse any of these; when processing stays enabled the meter says so instead of hiding it. Input is never connected to speakers. Capture runs over HTTPS in a secure context, per the W3C Web Audio API.
Local audio processing
Samples flow from the microphone stream into an AudioContext worklet that accumulates contiguous PCM blocks (sums of squares, peak, clipping flags). A display-only spectrum tap feeds the analyzer bars; measurement never uses FFT bars. Nothing is uploaded — the pipeline, session stats and history all live on your device (see microphone privacy).
RMS, dBFS and input-strength mode
Each block is reduced to an RMS value and converted to digital decibels relative to full scale (dBFS). dBFS is negative by definition: 0 is the loudest representable signal, silence sits near −100. Because negative numbers confuse casual checks, the uncalibrated panel maps −100…0 dBFS to a 0…100% input-strength display. Percentages are visual only and never exported as sound levels.
Calibrated mode
With a compatible saved profile, the engine adds your offset to the raw reading (estimated SPL = raw + offset) and displays it in the selected dBA, dBC or dBZ unit, clamped to a 20–120 dB display range. Without a compatible profile there is no numeric dB — the gauge shows “--” plus input strength. Follow the calibration guide.
Weighting and response
A, C and Z corrections approximate standard frequency weightings from the dominant band; Fast (125 ms) and Slow (1 s) apply exponential time weighting. Neither changes the underlying estimate — only how quickly the display follows it. Details: dB vs dBA.
Session statistics
Each run accumulates current, minimum, energy-average Leq and maximum plus duration; the graph keeps the last 240 points. Environmental estimates export to CSV/JSON only when compatible calibration is active; uncalibrated sessions export no dB values.