Noisecatcher

How to use Noisecatcher

A step-by-step guide to measuring, mapping, and acting on noise pollution.

Getting started

Noisecatcher uses your device's built-in microphone to measure ambient sound levels in real time. It works entirely in your browser — no account, no installation, and nothing leaves your device unless you choose to export.

1

Open the Meter page

Tap Meter in the navigation bar (or the mic icon on mobile). This is where all measurements happen.

2

Allow microphone access

When you tap Start Measuring, your browser will ask for microphone permission. Tap Allow — the app cannot function without this. Your audio is never recorded or sent anywhere; only the computed volume level is used.

3

Hold your phone steady

For consistent readings, hold the device at chest height with the microphone facing the noise source. Avoid covering the mic with your hand or case.

4

Wait for stabilisation

The gauge takes 2–3 seconds to stabilise. The ● LEVEL indicator turns green once the reading has been steady for at least 1.5 seconds — this is the best moment to drop a pin.

5

Stop measuring or generate a report

Tap Stop to end the session, or — after at least 5 readings — tap Stop & Report to save a full session summary and navigate directly to your noise report.

💡The first reading after starting is often unreliable as the audio engine initialises. Wait for the gauge arc to settle before interpreting results.

Reading the gauge

The large arc gauge displays the current sound level in decibels (dB). The value shown is a short-term average (Leq), not a peak. Decibels follow a logarithmic scale — a 10 dB increase means roughly double the perceived loudness.

0–54 dBSafe

Normal conversation, quiet office, birdsong.

55–69 dBCaution

Busy restaurant, TV at normal volume. WHO recommends limiting exposure.

70–84 dBDangerous

Heavy traffic, loud music, lawnmower. Long exposure causes hearing damage.

85+ dBCritical

Motorcycles, concerts, power tools. OSHA limit: 90 dB over 8 hours.

What each readout means

Main numberCurrent short-term average level (updates ~4×/sec).
PeakHighest instantaneous value recorded in this session.
LeqSession energy-equivalent level (Leq) — most useful for documenting chronic exposure.
SamplesTotal number of measurements taken. More samples = more reliable average.
● LEVELStability indicator. Green = steady reading. If flashing, wait for it to settle.
Noisecatcher uses a smartphone microphone, not a calibrated sound level meter. Readings are indicative — useful for documenting patterns and comparing locations, but not equivalent to IEC 61672-certified measurements used in legal proceedings.

Noise reports

A noise report captures the complete picture of a measurement session in a single shareable document — statistics, health context, psychoacoustic profile, dose, and optionally a voice commentary. Reports are stored permanently in your device and can be printed or saved as PDF.

1

Start measuring

Begin a session on the Meter page as normal.

2

Tap 'Stop & Report'

Once at least 5 readings have been recorded, the Stop & Report button appears next to the Stop button. Tap it to save the session and open the report.

3

Review the report

The report shows Leq, peak, L10/L50/L90 percentiles, EU and OSHA noise dose, psychoacoustic metrics (loudness, sharpness, roughness, annoyance), ACI, and HF deterrent scan results.

4

Add a voice note

Tap Add voice note to attach an audio commentary — useful for describing the noise context, source, or impact.

5

Print or save as PDF

Tap Print / Save PDF. Your browser's native print dialog opens; choose 'Save as PDF' to keep a file, or send to a printer.

Each report records

Leq (energy-average), Peak, L10, L50, L90 (percentile levels)

EU Directive 2003/10/EC noise dose (80 dB / 8 h reference)

OSHA PEL noise dose (90 dB / 8 h reference)

Loudness (sone), Sharpness (acum), Roughness (asper), Psychoacoustic Annoyance

Acoustic Complexity Index (ACI)

HF deterrent scan — 15–20 kHz band energy

Calibration offset applied

Optional voice note attachment

💡Reports are linked by URL — you can bookmark or share the address (/report/[id]) and it will load the same data on the same device. The data lives only in your browser's IndexedDB.

Dropping pins

A pin saves your current dB reading, GPS location, timestamp, and bearing (compass direction) as a single data point. Pins are stored locally on your device — they are never uploaded.

1

Start measuring

You must be actively measuring to drop a pin. The microphone must be running.

2

Wait for a stable reading

Watch the ● LEVEL indicator. When it turns green, the reading has stabilised and is ready to save.

3

Tap 'Pin this reading'

Press the Pin this reading on map button below the gauge. This navigates you to the Map page. Once there, tap the spot on the map where you were standing — the pin form opens at that location. Choose a noise category and confirm to save.

4

View your pin on the map

