# Noise Notebook

A browser-local microphone notebook for comparing noise sessions and self-reported fatigue. No audio recording, upload, account, or server-side measurement store. The public application shell contains no user data. Grid Glance collects basic page analytics, not measurements or notes.

## Measurement contract

Microphone samples are reduced to RMS power levels in dBFS (digital full scale), with a −100 dBFS display floor. Approximately four short analysis windows contribute to each second's energy average. This is sampled signal, not continuous acoustic dosimetry. Session average uses the energy mean, and highest reading is the highest one-second level. Threshold counts are readings, not measured exposure duration. No calibrated dB SPL, dBA, health limits, or causal health conclusions. Compare only the same device, microphone, processing, and placement.

Explicit microphone start is required. Permission/audio startup has a 20-second deadline; late permission results release their tracks. Sessions end after the selected 5, 15, or 60 minutes, or on stop, hidden page, audio suspension, missing microphone, or a sampling gap longer than three seconds. Reloaded unfinished records become interrupted. The page must remain visible and device awake: no unattended overnight guarantee.

Measurements persist after every second under browser localStorage keys `noise.session.<uuid>`. Storage failures stop collection and expose export. Notes are explicit local drafts until saved; JSON export also includes current drafts. Clearing browser data loses local sessions. No cross-device synchronization. Export JSON for backup. An exclusive Web Lock permits one measuring tab at a time. Recovery checks that lock before marking unfinished records interrupted. Refresh other tabs to see newly saved sessions.

## Resource links

- `https://noise-notebook.jessald.fairystack.com/` — public shell, current browser's local session history.
- `https://noise-notebook.jessald.fairystack.com/#session=<uuid>` — a local session's current measurements and notes. UUID generated by `crypto.randomUUID`; not an immutable version. No authentication required because data exists only in the originating browser. Other browsers see a missing-session message. Example identifier format: `#session=123e4567-e89b-42d3-a456-426614174000`.
- `/agent-guide.md` — this public contract.
- `/api/version` — deployed application version and revision.

No domain server APIs are exposed; use the actual browser interface to start microphone capture and the exported JSON for analysis.
