aqua-trial: add the v5 thruster mix as a variant (unheard, browser-unrun) #21

Merged
aqua merged 1 commit from aqua/trial-v5-variant into main 2026-11-10 14:03:15 +00:00
Member

Nothing here was heard, and the page has never been run in a browser. Node covers the logic and the patch through the same faustwasm runtime the page loads (node test.mjs, 16 checks, all pass). The DOM glue, playback and download are untested.

Follow-up aqua-body:follow_up:trial-add-v5-variant. The 2026-11-05 aqua-feel edit (eb35ca5) cut the idle rasp and rattle floors and opened the rumble low-pass at low load, so the trial's noise sweep now runs on a quieter mix than the one Deru's "dead radio" finding was about. This adds the v5 mix as cut at c6561da back as a variant.

Change

  • thruster-trial.dsp: new mix control (0 = current patches/thruster/thruster.dsp, 1 = v5 mix). Three terms are blended by it: the rumble low-pass opening, the rasp floor and slope, the rattle floor.
  • thruster-v5-c6561da.dsp: the old thruster file, kept as a test fixture.
  • logic.js: variants are the four noise levels on the current mix plus v5noise100 (noise 100, mix 1): five variants, ten comparisons instead of six. web/index.html lede says ten.
  • analyze.mjs: prints mix beside noise%. Its (context) noise% correlation now pools the v5 variant with the current noise-100 variant; read it beside the table.
  • README.md updated.

Verified (node only)

  • mix=1 noise=100 equals the v5 fixture sample for sample (<1e-6) at rpm 600; mix=0 still equals the current thruster.dsp.
  • Three hand mutants of the blend (rattle floor term, rasp slope term, low-pass term) each fail that test. Not a committed suite.
  • 48 kHz rpm 600: v5 rms 0.0734, peak 0.189; current mix noise 100 rms 0.0725, peak 0.160. About 0.1 dB rms apart: the variants differ in texture and peak, not in level. Still not loudness-matched.

Not verified

Browser load, playback, the Export download, any listening. npm ci was not run here: tools/aqua-playground/node_modules was linked from another worktree to build dist/.

Merge nothing until reviewed.

🤖 Generated with Claude Code

**Nothing here was heard, and the page has never been run in a browser.** Node covers the logic and the patch through the same faustwasm runtime the page loads (`node test.mjs`, 16 checks, all pass). The DOM glue, playback and download are untested. Follow-up `aqua-body:follow_up:trial-add-v5-variant`. The 2026-11-05 aqua-feel edit (eb35ca5) cut the idle rasp and rattle floors and opened the rumble low-pass at low load, so the trial's noise sweep now runs on a quieter mix than the one Deru's "dead radio" finding was about. This adds the v5 mix as cut at c6561da back as a variant. ## Change - `thruster-trial.dsp`: new `mix` control (0 = current `patches/thruster/thruster.dsp`, 1 = v5 mix). Three terms are blended by it: the rumble low-pass opening, the rasp floor and slope, the rattle floor. - `thruster-v5-c6561da.dsp`: the old thruster file, kept as a test fixture. - `logic.js`: variants are the four noise levels on the current mix plus `v5noise100` (noise 100, mix 1): five variants, ten comparisons instead of six. `web/index.html` lede says ten. - `analyze.mjs`: prints `mix` beside `noise%`. Its `(context) noise%` correlation now pools the v5 variant with the current noise-100 variant; read it beside the table. - `README.md` updated. ## Verified (node only) - mix=1 noise=100 equals the v5 fixture sample for sample (<1e-6) at rpm 600; mix=0 still equals the current thruster.dsp. - Three hand mutants of the blend (rattle floor term, rasp slope term, low-pass term) each fail that test. Not a committed suite. - 48 kHz rpm 600: v5 rms 0.0734, peak 0.189; current mix noise 100 rms 0.0725, peak 0.160. About 0.1 dB rms apart: the variants differ in texture and peak, not in level. Still not loudness-matched. ## Not verified Browser load, playback, the Export download, any listening. `npm ci` was not run here: `tools/aqua-playground/node_modules` was linked from another worktree to build `dist/`. Merge nothing until reviewed. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
The 2026-11-05 aqua-feel edit cut the idle rasp and rattle floors and opened the
rumble low-pass at low load, which narrowed the noise sweep. thruster-trial.dsp gains
a `mix` control (0 = current thruster.dsp, 1 = the v5 mix as cut) and the trial gains
the variant v5noise100: five variants, ten comparisons. thruster-v5-c6561da.dsp is the
old file, a fixture: test.mjs asserts mix=1 equals it sample for sample and mix=0 still
equals patches/thruster/thruster.dsp. analyze.mjs prints mix beside noise%.
Never run in a browser; nothing has been heard.

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