Your pin appears as a coloured dot — green for safe, yellow for caution, orange for dangerous, red for critical. An arrow inside the dot shows the bearing you were facing.

💡Drop multiple pins at the same location at different times of day to build a complete picture — noise levels near roads can vary by 15 dB between peak and off-peak hours.

Each pin records

dB level (current reading at time of pin)

GPS coordinates (lat/lng)

Timestamp (ISO 8601)

Compass bearing (if orientation permission granted)

Noise category (safe / caution / dangerous / critical)

Noise source categories

When dropping a pin, you can tag the type of noise source. This makes your data far more useful for advocacy, legal complaints, and research — a lawyer or city official can immediately see whether you documented construction drilling, an ambulance siren, or gunfire.

How the picker works

Step 1 — choose a category. A row of category buttons appears in the pin form. Each one represents a top-level noise type (Traffic, Emergency, Construction, etc.). Tap one to select it.

Step 2 — choose a subcategory. As soon as you tap a category, its specific subtypes appear directly below — no new screen, no menu diving. Tap the exact source that matches.

Skip if unsure. Tapping Any / skip saves the pin without a source tag. The dB reading and location are still recorded.

🚗Traffic
🚗 Car / light vehicle🏍️ Motorcycle / scooter🚛 Heavy truck / lorry🚌 Bus🚇 Train / metro🚊 Tram✈️ Aircraft / airplane🚁 Helicopter Boat / small craft🛳️ Ferry / passenger ship🚢 Cargo vessel / tanker Port / loading dock
🚑Emergency
🚑 Ambulance siren🚒 Fire truck siren🚔 Police siren🪖 Military / security vehicle
🗑️Municipal
🗑️ Garbage / trash truck🧹 Street sweeper🔔 Reverse beeper
🏗️Construction
🛣️ Road repair / asphalt⚒️ Drilling / jackhammer🏗️ Building construction💥 Demolition🔨 Pile driver
🏭Industrial
🏭 Factory / plant Generator / power plant❄️ HVAC / air conditioning⛏️ Mining / quarry🖥️ Data centre / server farm🌡️ Cooling tower / chiller🔋 UPS / battery backup hum📡 Antenna array / cell tower🔌 Transformer / power line
🎵Entertainment
🎶 Nightclub / bar🎤 Live music / concert🎆 Fireworks🏟️ Sports stadium🎡 Festival / outdoor event
🏘️Neighbourhood
🐕 Dog barking📻 Neighbour music / TV🔧 Power tools / DIY🌿 Lawnmower / leaf blower🎉 Party / gathering📣 Shouting / voices🔔 Amplified religious / ceremony🚜 Agricultural equipment
🏍️Recreational vehicles
🏎️ ATV / quad bike / off-road🌊 Jet ski / personal watercraft🏔️ Snowmobile / snow vehicle🏍️ Dirt bike / trail motorcycle🏁 Motorsport / racing circuit
🌪️Natural event
🌬️ Wind / storm⛈️ Thunder🌍 Earthquake🌊 Flooding / water🔥 Wildfire / fire🌋 Volcanic activity
⚠️Conflict zoneSafety warning
💢 Gunfire / shooting💣 Explosion / bomb🎯 Artillery / shelling🔴 Air raid siren🛸 Drone / UAV💥 Sonic boom📢 Civil unrest / riot📡 Acoustic weapon (LRAD)🏚️ Demolition / forced displacement👁️ Surveillance drone / tower🚧 Checkpoint / military barrier Military incursion / occupation noise🏗️ Settlement construction / expansion📣 Curfew announcement / loudspeaker
If you are in a conflict zone, be aware that precise GPS coordinates stored on your device or shared via GeoJSON can identify your position. Consider reducing GPS accuracy in your phone settings, or export data only when safe to do so.
🚨Police brutalitySafety warning
📡 Sound cannon / LRAD💥 Flash-bang / stun grenade🔴 Rubber bullet / baton round💨 Tear gas canister💧 Water cannon🚁 Police / surveillance helicopter🛡️ Armored vehicle / MRAP🔊 Crowd-control PA / siren
If you are in a conflict zone, be aware that precise GPS coordinates stored on your device or shared via GeoJSON can identify your position. Consider reducing GPS accuracy in your phone settings, or export data only when safe to do so.
🚫Harassment & gender-based / LGBTQ+ violenceSafety warning
🚫 Street harassment / catcalling💬 Verbal assault / insults⚠️ Intimidation / threatening behaviour👁️ Stalking / following📢 Group aggression / mobbing🔇 Hate speech / discriminatory abuse🏳️‍🌈 LGBTQ+ hate speech / homophobic abuse LGBTQ+ targeted assault / attack⚠️ LGBTQ+ intimidation / threatening presence🏠 Domestic violence (audible)🎙️ Sexual harassment (audio evidence)
If you are in a conflict zone, be aware that precise GPS coordinates stored on your device or shared via GeoJSON can identify your position. Consider reducing GPS accuracy in your phone settings, or export data only when safe to do so.
📱Phone noise pollution
📳 Ringtone / call alert🔔 Notification burst📳 Vibration on hard surface📢 Loudspeaker call in public🔊 Media played without headphones🎮 Mobile gaming audio
Political violenceSafety warning
📢 Extremist rally / march Targeted attack / assault⚠️ Threatening assembly / intimidation🔨 Vandalism / property destruction📣 Amplified propaganda / loudspeaker
If you are in a conflict zone, be aware that precise GPS coordinates stored on your device or shared via GeoJSON can identify your position. Consider reducing GPS accuracy in your phone settings, or export data only when safe to do so.
💡The subcategory is saved in the GeoJSON export as the sourceSub field. When you share your data with city authorities, legal aid organisations, or researchers, this field allows them to filter and analyse specific noise types — far more useful than a raw dB number alone.

