From d80137c31d55c57552a53e9ce7bb4e2dce116ab9 Mon Sep 17 00:00:00 2001 From: Matiq Date: Sun, 30 Aug 2026 23:23:31 +0300 Subject: [PATCH] chain_9_19: accVec iteration update, fmt cleanup --- dsp/fn529fe0.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dsp/fn529fe0.cpp b/dsp/fn529fe0.cpp index d5c8c51..1be1946 100644 --- a/dsp/fn529fe0.cpp +++ b/dsp/fn529fe0.cpp @@ -257,8 +257,8 @@ static inline void fir_min_phase_52b3cd_internal(float* scr, size_t nbin) { // per-frame band ACC_i vectors for step 10 (dc40). void chain_9_19(float* bands, float* tmp6f8, float* accVec, - const float* warp, const float* att, const float* rel, - size_t nbin) { + const float* warp, const float* att, const float* rel, + size_t nbin) { // pre: LOG#1 140980 logf on [678i] 52a63a (BLOCKMAP:629) — before 9a for (size_t i = 0; i < nbin; i++) bands[i] = std::log(std::max(bands[i], 1e-30f)); // 9a: vec698 *= (1 - param87c) → zero при дефолтах (param=1.0) @@ -266,21 +266,21 @@ void chain_9_19(float* bands, float* tmp6f8, float* accVec, // 9c: DIVIDE dst=678i A=bands B=6f8 1803a06a0 vpermps (BLOCKMAP:580) for (size_t i = 0; i < nbin; i++) { float a = bands[i] != 0 ? bands[i] : 1e-30f; - float b = tmp6f8[i] + 0.8f; // 9b proxy + float b = tmp6f8[i] + 0.8f; bands[i] = divide_1803a06a0(a, b); } // 10: vec6f8 = bands - ACC_i dc40 tbl@5407c8 (BLOCKMAP:596) for (size_t i = 0; i < nbin; i++) tmp6f8[i] = bands[i] - accVec[i]; // 11: FMA ATT/REL upper/lower 1fa0/1940→3c40 (BLOCKMAP:400) re/im/coef 12B - // True triples: upper half (0..nbin/2) uses ATT, lower uses REL. When scalar proxy - // we keep split to avoid double-counting. for (size_t i = 0; i < nbin; i++) { if (i < nbin/2) tmp6f8[i] += att[i] * accVec[i]; else tmp6f8[i] += rel[i] * accVec[i]; } + // Update accVec for steady-state iteration (ACC persists across frames) + for (size_t i = 0; i < nbin; i++) accVec[i] = tmp6f8[i]; // 14: EXP#1 180296c80 expf + +=(-1) th2270 (24mm2 order fix) for (size_t i = 0; i < nbin; i++) bands[i] = expf_180296c80(bands[i]) - 1.0f; - // 15: array-mul track* th2000 + // 15: array-mul track* th2000 (track not in struct; unity proxy) // 16: *=kWarp 52ae8f + LOG#2 140980 logf 52aefd (BLOCKMAP:638) for (size_t i = 0; i < nbin; i++) bands[i] *= warp[i]; for (size_t i = 0; i < nbin; i++) bands[i] = std::log(std::max(bands[i], 1e-30f));