23d: BREAKTHROUGH — live kernel captured via SIGSTOP sampling of offline render (rendersnap.py); bands[] input to DESIGN is the raw per-frame signal spectrum (Hann lobes at tone bins only!), captured FIR shows skirt cut deeper than center exactly as real output (0.473@2000 vs 0.524@500) despite R-curve claiming otherwise; am/res structure confirmed with twin template as divider; recipe for exact ops formula next round
This commit is contained in:
@@ -2287,3 +2287,43 @@ DESIGN ≠ захваченные кривые (768/788/7f8 — возможно
|
||||
ПОЯВЛЕНИЯ pid (ppid=reaper, comm ещё 'wine'), INT3 на 0x1802a24c0/0x1802fa420,
|
||||
CONT, дамп rcx/rdx на хите (скрипт fnall.py готов, нужен только ранний захват —
|
||||
нынешний finder по maps опаздывает на init-бурст <5 мс).
|
||||
|
||||
## ============ UPDATE 2026-08-23h (23d): ПРОРЫВ — ЖИВОЙ КЕРНЕЛ СНЯТ, bands[] = СПЕКТР СИГНАЛА ============
|
||||
|
||||
Маршрут A удался БЕЗ ptrace и БЕЗ аудио-девайса: **SIGSTOP-семплирование
|
||||
офлайн-рендера** (`-renderproject`; обработка back-to-back ⇒ случайные остановки
|
||||
попадают внутрь конвейера). scripts/rendersnap.py: find-loop ctx (vtable-маркер
|
||||
0x1824AC210 / float 48000+ sens; ctx=0x2370040 стабилен и в рендере),
|
||||
затем STOP→читаем все слоты→CONT c детекцией изменений. 24 фазы за прогон.
|
||||
|
||||
### Решающие факты из phase-снапов (dual q=0.5)
|
||||
1. **bands[0] @ctx+0x540678 = АМПЛИТУДНЫЙ СПЕКТР ТЕКУЩЕГО ФРЕЙМА**:
|
||||
ненулевые группы ТОЛЬКО вокруг тонов (бины 41–45 и 168–173, Hann-лепестки;
|
||||
band[43]=7.65, band[171]=9.91), между ними нули. Это вход DESIGN, НЕ шаблон
|
||||
маски и НЕ пост-детекторная кривая!
|
||||
2. scratch@540628 ≈ log(bands)·k (после ops значения −0.66@43, −0.76@171).
|
||||
3. Живой FIR@668 (комплексные пары): mag(43)=0.524 (−5.61 дБ), mag(171)=0.473
|
||||
(**−6.51 дБ**) — скайрт режется ГЛУБЖЕ центра, КАК В РЕАЛЕ (+1.5 дБ),
|
||||
хотя кривая R@7f8 утверждает обратное (R171=1.41<R43=3.98).
|
||||
4. Количественно из снапа: cut≈A+S·log2(am/res) с res(43)=1.0, res(171)=0.839
|
||||
(twin-шаблон из таблицы 22x!) даёт согласованную пару — **структура
|
||||
am/res ПОДТВЕРЖДЕНА, но входом служит сырой спектр сигнала**, а res-шаблон
|
||||
полосы входит делителем (где именно в цепи ops A-D — осталось залочить).
|
||||
|
||||
### Почему раньше «не ловилось»
|
||||
- realtime без аудио-девайса не вызывает process вовсе (alsa_outdev пуст!);
|
||||
- в render-mode инстанс создаётся ~через 0.3 c после host-spawn: ранняя остановка
|
||||
ловит нулевую фазу (первые 12 «хитов» были ей);
|
||||
- после создания экземпляра кернел живёт в непрерывном перестроении — STOP-цикл
|
||||
читает его спокойно.
|
||||
|
||||
### Следующий раунд (рецепт готов, данные добываются rendersnap.py за минуту)
|
||||
1. Прогнать rendersnap на dual q∈{0.1,1,3,10} + t1kq + al: собрать пары
|
||||
(bands, scratch, FIR) → восстановить точную формулу ops (ожидаем exp(log·K)
|
||||
со сглаживанием/варпом res-шаблона; проверить FIR vs exp(scratch)).
|
||||
2. Объяснить абсолютную глубину (снап даёт −5.6/−6.5 против реала 10.32/11.82):
|
||||
кандидат — нестационарность кадра (attack-фаза) или повторное применение.
|
||||
3. Транскрипция kernel-build за RT_FIRCONV=1 → контрольные числа dual → гейт.
|
||||
4. reaper.ini: alsa_outdev/indev=null прописаны (бэкап /tmp/opencode/reaper.ini.bak)
|
||||
— realtime колбек всё равно не ожил (cpu 0.2 t/s), вопрос закрыт в пользу
|
||||
render-snap метода.
|
||||
|
||||
Reference in New Issue
Block a user