Using the map

The Map page shows all your saved pins on an interactive OpenStreetMap map. Each pin is colour-coded by severity and shows a directional arrow for bearing.

🟢

Green pin — Safe (0–54 dB)

Below WHO recommended thresholds. Documenting quiet areas is as valuable as documenting loud ones — they establish a baseline.

🟡

Yellow pin — Caution (55–69 dB)

Within range WHO recommends limiting for long-term outdoor residential exposure.

🟠

Orange pin — Dangerous (70–84 dB)

Exceeds WHO 70 dB threshold for leisure venues. Chronic exposure at these levels degrades hearing.

🔴

Red pin — Critical (85+ dB)

OSHA occupational safety limit. Short-term exposure (< 30 min) at 100 dB can cause permanent hearing damage.

Map controls

Tap a pinShows the dB reading, timestamp, and category in a popup.
Locate meFlies the map to your current GPS position without dropping a pin.
GPS meGets your GPS position, flies the map there, and opens the pin form pre-filled at your coordinates — so you can document a noise event exactly where you are in one tap.
Density toggleSwitch between individual pins and a heatmap density view.
Export GeoJSONDownload all pins as a GeoJSON file for use in QGIS, ArcGIS, or any GIS tool.
Tap to drop pinTapping the map creates a manual pin at that location — useful for marking a spot you visited earlier.

Voice notes

Voice notes let you record up to 60 seconds of audio commentary and attach it to a noise report or a notebook. Use them to describe the context, the noise source, or your reaction — information that numbers alone cannot capture.

1

Find the voice recorder

Voice note recorders appear on the Report page (after generating a session report) and inside each Notebookunder the "Add note" section.

2

Start recording

Tap the microphone button. Your browser will request microphone access if not already granted. Recording begins immediately — a pulsing red dot and a live timer confirm it is active.

3

Stop recording

Tap Release to stop, or recording stops automatically at 60 seconds.

4

Play or delete

After saving, tap Play to listen back, or the trash icon to delete and re-record. The audio is stored as a base64 data URL in IndexedDB — it never leaves your device.

💡Speak clearly and describe: the time, the source, how long it has been occurring, and how it affects you. This narrative context is often what turns raw data into a compelling complaint.

Field Notebooks

A field notebook is a named container that groups pins, reports, and voice notes belonging to the same noise problem — a building site near your home, a neighbour's sound system, a road you cross every day. Building a notebook over time creates a structured, chronological dossier you can share with authorities or legal counsel.

1

Create a notebook

Navigate to Notebooks, tap + New notebook, give it a name, optional notes, and a colour. Tap Create.

2

Open the notebook

Tap the notebook card to open the detail view. You will see sections for pins, reports, and voice notes that belong to this notebook, plus the voice recorder to add a new note instantly.

3

Link future recordings

When generating a noise report with Stop & Report, you will be able to assign it to a notebook. Pins dropped from the map can also be linked via the pin form.

4

Use as a dossier

A well-built notebook — spanning multiple days, times of day, and noise events — is a strong basis for a formal complaint to your local authority, an ombudsman, or a noise pollution legal aid service.

Notebooks are stored locally in your browser. If you clear your browser data or uninstall the PWA, all notebooks, reports, and voice notes will be lost. There is currently no cloud sync or backup. Export your GeoJSON pins regularly, and use the browser's print function to PDF your reports.

