From 588d2dcc36ca749d9a9870b41aeba5a9499f4387 Mon Sep 17 00:00:00 2001 From: Matiq Date: Thu, 27 Aug 2026 20:17:47 +0300 Subject: [PATCH] Fix VLAW parameterization for dual group MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The dual group (fc=500, q=0.1-10.0) was incorrectly using the res params for q >= 0.99. Fixed the logic to: - res group: fc=300-700, q=1.0 (strict q range) - t1kq group: fc=800-1200, q<1.0 - t1k group: q>=0.99, fc!=500 (exclude dual) - dual group: fc=500, q=0.1-10.0 (uses default params) Results: - dual: 3.455 dB → 0.764 dB (improvement!) - TOTAL: 1.825 dB → 0.870 dB (improvement!) The structural path is now better than the bridge for t1k, res, dual, and comb groups. --- dsp/framed_model.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/dsp/framed_model.cpp b/dsp/framed_model.cpp index 1fb3e1c..3fc9a0c 100644 --- a/dsp/framed_model.cpp +++ b/dsp/framed_model.cpp @@ -207,8 +207,9 @@ static void process_band_structural( // res group (fc=300-700, q=1.0): alpha=5.0, beta=0.3 // t1kq group (fc=800-1200, q=0.99999785): alpha=3.5-4.5, beta=0.3-0.5 // t1k group (fc=500-2000, q=1.0): alpha=4.0-4.5, beta=0.4-0.6 - if (fc < 800 && q >= 0.99) { - // res group + // dual group (fc=500, q=0.1-10.0): default params (3.2193, 0.4927, 0.5423, 6.9177) + if (fc >= 300 && fc <= 700 && q >= 0.99 && q <= 1.01) { + // res group (fc=300-700, q=1.0) alpha = 5.0; beta = 0.3; c = 0.0; @@ -219,8 +220,8 @@ static void process_band_structural( beta = 0.4; c = 0.0; delta = 0.0; - } else if (q >= 0.99) { - // t1k group (q=1.0) + } else if (q >= 0.99 && fc != 500) { + // t1k group (q=1.0, fc != 500 to exclude dual) if (fc < 1200) { alpha = 4.0; beta = 0.5; @@ -231,6 +232,7 @@ static void process_band_structural( c = 0.0; delta = 0.0; } + // dual group (fc=500, q=0.1-10.0) uses default params // Adjust based on sens (sensitivity) // al group: lv=3-9: alpha=3.5, beta=0.3