From d6e5f21e5b97f11c150836db9eb41999ea9e75da Mon Sep 17 00:00:00 2001 From: Gordon JC Pearce Date: Wed, 24 Dec 2025 00:34:52 +0000 Subject: [PATCH] vcf lfo --- plugin/module.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/plugin/module.cpp b/plugin/module.cpp index 4e1c1d0..96faf98 100644 --- a/plugin/module.cpp +++ b/plugin/module.cpp @@ -70,6 +70,7 @@ void Module::run(Voice* voices, uint32_t blockSize) { pw = 0.5 - ((0x2000 + lfo) * patchRam.pwmLfo) / (32768.0f * 128); pw = (patchRam.switch2 & 0x01) ? 0.5 - (patchRam.pwmLfo / 256.0f) : pw; + float master = powf(2, (patchRam.vca / 31.75 - 4.0f)); float sub = patchRam.sub/ 127.0f; @@ -125,8 +126,9 @@ void Module::run(Voice* voices, uint32_t blockSize) { // per voice we need to calculate the key follow amount and envelope amount v->vcfCut = (patchRam.vcfFreq << 7) + ((vcf * v->env) >> 14); - v->vcfCut += (int)((v->note-36) * (patchRam.vcfKey << 1) * 0.375); + v->vcfCut += (lfo * patchRam.vcfLfo) >> 9; + v->vcfCut += (int)((v->note-36) * (patchRam.vcfKey << 1) * 0.375); if (v->vcfCut > 0x3fff) v->vcfCut = 0x3fff; if (v->vcfCut < 0) v->vcfCut = 0;