@@ -5,6 +5,12 @@ | |||||
* Initial release | * Initial release | ||||
* PonyVCO | * PonyVCO | ||||
* Now polyphonic | * Now polyphonic | ||||
* Misc | |||||
* Fix trigger inputs to follow Rack voltage standards (Kickall, Muxlicer, Rampage) | |||||
## v2.4.1 | |||||
* Rampage | |||||
* Fix SIMD bug | |||||
## v2.4.0 | ## v2.4.0 | ||||
* MotionMTR | * MotionMTR | ||||
@@ -81,7 +81,7 @@ struct Kickall : Module { | |||||
void process(const ProcessArgs& args) override { | void process(const ProcessArgs& args) override { | ||||
// TODO: check values | // TODO: check values | ||||
const bool risingEdgeGate = gateTrigger.process(inputs[TRIGG_INPUT].getVoltage() / 2.0f); | |||||
const bool risingEdgeGate = gateTrigger.process(inputs[TRIGG_INPUT].getVoltage() / 2.0f, 0.1, 2.0); | |||||
const bool buttonTriggered = buttonTrigger.process(params[TRIGG_BUTTON_PARAM].getValue()); | const bool buttonTriggered = buttonTrigger.process(params[TRIGG_BUTTON_PARAM].getValue()); | ||||
// can be triggered by either rising edge on trigger in, or a button press | // can be triggered by either rising edge on trigger in, or a button press | ||||
if (risingEdgeGate || buttonTriggered) { | if (risingEdgeGate || buttonTriggered) { | ||||
@@ -156,4 +156,4 @@ struct KickallWidget : ModuleWidget { | |||||
}; | }; | ||||
Model* modelKickall = createModel<Kickall, KickallWidget>("Kickall"); | |||||
Model* modelKickall = createModel<Kickall, KickallWidget>("Kickall"); |
@@ -1120,7 +1120,7 @@ struct Mex : Module { | |||||
// gate in will convert non-gate signals to gates (via schmitt trigger) | // gate in will convert non-gate signals to gates (via schmitt trigger) | ||||
// if input is present | // if input is present | ||||
if (inputs[GATE_IN_INPUT].isConnected()) { | if (inputs[GATE_IN_INPUT].isConnected()) { | ||||
gateInTrigger.process(inputs[GATE_IN_INPUT].getVoltage()); | |||||
gateInTrigger.process(inputs[GATE_IN_INPUT].getVoltage(), 0.1, 2.0); | |||||
gate = gateInTrigger.isHigh(); | gate = gateInTrigger.isHigh(); | ||||
} | } | ||||
// otherwise the main Muxlicer output clock (including divisions/multiplications) | // otherwise the main Muxlicer output clock (including divisions/multiplications) | ||||
@@ -220,7 +220,7 @@ struct Rampage : Module { | |||||
for (int c = 0; c < channels[part]; c += 4) { | for (int c = 0; c < channels[part]; c += 4) { | ||||
// process SchmittTriggers | // process SchmittTriggers | ||||
float_4 trig_mask = trigger_4[part][c / 4].process(in_trig[c / 4] / 2.0); | |||||
float_4 trig_mask = trigger_4[part][c / 4].process(in_trig[c / 4] / 2.0, 0.1, 2.0); | |||||
gate[part][c / 4] = ifelse(trig_mask, float_4::mask(), gate[part][c / 4]); | gate[part][c / 4] = ifelse(trig_mask, float_4::mask(), gate[part][c / 4]); | ||||
in[c / 4] = ifelse(gate[part][c / 4], 10.0f, in[c / 4]); | in[c / 4] = ifelse(gate[part][c / 4], 10.0f, in[c / 4]); | ||||