22e: floor algebra solved — gain_floor=20log10(blend*ln10/20), matches -20.72dB within 0.006dB; lead FUN_180529c60

This commit is contained in:
2026-08-22 18:54:48 +03:00
parent 9c14a74318
commit 3970c1e309
3 changed files with 299 additions and 4 deletions
+11 -4
View File
@@ -81,10 +81,17 @@ static void process_band_structural(
// BandConfig ctx+0x188 (FUN_180563a60 dB-domain LUT): A=min, B=max, gamma
// Extracted from refs: A=-13.78dB, B=68.29dB, gamma=0.344 (NOTES_LEVEL:967)
constexpr float LUT_A = -13.78f;
constexpr float LUT_B = 68.29f;
constexpr float LUT_GAMMA = 0.344f;
constexpr float LUT_MULT = 4.2f;
// RT_LUT_* env overrides: EXPERIMENTAL solver tooling (NOTES_LEVEL 22d),
// live-capture candidates are A=-24 B=28 gamma=1 (BandConfig, 22b).
float lut_a = -13.78f, lut_b = 68.29f, lut_g = 0.344f, lut_m = 4.2f;
if (const char* e = getenv("RT_LUT_A")) lut_a = atof(e);
if (const char* e = getenv("RT_LUT_B")) lut_b = atof(e);
if (const char* e = getenv("RT_LUT_G")) lut_g = atof(e);
if (const char* e = getenv("RT_LUT_MULT")) lut_m = atof(e);
const float LUT_A = lut_a;
const float LUT_B = lut_b;
const float LUT_GAMMA = lut_g;
const float LUT_MULT = lut_m;
// res^rp term (bridge parity): smooth frequency-dependent floor
constexpr double RP0 = 0.0275;