diff options
Diffstat (limited to 'src/CircleVCO.cpp')
| -rw-r--r-- | src/CircleVCO.cpp | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/CircleVCO.cpp b/src/CircleVCO.cpp index b1bbaab..41ba4f0 100644 --- a/src/CircleVCO.cpp +++ b/src/CircleVCO.cpp @@ -31,7 +31,7 @@ void CircleVCO::step() { float pitch = params[PITCH_PARAM].value; pitch += inputs[PITCH_INPUT].value; - pitch = clampf(pitch, -4.0, 4.0); + pitch = clamp(pitch, -4.0f, 4.0f); float freq = 200 * (powf(2.0, pitch) - powf(2.0, -4.0)); phase += freq * deltaTime; @@ -46,24 +46,28 @@ void CircleVCO::step() { } -CircleVCOWidget::CircleVCOWidget() { - CircleVCO *module = new CircleVCO(); - setModule(module); +struct CircleVCOWidget : ModuleWidget { + CircleVCOWidget(CircleVCO *module); +}; + +CircleVCOWidget::CircleVCOWidget(CircleVCO *module) : ModuleWidget(module) { setPanel(SVG::load(assetPlugin(plugin, "res/CircleVCO.svg"))); - addChild(createScrew<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); - addChild(createScrew<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); + addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); + addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); PJ301MPort p; RoundSmallBlackKnob k; Vec center = Vec(box.size.x, 0).minus(p.box.size).div(2); Vec kcenter = Vec(box.size.x, 0).minus(k.box.size).div(2); - addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(0, 90)), module, CircleVCO::PITCH_PARAM, 0.0, 1.0, 0.0)); + addParam(ParamWidget::create<RoundSmallBlackKnob>(kcenter.plus(Vec(0, 90)), module, CircleVCO::PITCH_PARAM, 0.0, 1.0, 0.0)); - addInput(createInput<PJ301MPort>(center.plus(Vec(0, 144)), module, CircleVCO::PITCH_INPUT)); + addInput(Port::create<PJ301MPort>(center.plus(Vec(0, 144)), Port::INPUT, module, CircleVCO::PITCH_INPUT)); - addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 218)), module, CircleVCO::SIN_OUTPUT)); - addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 268)), module, CircleVCO::COS_OUTPUT)); - addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 318)), module, CircleVCO::PHS_OUTPUT)); + addOutput(Port::create<PJ301MPort>(center.plus(Vec(0, 218)), Port::OUTPUT, module, CircleVCO::SIN_OUTPUT)); + addOutput(Port::create<PJ301MPort>(center.plus(Vec(0, 268)), Port::OUTPUT, module, CircleVCO::COS_OUTPUT)); + addOutput(Port::create<PJ301MPort>(center.plus(Vec(0, 318)), Port::OUTPUT, module, CircleVCO::PHS_OUTPUT)); } + +Model *modelCircleVCO = Model::create<CircleVCO, CircleVCOWidget>("s-ol", "CircleVCO", "Circle VCO", OSCILLATOR_TAG, VISUAL_TAG); |
