Browse Source

Update to Rack API

tags/v0.6.0
Andrew Belt 7 years ago
parent
commit
e80a5bc922
9 changed files with 221 additions and 272 deletions
  1. +26
    -30
      src/ABC.cpp
  2. +7
    -7
      src/Befaco.cpp
  3. +9
    -32
      src/Befaco.hpp
  4. +19
    -23
      src/DualAtenuverter.cpp
  5. +27
    -31
      src/EvenVCO.cpp
  6. +21
    -25
      src/Mixer.cpp
  7. +60
    -64
      src/Rampage.cpp
  8. +17
    -21
      src/SlewLimiter.cpp
  9. +35
    -39
      src/SpringReverb.cpp

+ 26
- 30
src/ABC.cpp View File

@@ -72,35 +72,31 @@ void ABC::step() {
}


ABCWidget::ABCWidget() {
ABC *module = new ABC();
setModule(module);
box.size = Vec(15*6, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/ABC.svg")));
addChild(panel);
struct ABCWidget : ModuleWidget {
ABCWidget(ABC *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/ABC.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));

addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(45, 37), module, ABC::B1_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(45, 107), module, ABC::C1_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(45, 204), module, ABC::B2_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(45, 274), module, ABC::C2_LEVEL_PARAM, -1.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(7, 28), Port::INPUT, module, ABC::A1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 70), Port::INPUT, module, ABC::B1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 112), Port::INPUT, module, ABC::C1_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(7, 154), Port::OUTPUT, module, ABC::OUT1_OUTPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 195), Port::INPUT, module, ABC::A2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 237), Port::INPUT, module, ABC::B2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 279), Port::INPUT, module, ABC::C2_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(7, 321), Port::OUTPUT, module, ABC::OUT2_OUTPUT));

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(37, 162), module, ABC::OUT1_POS_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(37, 329), module, ABC::OUT2_POS_LIGHT));
}
};

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));

addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(45, 37), module, ABC::B1_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(45, 107), module, ABC::C1_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(45, 204), module, ABC::B2_LEVEL_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(45, 274), module, ABC::C2_LEVEL_PARAM, -1.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(7, 28), Port::INPUT, module, ABC::A1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 70), Port::INPUT, module, ABC::B1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 112), Port::INPUT, module, ABC::C1_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(7, 154), Port::OUTPUT, module, ABC::OUT1_OUTPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 195), Port::INPUT, module, ABC::A2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 237), Port::INPUT, module, ABC::B2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 279), Port::INPUT, module, ABC::C2_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(7, 321), Port::OUTPUT, module, ABC::OUT2_OUTPUT));

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(37, 162), module, ABC::OUT1_POS_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(37, 329), module, ABC::OUT2_POS_LIGHT));
}

Model *modelABC = Model::create<ABC, ABCWidget>("Befaco", "ABC", "A*B+C", RING_MODULATOR_TAG, ATTENUATOR_TAG, DUAL_TAG);

+ 7
- 7
src/Befaco.cpp View File

@@ -8,13 +8,13 @@ void init(rack::Plugin *p) {
p->slug = TOSTRING(SLUG);
p->version = TOSTRING(VERSION);

p->addModel(createModel<EvenVCOWidget>("Befaco", "EvenVCO", "EvenVCO", OSCILLATOR_TAG));
p->addModel(createModel<RampageWidget>("Befaco", "Rampage", "Rampage", FUNCTION_GENERATOR_TAG, LOGIC_TAG, SLEW_LIMITER_TAG, ENVELOPE_FOLLOWER_TAG, DUAL_TAG));
p->addModel(createModel<ABCWidget>("Befaco", "ABC", "A*B+C", RING_MODULATOR_TAG, ATTENUATOR_TAG, DUAL_TAG));
p->addModel(createModel<SpringReverbWidget>("Befaco", "SpringReverb", "Spring Reverb", REVERB_TAG, DUAL_TAG));
p->addModel(createModel<MixerWidget>("Befaco", "Mixer", "Mixer", MIXER_TAG));
p->addModel(createModel<SlewLimiterWidget>("Befaco", "SlewLimiter", "Slew Limiter", SLEW_LIMITER_TAG, ENVELOPE_FOLLOWER_TAG));
p->addModel(createModel<DualAtenuverterWidget>("Befaco", "DualAtenuverter", "Dual Atenuverter", ATTENUATOR_TAG, DUAL_TAG));
p->addModel(modelEvenVCO);
p->addModel(modelRampage);
p->addModel(modelABC);
p->addModel(modelSpringReverb);
p->addModel(modelMixer);
p->addModel(modelSlewLimiter);
p->addModel(modelDualAtenuverter);

springReverbInit();
}