Exporting your data

All pins are stored only on your device (IndexedDB). To preserve your data, share it, or use it in external tools, export it as GeoJSON.

1

Go to the Map page

Navigate to Map.

2

Tap '↓ Export GeoJSON'

The button appears in the toolbar above the map. A .geojson file will be downloaded to your device.

3

Use your data

Open the file in QGIS, Google Maps, ArcGIS, or any GIS platform. Each feature includes properties: db, timestamp, category, bearing.

💡Export regularly if you are building a long-term dataset — the data exists only in your browser's IndexedDB and could be lost if you clear site data or switch browsers.
{ "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Point", "coordinates": [2.3522, 48.8566] }, "properties": { "db": 72.4, "category": "dangerous", "timestamp": "2026-06-08T14:32:00Z", "bearing": 245 } }] }

Field recording practice

Your smartphone is an acoustic instrument. These practices improve measurement consistency, protect recordings from artefacts, and align your method with the counter-forensic ethos of Noisecatcher.

1

Position the microphone correctly

Hold the device at chest height, microphone facing the sound source. Most smartphones have their microphone at the bottom edge. On iPhones, the primary mic is at the bottom; a second mic for noise cancellation is at the top or rear — this one is not used by the Web Audio API. Avoid covering the mic grille with your palm or case material.

2

Stabilise before you read

The Leq (energy average) takes 2–3 seconds to stabilise. Wait for the ● LEVEL indicator to turn green before dropping a pin. Transient sounds in the first second (traffic passing, a door closing) will skew the reading if you measure too quickly.

3

Keep the device still

Movement creates handling noise. Rest the device on a surface, use a small tripod, or brace it against your body. If you are measuring a stationary source (HVAC unit, transformer, construction site), a fixed position gives more reproducible results. Note your exact position in the pin description for future reference.

4

Manage wind noise

Wind across the microphone generates low-frequency turbulence that inflates readings by 5–15 dB. Outdoors: shield the mic with a foam windscreen (any lavalier foam works), a piece of fabric, or by pointing the device slightly away from the wind. Note wind conditions in your pin description. Readings taken in wind above Beaufort 3 should be flagged as unreliable.

5

Enable Airplane mode

Incoming calls, SMS, and cellular radio events cause electromagnetic interference that appears as brief spikes or a rhythmic buzzing at ~217 Hz (GSM) in recordings. Switch to Airplane mode — then re-enable Wi-Fi only if you need maps or federation data. This eliminates RF artefacts from your measurements.

6

Avoid Active Noise Cancellation

Never use earphones with Active Noise Cancellation (ANC) when measuring. ANC earphones include a pass-through microphone whose input has been electronically modified. The signal Noisecatcher receives will not reflect the actual acoustic environment. See the About page for the full ethos argument.

7

Use an external microphone when possible

An omnidirectional lavalier (worn at chest height) gives a more consistent, body-referenced measurement of personal noise exposure than the phone microphone. A USB-C or Lightning stereo microphone (e.g. Shure MV88, Rode VideoMic Me-L/Me-C) gives spatial information. See the Microphones guide for hardware recommendations aligned with Noisecatcher's ethos.

8

Calibrate at the start of each session

Use the Calibration tool (tap the sliders icon on the Meter screen) to anchor your device against a known quiet environment or a reference sound level meter. A single calibration offset applies to the entire session. If you change location or device orientation significantly, re-calibrate. Log your offset value in the Notebook notes for the session.

9

Document what you hear, not just what you measure

The most powerful Noisecatcher record combines: the dB reading (objective), a voice note (subjective description), a pin category (contextual), and GPS coordinates (spatial). Describe what you hear in the voice note immediately after recording — the smell of exhaust, the vibration through the floor, the emotional state it produces. These details cannot be recovered later from numbers alone.

💡Repeat measurements at the same location at different times of day and across multiple days. A single reading is an anecdote. A series is evidence. The Field Notebooks system is designed for exactly this kind of longitudinal documentation.

Calibration

Different devices have different microphone sensitivities, so raw dB values vary between phones. Calibration applies a fixed offset so your readings match a known reference.

1

Get a reference reading

Use a calibrated sound level meter (or a certified app) to measure the level of a stable sound source — e.g. a pink noise generator, a fan, or road traffic from a fixed position.

2

Measure the same source in Noisecatcher

Start measuring and wait for the reading to stabilise.

3

Apply the offset

Tap Calibrateon the Meter page. Enter the difference between the reference reading and Noisecatcher's reading. For example: if reference = 65 dB and Noisecatcher shows 59 dB, enter +6.

