- attack: peak-hold envelope and a 150 ms window; a 261 Hz tone no longer reads its
first half-cycle as the attack (warm-bell 0.67 ms -> 3.8 ms, declared 4 ms).
- gate: a rule whose id matches no item fails a full run; waivers carry a bound and
cover only up to it; a missing metric fails its rule; silent items fail once;
--only runs gate as partial; silent threshold is -70 dBFS.
- DingCatalogTests: lowered Dings fed to the meter must match the catalog.
- README states NTR window/Q dependence, short-buffer loudness padding and the assumed
Ding command gain; faust-toolchain-boundary notes the v5 manifest predates the mix change.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
tools/aqua-feel renders every playground patch (thruster at four rpm) and every Ding
event on every instrument offline through faustwasm, measures onset latency, attack,
crest, true peak and clipping, BS.1770 loudness, centroid/flux over time, noise-to-tone
ratio (flat and A-weighted) and a low-motion flag, writes report.json plus a static
gallery, and gates against thresholds.json (waivers must cite a follow-up and go stale).
Nothing is heard; metrics are evidence, not verdicts.
Uses it: PRC SYNTH1 calibrated peaked at 2.10 (18,633 overs); shipped patch gain 1.4 to
0.45, peak 0.67. Thruster low-rpm A-weighted noise-to-tone 20.7/23.0 dB at rpm 300/600
down to 13.1/5.0 by cutting the idle rasp and rattle floors and opening the rumble
low-pass at low load. Trial copy mirrored; its README notes the narrower sweep.
AquaLower gains --dings to lower DingCatalog instruments and events.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>