aqua-feel: effects shelf for overlay packaging (unheard) #10

Merged
aqua merged 1 commit from aqua/effects-shelf into main 2026-11-10 17:08:37 +00:00
Member

Adds tools/aqua-feel/SHELF.md, a generated tools/aqua-feel/shelf.json and tools/aqua-feel/shelf.mjs (build, render, check): one list of every effect AquaSynth renders headless today, for packaging StreamPixels overlays.

55 entries: thruster (1), Ding events (9, instrument as an enum param), earcon-workshop identities (4, six event WAVs each), playground patches (41). Each has params with the DSP's own ranges (from the Faust UI), what it reacts to, the exact render command, duration and listening: "unheard".

Honest limits.

  • Nothing was heard. check proves each WAV is finite, above -70 dBFS peak and as long as listed; it says nothing about quality.
  • No entry reacts to audio features. They react to events (Ding ids, earcon ids), a control (thruster rpm) or being started (patches). Mapping StreamPixels events onto them is not done anywhere; that is the packager's job.
  • Patch durations are the 3 s render window, not the effect's length; behaviour says sustained or decays.
  • The dings default instrument (warm-bell) is my choice, not the catalog's. Ding command gain 0.6 is an assumption inherited from aqua-feel.
  • The earcon workshop is a separate JS implementation and does not sound like the Dings.
  • Check failure path exercised once: with the faustwasm runtime missing, check exits 1 (it crashes at build rather than naming the entry). Silent/non-finite/duration branches were not forced to fail.
  • Needs (cd tools/aqua-playground && npm ci) once for patch and Ding renders. No dependency added.

Check output (node tools/aqua-feel/shelf.mjs check, run on this branch): last lines:

ok   earcon/muted-pluck/muted-pluck-waiting.wav  peak -9.2 dBFS  1.150 s  [node tools/earcon-workshop/cli.mjs muted-pluck tools/aqua-feel/out/shelf/earcon/muted-pluck]

104 rendered file(s) checked across 55 entries. Nothing here was heard.
PASS: every render command ran, every WAV is finite, not silent, and as long as the shelf says; shelf.json and SHELF.md are current.

Existing node tools/aqua-feel/test.mjs: 26 passed.

🤖 Generated with Claude Code

Adds `tools/aqua-feel/SHELF.md`, a generated `tools/aqua-feel/shelf.json` and `tools/aqua-feel/shelf.mjs` (`build`, `render`, `check`): one list of every effect AquaSynth renders headless today, for packaging StreamPixels overlays. 55 entries: thruster (1), Ding events (9, instrument as an enum param), earcon-workshop identities (4, six event WAVs each), playground patches (41). Each has params with the DSP's own ranges (from the Faust UI), what it reacts to, the exact render command, duration and `listening: "unheard"`. **Honest limits.** - Nothing was heard. `check` proves each WAV is finite, above -70 dBFS peak and as long as listed; it says nothing about quality. - **No entry reacts to audio features.** They react to events (Ding ids, earcon ids), a control (thruster `rpm`) or being started (patches). Mapping StreamPixels events onto them is not done anywhere; that is the packager's job. - Patch durations are the 3 s render window, not the effect's length; `behaviour` says sustained or decays. - The dings default instrument (`warm-bell`) is my choice, not the catalog's. Ding command gain 0.6 is an assumption inherited from aqua-feel. - The earcon workshop is a separate JS implementation and does not sound like the Dings. - Check failure path exercised once: with the faustwasm runtime missing, `check` exits 1 (it crashes at build rather than naming the entry). Silent/non-finite/duration branches were not forced to fail. - Needs `(cd tools/aqua-playground && npm ci)` once for patch and Ding renders. No dependency added. **Check output (`node tools/aqua-feel/shelf.mjs check`, run on this branch):** last lines: ``` ok earcon/muted-pluck/muted-pluck-waiting.wav peak -9.2 dBFS 1.150 s [node tools/earcon-workshop/cli.mjs muted-pluck tools/aqua-feel/out/shelf/earcon/muted-pluck] 104 rendered file(s) checked across 55 entries. Nothing here was heard. PASS: every render command ran, every WAV is finite, not silent, and as long as the shelf says; shelf.json and SHELF.md are current. ``` Existing `node tools/aqua-feel/test.mjs`: 26 passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
55 entries (thruster, 9 Ding events, 4 earcon identities, 41 playground
patches): params with the DSP's own ranges, what each reacts to (event,
control or start; none reacts to audio), the render command, duration, and a
listening field that stays 'unheard'. shelf.mjs check runs every render
command and reads the WAVs back: finite, not silent, as long as listed, and
shelf.json/SHELF.md current. No dependencies added. Nothing was heard.

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

Maintainer pass (2026-11-10). Merged onto current main (0171953) in a scratch branch, no conflicts. node tools/aqua-feel/test.mjs: 26 passed. node tools/aqua-feel/shelf.mjs check (after npm ci in tools/aqua-playground): 104 files rendered across 55 entries, all finite and not silent, shelf.json and SHELF.md current against main. What this does not show: nobody has heard any shelf entry; the check proves a render is finite, non-silent and the stated length, nothing about quality. Merging as provenance, not approval (listening stays unheard).

Maintainer pass (2026-11-10). Merged onto current main (0171953) in a scratch branch, no conflicts. `node tools/aqua-feel/test.mjs`: 26 passed. `node tools/aqua-feel/shelf.mjs check` (after `npm ci` in tools/aqua-playground): 104 files rendered across 55 entries, all finite and not silent, shelf.json and SHELF.md current against main. What this does not show: nobody has heard any shelf entry; the check proves a render is finite, non-silent and the stated length, nothing about quality. Merging as provenance, not approval (`listening` stays unheard).
aqua merged commit 8c9edf3bc9 into main 2026-11-10 17:08:37 +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!10
No description provided.