+ 9
- 32
src/Befaco.hpp View File

@@ -6,6 +6,15 @@ using namespace rack;

extern Plugin *plugin;

extern Model *modelEvenVCO;
extern Model *modelRampage;
extern Model *modelABC;
extern Model *modelSpringReverb;
extern Model *modelMixer;
extern Model *modelSlewLimiter;
extern Model *modelDualAtenuverter;


struct Knurlie : SVGScrew {
Knurlie() {
sw->svg = SVG::load(assetPlugin(plugin, "res/Knurlie.svg"));
@@ -15,35 +24,3 @@ struct Knurlie : SVGScrew {
};

void springReverbInit();

////////////////////
// module widgets
////////////////////

struct EvenVCOWidget : ModuleWidget {
EvenVCOWidget();
};

struct RampageWidget : ModuleWidget {
RampageWidget();
};

struct ABCWidget : ModuleWidget {
ABCWidget();
};

struct SpringReverbWidget : ModuleWidget {
SpringReverbWidget();
};

struct MixerWidget : ModuleWidget {
MixerWidget();
};

struct SlewLimiterWidget : ModuleWidget {
SlewLimiterWidget();
};

struct DualAtenuverterWidget : ModuleWidget {
DualAtenuverterWidget();
};

+ 19
- 23
src/DualAtenuverter.cpp View File

@@ -47,32 +47,28 @@ void DualAtenuverter::step() {
}


DualAtenuverterWidget::DualAtenuverterWidget() {
DualAtenuverter *module = new DualAtenuverter();
setModule(module);
box.size = Vec(15*5, 380);
struct DualAtenuverterWidget : ModuleWidget {
DualAtenuverterWidget(DualAtenuverter *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/DualAtenuverter.svg")));

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/DualAtenuverter.svg")));
addChild(panel);
}
addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(20, 33), module, DualAtenuverter::ATEN1_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(20, 91), module, DualAtenuverter::OFFSET1_PARAM, -10.0, 10.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(20, 201), module, DualAtenuverter::ATEN2_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(20, 260), module, DualAtenuverter::OFFSET2_PARAM, -10.0, 10.0, 0.0));

addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(20, 33), module, DualAtenuverter::ATEN1_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(20, 91), module, DualAtenuverter::OFFSET1_PARAM, -10.0, 10.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(20, 201), module, DualAtenuverter::ATEN2_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(20, 260), module, DualAtenuverter::OFFSET2_PARAM, -10.0, 10.0, 0.0));
addInput(Port::create<PJ301MPort>(Vec(7, 152), Port::INPUT, module, DualAtenuverter::IN1_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 152), Port::OUTPUT, module, DualAtenuverter::OUT1_OUTPUT));

addInput(Port::create<PJ301MPort>(Vec(7, 152), Port::INPUT, module, DualAtenuverter::IN1_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 152), Port::OUTPUT, module, DualAtenuverter::OUT1_OUTPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 319), Port::INPUT, module, DualAtenuverter::IN2_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 319), Port::OUTPUT, module, DualAtenuverter::OUT2_OUTPUT));

addInput(Port::create<PJ301MPort>(Vec(7, 319), Port::INPUT, module, DualAtenuverter::IN2_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 319), Port::OUTPUT, module, DualAtenuverter::OUT2_OUTPUT));
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(33, 143), module, DualAtenuverter::OUT1_POS_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(33, 311), module, DualAtenuverter::OUT2_POS_LIGHT));
}
};

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(33, 143), module, DualAtenuverter::OUT1_POS_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(33, 311), module, DualAtenuverter::OUT2_POS_LIGHT));
}

Model *modelDualAtenuverter = Model::create<DualAtenuverter, DualAtenuverterWidget>("Befaco", "DualAtenuverter", "Dual Atenuverter", ATTENUATOR_TAG, DUAL_TAG);

