Bead: Doorbell Listener

**Bead** `883c513f-002f-4156-a845-87322fcf3929` · [canonical URI](https://redfish.acequia.io/guerin/.agents/883c513f-002f-4156-a845-87322fcf3929/) · discussion: Talk: Doorbell Listener This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.

> A browser app that opens the microphone and listens for the chime of a doorbell. Human name: `doorbell-listener`. The bead is the **workshop**; the app itself lives at its own URI, [`guerin/apps/doorbell/`](https://redfish.acequia.io/guerin/apps/doorbell/).

## Identity - **URI:** https://redfish.acequia.io/guerin/.agents/883c513f-002f-4156-a845-87322fcf3929/ - **Local origin:** `sites/redfish.acequia.io/guerin/.agents/883c513f-002f-4156-a845-87322fcf3929/` - **GUID:** `883c513f-002f-4156-a845-87322fcf3929` - **Created:** 2026-06-11 - **Currently animated by:** Claude (CE / Claude Code extension — bead scribe with WebDAV write authority) - **Invoked by:** Stephen (Stephen@redfish.com)

## Motivation (Why a GUID) Stephen asked for a microphone-based doorbell detector deployed into `guerin/apps`. This bead captures the build: the **acoustic detection approach** (what makes a "doorbell" distinguishable from speech and clatter in a live FFT) and the **publish mechanics** (how an app under `guerin/apps/` is made anonymously readable via an `.acequia-access.json` sidecar). The second part is the reusable nugget — it's the recipe for shipping *any* public single-file app into the guerin apps namespace.

## Mechanism (What this bead does) - **Holds the concept note** (`notes/00-doorbell-detection-and-publish.md`) — the detection heuristic (loud + tonal + sustained within a frequency window, with debounce) and the `.acequia-access.json` anonymous-read sidecar recipe. - **Holds the verbatim chat** (`chats/`) as the path of light. - It does **not** own the app. The deliverable lives at its own URI, [`guerin/apps/doorbell/index.html`](https://redfish.acequia.io/guerin/apps/doorbell/index.html) (Stephen's directive: the app lives at the app URI, not in the bead's `artifacts/`). This bead is where the capability was forged.

## Folder Layout ``` 883c513f-002f-4156-a845-87322fcf3929/ ├── about.md # this file ├── uploads/ │ └── README.md # inbound dock └── 2026-06-11/ ├── chats/ │ └── 2026-06-11-doorbell-listener.md # verbatim session log └── notes/ └── 00-doorbell-detection-and-publish.md # detection heuristic + publish recipe ```

## Session Log - **2026-06-11** — Bead opened (back-captured). Built a self-contained `index.html` doorbell detector (Web Audio `AnalyserNode`, calibration, test chime), wrote it to `guerin/apps/doorbell/`, then published it: MKCOL the collection, PUT the file, discovered it 302-redirected anonymous visitors to `register-user.html`, diagnosed against the public sibling `apps/sphere/`, and added the `{"read":"anonymous","recursive":true}` sidecar to make it publicly readable. Verified 200 anonymous GET.

## Modus Operandi (How to interact) - **Read order:** this `about.md` → `notes/00-doorbell-detection-and-publish.md` → the live app at [`guerin/apps/doorbell/`](https://redfish.acequia.io/guerin/apps/doorbell/) → `chats/` when note and chat disagree (the chat wins). - **Cross-bead references** use absolute `https://` URIs. - **Do not write** into `guerin/notes/`, `guerin/skills/`, or `guerin/chats/` from this bead. The app at `guerin/apps/doorbell/` was written under Stephen's explicit instruction; further changes to it are deliverable edits, not bead writes.

## Capabilities - Can be cited for the **acoustic doorbell-detection heuristic** (loud + tonal + sustained, frequency-windowed, debounced) implemented purely in the browser with no dependencies. - Carries the **public-app publish recipe** for the `guerin/apps/` namespace (MKCOL → PUT → `.acequia-access.json` anonymous-read sidecar).

## Lifecycle - **Energization:** charged when the detection heuristic or the publish recipe is reused — another mic/audio app, or any future single-file app shipped into `guerin/apps/`. - **Apoptosis:** carries no running infrastructure. If the publish recipe is absorbed into a documented `guerin/apps/` convention and the detector is superseded, this workshop may fade cleanly.

## Limitations - The detector is a **heuristic**, not a trained classifier — it keys on a loud, tonal, sustained sound inside a frequency window. Calibration centres the window on a real bell, but a TV doorbell, a phone ring, or a similar chime can false-positive; broadband noise is rejected but not all tonal non-bells are. - Default frequency window (600–4000 Hz) is tuned toward bright electronic chimes; deep wired ding-dong bells may sit lower — calibration is the intended remedy.

## Related beads - Bead protocol: [`.agents/beads.md`](https://redfish.acequia.io/guerin/.agents/beads.md). - Publish/anonymous-read mechanics generalize the same namespace-served-by-mesh frame as the auth and URI bind/mount design notes under bead [`874fce5b-9c8b-4b23-b2ed-429148c6c4b7`](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/).

## References (bead cross-links) - Bead: 874fce5b · [canonical](https://redfish.acequia.io/guerin/.agents/874fce5b-9c8b-4b23-b2ed-429148c6c4b7/)

See all: Beads