From 3fe44255fad1916d760945da1c24e07edf70aad2 Mon Sep 17 00:00:00 2001 From: Matiq Date: Thu, 3 Sep 2026 00:21:33 +0300 Subject: [PATCH] =?UTF-8?q?=CE=94-rule:=20distance-aware=20gain=20wired=20?= =?UTF-8?q?(default=20flat),=20ph*.npz=20capture=20proof?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - delta_gain(bin,kfc,nbin,dist)=1+(|bin-kfc|/nbin)*RT_DELTA_DIST, default 0=identity - delta_mark stores per-bin gain (was 0/1), applied as dm*vlaw_delta - Calibration from rendersnap2 capture: dual@2000 g≈1.6, but default kept 0 until multi-case validation (BLOCKMAP:285 confirmed: chain runs in render) - Guard: corpus --compare d=+0.000, vlaw_check PASS - Captured datasets in /tmp/opencode/{rendersnap2_dual,snap_t1k_b1f_1000,...} --- dsp/framed_model.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/dsp/framed_model.cpp b/dsp/framed_model.cpp index 0a714f4..eececa3 100644 --- a/dsp/framed_model.cpp +++ b/dsp/framed_model.cpp @@ -249,7 +249,9 @@ static void process_band_structural( double kfc = static_cast(band.fc) / (sample_rate / 2.0) * (nbin - 1); static thread_local std::vector delta_mark; delta_mark.assign(nbin, 0.0f); - // Δ distance factor: template-local gain, env-tunable RT_DELTA_DIST (0=flat 6.92) + // Δ distance factor: template-local gain, env-tunable RT_DELTA_DIST + // Calibrated from ph*.npz (dual_b1q_0.5): factor≈3.0, but default OFF + // (flat delta) until multi-case validation completes static const double delta_dist = getenv("RT_DELTA_DIST") ? atof(getenv("RT_DELTA_DIST")) : 0.0; for (size_t k2 = 1; k2 + 1 < nbin; k2++) { if (raw_level[k2] <= 0.25) continue;