Revert per-sample parameter smoothing; caused filter hiss/edginess and broke MIDI CC mapping

This commit is contained in:
Armin 2026-09-08 16:37:33 +02:00
commit 43e90ca448
4 changed files with 18 additions and 77 deletions

View file

@ -175,23 +175,6 @@ void RMX19AudioProcessor::processMidi (juce::MidiBuffer& midi, const VParams& p)
}
}
void RMX19AudioProcessor::smoothGain (juce::AudioBuffer<float>& buffer, float targetVol)
{
const int num = buffer.getNumSamples();
const int ch = buffer.getNumChannels();
if (num <= 0 || ch <= 0) { volSmooth = targetVol; return; }
const float k = 0.03f; // per-sample glide so volume doesn't step between blocks
for (int s = 0; s < num; ++s)
{
volSmooth += (targetVol - volSmooth) * k;
const float g = volSmooth;
for (int c = 0; c < ch; ++c)
*buffer.getWritePointer (c, s) *= g;
}
volSmooth = targetVol;
}
void RMX19AudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::MidiBuffer& midi)
{
juce::ScopedNoDenormals noDenormals;
@ -266,7 +249,7 @@ void RMX19AudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::
L[s] = oL;
R[s] = oR;
}
smoothGain (buffer, p.vol);
if (p.vol != 1.0f) buffer.applyGain (p.vol);
}
else if (L != nullptr)
{
@ -296,7 +279,7 @@ void RMX19AudioProcessor::processBlock (juce::AudioBuffer<float>& buffer, juce::
}
for (int c = 0; c < numChannels; ++c)
buffer.copyFrom (c, 0, dummy, 0, 0, numSamples);
smoothGain (buffer, p.vol);
buffer.applyGain (p.vol);
}
cpu = 0.7f * cpu + 0.3f * (float) (juce::Time::getMillisecondCounter() - start);