BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit 85ac88dfecbf7f5c268f63e6b1ada86749220afe
parent 1a68778f25713175c3d90a5f360fafa8caa6030a
Author: Matt Demanett <matt@demanett.net>
Date:   Tue, 15 Oct 2019 21:38:43 -0400

Extend poly channel calculation to the FM inputs, along with V/OCT, on VCO, XCO, FM-OP. #66

Diffstat:
MREADME.md | 6+++---
Msrc/FMOp.cpp | 2+-
Msrc/VCO.cpp | 2+-
Msrc/XCO.cpp | 2+-
4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/README.md b/README.md @@ -61,7 +61,7 @@ A standard VCO featuring: The main frequency knob is calibrated in volts, from -4 to +6, corresponding to notes from C0 to C6. The default "0V" position corresponds to C4 (261.63HZ). The knob value is added to the pitch CV input at the V/OCT port. With CV input, the pitch can be driven as high as 95% of the Nyquist frequency (so, over 20KHZ at Rack's default sample rate). The FINE knob allows an additional adjustment of up to +/-1 semitone (100 cents, 1/12 volt). In slow mode, the output frequency is 7 octaves lower than in normal mode with the same knob/CV values. -_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by the input cable at V/OCT. +_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by maximum of the channels on the V/OCT and FM inputs. #### XCO @@ -73,7 +73,7 @@ Includes all the features of VCO, adding: - A mix knob/CV to control the level of the wave in the mix (waves are output at full level at their individual outputs). The knob/CV response is linear in amplitude. - A CV input for FM depth. -_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by the input cable at V/OCT. +_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by maximum of the channels on the V/OCT and FM inputs. #### ADDITATOR @@ -99,7 +99,7 @@ A sine-wave oscillator and simple synth voice designed to allow patching up the - An on-board ADSR, controlled by the GATE input, with selectable routing to output level, feedback and depth, with CV control over the sustain level. - A main frequency knob calibrated for setting the frequency as a ratio of the frequency dictated by the V/OCT input - assuming a single V/OCT CV is routed to multiple FM-OPs, this allows the relative frequency of each operator to be set via ratios. -_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by the input cable at V/OCT. +_Polyphony:_ <a href="#polyphony">Polyphonic</a>, with channels defined by maximum of the channels on the V/OCT and FM inputs. ### <a name="lfos"></a> LFOs diff --git a/src/FMOp.cpp b/src/FMOp.cpp @@ -84,7 +84,7 @@ bool FMOp::active() { } int FMOp::channels() { - return std::max(1, inputs[PITCH_INPUT].getChannels()); + return std::max(1, std::max(inputs[PITCH_INPUT].getChannels(), inputs[FM_INPUT].getChannels())); } void FMOp::addEngine(int c) { diff --git a/src/VCO.cpp b/src/VCO.cpp @@ -55,7 +55,7 @@ bool VCO::active() { } int VCO::channels() { - return std::max(1, inputs[PITCH_INPUT].getChannels()); + return std::max(1, std::max(inputs[PITCH_INPUT].getChannels(), inputs[FM_INPUT].getChannels())); } void VCO::addEngine(int c) { diff --git a/src/XCO.cpp b/src/XCO.cpp @@ -67,7 +67,7 @@ bool XCO::active() { } int XCO::channels() { - return std::max(1, inputs[PITCH_INPUT].getChannels()); + return std::max(1, std::max(inputs[PITCH_INPUT].getChannels(), inputs[FM_INPUT].getChannels())); } void XCO::addEngine(int c) {