Tweak EvenVCO so oscillators have same phase relationship as beforepull/55/head
@@ -0,0 +1,16 @@ | |||||
# Befaco Oneiroi | |||||
Based on [Befaco Oneiroi](http://www.befaco.org/oneiroi) Eurorack module. For the official manual, see [here](https://befaco.org/docs/Oneiroi/Oneiroi_User_Manual.pdf). | |||||
## Differences with hardware | |||||
* Randomisation can optionally be applied to every parameter using the built in VCV randomisation | |||||
* Input gain switch (available on hardware) has been removed as this makes no sense in VCV | |||||
* Undo/redo is natively handled by VCV Rack | |||||
* .wav files can be loaded from the context menu (naive loading no sample rate conversion!) | |||||
* Additional LED indicators have been added for filter type, filter position, modulation type and oscillator octave | |||||
* Distinct virtual knobs are used for each parameter so parameter catch-up (used on hardware) is not needed. | |||||
* As yet, slew of parameter values on randomize is not supported | |||||
 |
@@ -169,14 +169,14 @@ struct EvenVCO : Module { | |||||
if (outputs[SINE_OUTPUT].isConnected() || outputs[EVEN_OUTPUT].isConnected()) { | if (outputs[SINE_OUTPUT].isConnected() || outputs[EVEN_OUTPUT].isConnected()) { | ||||
// sin doesn't need PDW | // sin doesn't need PDW | ||||
osBufferSin[i] = -simd::cos(2.0 * M_PI * phase[c / 4]); | |||||
osBufferSin[i] = -simd::cos(M_PI + 2.0 * M_PI * phase[c / 4]); | |||||
} | } | ||||
if (outputs[TRI_OUTPUT].isConnected()) { | if (outputs[TRI_OUTPUT].isConnected()) { | ||||
const float_4 dpwOrder1 = 1.0 - 2.0 * simd::abs(2 * phase[c / 4] - 1.0); | const float_4 dpwOrder1 = 1.0 - 2.0 * simd::abs(2 * phase[c / 4] - 1.0); | ||||
const float_4 dpwOrder3 = aliasSuppressedTri(phases) * denominatorInv; | const float_4 dpwOrder3 = aliasSuppressedTri(phases) * denominatorInv; | ||||
osBufferTri[i] = simd::ifelse(lowFreqRegime, dpwOrder1, dpwOrder3); | |||||
osBufferTri[i] = -simd::ifelse(lowFreqRegime, dpwOrder1, dpwOrder3); | |||||
} | } | ||||
if (outputs[SAW_OUTPUT].isConnected()) { | if (outputs[SAW_OUTPUT].isConnected()) { | ||||