💡Without calibration, Noisecatcher readings are still useful for relative comparisons — comparing one location to another, or the same location at different times — even if the absolute values are off by a few dB.
Calibration offsets are stored in your browser and apply globally. If you switch devices, re-calibrate. The offset does not automatically adjust for different microphone hardware.

iPhone & iOS quirks

iOS has stricter browser APIs than Android. Here is what to expect on iPhone and iPad.

Microphone permission

Safari will ask once per site. If you tapped 'Don't Allow' by mistake: go to Settings → Safari → tap the Noisecatcher site → Microphone → Allow.

Compass / bearing arrows

iOS requires a user gesture to enable DeviceOrientationEvent. When you tap 'Start Measuring', the app will request orientation access. If a permission dialog appears, tap Allow. If no dialog appears (iOS 12 and earlier do not require permission), bearing tracking starts automatically.

Haptic feedback

Standard Vibration API is not available on iOS. Noisecatcher uses a workaround (toggling a native switch element) to trigger UIImpactFeedbackGenerator on iOS 18+. On older iOS versions, haptic feedback is silent — the app still functions fully.

PWA installation

To install Noisecatcher as an app: open in Safari → tap the Share button (rectangle with arrow) → tap 'Add to Home Screen'. Chrome and Firefox on iOS cannot install PWAs due to Apple restrictions.

Background audio

iOS suspends audio processing when the screen locks or the app goes to background. Keep the screen on while measuring for uninterrupted readings.

FAQ

Is this app accurate enough to use in a legal complaint?

Smartphone readings are indicative, not certified. They can support a complaint as corroborating evidence alongside other documentation (photos, videos, witness statements), and they are strong grounds for requesting an official certified measurement. They cannot alone serve as sole technical evidence in court proceedings.

Why does the dB value jump around so much?

Sound levels fluctuate naturally. Traffic, wind, voices, and environmental noise vary second to second. The 'Leq' value is more stable and more meaningful for documenting exposure over time. The '● LEVEL' stability indicator tells you when the reading is consistent enough to pin.

What is the dB(A) weighting?

dB(A) is a frequency-weighted measurement that approximates how human ears perceive loudness — lower frequencies (bass) are de-emphasised, high frequencies less so. Most noise regulation standards use dB(A). Noisecatcher applies the IEC 61672-1:2013 A-weighting curve bin-by-bin to the FFT frequency data, then sums the weighted energy to produce the final dB(A) reading. This closely matches a true A-weighted measurement; it is not a calibrated instrument, but the weighting is applied correctly.

Can I use this indoors?

Yes. Indoor measurements are useful for documenting noise intrusion from outside (traffic, neighbours, HVAC). For indoor measurements, be aware that room acoustics (reflections, reverberation) affect readings. Measure from the centre of the room where possible, not directly against a wall.

Will my data be deleted if I clear my browser history?

Yes. Pins are stored in IndexedDB; calibration settings in localStorage. Clearing site data or browser history will erase both. Export your GeoJSON file regularly as a backup.

Can I contribute my data to a shared noise map?

Yes — Noisecatcher has a built-in P2P community layer powered by Gun.js. Enable it on the map via the P2P toggle: your pins are shared in real time with nearby users without any central server. Sensitive categories (conflict, police force, harassment) require an explicit confirmation before sharing and are never shared silently. You can also export your data as GeoJSON and contribute it manually to Noise Planet (noise-planet.org) or OpenStreetMap-based noise mapping initiatives.

What is the difference between a pin and a report?

A pin is a single point-in-time reading — one dB value, one location, one timestamp. A report is a full session summary covering an entire measurement period: Leq, percentiles, noise dose, psychoacoustics, and more. Use pins to map the spatial distribution of noise; use reports to document sustained exposure over time.

How do I build a dossier for a formal noise complaint?

Create a notebook for the noise problem. Over several days and times of day, use Stop & Report to generate session reports and attach them to the notebook. Add voice notes describing what you hear and how it affects you. Drop pins on the map to show the spatial pattern. When ready, print each report to PDF and export your pins as GeoJSON. Together these form a structured, time-stamped dossier.

The microphone permission was denied. How do I fix it?

Android (Chrome): tap the lock icon in the address bar → Site settings → Microphone → Allow. Reload the page.

iPhone (Safari): Settings app → Safari → Advanced → Website Data, or Settings → Privacy & Security → Microphone → enable for Safari. Then reload.

Desktop Chrome: Click the camera/mic icon in the address bar → Always allow on this site. Or: chrome://settings/content/microphone → add the site.