+ 27
- 31
src/EvenVCO.cpp View File

@@ -131,37 +131,33 @@ void EvenVCO::step() {
}


EvenVCOWidget::EvenVCOWidget() {
EvenVCO *module = new EvenVCO();
setModule(module);
box.size = Vec(15*8, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/EvenVCO.svg")));
addChild(panel);
struct EvenVCOWidget : ModuleWidget {
EvenVCOWidget(EvenVCO *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/EvenVCO.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15*6, 0)));
addChild(Widget::create<Knurlie>(Vec(15*6, 365)));

addParam(ParamWidget::create<BefacoBigSnapKnob>(Vec(22, 32), module, EvenVCO::OCTAVE_PARAM, -5.0, 4.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(73, 131), module, EvenVCO::TUNE_PARAM, -7.0, 7.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(16, 230), module, EvenVCO::PWM_PARAM, -1.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(8, 120), Port::INPUT, module, EvenVCO::PITCH1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(19, 157), Port::INPUT, module, EvenVCO::PITCH2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(48, 183), Port::INPUT, module, EvenVCO::FM_INPUT));
addInput(Port::create<PJ301MPort>(Vec(86, 189), Port::INPUT, module, EvenVCO::SYNC_INPUT));

addInput(Port::create<PJ301MPort>(Vec(72, 236), Port::INPUT, module, EvenVCO::PWM_INPUT));

addOutput(Port::create<PJ301MPort>(Vec(10, 283), Port::OUTPUT, module, EvenVCO::TRI_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(87, 283), Port::OUTPUT, module, EvenVCO::SINE_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(48, 306), Port::OUTPUT, module, EvenVCO::EVEN_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(10, 327), Port::OUTPUT, module, EvenVCO::SAW_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(87, 327), Port::OUTPUT, module, EvenVCO::SQUARE_OUTPUT));
}
};

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15*6, 0)));
addChild(Widget::create<Knurlie>(Vec(15*6, 365)));

addParam(ParamWidget::create<BefacoBigSnapKnob>(Vec(22, 32), module, EvenVCO::OCTAVE_PARAM, -5.0, 4.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(73, 131), module, EvenVCO::TUNE_PARAM, -7.0, 7.0, 0.0));
addParam(ParamWidget::create<Davies1900hRedKnob>(Vec(16, 230), module, EvenVCO::PWM_PARAM, -1.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(8, 120), Port::INPUT, module, EvenVCO::PITCH1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(19, 157), Port::INPUT, module, EvenVCO::PITCH2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(48, 183), Port::INPUT, module, EvenVCO::FM_INPUT));
addInput(Port::create<PJ301MPort>(Vec(86, 189), Port::INPUT, module, EvenVCO::SYNC_INPUT));

addInput(Port::create<PJ301MPort>(Vec(72, 236), Port::INPUT, module, EvenVCO::PWM_INPUT));

addOutput(Port::create<PJ301MPort>(Vec(10, 283), Port::OUTPUT, module, EvenVCO::TRI_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(87, 283), Port::OUTPUT, module, EvenVCO::SINE_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(48, 306), Port::OUTPUT, module, EvenVCO::EVEN_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(10, 327), Port::OUTPUT, module, EvenVCO::SAW_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(87, 327), Port::OUTPUT, module, EvenVCO::SQUARE_OUTPUT));
}
Model *modelEvenVCO = Model::create<EvenVCO, EvenVCOWidget>("Befaco", "EvenVCO", "EvenVCO", OSCILLATOR_TAG);

+ 21
- 25
src/Mixer.cpp View File

@@ -46,34 +46,30 @@ void Mixer::step() {
}


MixerWidget::MixerWidget() {
Mixer *module = new Mixer();
setModule(module);
box.size = Vec(15*5, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/Mixer.svg")));
addChild(panel);
}
struct MixerWidget : ModuleWidget {
MixerWidget(Mixer *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/Mixer.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));

addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 32), module, Mixer::CH1_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 85), module, Mixer::CH2_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 137), module, Mixer::CH3_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 190), module, Mixer::CH4_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 32), module, Mixer::CH1_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 85), module, Mixer::CH2_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 137), module, Mixer::CH3_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(19, 190), module, Mixer::CH4_PARAM, 0.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(7, 242), Port::INPUT, module, Mixer::IN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(43, 242), Port::INPUT, module, Mixer::IN2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 242), Port::INPUT, module, Mixer::IN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(43, 242), Port::INPUT, module, Mixer::IN2_INPUT));

