bench: official param bridge (setparam/dump_params.lua) + rpp_setparam format tool; 22c — XML params decorative, depth=+-18dB, trim=+-24dB, reduction curves measured
This commit is contained in:
@@ -1435,3 +1435,49 @@ FUN_180529fe0 (Soothe2Module<float>::vtbl) НЕ ссылается на {+0x168,
|
||||
канон не меняем (корпус держит), но источник правды теперь внутри аудио-модуля.
|
||||
3. Новый приоритет №1: полный разбор аудио-тела FUN_180529fe0 (215 строк декомпа,
|
||||
/tmp/consumers_out.txt) + combine-consumer hunt — насыщение C_max≈0.70 сидит там.
|
||||
|
||||
## ============ UPDATE 2026-08-22c: PARAM BRIDGE + RENDER-BENCH CALIBRATION ============
|
||||
|
||||
Инфраструктура управления плагином через ОФИЦИАЛЬНЫЙ параметр-мост REAPER:
|
||||
- `dump_params.lua` — дамп всех FX-параметров (имя, raw 0..1, formatted UI) в /tmp/opencode/fxparams.txt.
|
||||
- `setparam.lua` — установка по имени через TrackFX_SetParam + SaveProjectEx (env S2_SET="name=val;...", S2_OUT).
|
||||
- `scripts/rpp_setparam.py` — редактор XML-стейта в RPP с корректным апдейтом length-полей
|
||||
(A=buflen−16, B=len(xml), хвост JUCEPrivateData сохраняется).
|
||||
|
||||
### КЛЮЧЕВОЕ ОТКРЫТИЕ: XML `<PARAM>` секция НЕ источник VST3-стейта
|
||||
Живой дамп: depth raw=0.524 ↔ fmt=0.9; в XML при этом "0.8639736175537109" (=UI-единицы!).
|
||||
Плагин восстанавливает параметры из БИНАРНОЙ части чанка; XML-список — декоративная
|
||||
копия для GUI-восстановления. Правки только XML → рассинхрон → плагин откатывается в
|
||||
дефолт (объясняет «магию» идентичных рендеров −31.76 у любых depth-правок; контроль
|
||||
same-value rewrite давал байт-в-байт реф ✓). ВНИМАНИЕ к rpp_setparam.py: менять можно,
|
||||
но аудио это НЕ меняет.
|
||||
|
||||
### Семантика параметров (через мост)
|
||||
- `depth`: raw 0..1 → UI **±18 линейно** (ui=36·raw−18). Рендеры подтверждают монотонность:
|
||||
raw=0 → юнити; raw=1.0 (+18) → −37.6 dB @tone.
|
||||
- `input trim`: raw → **±24 dB**.
|
||||
- band sens: fmt в dB; stereo mode mid|side; balance 100%|57%.
|
||||
|
||||
### WAV-грабли (живое подтверждение класса багов 71644ff)
|
||||
REAPER пишет bext(602B)+junk(28B) ПЕРЕД data; наивный парсер (readframes+reshape без
|
||||
каноничного loader) даёт фантомный широкополосный шум и фальшивый клиппинг
|
||||
(corr(L,R)≈0 артефакты). Каноничный render_parity.load корректен; санити bypass:
|
||||
corr(L,R)=1.0000, rms=out=in — РЕНДЕР-ПАЙПЛАЙН ЧИСТЫЙ.
|
||||
|
||||
### Измеренные кривые редукции (t1kq-пресет, тон@1000, Goertzel 0.75s)
|
||||
- Depth-свип: монотонный, raw .5→−5.5 dB; .75→−21 dB; 1.0→−37.6 dB @tone.
|
||||
- Input-trim свип (холодный тон −18 dBFS): R_eff растёт 1.4→15.7 dB на всём ±24 —
|
||||
ПОТОЛКА НЕТ в этом диапазоне (против гипотезы C_max≈0.70 как свойства плагина).
|
||||
- Горячий тон (+6 dBFS): out@1000 ЗАМИРАЕТ на −26.74 dB при trim ≥+12 (R_eff cap ≈20.7),
|
||||
плато воспроизведено дважды.
|
||||
- НО: при одинаковом относительном драйве холодный/горячий дают РАЗНЫЙ gain
|
||||
(−15.7 vs −20.7 @L≈+6) ⇒ отклик детектора не чистая f(level) — контент/нормализация
|
||||
(согласуется с KEY NEGATIVE RESULT Phase B).
|
||||
|
||||
### Следствия для приоритета №1
|
||||
1. «Насыщение C_max≈0.70» старой модели — артефакт placeholder MULT=4.2/Pchip cap 0.667,
|
||||
а не свойство плагина в рабочем диапазоне.
|
||||
2. Реальный потолок проявляется как FLOOR выходного уровня (−26.74 dB @hot) — искать
|
||||
механизм floor/clamp в level-path декомпе с конкретной целью.
|
||||
3. Инструмент готов для систематического картирования R(L, sens, depth): скрипты +
|
||||
мост позволяют прогонять десятки конфигов без ручного GUI.
|
||||
|
||||
Reference in New Issue
Block a user