From 72b92be0a10989632912f5221eed8a0c1bbc36d0 Mon Sep 17 00:00:00 2001 From: hemmer <915048+hemmer@users.noreply.github.com> Date: Sun, 24 Nov 2024 08:47:14 +0000 Subject: [PATCH] Fix bug where DC disabled wasn't working --- CHANGELOG.md | 1 + src/EvenVCO.cpp | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6bf036..0869697 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,7 @@ ## v2.8.2 * EvenVCO * Upsample Hard Sync and FM inputs + * Fix bug when DC option was disabled ## v2.8.1 * Noise Plethora diff --git a/src/EvenVCO.cpp b/src/EvenVCO.cpp index 3de3aa5..7023eae 100644 --- a/src/EvenVCO.cpp +++ b/src/EvenVCO.cpp @@ -218,12 +218,12 @@ struct EvenVCO : Module { if (outputs[SQUARE_OUTPUT].isConnected()) { - float_4 dpwOrder1 = simd::ifelse(phase[c / 4] < pw, -1.0, +1.0); - dpwOrder1 -= removePulseDC ? 2.f * (0.5f - pw) : 0.f; + float_4 dpwOrder1 = simd::ifelse(phase[c / 4] < pw, +1.0, -1.0); + dpwOrder1 += removePulseDC ? 2.f * (0.5f - pw) : 0.f; float_4 saw = aliasSuppressedSaw(phases); float_4 sawOffset = aliasSuppressedOffsetSaw(phases, pw); - float_4 dpwOrder3 = (saw - sawOffset) * denominatorInv + pulseDCOffset; + float_4 dpwOrder3 = (saw - sawOffset) * denominatorInv - pulseDCOffset; osBufferSquare[i] = simd::ifelse(lowFreqRegime, dpwOrder1, dpwOrder3); }