spectral: vectors instead of new[]; vlaw: extract law + vlaw_check target
- spectral.cpp: window_/buf_/tmp_buf_/fir_buf_/fir_freq_ as std::vector (no exception-leak in ctor, destructor = default) - framed_model.hpp: extract vlaw_cut/vlaw_mask inline (BLOCKMAP:314 softplus) - dsp/vlaw_check.cpp: unit test for law (monotonic, zero-level, delta, ref, comb-neutral) — PASS - CMake: add vlaw_check target - Guard: corpus --compare d=+0.000, fn529fe0_check PASS, twin_check PASS
This commit is contained in:
+72
-1
@@ -1,4 +1,4 @@
|
||||
# NOTES_LEVEL — живой журнал детектора/маски (голова 24mm5+, 2026-08-28)
|
||||
# NOTES_LEVEL — живой журнал детектора/маски (голова 25a+, 2026-09-02)
|
||||
|
||||
> **Архив 2026-08-18 — 2026-08-23 (4024 строки) → [`handoff/archive/NOTES_LEVEL_2026-08-18_2026-08-23.md`](archive/NOTES_LEVEL_2026-08-18_2026-08-23.md).**
|
||||
> Оглавление по датам/темам → [`handoff/NOTES_LEVEL_INDEX.md`](NOTES_LEVEL_INDEX.md) (единственный навигатор).
|
||||
@@ -395,3 +395,74 @@ winetrace_casc/chain_samples.pkl, kind∈{CIN,COUT,AIN,AOUT,COPY,EXP,DF0}).
|
||||
- w ≈ 0.015 (scalar, НЕ 0.977)
|
||||
- Каскад STATEFUL: bands_curve сохраняется между кадрами
|
||||
- 5407a8 = accumulator, НЕ нулевой при рекуррентности
|
||||
|
||||
## ============ 25a (2026-09-02): chain_9_19 staged, IIR4-генератор, k-mapping dedup, audit fixes ============
|
||||
|
||||
### Сессия-контекст
|
||||
Workflow `/next-task` (Q1=Local handoff, Q2=All, Q3=Implemented/Deployed).
|
||||
Задачи взяты из рейтинга `BITEXACT_PLAN.md` + аудита. Всё gated `RT_*`,
|
||||
guard `corpus.py --compare baseline_bridge.json --tol 0.25` держит d=+0.000.
|
||||
|
||||
### 25a1. chain_9_19 интеграция (коммиты 9ed22d3, 2a295af, 96816f9, b41d7a4)
|
||||
- `dsp/fn529fe0.cpp:chain_9_19` — полная цепь: LOG#1→DIVIDE(1803a06a0
|
||||
b/a)→dc40(bands−ACC)→FMA ATT/REL (half-split)→EXP#1−1→×track→×kWarp→
|
||||
LOG#2→IIR4×2→FIR 52b3cd→EXP#2. `track` — новый параметр (ctx+0x540768).
|
||||
- **IIR4 = DOUBLE precision** (дизасм `f529fe0_full.dis:1191-1201`:
|
||||
`movsd/mulsd/addsd/cvtpd2ps`; down@0x340510, up@0x3c0510, acc@0x440510).
|
||||
- `generate_iir4_coefs()` — генератор FUN_180533340 (BLOCKMAP:135-150):
|
||||
freq-warp `g = (i<=fc_norm) ? fc_norm/i : pow(fc_norm/i,p)`; live-константы
|
||||
`DAT_1824c3d8c=0.9994880557060242`, `DAT_1824c46b8=0.9991304874420166`.
|
||||
ВАЖНО: `up[i] = exp(−c·g·tau/mult)` (знак МИНУС, иначе Inf), `down=1−up`.
|
||||
Smoke: down0=1, up0=0, down1=0.6292. Gated `RT_IIR4_GEN=1`
|
||||
(env: RT_IIR4_C/TAU/P/MULT/SR, дефолты 1000/1200/0.5/360/48000).
|
||||
- Интеграция: `framed_model.cpp` `RT_CASC=1` gate; вход — `raw_level`
|
||||
(am/res·scale). `process_band_structural` получил `track` параметр.
|
||||
- **Результаты**: bridge 1.594 (gated OFF, не тронут); structural 2.689
|
||||
(RT_CASC=0); RT_CASC=1 → 31.6 (НЕКАЛИБРОВАНО, ожидаемо).
|
||||
- **fn529fe0_check**: добавлены chain smoke + generate_iir4 smoke; PASS.
|
||||
Попутно починен тест haar_one_pass boundary (8.0 не 8.5).
|
||||
|
||||
### 25a2. VLAW per-fc: continuous вместо дискретной решётки (f2cc0ae)
|
||||
- `framed_model.cpp:283-298`: 800→1200 q<1 теперь lerp `t=(fc−800)/400`
|
||||
(5.0/0.4 → 4.5/0.35) вместо дискретных веток.
|
||||
- sens-эффект теперь ADDITIVE offset (12→0, 6→−0.48α, 24→+0.5α) вместо
|
||||
перезаписи, стиравшей fc-выбор (баг старой решётки: sens всегда побеждал).
|
||||
- Gates не сдвинулись (1.594/2.689) — полный перефит требует campaign.py
|
||||
(8 мин/ячейка, `ph*.npz`) — вне scope.
|
||||
|
||||
### 25a3. k-mapping dedup (197f5ed)
|
||||
- `k_mapping_factor(fc,q,sens)` — вынос двух идентичных блоков
|
||||
(lvl_in + raw_level) в helper. `k_fc=1.0` + opt-in `RT_KMAP_FC` (W_eq).
|
||||
- RT_KMAP=1 не влияет на TOTAL (2.689) — ожидаемо, т.к. калибровка
|
||||
α/β уже поглощает k на sens=12.
|
||||
|
||||
### 25a4. Аудит `/audit-project` — Phases 1+2 применены (e4c5348)
|
||||
- Убран dead conditional `if (pool_w > 0 && !lut_off == false) {}`.
|
||||
- `DBG_CASC` fprintf в per-frame цикле → gated `RT_DBG_CASC`.
|
||||
- Убран дублирующий zero-loop в `spectral.cpp buildFirFromMask`.
|
||||
- Комментарии о разнице шкал FFT (1/N canonical vs 2/half plugin).
|
||||
- Документирован blend 0.8 (декомп 0x5406f8, xmm10@1824c3e28).
|
||||
- `assert(spectrum != nullptr)` в processFrame.
|
||||
- НЕ применено (осознанно): thread_local→context (конфликт с golden rule —
|
||||
chain нужен reentrant caller), SpectralProcessor new[]→vector, Config
|
||||
struct для getenv — оставлено как техдолг.
|
||||
|
||||
### 25a5. Блокеры (без изменений)
|
||||
- ph*.npz нет на этой машине; live-dump не работает (маск-цепь при загрузке,
|
||||
BLOCKMAP:285; wine DR EIO). Chain калибровка ждёт capture при INIT.
|
||||
- prd.md создан (карта проекта, 293 строки).
|
||||
- Structural baseline в README/prd: 2.689 (L/R), исторический 0.341
|
||||
недостижим на HEAD после M/S→L/R (e343b0a).
|
||||
|
||||
### Коммиты сессии
|
||||
```
|
||||
e343b0a prd.md + render48k L/R baseline
|
||||
9ed22d3 chain_9_19: IIR4 double + FIR, haar fix
|
||||
2a295af chain integrate RT_CASC gate
|
||||
96816f9 chain: IIR4 generator + audio path
|
||||
2201a57 docs: baseline 2.689
|
||||
f2cc0ae vlaw continuous per-fc + additive sens
|
||||
b41d7a4 chain: RT_IIR4_GEN wire + smoke tests
|
||||
197f5ed k_mapping_factor dedup
|
||||
e4c5348 audit fixes Phases 1+2
|
||||
```
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# NOTES_LEVEL — оглавление журнала
|
||||
|
||||
> **Навигатор:** `NOTES_LEVEL.md` — живая голова (24mm5+, 2026-08-28, 389 строк). Архив 2026-08-18—2026-08-23 → [`handoff/archive/NOTES_LEVEL_2026-08-18_2026-08-23.md`](archive/NOTES_LEVEL_2026-08-18_2026-08-23.md) (4024 строки). Статус TOTAL → [`README.md:13`](../README.md).
|
||||
> **Навигатор:** `NOTES_LEVEL.md` — живая голова (25a+, 2026-09-02, ~470 строк). Архив 2026-08-18—2026-08-23 → [`handoff/archive/NOTES_LEVEL_2026-08-18_2026-08-23.md`](archive/NOTES_LEVEL_2026-08-18_2026-08-23.md) (4024 строки). Статус TOTAL → [`README.md:13`](../README.md).
|
||||
|
||||
## Живая голова (`handoff/NOTES_LEVEL.md`)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
| 24mm12 | Детекторный каскад vt+0x28=180529c60 | Оркестратор 5300f0, vtable карта, 0x281 байт |
|
||||
| 24mm13 (+доп) | Хелперы каскада 529c60 | 5355d0→16140, 530080, 20f0/1850/1a00, рекуррентия Haar |
|
||||
| 24mm14 | Каскад декодирован — 3 фазы | `|z|` → Haar×2 → peak/sin/w/blend 5407a8 |
|
||||
| 25a (2026-09-02) | chain_9_19 staged, IIR4-генератор, k-mapping dedup, аудит | IIR4 double (movsd), generate_iir4_coefs, RT_CASC/RT_IIR4_GEN gates, baseline 2.689 |
|
||||
|
||||
## Архив (`handoff/archive/NOTES_LEVEL_2026-08-18_2026-08-23.md`) — по периодам
|
||||
|
||||
|
||||
Reference in New Issue
Block a user