aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2019-09-06 09:34:15 +0000
committers-ol <s-ol@users.noreply.github.com>2019-09-06 09:34:15 +0000
commitec9fd8bd319740f8a8567b29f5b2b34bc9fecb81 (patch)
tree67c0c27df55de46200cfaa5d918009751a631b20 /src
parentupdate to rack0 compat layer (diff)
downloadvcvmods-ec9fd8bd319740f8a8567b29f5b2b34bc9fecb81.tar.gz
vcvmods-ec9fd8bd319740f8a8567b29f5b2b34bc9fecb81.zip
update to rack v1 compat
Diffstat (limited to 'src')
-rw-r--r--src/CircleVCO.cpp29
-rw-r--r--src/Modulo.cpp25
-rw-r--r--src/WrapComp.cpp32
-rw-r--r--src/s-ol.hpp2
4 files changed, 47 insertions, 41 deletions
diff --git a/src/CircleVCO.cpp b/src/CircleVCO.cpp
index 70c57e9..3749a9a 100644
--- a/src/CircleVCO.cpp
+++ b/src/CircleVCO.cpp
@@ -23,16 +23,17 @@ struct CircleVCO : Module {
CircleVCO() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
+ configParam(PITCH_PARAM, -54.0f, 54.0f, 0.0f);
}
- void step() override;
+ void process(const ProcessArgs &args) override;
};
-void CircleVCO::step() {
- float deltaTime = 1.0f / engineGetSampleRate();
+void CircleVCO::process(const ProcessArgs &args) {
+ float deltaTime = 1.0f / args.sampleRate;
- float pitch = params[PITCH_PARAM].value;
- pitch += 12.0f * inputs[PITCH_INPUT].value;
+ float pitch = params[PITCH_PARAM].getValue();
+ pitch += 12.0f * inputs[PITCH_INPUT].getVoltage();
float freq = 261.626f * powf(2.0f, pitch / 12.0f);
phase += freq * deltaTime;
@@ -41,9 +42,9 @@ void CircleVCO::step() {
float sine = sin(2.0f * M_PI * phase);
float cosn = cos(2.0f * M_PI * phase);
- outputs[SIN_OUTPUT].value = sine * 5.0f;
- outputs[COS_OUTPUT].value = cosn * 5.0f;
- outputs[PHS_OUTPUT].value = phase * 5.0f;
+ outputs[SIN_OUTPUT].setVoltage(sine * 5.0f);
+ outputs[COS_OUTPUT].setVoltage(cosn * 5.0f);
+ outputs[PHS_OUTPUT].setVoltage(phase * 5.0f);
}
@@ -53,7 +54,7 @@ struct CircleVCOWidget : ModuleWidget {
CircleVCOWidget::CircleVCOWidget(CircleVCO *module) {
setModule(module);
- setPanel(SVG::load(assetPlugin(pluginInstance, "res/CircleVCO.svg")));
+ setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/CircleVCO.svg")));
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
@@ -63,13 +64,13 @@ CircleVCOWidget::CircleVCOWidget(CircleVCO *module) {
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, -54.0f, 54.0f, 0.0f));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(0, 90)), module, CircleVCO::PITCH_PARAM));
- addInput(createPort<PJ301MPort>(center.plus(Vec(0, 144)), PortWidget::INPUT, module, CircleVCO::PITCH_INPUT));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(0, 144)), module, CircleVCO::PITCH_INPUT));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 218)), PortWidget::OUTPUT, module, CircleVCO::SIN_OUTPUT));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 268)), PortWidget::OUTPUT, module, CircleVCO::COS_OUTPUT));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 318)), PortWidget::OUTPUT, module, CircleVCO::PHS_OUTPUT));
+ 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));
}
Model *modelCircleVCO = createModel<CircleVCO, CircleVCOWidget>("CircleVCO");
diff --git a/src/Modulo.cpp b/src/Modulo.cpp
index 7f6abaf..ad85920 100644
--- a/src/Modulo.cpp
+++ b/src/Modulo.cpp
@@ -21,19 +21,20 @@ struct Modulo : Module {
Modulo() {
config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS);
+ configParam(GAIN_PARAM, -3.0, 3.0, 0.0);
}
- void step() override;
+ void process(const ProcessArgs &args) override;
};
-void Modulo::step() {
- float gain = powf(2.0, params[GAIN_PARAM].value) + inputs[GAIN_INPUT].value;
- float val = inputs[SIGNAL_INPUT].value * gain;
+void Modulo::process(const ProcessArgs &args) {
+ float gain = powf(2.0, params[GAIN_PARAM].getValue()) + inputs[GAIN_INPUT].getVoltage();
+ float val = inputs[SIGNAL_INPUT].getVoltage() * gain;
float stair = floorf(val);
float wrap = val - stair;
- outputs[STAIR_OUTPUT].value = stair / gain;;
- outputs[WRAP_OUTPUT].value = wrap * 5;
+ outputs[STAIR_OUTPUT].setVoltage(stair / gain);;
+ outputs[WRAP_OUTPUT].setVoltage(wrap * 5);
}
@@ -43,7 +44,7 @@ struct ModuloWidget : ModuleWidget {
ModuloWidget::ModuloWidget(Modulo *module) {
setModule(module);
- setPanel(SVG::load(assetPlugin(pluginInstance, "res/Modulo.svg")));
+ setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, "res/Modulo.svg")));
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
@@ -54,13 +55,13 @@ ModuloWidget::ModuloWidget(Modulo *module) {
Vec kcenter = Vec(box.size.x, 0).minus(k.box.size).div(2);
- addInput(createPort<PJ301MPort>(center.plus(Vec(0, 120)), PortWidget::INPUT, module, Modulo::SIGNAL_INPUT));
- addInput(createPort<PJ301MPort>(center.plus(Vec(-15, 180)), PortWidget::INPUT, module, Modulo::GAIN_INPUT));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(0, 120)), module, Modulo::SIGNAL_INPUT));
+ addInput(createInput<PJ301MPort>(center.plus(Vec(-15, 180)), module, Modulo::GAIN_INPUT));
- addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(15, 180)), module, Modulo::GAIN_PARAM, -3.0, 3.0, 0.0));
+ addParam(createParam<RoundSmallBlackKnob>(kcenter.plus(Vec(15, 180)), module, Modulo::GAIN_PARAM));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 265)), PortWidget::OUTPUT, module, Modulo::STAIR_OUTPUT));
- addOutput(createPort<PJ301MPort>(center.plus(Vec(0, 345)), PortWidget::OUTPUT, module, Modulo::WRAP_OUTPUT));
+ addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 265)), module, Modulo::STAIR_OUTPUT));
+ addOutput(createOutput<PJ301MPort>(center.plus(Vec(0, 345)), module, Modulo::WRAP_OUTPUT));
}
Model *modelModulo = createModel<Modulo, ModuloWidget>("Modulo");
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");
diff --git a/src/s-ol.hpp b/src/s-ol.hpp
index 9904714..64bca42 100644
--- a/src/s-ol.hpp
+++ b/src/s-ol.hpp
@@ -1,4 +1,4 @@
-#include <rack0.hpp>
+#include <rack.hpp>
using namespace rack;