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