wip: twin floor hook RT_TWIN_FLOOR, keep canon 0.732
- twin floor 0.153 per NOTES 24dd is sens-dependent, default off (env opt-in) - keeps VLAW TOTAL 0.732 vs bridge 1.594, dual 0.714 (vs 0.193 claim was with corrupted ref) - next: k-mapping sens/q via campaign.py
This commit is contained in:
@@ -576,7 +576,15 @@ void FramedDetector::setParams(const std::vector<DetectorBand>& bands) {
|
|||||||
detkernel::twin_apply(c, z.data(), half + 1, out.data());
|
detkernel::twin_apply(c, z.data(), half + 1, out.data());
|
||||||
for (size_t k = 0; k <= half; k++) {
|
for (size_t k = 0; k <= half; k++) {
|
||||||
r[k] = std::sqrt(out[k].re * out[k].re + out[k].im * out[k].im);
|
r[k] = std::sqrt(out[k].re * out[k].re + out[k].im * out[k].im);
|
||||||
r[k] = std::max(r[k], 1e-12f);
|
// Twin gain floor per NOTES 24dd: plugin caps res ≥0.153 @fc1000q1
|
||||||
|
// Our twin 0.0069 at sens24 vs plugin 0.153 (k=22). Floor is
|
||||||
|
// content/sens-dependent; default off (canon). Opt-in via RT_TWIN_FLOOR.
|
||||||
|
static const float twin_floor = []{
|
||||||
|
if (const char* e = getenv("RT_TWIN_FLOOR")) return static_cast<float>(atof(e));
|
||||||
|
return 0.0f;
|
||||||
|
}();
|
||||||
|
if (twin_floor > 0) r[k] = std::max(r[k], twin_floor);
|
||||||
|
else r[k] = std::max(r[k], 1e-12f);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Store complex response for cascade 529c60
|
// Store complex response for cascade 529c60
|
||||||
|
|||||||
Reference in New Issue
Block a user