From 5dbeb58eb084ad1b88dcf67591a745b7c90824b5 Mon Sep 17 00:00:00 2001 From: Paul Fd Date: Mon, 5 Jul 2021 09:24:39 +0200 Subject: [PATCH] Add filter veltrack oncc --- src/sfizz/FilterPool.cpp | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/sfizz/FilterPool.cpp b/src/sfizz/FilterPool.cpp index 88b1802f..8fbd356d 100644 --- a/src/sfizz/FilterPool.cpp +++ b/src/sfizz/FilterPool.cpp @@ -38,8 +38,15 @@ void sfz::FilterHolder::setup(const Region& region, unsigned filterId, int noteN } const auto keytrack = description->keytrack * float(noteNumber - description->keycenter); baseCutoff *= centsFactor(keytrack); - const auto veltrack = description->veltrack * velocity; - baseCutoff *= centsFactor(veltrack); + auto veltrack = description->veltrack; + + for (const auto& mod : description->veltrackCC) { + const auto& curve = resources.getCurves().getCurve(mod.data.curve); + const float value = resources.getMidiState().getCCValue(mod.cc); + veltrack += curve.evalNormalized(value) * mod.data.modifier; + } + + baseCutoff *= centsFactor(veltrack * velocity); baseCutoff = Default::filterCutoff.bounds.clamp(baseCutoff); baseGain = description->gain;