aboutsummaryrefslogtreecommitdiffstats
path: root/src/WrapComp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/WrapComp.cpp')
-rw-r--r--src/WrapComp.cpp32
1 files changed, 18 insertions, 14 deletions
diff --git a/src/WrapComp.cpp b/src/WrapComp.cpp
index ab82aa0..3eaee98 100644
--- a/src/WrapComp.cpp
+++ b/src/WrapComp.cpp
@@ -26,14 +26,18 @@ struct WrapComp : Module {
WrapComp() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
+ configParam(OFFSET_PARAM, -5.0, 5.0, 0.0);
+ configParam(RANGE_PARAM, -5.0, 5.0, 0.0);
+ configParam(A_OUT_PARAM, -8.0, 8.0, 1.0);
+ configParam(B_OUT_PARAM, -8.0, 8.0, 0.0);
}
- void step() override;
+ void process(const ProcessArgs &args) override;
};
-void WrapComp::step() {
- float input = inputs[SIGNAL_INPUT].value + inputs[OFFSET_INPUT].normalize(0.0) + params[OFFSET_PARAM].value;
- float width = clamp((inputs[RANGE_INPUT].normalize(0.0f) + params[RANGE_PARAM].value) / 2.0f, 0.0f, 5.0f);
+void WrapComp::process(const ProcessArgs &args) {
+ float input = inputs[SIGNAL_INPUT].getVoltage() + inputs[OFFSET_INPUT].getNormalVoltage(0.0) + params[OFFSET_PARAM].getValue();
+ float width = clamp((inputs[RANGE_INPUT].getNormalVoltage(0.0f) + params[RANGE_PARAM].getValue()) / 2.0f, 0.0f, 5.0f);
while (input > 5.0)
input -= 5.0;
@@ -42,7 +46,7 @@ void WrapComp::step() {
bool a = input < width || input > (5.0 - width);
- outputs[MAIN_OUTPUT].value = a ? params[A_OUT_PARAM].value : params[B_OUT_PARAM].value;
+ outputs[MAIN_OUTPUT].setVoltage(a ? params[A_OUT_PARAM].getValue() : params[B_OUT_PARAM].getValue());
lights[A_LIGHT].value = a ? 1.0 : 0.0;
lights[B_LIGHT].value = a ? 0.0 : 1.0;
}
@@ -54,7 +58,7 @@ struct WrapCompWidget : ModuleWidget {
WrapCompWidget::WrapCompWidget(WrapComp *module) {
setModule(module);
- setPanel(SVG::load(assetPlugin(pluginInstance, "res/WrapComp.svg")));
+ setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/WrapComp.svg")));
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
@@ -68,21 +72,21 @@ WrapCompWidget::WrapCompWidget(WrapComp *module) {
Vec kcenter = Vec(box.size.x, 0).minus(k.box.size).div(2);
Vec lcenter = Vec(box.size.x, 0).minus(l.box.size).div(2);
- addInput(createPort<PJ301MPort>(center.plus(Vec(0, 70)), PortWidget::INPUT, module, WrapComp::SIGNAL_INPUT));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(0, 70)), module, WrapComp::SIGNAL_INPUT));
- addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(25, 135)), module, WrapComp::OFFSET_PARAM, -5.0, 5.0, 0.0));
- addInput(createPort<PJ301MPort>(center.plus(Vec(-25, 135)), PortWidget::INPUT, module, WrapComp::OFFSET_INPUT));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(25, 135)), module, WrapComp::OFFSET_PARAM));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(-25, 135)), module, WrapComp::OFFSET_INPUT));
- addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(25, 210)), module, WrapComp::RANGE_PARAM, -5.0, 5.0, 0.0));
- addInput(createPort<PJ301MPort>(center.plus(Vec(-25, 210)), PortWidget::INPUT, module, WrapComp::RANGE_INPUT));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(25, 210)), module, WrapComp::RANGE_PARAM));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(-25, 210)), module, WrapComp::RANGE_INPUT));
addChild(createLight<MediumLight<RedLight>>(lcenter.plus(Vec(-15, 255)), module, WrapComp::A_LIGHT));
addChild(createLight<MediumLight<RedLight>>(lcenter.plus(Vec( 15, 255)), module, WrapComp::B_LIGHT));
- addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(-25, 280)), module, WrapComp::A_OUT_PARAM, -8.0, 8.0, 1.0));
- addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec( 25, 280)), module, WrapComp::B_OUT_PARAM, -8.0, 8.0, 0.0));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(-25, 280)), module, WrapComp::A_OUT_PARAM));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec( 25, 280)), module, WrapComp::B_OUT_PARAM));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 315)), PortWidget::OUTPUT, module, WrapComp::MAIN_OUTPUT));
+ addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 315)), module, WrapComp::MAIN_OUTPUT));
}
Model *modelWrapComp = createModel<WrapComp, WrapCompWidget>("WrapComp");