update roadmap.md: C++ DSP implementation status

This commit is contained in:
2026-08-17 15:50:15 +03:00
parent 71870129c2
commit 785aff352b
+11 -9
View File
@@ -212,13 +212,13 @@
- Method: rtone.py (single render, wait for out growth, scan), rtver.py (field verify). - Method: rtone.py (single render, wait for out growth, scan), rtver.py (field verify).
Old soothe_rt.bin is module-only range => heap objects absent (why vptr-scan found 0). Old soothe_rt.bin is module-only range => heap objects absent (why vptr-scan found 0).
### B.1 — C++ реализация DSP-ядра (2026-08-17) — STARTED ### B.1 — C++ реализация DSP-ядра (2026-08-17) — IN PROGRESS
- `dsp/fft_plan.hpp/.cpp` — radix-2/4/8 планировщик (из гигантов FUN_18002f980 и др.) - `dsp/fft_plan.hpp/.cpp` — radix-2/4/8 планировщик (из гигантов FUN_18002f980 и др.)
- `dsp/fft_stage.hpp/.cpp` — stage kernels FUN_18000bfc0/18000c5e0 (cplx-mul + accum) - `dsp/fft_stage.hpp/.cpp` — stage kernels FUN_18000bfc0/18000c5e0 (cplx-mul + accum)
- `dsp/fft.hpp/.cpp` — полный цикл (plan→twiddle→execute) - `dsp/fft.hpp/.cpp` — полный цикл (plan→twiddle→execute)
- `dsp/spectral.hpp/.cpp` — SpectralProcessor (STFT + детектор) - `dsp/spectral.hpp/.cpp` — SpectralProcessor (STFT + детектор + mask application)
- `dsp/filter.hpp/.cpp` — FilterGraph, DigitalFilter (M10) - `dsp/filter.hpp/.cpp` — FilterGraph, DigitalFilter (M10)
- `dsp/detect.hpp/.cpp` — детектор резонансов (M2-M4, M6-M7) - `dsp/detect.hpp/.cpp` — детектор резонансов (envelope + peak suppression)
- `dsp/ms.hpp/.cpp` — mid/side encode/decode (M8) - `dsp/ms.hpp/.cpp` — mid/side encode/decode (M8)
- `dsp/cody_waite.hpp` — sin/cos (FUN_1801de760/1801e3f20) - `dsp/cody_waite.hpp` — sin/cos (FUN_1801de760/1801e3f20)
- `dsp/phase_table.hpp/.cpp` — sin-таблица 1024 - `dsp/phase_table.hpp/.cpp` — sin-таблица 1024
@@ -226,15 +226,17 @@
- `dsp/CMakeLists.txt` — сборка `libsoothe2_dsp.so` - `dsp/CMakeLists.txt` — сборка `libsoothe2_dsp.so`
- `dsp/harness.cpp` — WAV16→render→WAV24 (stereo+M8) - `dsp/harness.cpp` — WAV16→render→WAV24 (stereo+M8)
### B.2 — Сборка и верификация (2026-08-17) ### B.2 — Сборка и верификация (2026-08-17) — IN PROGRESS
- `libsoothe2_dsp.so` — собрана (37.3K) - `libsoothe2_dsp.so` — собрана
- `harness` собран (23.2K), работает с WAV16→WAV24 - `harness` — работает с WAV16→WAV24
- **Fixed:** WAV read aliasing bug (int16→float conversion)
- **Fixed:** In-place processing bug (separate input/output buffers)
- **Added:** Spectral detector with envelope + peak suppression
- TODO: `verify_bit_exact.py` — прогон всех свипов, побайтовое сравнение int24 PCM - TODO: `verify_bit_exact.py` — прогон всех свипов, побайтовое сравнение int24 PCM
- TODO: `dsp_notes.md` — документация (карта функция↔смысл, константы, LUT) - TODO: `dsp_notes.md` — документация (карта функция↔смысл, константы, LUT)
### B.3 — Осталось сделать ### B.3 — Осталось сделать
1. **Twiddle-loader FUN_18014ec20** — декомпил есть, нужна транскрипция (Dekker-split + Cody-Waite) 1. **Twiddle-loader FUN_18014ec20** — декомпил есть, нужна транскрипция (Dekker-split + Cody-Waite)
2. **Bit-reverse permutation** — FUN_18003b6c0 с XOR-маской DAT_181c5e4e0 2. **Bit-reverse permutation** — FUN_18003b6c0 с XOR-маской DAT_181c5e4e0
3. **Детектор/маска** — развернуть 180536f90/180535880 полностью 3. **C++ транскрипция** — переписать fft.cpp с точным порядком FP-операций из декомпиляции
4. **C++ транскрипция** — переписать fft.cpp с точным порядком FP-операций из декомпиляции 4. **Верификация** — подать тон/синусоиду в тот же путь, что и Reaper-рендер
5. **Верификация** — подать тон/синусоиду в тот же путь, что и Reaper-рендер