diff --git a/docs/Oneiroi.md b/docs/Oneiroi.md new file mode 100644 index 0000000..999ef51 --- /dev/null +++ b/docs/Oneiroi.md @@ -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 + +![Oneiroi](img/Oneiroi.png) diff --git a/docs/img/Oneiroi.png b/docs/img/Oneiroi.png new file mode 100644 index 0000000..204cb9c Binary files /dev/null and b/docs/img/Oneiroi.png differ diff --git a/src/EvenVCO.cpp b/src/EvenVCO.cpp index a226a1d..ae2bded 100644 --- a/src/EvenVCO.cpp +++ b/src/EvenVCO.cpp @@ -169,14 +169,14 @@ struct EvenVCO : Module { if (outputs[SINE_OUTPUT].isConnected() || outputs[EVEN_OUTPUT].isConnected()) { // 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()) { const float_4 dpwOrder1 = 1.0 - 2.0 * simd::abs(2 * phase[c / 4] - 1.0); 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()) {