addInput(Port::create<PJ301MPort>(Vec(7, 281), Port::INPUT, module, Mixer::IN3_INPUT));
addInput(Port::create<PJ301MPort>(Vec(43, 281), Port::INPUT, module, Mixer::IN4_INPUT));
addInput(Port::create<PJ301MPort>(Vec(7, 281), Port::INPUT, module, Mixer::IN3_INPUT));
addInput(Port::create<PJ301MPort>(Vec(43, 281), Port::INPUT, module, Mixer::IN4_INPUT));

addOutput(Port::create<PJ301MPort>(Vec(7, 324), Port::OUTPUT, module, Mixer::OUT1_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 324), Port::OUTPUT, module, Mixer::OUT2_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(7, 324), Port::OUTPUT, module, Mixer::OUT1_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(43, 324), Port::OUTPUT, module, Mixer::OUT2_OUTPUT));

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(32.7, 310), module, Mixer::OUT_POS_LIGHT));
}
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(32.7, 310), module, Mixer::OUT_POS_LIGHT));
}
};


Model *modelMixer = Model::create<Mixer, MixerWidget>("Befaco", "Mixer", "Mixer", MIXER_TAG);

+ 60
- 64
src/Rampage.cpp View File

@@ -168,69 +168,65 @@ void Rampage::step() {
}


RampageWidget::RampageWidget() {
Rampage *module = new Rampage();
setModule(module);
box.size = Vec(15*18, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/Rampage.svg")));
addChild(panel);
struct RampageWidget : ModuleWidget {
RampageWidget(Rampage *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/Rampage.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(box.size.x-30, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(14, 30), Port::INPUT, module, Rampage::IN_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(52, 37), Port::INPUT, module, Rampage::TRIGG_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(8, 268), Port::INPUT, module, Rampage::RISE_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(67, 268), Port::INPUT, module, Rampage::FALL_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(38, 297), Port::INPUT, module, Rampage::EXP_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(102, 290), Port::INPUT, module, Rampage::CYCLE_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(229, 30), Port::INPUT, module, Rampage::IN_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(192, 37), Port::INPUT, module, Rampage::TRIGG_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(176, 268), Port::INPUT, module, Rampage::RISE_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(237, 268), Port::INPUT, module, Rampage::FALL_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(207, 297), Port::INPUT, module, Rampage::EXP_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(143, 290), Port::INPUT, module, Rampage::CYCLE_B_INPUT));

addParam(ParamWidget::create<BefacoSwitch>(Vec(94, 32), module, Rampage::RANGE_A_PARAM, 0.0, 2.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(27, 90), module, Rampage::SHAPE_A_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoPush>(Vec(72, 82), module, Rampage::TRIGG_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(16, 135), module, Rampage::RISE_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(57, 135), module, Rampage::FALL_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(101, 238), module, Rampage::CYCLE_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(147, 32), module, Rampage::RANGE_B_PARAM, 0.0, 2.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(217, 90), module, Rampage::SHAPE_B_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoPush>(Vec(170, 82), module, Rampage::TRIGG_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(197, 135), module, Rampage::RISE_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(238, 135), module, Rampage::FALL_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(141, 238), module, Rampage::CYCLE_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(117, 76), module, Rampage::BALANCE_PARAM, 0.0, 1.0, 0.5));

addOutput(Port::create<PJ301MPort>(Vec(8, 326), Port::OUTPUT, module, Rampage::RISING_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(68, 326), Port::OUTPUT, module, Rampage::FALLING_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(104, 326), Port::OUTPUT, module, Rampage::EOC_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(102, 195), Port::OUTPUT, module, Rampage::OUT_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(177, 326), Port::OUTPUT, module, Rampage::RISING_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(237, 326), Port::OUTPUT, module, Rampage::FALLING_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(140, 326), Port::OUTPUT, module, Rampage::EOC_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(142, 195), Port::OUTPUT, module, Rampage::OUT_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(122, 133), Port::OUTPUT, module, Rampage::COMPARATOR_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(89, 157), Port::OUTPUT, module, Rampage::MIN_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(155, 157), Port::OUTPUT, module, Rampage::MAX_OUTPUT));

addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(132, 167), module, Rampage::COMPARATOR_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(123, 174), module, Rampage::MIN_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(141, 174), module, Rampage::MAX_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(126, 185), module, Rampage::OUT_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(138, 185), module, Rampage::OUT_B_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(18, 312), module, Rampage::RISING_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(78, 312), module, Rampage::FALLING_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(187, 312), module, Rampage::RISING_B_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(247, 312), module, Rampage::FALLING_B_LIGHT));
}
};

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(box.size.x-30, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(box.size.x-30, 365)));

