aboutsummaryrefslogtreecommitdiffstats
path: root/src/CircleVCO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/CircleVCO.cpp')
-rw-r--r--src/CircleVCO.cpp26
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);