Browse Source

Fix bug where DC disabled wasn't working

pull/57/head
hemmer 5 months ago
parent
commit
72b92be0a1
2 changed files with 4 additions and 3 deletions
  1. +1
    -0
      CHANGELOG.md
  2. +3
    -3
      src/EvenVCO.cpp

+ 1
- 0
CHANGELOG.md View File

@@ -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


+ 3
- 3
src/EvenVCO.cpp View File

@@ -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);
}


Loading…
Cancel
Save