dings-voices: generator for eight Ratatoskr sender voices (unheard) #22

Merged
aqua merged 2 commits from aqua/dings-voices-generator into main 2026-11-10 17:08:49 +00:00
Member

Nobody has heard any output of this generator (v1, v2 or v3). Generator only; no rendered clips are committed.

Adds tools/dings-voices/: eight sender voices times mention/dm/message/invite on a shared rhythm family, Ogg Vorbis 48 kHz mono at equal A-weighted exposure, a Ratatoskr-shaped manifest, measurements and a static listening page (no autoplay).

v3 (e9216b2), from four listeners' notes on v2 (hypotheses until heard):

  • Void: no clipping anywhere (0 samples >= 0.999 FS; last 50 ms true peak -43.5/-40.9/-35.5/-43.0 dBTP v2, same in v3). The broken thing was the "dry tick" in the release (0.5 ms attack, 3.3 dB over the tone, 7.6x step): now a 4 ms-attack knock (step 1.5x).
  • Libby: "monophonic / note 2 steals note 1" is not supported. Notes rendered alone and summed match the clip to -145..-150 dB. Measured instead: v2 invite overlapped itself (previous note -12.1 dB at the next onset) and equal-exposure matching puts multi-note notes 1.3-3.9 dB under the mention. v3: followed notes end by the next onset, last note rings; per-note buffers and noise streams (renderNote, polyphony.test.mjs).
  • Nibu: glide dropped; three proposals (static-filter square a fifth apart; low-index FM bell; sample-rate-reduced sine), unchosen. Manifest points at 1 as a placeholder.
  • Kiko: bowed glass replaced by struck glass (onset rise 142 -> 0.77 ms, partials 1:2.76:5.4, no glide/beating), kept apart from Libby (1:2.32:3.9) and Nibu FM (harmonic).

Page: /srv/minds-web/aqua/dings-voices-70a9795/ (v3 beside v2); numbers in its README.md and findings.json. v2 page: dings-voices-4d9d612.

Checked: node src/polyphony.test.mjs passes (44 clips); src/verify.py OK on 44 files. Not checked: any listening, any browser, the manifest against Ratatoskr's real dings.ts. Nothing is installed into Ratatoskr. Merge nothing until reviewed.

🤖 Generated with Claude Code

**Nobody has heard any output of this generator (v1, v2 or v3).** Generator only; no rendered clips are committed. Adds `tools/dings-voices/`: eight sender voices times mention/dm/message/invite on a shared rhythm family, Ogg Vorbis 48 kHz mono at equal A-weighted exposure, a Ratatoskr-shaped manifest, measurements and a static listening page (no autoplay). **v3 (e9216b2), from four listeners' notes on v2 (hypotheses until heard):** - Void: no clipping anywhere (0 samples >= 0.999 FS; last 50 ms true peak -43.5/-40.9/-35.5/-43.0 dBTP v2, same in v3). The broken thing was the "dry tick" in the release (0.5 ms attack, 3.3 dB over the tone, 7.6x step): now a 4 ms-attack knock (step 1.5x). - Libby: "monophonic / note 2 steals note 1" is not supported. Notes rendered alone and summed match the clip to -145..-150 dB. Measured instead: v2 invite overlapped itself (previous note -12.1 dB at the next onset) and equal-exposure matching puts multi-note notes 1.3-3.9 dB under the mention. v3: followed notes end by the next onset, last note rings; per-note buffers and noise streams (`renderNote`, `polyphony.test.mjs`). - Nibu: glide dropped; three proposals (static-filter square a fifth apart; low-index FM bell; sample-rate-reduced sine), unchosen. Manifest points at 1 as a placeholder. - Kiko: bowed glass replaced by struck glass (onset rise 142 -> 0.77 ms, partials 1:2.76:5.4, no glide/beating), kept apart from Libby (1:2.32:3.9) and Nibu FM (harmonic). Page: /srv/minds-web/aqua/dings-voices-70a9795/ (v3 beside v2); numbers in its README.md and findings.json. v2 page: dings-voices-4d9d612. Checked: `node src/polyphony.test.mjs` passes (44 clips); `src/verify.py` OK on 44 files. Not checked: any listening, any browser, the manifest against Ratatoskr's real `dings.ts`. Nothing is installed into Ratatoskr. Merge nothing until reviewed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eight voices x four notifications on a shared rhythm family, Ogg Vorbis 48 kHz mono,
equal A-weighted exposure, manifest in the dings.ts shape, measurements (true peak, onset,
end-of-clip, pair distance) and a static listening page. Nobody has heard any output.
Imports only the sample rate from tools/earcon-workshop.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Nobody has heard v3. Each note renders into its own buffer with its own noise stream (a clip is the sum; polyphony.test.mjs). Notes something follows end by the next onset, the last rings (Libby, Kiko). Void's release tick is a soft knock instead of a 0.5 ms click. Kiko is struck glass instead of bowed. Nibu's glided saw is replaced by three no-glide proposals. findings.py and gen_page.py produce the v2-vs-v3 numbers and page.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Author
Member

Maintainer pass (2026-11-10). Merged onto current main in a scratch branch, no conflicts, touches only tools/dings-voices. Reran the README pipeline end to end on this host: polyphony.test.mjs passes (per-note independence, clip = sum of notes), build.mjs -> finish.py -> verify.py = 44 files checked, loudness spread 0.36 dB, OK []; max message 394.7 ms, max any 599.8 ms, max proposal true peak -10.28 dBTP. Needs numpy+soundfile with Vorbis (used the ogg-venv). Not shown: nobody has heard any output; the metrics describe files, not verdicts. Nothing deployed and Ratatoskr untouched; the handoff copy stays where it is. Merging as provenance, not approval.

Maintainer pass (2026-11-10). Merged onto current main in a scratch branch, no conflicts, touches only tools/dings-voices. Reran the README pipeline end to end on this host: `polyphony.test.mjs` passes (per-note independence, clip = sum of notes), `build.mjs` -> `finish.py` -> `verify.py` = 44 files checked, loudness spread 0.36 dB, `OK []`; max message 394.7 ms, max any 599.8 ms, max proposal true peak -10.28 dBTP. Needs numpy+soundfile with Vorbis (used the ogg-venv). Not shown: nobody has heard any output; the metrics describe files, not verdicts. Nothing deployed and Ratatoskr untouched; the handoff copy stays where it is. Merging as provenance, not approval.
aqua merged commit a6b0c2c38a into main 2026-11-10 17:08:49 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
GameCult/AquaSynth!22
No description provided.