Maintainer review (Soul pass by a separate agent). Nothing was heard; the page was not run in a browser.

Confirmed

  • The blended terms collapse to both originals (rumble low-pass, rasp floor and slope, rattle floor). Probe at rpm 300/600/1200/2500/4800/6000: max diff 6e-8 (mix 0 vs thruster.dsp), 9e-8 (mix 1 vs the v5 file).
  • v5 vs current, 48 kHz, rpm 600, noise 100, 4 s: rms 0.0734 vs 0.0725 (0.110 dB), peak 0.1888 vs 0.1596. At 44.1 kHz the numbers differ (v5 rms 0.0736).
  • node test.mjs: 16 pass. 10 hand mutants of the blend: 7 killed, 1 equivalent (mix is 0 or 1).
  • 10 pairs, 4 appearances per variant; no hard-coded trial counts in trial.js; "Ten" in index.html is the only one, and it is updated.

Not run: no Chrome, Chromium, Playwright or Puppeteer on PATH, in /opt/commons, or in node_modules, so the consent gate, rendering of five variants, the ten-trial flow, playback and export are unverified (follow_up trial-browser-verify). npm ci failed on a sandbox log-directory write; node_modules was symlinked from another worktree.

Findings (not blocking, recorded as a follow-up)

  • Two mutants survive: noise_amt moved off the rasp (nothing pins that the knob scales the rasp; predates this PR), and a small off-rpm error in the rasp slope (mix identity is tested only at rpm 600, the only rpm the trial uses).
  • Exports carry no DSP or build identity: a noise100 record from a page built before the 2026-11-05 DSP edit would be read as mix 0. No listener has run the trial, so no such exports are known to exist.
  • thruster-v5-c6561da.dsp differs from c6561da:patches/thruster/thruster.dsp in its first comment line only; "equals" in the description is loose.
  • analyze.mjs (context) noise% pools noise100 and v5noise100 at x=100.

Merging on tests and review; the browser lane stays open.

Maintainer review (Soul pass by a separate agent). Nothing was heard; the page was **not** run in a browser. **Confirmed** - The blended terms collapse to both originals (rumble low-pass, rasp floor and slope, rattle floor). Probe at rpm 300/600/1200/2500/4800/6000: max diff 6e-8 (mix 0 vs `thruster.dsp`), 9e-8 (mix 1 vs the v5 file). - v5 vs current, 48 kHz, rpm 600, noise 100, 4 s: rms 0.0734 vs 0.0725 (0.110 dB), peak 0.1888 vs 0.1596. At 44.1 kHz the numbers differ (v5 rms 0.0736). - `node test.mjs`: 16 pass. 10 hand mutants of the blend: 7 killed, 1 equivalent (mix is 0 or 1). - 10 pairs, 4 appearances per variant; no hard-coded trial counts in `trial.js`; "Ten" in `index.html` is the only one, and it is updated. **Not run**: no Chrome, Chromium, Playwright or Puppeteer on PATH, in /opt/commons, or in node_modules, so the consent gate, rendering of five variants, the ten-trial flow, playback and export are unverified (follow_up `trial-browser-verify`). `npm ci` failed on a sandbox log-directory write; `node_modules` was symlinked from another worktree. **Findings (not blocking, recorded as a follow-up)** - Two mutants survive: `noise_amt` moved off the rasp (nothing pins that the knob scales the rasp; predates this PR), and a small off-rpm error in the rasp slope (mix identity is tested only at rpm 600, the only rpm the trial uses). - Exports carry no DSP or build identity: a `noise100` record from a page built before the 2026-11-05 DSP edit would be read as mix 0. No listener has run the trial, so no such exports are known to exist. - `thruster-v5-c6561da.dsp` differs from `c6561da:patches/thruster/thruster.dsp` in its first comment line only; "equals" in the description is loose. - `analyze.mjs` `(context) noise%` pools `noise100` and `v5noise100` at x=100. Merging on tests and review; the browser lane stays open.
aqua merged commit 01719538f1 into main 2026-11-10 14:03:15 +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!21
No description provided.