Clamp filter coefficients
This commit is contained in:
parent
fe62e9a307
commit
9e6f77ac86
1 changed files with 4 additions and 0 deletions
|
|
@ -32,6 +32,7 @@ void sfz::FilterHolder::setup(const FilterDescription& description, int noteNumb
|
|||
baseCutoff *= centsFactor(keytrack);
|
||||
const auto veltrack = description.veltrack * normalizeVelocity(velocity);
|
||||
baseCutoff *= centsFactor(veltrack);
|
||||
baseCutoff = Default::filterCutoffRange.clamp(baseCutoff);
|
||||
|
||||
baseGain = description.gain;
|
||||
baseResonance = description.resonance;
|
||||
|
|
@ -51,16 +52,19 @@ void sfz::FilterHolder::process(const float** inputs, float** outputs, unsigned
|
|||
for (auto& mod: description->cutoffCC) {
|
||||
lastCutoff *= centsFactor(midiState.getCCValue(mod.first) * mod.second);
|
||||
}
|
||||
lastCutoff = Default::filterCutoffRange.clamp(lastCutoff);
|
||||
|
||||
lastResonance = baseResonance;
|
||||
for (auto& mod: description->resonanceCC) {
|
||||
lastResonance += midiState.getCCValue(mod.first) * mod.second;
|
||||
}
|
||||
lastResonance = Default::filterResonanceRange.clamp(lastResonance);
|
||||
|
||||
lastGain = baseGain;
|
||||
for (auto& mod: description->gainCC) {
|
||||
lastGain += midiState.getCCValue(mod.first) * mod.second;
|
||||
}
|
||||
lastGain = Default::filterGainRange.clamp(lastGain);
|
||||
|
||||
filter.process(inputs, outputs, lastCutoff, lastResonance, lastGain, numFrames);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue