24k-4: RT_FIRCONV=3 (application law 1.019*M^1.8345); rendersnap2 wav-path hazard fixed (RENDER_FILE parse, was destroying refs — dual_b1q_1.0.wav restored); corpus TOTAL 2.286

This commit is contained in:
2026-08-24 18:37:30 +03:00
parent 1605e0ba29
commit 65fb983d57
3 changed files with 44 additions and 4 deletions
+10 -1
View File
@@ -98,7 +98,16 @@ void SpectralProcessor::processBlock(float* in, float* out, size_t num_samples,
detector_.processFrame(buf_, mask_.data());
if (firconv) {
if (firconv == 3) {
// RT_FIRCONV=3 (NOTES 24k): plugin application law decoded live:
// applied_gain = 1.019 * V^1.8345 per bin (rms 0.0025 dB over
// 8 drive levels). V = band curve (detector output); here M.
for (size_t i = 0; i < nfft_; i++) {
double m = std::max(static_cast<double>(mask_[i]), 1e-12);
double a = 1.019 * std::pow(m, 1.8345);
buf_[i] *= a;
}
} else if (firconv) {
// RT_FIRCONV=1: Build FIR from mask and apply via complex multiply.
// The mask is real-valued (per-bin gain). We apply it directly
// to the audio spectrum via complex multiply (th_b3c0 equivalent).