docs: two-point 180s capture confirms registry stability; twin per-note state = {A[3],B[3]} not 342-dbl; Step C closed

This commit is contained in:
2026-08-19 20:27:12 +03:00
parent 9c1516171e
commit 34fc852b4f
2 changed files with 56 additions and 0 deletions
+13
View File
@@ -63,3 +63,16 @@
- Next: render_long + capture at t=10-20s into sustain, then locate the per-bin
attack/release smoothing coefficients (0x540888/88c set, converted via ln(10)/20)
inside the arena near registry.
## 2026-08-19b (two-point snapshots t1=8s, t2=40s of render_long 180s)
- rtsnap2.py: TWO snapshots of the SAME 180s render at t1/t2; each 318MB/547regs ~0.2s.
- Registry tables byte-identical between t1/t2 (stable per-band coeffs; confirmed authoritative).
- Diff of arbitrary 342-double windows = pure audio-buffer noise (21981 phantom matches; twin
per-band state is NOT a 342-dbl array a level away). Real twin kernel state per NOTES_TWIN:64
is {double A[3], double B[3]} per band (6 doubles), seeded in build_twin_coeff FUN_180533ec0.
- Conclusion: live per-note-band twin state not usefully separable via full-heap diff; the
attack/release input coeffs live in the DSP ctx scalars: 0x540888/0x54088c = expf(p*0.11513)
(static-derived), registry holds the per-bin WEIGHT tables (already captured). Twin kernels
themselves validated statically (twin_check max|err|=1.27e-5). => Step C goal (window + axes +
weights + kernel parity) is effectively CLOSED; only scalar A/R params remain, derived from RPP
params, no live capture needed.