addInput(Port::create<PJ301MPort>(Vec(14, 30), Port::INPUT, module, Rampage::IN_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(52, 37), Port::INPUT, module, Rampage::TRIGG_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(8, 268), Port::INPUT, module, Rampage::RISE_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(67, 268), Port::INPUT, module, Rampage::FALL_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(38, 297), Port::INPUT, module, Rampage::EXP_CV_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(102, 290), Port::INPUT, module, Rampage::CYCLE_A_INPUT));
addInput(Port::create<PJ301MPort>(Vec(229, 30), Port::INPUT, module, Rampage::IN_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(192, 37), Port::INPUT, module, Rampage::TRIGG_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(176, 268), Port::INPUT, module, Rampage::RISE_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(237, 268), Port::INPUT, module, Rampage::FALL_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(207, 297), Port::INPUT, module, Rampage::EXP_CV_B_INPUT));
addInput(Port::create<PJ301MPort>(Vec(143, 290), Port::INPUT, module, Rampage::CYCLE_B_INPUT));

addParam(ParamWidget::create<BefacoSwitch>(Vec(94, 32), module, Rampage::RANGE_A_PARAM, 0.0, 2.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(27, 90), module, Rampage::SHAPE_A_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoPush>(Vec(72, 82), module, Rampage::TRIGG_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(16, 135), module, Rampage::RISE_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(57, 135), module, Rampage::FALL_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(101, 238), module, Rampage::CYCLE_A_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(147, 32), module, Rampage::RANGE_B_PARAM, 0.0, 2.0, 0.0));
addParam(ParamWidget::create<BefacoTinyKnob>(Vec(217, 90), module, Rampage::SHAPE_B_PARAM, -1.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoPush>(Vec(170, 82), module, Rampage::TRIGG_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(197, 135), module, Rampage::RISE_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(238, 135), module, Rampage::FALL_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSwitch>(Vec(141, 238), module, Rampage::CYCLE_B_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(117, 76), module, Rampage::BALANCE_PARAM, 0.0, 1.0, 0.5));

addOutput(Port::create<PJ301MPort>(Vec(8, 326), Port::OUTPUT, module, Rampage::RISING_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(68, 326), Port::OUTPUT, module, Rampage::FALLING_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(104, 326), Port::OUTPUT, module, Rampage::EOC_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(102, 195), Port::OUTPUT, module, Rampage::OUT_A_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(177, 326), Port::OUTPUT, module, Rampage::RISING_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(237, 326), Port::OUTPUT, module, Rampage::FALLING_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(140, 326), Port::OUTPUT, module, Rampage::EOC_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(142, 195), Port::OUTPUT, module, Rampage::OUT_B_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(122, 133), Port::OUTPUT, module, Rampage::COMPARATOR_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(89, 157), Port::OUTPUT, module, Rampage::MIN_OUTPUT));
addOutput(Port::create<PJ301MPort>(Vec(155, 157), Port::OUTPUT, module, Rampage::MAX_OUTPUT));

addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(132, 167), module, Rampage::COMPARATOR_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(123, 174), module, Rampage::MIN_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(141, 174), module, Rampage::MAX_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(126, 185), module, Rampage::OUT_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(138, 185), module, Rampage::OUT_B_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(18, 312), module, Rampage::RISING_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(78, 312), module, Rampage::FALLING_A_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(187, 312), module, Rampage::RISING_B_LIGHT));
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(247, 312), module, Rampage::FALLING_B_LIGHT));
}

