aqua-feel: diff faustwasm against the native libfaust path (unheard) #20
Loading…
Reference in a new issue
No description provided.
Delete branch "aqua/aqua-feel-native-diff"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Nothing here was heard. Offline buffers only: same Faust source on both sides, 48 kHz, mono, 512-frame blocks.
What this is
A tool (
tools/aqua-feel/native-diff.mjsplustools/FaustNativeRender) that renders a Faust source through aqua-feel's faustwasm path and through the daemon's native libfaust path (AquaSynthPatchCompiler), then compares the buffers (max error, relative RMS error, LUFS, true peak, centroid, gate flags). The report isdocs/renders/aqua-feel-native-diff-2026-11-10.mdwith raw JSON beside it.What it found
si.smoothis*(1.0 - s) : + ~ *(s), which stalls in float32 (the thruster's rpm freezes at 4796.632 for a target of 4800). The sandbox's faustlibraries master usesimp(3), which does not stall. Starfire's Faust 2.85.5 has the old form; I read only that file'ssmoothline over ssh and did not render there.si.smooth/si.smoo(12 plus the tract vowel): with the imp(3) form pinned on both sides they agree to -75 dB or better. As shipped (each side's own stdlib), nine of the 13 differ at waveform level by -16 to -50 dB. Level, true-peak, centroid and gate-flag deltas stay small in every condition (max |LUFS| 0.017 dB, |true peak| 0.152 dB, centroid 0.16 %), and no gate flag differs.dx7-algorithm-32-additive-organsits at -79.3 (library), -79.5 (old) and -79.5 dB (imp3), so its residual is not the pinned smoother. Pinning rewritessi.smooth/si.smooin the source text only, so a smoother inside a library function is a candidate. Not isolated.share/faustthe host has. A pin is proposed in the report; it is not made here and is the owner's call.Honest limits
native-diff.mjsare tripwires fit to these 13 sources, not taste./var/lib/mind-aqua-self/soul-nd-1, not committed; the cause numbers are not reproducible from this repo alone.FAIL onsetMsis the patch-group rule applied by the script, on both sides; it is not a repo gate result. The tract source is not in the repo.Base
Retargeted to main after review:
aqua/store-filename-ipa(5a77dc8) is already an ancestor of main, so the diff is the three commits plus a doc fix (46188d1).Drive:
node tools/aqua-feel/native-diff.mjs <FaustNativeRender dir> --items smoother --smoother old|imp3.🤖 Generated with Claude Code
Maintainer review (Soul pass by a separate agent, then my fixes). Nothing was heard.
Claims checked against the committed JSON and code
advanced-bird-syrinx-graph-75.4 dB.dx7-algorithm-32-additive-organ: -79.3 (library), -79.5 (old), -79.5 (imp3). The description said -79.5 under all three; corrected in the report. Still unexplained.native-diff.mjs(0.1 dB, 0.5 dB, 1 %, -60 dB imp3) match the report; metric maxima (LUFS 0.017, true peak 0.152, centroid 0.16 %) match; no gate flag differs in any of the 39 rows..gitmodules,NativeFaustRuntime.cs:530,:651): confirmed.node tools/aqua-feel/test.mjs: 26 passed (scratch worktree).Unproven (could not run): Starfire's
signals.lib(read once, not re-read); the isolation probes (soul-nd-1, uncommitted) and the thruster stall numbers 4796.632 / 4797.657; the +1 dB / one-sample-shift mutation check and the "byte for byte" rerun (need dotnetFaustNativeRender, libfaust 2.90.20, faustlibraries 3d8c6ef);native-diff.mjshas no test coverage ofLIMITS.Defects fixed in
46188d1(docs/comments only): the report preamble said the script has no tolerance (it exits 1 on a LIMITS violation); the script header said "19 sources" (13) and had a garbled dx7 aside; the 13-row table carried stray| ; | ;cells.Base:
5a77dc8is already an ancestor of main, somain..headis the three feature commits plus this fix. Retargeted to main.