P4: add dual warp step (mask *= band768; *= warp) - comb 500/3000 fixed

This commit is contained in:
2026-08-20 15:30:30 +03:00
parent 0d262461ea
commit 87dbf88e6d
+9 -1
View File
@@ -142,7 +142,15 @@ void FramedDetector::processFrame(const std::complex<double>* spectrum, float* m
// mask carries on to warp/dry-wet below. // mask carries on to warp/dry-wet below.
} }
// 6. warp: mask *= 0x540768[band] (per-band); mask *= warp (0x5406a8). // 6. warp tilt (0x8700 dst*=src, applied twice):
// mask *= 0x540768[band] (per-band mult table)
// mask *= 0x5406a8 (warp / freqpath tilt)
for (size_t k = 0; k <= half; k++) {
int wi = std::min(static_cast<size_t>(k), size_t(2048));
scratch[k] *= static_cast<float>(kBand768[wi]);
scratch[k] *= static_cast<float>(kWarp[wi]);
}
// 7. IIR3 leaky (A3/B3) twice. // 7. IIR3 leaky (A3/B3) twice.
// 8. dry/wet: mask = mask*(fVar30*0x540888) + (1-fVar30). // 8. dry/wet: mask = mask*(fVar30*0x540888) + (1-fVar30).
// (fVar30 = 0x540874 - rnd; 0x540888=1.0, 0x540874=1.0.) // (fVar30 = 0x540874 - rnd; 0x540888=1.0, 0x540874=1.0.)