Model *modelRampage = Model::create<Rampage, RampageWidget>("Befaco", "Rampage", "Rampage", FUNCTION_GENERATOR_TAG, LOGIC_TAG, SLEW_LIMITER_TAG, ENVELOPE_FOLLOWER_TAG, DUAL_TAG);

+ 17
- 21
src/SlewLimiter.cpp View File

@@ -57,29 +57,25 @@ void ::SlewLimiter::step() {
}


SlewLimiterWidget::SlewLimiterWidget() {
::SlewLimiter *module = new ::SlewLimiter();
setModule(module);
box.size = Vec(15*6, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/SlewLimiter.svg")));
addChild(panel);
}
struct SlewLimiterWidget : ModuleWidget {
SlewLimiterWidget(SlewLimiter *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/SlewLimiter.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));

addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(27, 39), module, ::SlewLimiter::SHAPE_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(27, 39), module, ::SlewLimiter::SHAPE_PARAM, 0.0, 1.0, 0.0));

addParam(ParamWidget::create<BefacoSlidePot>(Vec(15, 102), module, ::SlewLimiter::RISE_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(60, 102), module, ::SlewLimiter::FALL_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(15, 102), module, ::SlewLimiter::RISE_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(60, 102), module, ::SlewLimiter::FALL_PARAM, 0.0, 1.0, 0.0));

addInput(Port::create<PJ301MPort>(Vec(10, 273), Port::INPUT, module, ::SlewLimiter::RISE_INPUT));
addInput(Port::create<PJ301MPort>(Vec(55, 273), Port::INPUT, module, ::SlewLimiter::FALL_INPUT));
addInput(Port::create<PJ301MPort>(Vec(10, 273), Port::INPUT, module, ::SlewLimiter::RISE_INPUT));
addInput(Port::create<PJ301MPort>(Vec(55, 273), Port::INPUT, module, ::SlewLimiter::FALL_INPUT));

addInput(Port::create<PJ301MPort>(Vec(10, 323), Port::INPUT, module, ::SlewLimiter::IN_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(55, 323), Port::OUTPUT, module, ::SlewLimiter::OUT_OUTPUT));
}
addInput(Port::create<PJ301MPort>(Vec(10, 323), Port::INPUT, module, ::SlewLimiter::IN_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(55, 323), Port::OUTPUT, module, ::SlewLimiter::OUT_OUTPUT));
}
};


Model *modelSlewLimiter = Model::create<SlewLimiter, SlewLimiterWidget>("Befaco", "SlewLimiter", "Slew Limiter", SLEW_LIMITER_TAG, ENVELOPE_FOLLOWER_TAG);

+ 35
- 39
src/SpringReverb.cpp View File

@@ -263,45 +263,41 @@ void SpringReverb::step() {
}


SpringReverbWidget::SpringReverbWidget() {
SpringReverb *module = new SpringReverb();
setModule(module);
box.size = Vec(15*8, 380);

{
SVGPanel *panel = new SVGPanel();
panel->box.size = box.size;
panel->setBackground(SVG::load(assetPlugin(plugin, "res/SpringReverb.svg")));
addChild(panel);
struct SpringReverbWidget : ModuleWidget {
SpringReverbWidget(SpringReverb *module) : ModuleWidget(module) {
setPanel(SVG::load(assetPlugin(plugin, "res/SpringReverb.svg")));

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15*6, 0)));
addChild(Widget::create<Knurlie>(Vec(15*6, 365)));

addParam(ParamWidget::create<BefacoBigKnob>(Vec(22, 29), module, SpringReverb::WET_PARAM, 0.0, 1.0, 0.5));

addParam(ParamWidget::create<BefacoSlidePot>(Vec(12, 116), module, SpringReverb::LEVEL1_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(93, 116), module, SpringReverb::LEVEL2_PARAM, 0.0, 1.0, 0.0));

addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(42, 210), module, SpringReverb::HPF_PARAM, 0.0, 1.0, 0.5));

