🚘

Traffic Noise Analyzer

Monitor road and traffic noise from your microphone. A big live level readout, a scrolling time-series, running Leq and L90, a frequency breakdown that separates low-frequency engine/exhaust rumble (<~250 Hz) from mid/high tyre-on-road whine (~700–1500 Hz) as relative band energy, automatic passing-vehicle peak-event counting, and a comparison with published residential road-noise guidance. Run a session at different times of day to build a picture of the pattern.

This is an uncalibrated, relative estimate — not a certified sound-level meter. A browser mic can’t know its real-world sensitivity, so the level is dBFS (relative to digital full scale, always ≤ 0); an estimated dB SPL appears only if you calibrate against a real meter (shared across every noise tool). The rumble-vs-whine split is a relative, heuristic band ratio, and consumer mics roll off at low frequencies so deep rumble is under-captured. Residential thresholds shown are real published guidance, for orientation only — this is not valid as legal, complaint, or compliance evidence. Auto-gain, noise-suppression and echo-cancellation are requested off (a reading is meaningless otherwise; the browser may not honour this on every device). Nothing is recorded or uploaded.

Microphone

Idle — press Start. Microphone permission is requested only when you click.

Audio is analysed live in your browser to compute the level. It is never recorded, saved, or transmitted.

Passing-vehicle sensitivity

A peak event (a passing vehicle) is counted when the level rises this many dB above the rolling background and then falls back. Raise it if quiet cars are over-counted.

Time-of-day label

Just a label for your own notes — run separate sessions at different times and compare the Leq and vehicle count to see the daily pattern. The label is not saved.

Live level

dBFS
Calibrate below for an SPL estimate

Scrolling level history (newest on the right). The dashed line is the rolling background; dots mark counted vehicle passes.

Leq
dBFS
L90 (bg)
dBFS
Max
dBFS
Vehicles
0
passes
Rate
veh/min
Elapsed
0:00
mm:ss

Frequency breakdown — rumble vs tyre whine relative

Relative share of in-band energy between low-frequency engine/exhaust rumble and mid/high tyre-on-road whine. This is a heuristic ratio of two bands, not an absolute level — it is calibration-independent and most useful for comparing the character of the noise (e.g. heavy trucks lean toward rumble; fast cars on coarse asphalt toward whine).

Rumble · <250 Hz engine / exhaust
Mid · 250–700 Hz body / drivetrain
Whine · 700–1500 Hz tyre on road
Start monitoring to see the rumble-vs-whine character.

Residential road-noise guidance published

These are real published values for outdoor residential road-traffic noise, expressed as long-term averages (Lden/Lnight in dB SPL). They are shown for orientation; this tool cannot certify against them. A meaningful comparison needs a calibrated meter and a proper long-term (typically 24 h) measurement.

Source & metricGuideline
WHO 2018 — road traffic, day-evening-night (Lden)≤ 53 dB
WHO 2018 — road traffic, night (Lnight)≤ 45 dB
EU END — common reporting threshold (Lden)≥ 55 dB mapped
US EPA (1974) — outdoor, protect against activity interference (Ldn)≤ 55 dB

Sources: WHO Environmental Noise Guidelines for the European Region (2018); EU Environmental Noise Directive 2002/49/EC; US EPA “Levels Document” EPA-550/9-74-004. Your tool reads relative dBFS, so it is not directly comparable to these dB SPL figures unless calibrated.

Calibration (optional, shared across all noise tools)

To estimate dB SPL, start monitoring, read the level on a real sound-level meter or a calibrated phone app at the same spot, type that number below, and press Set. The offset is stored locally and reused by every Noise Analysis tool — calibrate once. It remains an uncalibrated estimate, not a certified measurement.

Not calibrated. Showing relative dBFS only.

How It Works

When you press Start, the tool requests microphone access with automatic gain control, noise suppression and echo cancellation turned off. Those processors constantly re-shape the signal to "improve" speech, which would corrupt any noise measurement — so we ask for them disabled for the numbers to mean anything (the browser may not always comply). Place the device near the window or kerbside facing the road and keep it still for the session.

Each animation frame the raw time-domain samples are read from a Web Audio AnalyserNode. The tool removes any DC offset, computes the RMS (root-mean-square) energy of the frame, and converts it to dBFS — decibels relative to digital full scale, where 0 dBFS is the loudest signal the system can capture and everything quieter is negative. A short integration time (~125 ms, like a meter’s "fast" response) smooths the reading.

