disable generative evolution globally; tame resonance, cross-mod and reverb drive

Zero EVOLVE/WARP on all 195 presets to remove the wind-howl sweep (filter cutoff, resonance, warp bias, detune sway no longer wander). Gate cross-mod bloom by EVOLVE so it stays static when off. Also settle voice-screen params, oscillator/filter levels and fx saturation.
This commit is contained in:
Armin 2026-09-14 02:27:45 +02:00
commit bf70af0191
3 changed files with 222 additions and 224 deletions

View file

@ -72,7 +72,7 @@ public:
if (doChorus)
{
// 3-voice ensemble with a touch of internal regeneration
// 3-voice ensemble chorus
const double w = chPh * 2.0 * juce::MathConstants<double>::pi;
const float t1 = (float) std::sin (w);
const float t2 = (float) std::sin (w + 2.09439f);
@ -85,8 +85,6 @@ public:
+ chorusL.popSample (0, chBase + chDepth * t2));
const float mR = 0.5f * (chorusR.popSample (0, chBase + chDepth * t2)
+ chorusR.popSample (0, chBase + chDepth * t3));
chorusL.pushSample (0, mL * 0.30f);
chorusR.pushSample (0, mR * 0.30f);
outL += mL * wet * 0.8f;
outR += mR * wet * 0.8f;
}
@ -107,20 +105,20 @@ public:
float revL = 0.0f, revR = 0.0f;
for (int i = 0; i < 6; ++i)
{
float o = combL[i].process (inL * 0.25f, 0.84f, 0.30f);
float o = combL[i].process (inL * 0.25f, 0.78f, 0.55f);
revL += o * 0.22f;
o = combR[i].process (inR * 0.25f, 0.84f, 0.30f);
o = combR[i].process (inR * 0.25f, 0.78f, 0.55f);
revR += o * 0.22f;
}
apL[0].process (revL, 0.70f); apL[1].process (revL, 0.57f);
apR[0].process (revR, 0.70f); apR[1].process (revR, 0.57f);
const float revWet = (type == 7 ? wet : wet * 0.8f);
const float revWet = wet * 0.8f;
outL += revL * revWet;
outR += revR * revWet;
}
L[s] = outL;
R[s] = outR;
L[s] = std::tanh (outL * 0.85f);
R[s] = std::tanh (outR * 0.85f);
}
}
@ -533,7 +531,7 @@ void RMX19AudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::
{
float x = ch[s];
// Soft knee limiting at ~-1dBFS with smooth tanh curve
x = std::tanh (x * 0.89f) * 1.12f;
x = std::tanh (x * 0.89f);
if (! std::isfinite (x)) x = 0.0f;
ch[s] = juce::jlimit (-1.0f, 1.0f, x);
}
@ -576,7 +574,7 @@ void RMX19AudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::
for (int s = 0; s < numSamples; ++s)
{
float x = ch[s];
x = std::tanh (x * 0.89f) * 1.12f;
x = std::tanh (x * 0.89f);
if (! std::isfinite (x)) x = 0.0f;
ch[s] = juce::jlimit (-1.0f, 1.0f, x);
}