addInput(Port::create<PJ301MPort>(Vec(7, 243), Port::INPUT, module, SpringReverb::CV1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(88, 243), Port::INPUT, module, SpringReverb::CV2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(27, 281), Port::INPUT, module, SpringReverb::IN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(67, 281), Port::INPUT, module, SpringReverb::IN2_INPUT));

addOutput(Port::create<PJ301MPort>(Vec(7, 317), Port::OUTPUT, module, SpringReverb::MIX_OUTPUT));
addInput(Port::create<PJ301MPort>(Vec(47, 324), Port::INPUT, module, SpringReverb::MIX_CV_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(88, 317), Port::OUTPUT, module, SpringReverb::WET_OUTPUT));

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(55, 269), module, SpringReverb::PEAK_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<RedLight>>(Vec(55, 113), module, SpringReverb::VU1_LIGHT + 0));
addChild(ModuleLightWidget::create<MediumLight<YellowLight>>(Vec(55, 126), module, SpringReverb::VU1_LIGHT + 1));
addChild(ModuleLightWidget::create<MediumLight<YellowLight>>(Vec(55, 138), module, SpringReverb::VU1_LIGHT + 2));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 150), module, SpringReverb::VU1_LIGHT + 3));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 163), module, SpringReverb::VU1_LIGHT + 4));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 175), module, SpringReverb::VU1_LIGHT + 5));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 188), module, SpringReverb::VU1_LIGHT + 6));
}
};

addChild(Widget::create<Knurlie>(Vec(15, 0)));
addChild(Widget::create<Knurlie>(Vec(15, 365)));
addChild(Widget::create<Knurlie>(Vec(15*6, 0)));
addChild(Widget::create<Knurlie>(Vec(15*6, 365)));

addParam(ParamWidget::create<BefacoBigKnob>(Vec(22, 29), module, SpringReverb::WET_PARAM, 0.0, 1.0, 0.5));

addParam(ParamWidget::create<BefacoSlidePot>(Vec(12, 116), module, SpringReverb::LEVEL1_PARAM, 0.0, 1.0, 0.0));
addParam(ParamWidget::create<BefacoSlidePot>(Vec(93, 116), module, SpringReverb::LEVEL2_PARAM, 0.0, 1.0, 0.0));

addParam(ParamWidget::create<Davies1900hWhiteKnob>(Vec(42, 210), module, SpringReverb::HPF_PARAM, 0.0, 1.0, 0.5));

addInput(Port::create<PJ301MPort>(Vec(7, 243), Port::INPUT, module, SpringReverb::CV1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(88, 243), Port::INPUT, module, SpringReverb::CV2_INPUT));
addInput(Port::create<PJ301MPort>(Vec(27, 281), Port::INPUT, module, SpringReverb::IN1_INPUT));
addInput(Port::create<PJ301MPort>(Vec(67, 281), Port::INPUT, module, SpringReverb::IN2_INPUT));

addOutput(Port::create<PJ301MPort>(Vec(7, 317), Port::OUTPUT, module, SpringReverb::MIX_OUTPUT));
addInput(Port::create<PJ301MPort>(Vec(47, 324), Port::INPUT, module, SpringReverb::MIX_CV_INPUT));
addOutput(Port::create<PJ301MPort>(Vec(88, 317), Port::OUTPUT, module, SpringReverb::WET_OUTPUT));

addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(55, 269), module, SpringReverb::PEAK_LIGHT));
addChild(ModuleLightWidget::create<MediumLight<RedLight>>(Vec(55, 113), module, SpringReverb::VU1_LIGHT + 0));
addChild(ModuleLightWidget::create<MediumLight<YellowLight>>(Vec(55, 126), module, SpringReverb::VU1_LIGHT + 1));
addChild(ModuleLightWidget::create<MediumLight<YellowLight>>(Vec(55, 138), module, SpringReverb::VU1_LIGHT + 2));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 150), module, SpringReverb::VU1_LIGHT + 3));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 163), module, SpringReverb::VU1_LIGHT + 4));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 175), module, SpringReverb::VU1_LIGHT + 5));
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(55, 188), module, SpringReverb::VU1_LIGHT + 6));
}
Model *modelSpringReverb = Model::create<SpringReverb, SpringReverbWidget>("Befaco", "SpringReverb", "Spring Reverb", REVERB_TAG, DUAL_TAG);

Loading…
Cancel
Save