A few times a second a level point is appended to a bounded scrolling history that feeds the chart and the running statistics:

  • Leq — the equivalent continuous level: 10·log₁₀(mean of 10^(L/10)), the steady level carrying the same total energy as the varying traffic noise.
  • L90 — the level exceeded 90% of the time, the standard proxy for the quiet background between vehicles.
  • Max — the loudest smoothed level seen this session.

Passing-vehicle counting works as peak-event detection. The tool tracks a slow rolling background (an L90-style baseline) and watches for the level to rise above it by your chosen threshold, then fall back — one rise-and-fall is counted as one vehicle pass, with a short refractory gap so a single loud truck isn’t counted twice. From the count and elapsed time it derives a vehicles-per-minute rate. This is a heuristic: very quiet electric cars, overlapping vehicles, or wind gusts can throw off the count, so treat it as an indicative tally, not a census.

The rumble-vs-whine breakdown takes a separate FFT and sums the spectral energy in three bands — rumble (<250 Hz, dominated by engine and exhaust), a mid band (250–700 Hz), and whine (700–1500 Hz, dominated by tyre-on-road contact noise). It shows each band’s share of the in-band total. Because it is a ratio, it is calibration-independent and genuinely meaningful for comparing the character of different traffic or different times of day — even though the absolute level is not.

Time-of-day pattern: there is no magic here — you run a session, note the Leq, L90 and vehicle rate for the labelled period, then run another session at a different time and compare. With the same mic in the same spot those comparisons are valid even without calibration.

What it cannot do honestly: give a certified absolute dB SPL, serve as legal or compliance evidence, capture true infrasound (consumer mics roll off sharply below about 20 Hz, so the deepest rumble is under-represented), or replace a proper 24-hour Lden/Lnight survey. The published guidance shown uses real values, but the comparison here is for orientation only.

Frequently Asked Questions

Can I use this for a traffic noise complaint or to prove a limit is exceeded?
No. A browser microphone is uncalibrated and consumer mics vary widely, so this gives a relative dBFS estimate (and, if you calibrate, only an approximate dB SPL). It is not a certified Type 1/2 meter and is not valid as legal, complaint, or compliance evidence. Official road-noise assessment needs a calibrated meter and a proper long-term measurement, usually carried out by a professional. Use this tool to monitor trends and compare times of day.
How does the rumble vs tyre-whine split work, and is it accurate?
It sums spectral energy in a low band (<250 Hz, engine and exhaust rumble) and a mid/high band (700–1500 Hz, tyre-on-road whine) and shows each band's share of the in-band total. It is a relative, heuristic ratio — not an absolute measurement — so it is calibration-independent and best used to compare the character of the noise (heavy trucks lean toward rumble; fast cars on coarse asphalt toward whine). Because consumer mics under-capture very low frequencies, the rumble share can be understated.
How does it count passing vehicles, and why is the count off sometimes?
It tracks a slow rolling background level and counts a vehicle when the level rises above that background by your chosen threshold and then falls back, with a short refractory gap so one truck isn't double-counted. It is a peak-event heuristic: very quiet electric cars may be missed, two vehicles passing together may count as one, and wind gusts or a door slam can add a false count. Treat the tally and the vehicles-per-minute rate as indicative, and raise the threshold if quiet cars are over-counted.
Why are the levels negative (dBFS) and how do I compare them to the WHO numbers?
This is dBFS — decibels relative to digital full scale — where 0 is the maximum the audio system can capture and quieter sounds are negative. The WHO, EU and EPA guideline figures are in dB SPL (positive, growing with loudness). The two scales are not directly comparable unless you calibrate the tool against a real meter, which adds a single offset to estimate SPL. Even then, those guidelines are long-term averages (Lden/Lnight over 24 hours), so a short session here can't be checked against them.
How do I see the time-of-day pattern?
Run a session during one period (e.g. morning rush), note the Leq, L90 and vehicle rate, then run another session at a different time (midday, evening, night) and compare. Pick the matching time-of-day label so your own notes stay organised. With the same microphone in the same spot, those before/after comparisons are valid even without calibration — relative differences are the tool's strength.
Is my audio recorded or uploaded?
No. The microphone signal is analysed in real time only to compute the level and frequency bands, and is never recorded, saved, or sent anywhere. The only thing stored is your calibration offset, which stays in your browser and is shared with the other noise tools. The microphone is released when you press Stop or close the tab, and the analysis loop pauses when the tab is hidden.