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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user