No default -3dB volume mix for L/R splits.

This commit is contained in:
Robin E. R. Davies
2026-01-16 11:42:40 -05:00
parent d00d2689e8
commit 2b6a76b9ff
+19 -11
View File
@@ -126,7 +126,7 @@ static Lv2PluginInfo makeSplitterPluginInfo()
volLControl->index(4); volLControl->index(4);
volLControl->min_value(-60); volLControl->min_value(-60);
volLControl->max_value(12); volLControl->max_value(12);
volLControl->default_value(-3); volLControl->default_value(0);
volLControl->scale_points().push_back( volLControl->scale_points().push_back(
Lv2ScalePoint(-60, "-INF")); Lv2ScalePoint(-60, "-INF"));
@@ -152,7 +152,7 @@ static Lv2PluginInfo makeSplitterPluginInfo()
volRControl->index(6); volRControl->index(6);
volRControl->min_value(-60); volRControl->min_value(-60);
volRControl->max_value(12); volRControl->max_value(12);
volRControl->default_value(-3); volRControl->default_value(0);
volRControl->scale_points().push_back( volRControl->scale_points().push_back(
Lv2ScalePoint(-60, "-INF")); Lv2ScalePoint(-60, "-INF"));
@@ -327,18 +327,26 @@ void SplitEffect::mixTo(float value)
this->targetBlendLBottom = this->targetBlendRBottom = blend; this->targetBlendLBottom = this->targetBlendRBottom = blend;
mixToTarget(); mixToTarget();
} }
static inline float applyPan(float pan, float*left, float*right) { static inline void applyPan(float pan, float*left, float*right) {
float panClipped = pan; float panClipped = pan;
if (panClipped < -1) panClipped = -1; if (panClipped < -1) panClipped = -1;
if (panClipped > 1) panClipped = 1; if (panClipped > 1) panClipped = 1;
if (pan <= 0) { panClipped = (panClipped + 1) * 0.5f; // 0..1
*left = 1.0f; // linear panning law.
*right = 1.0f + panClipped; *left = 1.0f - panClipped;
} else { *right = panClipped;
*left = 1.0f - panClipped;
*right = 1.0f; // float panClipped = pan;
} // if (panClipped < -1) panClipped = -1;
return panClipped; // if (panClipped > 1) panClipped = 1;
// if (pan <= 0) {
// *left = 1.0f;
// *right = 1.0f + panClipped;
// } else {
// *left = 1.0f - panClipped;
// *right = 1.0f;
// }
// return panClipped;
} }