BogaudioModules

BogaudioModules for VCV Rack
Log | Files | Refs | README | LICENSE

commit e9aedd4c77d07a1cd122d75b6739e6bcfa15e751
parent 62ff449599c2fdaf6b059247e7fc5aae8d8a84d6
Author: Matt Demanett <matt@demanett.net>
Date:   Sat, 18 May 2019 23:04:32 -0400

v1: config(), setModule(), configParam() most places.

Diffstat:
Msrc/AD.cpp | 11++++++-----
Msrc/AD.hpp | 8+++++++-
Msrc/ADSR.cpp | 13+++++++------
Msrc/ADSR.hpp | 9++++++++-
Msrc/AMRM.cpp | 7++++---
Msrc/AMRM.hpp | 5++++-
Msrc/Additator.cpp | 46+++++++++++++---------------------------------
Msrc/Additator.hpp | 16++++++++++++++--
Msrc/AddrSeq.cpp | 25+++++++++++++------------
Msrc/AddrSeq.hpp | 15++++++++++++++-
Msrc/Analyzer.cpp | 11++++++-----
Msrc/AnalyzerXL.cpp | 3++-
Msrc/Blank3.cpp | 3++-
Msrc/Blank3.hpp | 3++-
Msrc/Blank6.cpp | 3++-
Msrc/Blank6.hpp | 3++-
Msrc/Bool.cpp | 3++-
Msrc/Bool.hpp | 5+++--
Msrc/CVD.cpp | 9+++++----
Msrc/CVD.hpp | 8++++++--
Msrc/Clpr.cpp | 9+++++----
Msrc/Clpr.hpp | 7++++++-
Msrc/Cmp.cpp | 13+++++++------
Msrc/Cmp.hpp | 9++++++++-
Msrc/DADSRH.cpp | 31++++++++++++++++---------------
Msrc/DADSRH.hpp | 15+++++++++++++++
Msrc/DADSRHPlus.cpp | 31++++++++++++++++---------------
Msrc/DADSRHPlus.hpp | 15+++++++++++++++
Msrc/DGate.cpp | 11++++++-----
Msrc/DGate.hpp | 5+++++
Msrc/Detune.cpp | 5+++--
Msrc/Detune.hpp | 4+++-
Msrc/EightOne.cpp | 9+++++----
Msrc/EightOne.hpp | 7++++++-
Msrc/FMOp.cpp | 27++++++++++++++-------------
Msrc/FMOp.hpp | 17+++++++++++++++--
Msrc/FlipFlop.cpp | 3++-
Msrc/FlipFlop.hpp | 3++-
Msrc/Follow.cpp | 7++++---
Msrc/Follow.hpp | 7+++++--
Msrc/LFO.cpp | 12++++++------
Msrc/LLFO.cpp | 10+++++-----
Msrc/Lag.cpp | 9+++++----
Msrc/Lag.hpp | 7++++++-
Msrc/Lmtr.cpp | 9+++++----
Msrc/Lmtr.hpp | 7++++++-
Msrc/Manual.cpp | 5+++--
Msrc/Manual.hpp | 2++
Msrc/Matrix88.cpp | 133++++++++++++++++++++++++++++++++++++++++---------------------------------------
Msrc/Matrix88.hpp | 68+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Msrc/Mix1.cpp | 14++++----------
Msrc/Mix1.hpp | 7+++++--
Msrc/Mult.cpp | 3++-
Msrc/Mult.hpp | 5+++--
Msrc/Mute8.cpp | 19++++++++++---------
Msrc/Mute8.hpp | 12+++++++++++-
Msrc/Noise.cpp | 3++-
Msrc/Noise.hpp | 4+++-
Msrc/Nsgt.cpp | 9+++++----
Msrc/Nsgt.hpp | 7++++++-
Msrc/Offset.cpp | 4++--
Msrc/Offset.hpp | 5++++-
Msrc/OneEight.cpp | 9+++++----
Msrc/OneEight.hpp | 7++++++-
Msrc/Pan.cpp | 7++++---
Msrc/Pan.hpp | 6+++++-
Msrc/Pressor.cpp | 23++++++++++++-----------
Msrc/Pressor.hpp | 15+++++++++++++--
Msrc/Reftone.cpp | 9+++++----
Msrc/Reftone.hpp | 7++++++-
Msrc/SampleHold.cpp | 11++++++-----
Msrc/SampleHold.hpp | 9+++++++--
Msrc/Shaper.cpp | 21+++++++++++----------
Msrc/Shaper.hpp | 10++++++++++
Msrc/ShaperPlus.cpp | 21+++++++++++----------
Msrc/ShaperPlus.hpp | 10++++++++++
Msrc/Slew.cpp | 11++++++-----
Msrc/Slew.hpp | 8+++++++-
Msrc/Stack.cpp | 11++++++-----
Msrc/Stack.hpp | 7++++++-
Msrc/Sums.hpp | 1+
Msrc/Test.cpp | 9+++++----
Msrc/Test.hpp | 4++++
Msrc/Test2.cpp | 15++++++++-------
Msrc/Test2.hpp | 10+++++++++-
Msrc/UMix.cpp | 5+++--
Msrc/UMix.hpp | 4+++-
Msrc/VCA.cpp | 9+++++----
Msrc/VCA.hpp | 7++++++-
Msrc/VCAmp.cpp | 12+++---------
Msrc/VCAmp.hpp | 5++++-
Msrc/VCM.cpp | 12++++++------
Msrc/VCM.hpp | 7+++++++
Msrc/VCO.cpp | 15++++++++-------
Msrc/VCO.hpp | 10+++++++++-
Msrc/VU.cpp | 3++-
Msrc/VU.hpp | 3++-
Msrc/Walk.cpp | 9+++++----
Msrc/Walk.hpp | 7++++++-
Msrc/Walk2.cpp | 15++++++++-------
Msrc/Walk2.hpp | 11+++++++++--
Msrc/XCO.cpp | 37+++++++++++++++++++------------------
Msrc/XCO.hpp | 21++++++++++++++++++++-
Msrc/XFade.cpp | 9+++++----
Msrc/XFade.hpp | 7++++++-
105 files changed, 808 insertions(+), 436 deletions(-)

diff --git a/src/AD.cpp b/src/AD.cpp @@ -63,7 +63,8 @@ void AD::process(const ProcessArgs& args) { struct ADWidget : ModuleWidget { static constexpr int hp = 3; - ADWidget(AD* module) : ModuleWidget(module) { + ADWidget(AD* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -95,10 +96,10 @@ struct ADWidget : ModuleWidget { auto linearLightPosition = Vec(2.5, 147.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(attackParamPosition, module, AD::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob29>(decayParamPosition, module, AD::DECAY_PARAM, 0.0, 1.0, 0.31623)); - addParam(createParam<StatefulButton9>(loopParamPosition, module, AD::LOOP_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, AD::LINEAR_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob29>(attackParamPosition, module, AD::ATTACK_PARAM)); + addParam(createParam<Knob29>(decayParamPosition, module, AD::DECAY_PARAM)); + addParam(createParam<StatefulButton9>(loopParamPosition, module, AD::LOOP_PARAM)); + addParam(createParam<StatefulButton9>(linearParamPosition, module, AD::LINEAR_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, AD::TRIGGER_INPUT)); addInput(createInput<Port24>(attackInputPosition, module, AD::ATTACK_INPUT)); diff --git a/src/AD.hpp b/src/AD.hpp @@ -51,7 +51,13 @@ struct AD : Module { bogaudio::dsp::SlewLimiter _attackSL; bogaudio::dsp::SlewLimiter _decaySL; - AD() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + AD() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "decay"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 0.0f, "loop"); + configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "linear"); + onReset(); onSampleRateChange(); _envelope.setSustain(0.0f); diff --git a/src/ADSR.cpp b/src/ADSR.cpp @@ -42,7 +42,8 @@ void ADSR::process(const ProcessArgs& args) { struct ADSRWidget : ModuleWidget { static constexpr int hp = 3; - ADSRWidget(ADSR* module) : ModuleWidget(module) { + ADSRWidget(ADSR* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -73,11 +74,11 @@ struct ADSRWidget : ModuleWidget { auto linearLightPosition = Vec(4.0, 247.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(attackParamPosition, module, ADSR::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob29>(decayParamPosition, module, ADSR::DECAY_PARAM, 0.0, 1.0, 0.31623)); - addParam(createParam<Knob29>(sustainParamPosition, module, ADSR::SUSTAIN_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob29>(releaseParamPosition, module, ADSR::RELEASE_PARAM, 0.0, 1.0, 0.31623)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, ADSR::LINEAR_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob29>(attackParamPosition, module, ADSR::ATTACK_PARAM)); + addParam(createParam<Knob29>(decayParamPosition, module, ADSR::DECAY_PARAM)); + addParam(createParam<Knob29>(sustainParamPosition, module, ADSR::SUSTAIN_PARAM)); + addParam(createParam<Knob29>(releaseParamPosition, module, ADSR::RELEASE_PARAM)); + addParam(createParam<StatefulButton9>(linearParamPosition, module, ADSR::LINEAR_PARAM)); addInput(createInput<Port24>(gateInputPosition, module, ADSR::GATE_INPUT)); diff --git a/src/ADSR.hpp b/src/ADSR.hpp @@ -42,7 +42,14 @@ struct ADSR : Module { Trigger _gateTrigger; bogaudio::dsp::ADSR _envelope; - ADSR() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + ADSR() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "decay"); + configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 1.0f, "sustain"); + configParam(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "release"); + configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "linear"); + onReset(); onSampleRateChange(); } diff --git a/src/AMRM.cpp b/src/AMRM.cpp @@ -34,7 +34,8 @@ void AMRM::process(const ProcessArgs& args) { struct AMRMWidget : ModuleWidget { static constexpr int hp = 6; - AMRMWidget(AMRM* module) : ModuleWidget(module) { + AMRMWidget(AMRM* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -60,8 +61,8 @@ struct AMRMWidget : ModuleWidget { auto outOutputPosition = Vec(50.0, 320.0); // end generated by svg_widgets.rb - addParam(createParam<Knob45>(rectifyParamPosition, module, AMRM::RECTIFY_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob45>(drywetParamPosition, module, AMRM::DRYWET_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob45>(rectifyParamPosition, module, AMRM::RECTIFY_PARAM)); + addParam(createParam<Knob45>(drywetParamPosition, module, AMRM::DRYWET_PARAM)); addInput(createInput<Port24>(modulatorInputPosition, module, AMRM::MODULATOR_INPUT)); addInput(createInput<Port24>(carrierInputPosition, module, AMRM::CARRIER_INPUT)); diff --git a/src/AMRM.hpp b/src/AMRM.hpp @@ -36,7 +36,10 @@ struct AMRM : Module { Saturator _saturator; - AMRM() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + AMRM() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RECTIFY_PARAM, 0.0f, 1.0f, 0.0f, "rectify"); + configParam(DRYWET_PARAM, 0.0f, 1.0f, 1.0f, "drywet"); } void process(const ProcessArgs& args) override; diff --git a/src/Additator.cpp b/src/Additator.cpp @@ -159,7 +159,8 @@ void Additator::process(const ProcessArgs& args) { struct AdditatorWidget : ModuleWidget { static constexpr int hp = 15; - AdditatorWidget(Additator* module) : ModuleWidget(module) { + AdditatorWidget(Additator* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -204,42 +205,21 @@ struct AdditatorWidget : ModuleWidget { auto cosineLightPosition = Vec(185.0, 287.0); // end generated by svg_widgets.rb - addParam(createParam<Knob68>(frequencyParamPosition, module, Additator::FREQUENCY_PARAM, -3.0, 6.0, 0.0)); + addParam(createParam<Knob68>(frequencyParamPosition, module, Additator::FREQUENCY_PARAM)); { - auto w = createParam<Knob38>(partialsParamPosition, module, Additator::PARTIALS_PARAM, 1.0, Additator::maxPartials, Additator::maxPartials / 5.0); + auto w = createParam<Knob38>(partialsParamPosition, module, Additator::PARTIALS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<Knob16>(fineParamPosition, module, Additator::FINE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(widthParamPosition, module, Additator::WIDTH_PARAM, 0.0, maxWidth, maxWidth / 2.0)); - addParam(createParam<Knob26>(oddSkewParamPosition, module, Additator::ODD_SKEW_PARAM, -maxSkew, maxSkew, 0.0)); - addParam(createParam<Knob26>(evenSkewParamPosition, module, Additator::EVEN_SKEW_PARAM, -maxSkew, maxSkew, 0.0)); - addParam(createParam<Knob26>( - gainParamPosition, - module, - Additator::GAIN_PARAM, - minAmplitudeNormalization, - maxAmplitudeNormalization, - (maxAmplitudeNormalization - minAmplitudeNormalization) / 2.0 + minAmplitudeNormalization - )); - addParam(createParam<Knob26>( - decayParamPosition, - module, - Additator::DECAY_PARAM, - minDecay, - maxDecay, - (maxDecay - minDecay) / 2.0 + minDecay - )); - addParam(createParam<Knob26>(balanceParamPosition, module, Additator::BALANCE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>( - filterParamPosition, - module, - Additator::FILTER_PARAM, - minFilter, - maxFilter, - (maxFilter - minFilter) / 2.0 + minFilter - )); - addParam(createParam<StatefulButton9>(phaseParamPosition, module, Additator::PHASE_PARAM, 1.0, 2.0, 1.0)); + addParam(createParam<Knob16>(fineParamPosition, module, Additator::FINE_PARAM)); + addParam(createParam<Knob26>(widthParamPosition, module, Additator::WIDTH_PARAM)); + addParam(createParam<Knob26>(oddSkewParamPosition, module, Additator::ODD_SKEW_PARAM)); + addParam(createParam<Knob26>(evenSkewParamPosition, module, Additator::EVEN_SKEW_PARAM)); + addParam(createParam<Knob26>gainParamPosition, module, Additator::GAIN_PARAM)); + addParam(createParam<Knob26>decayParamPosition, module, Additator::DECAY_PARAM)); + addParam(createParam<Knob26>(balanceParamPosition, module, Additator::BALANCE_PARAM)); + addParam(createParam<Knob26>filterParamPosition, module, Additator::FILTER_PARAM)); + addParam(createParam<StatefulButton9>(phaseParamPosition, module, Additator::PHASE_PARAM)); addInput(createInput<Port24>(partialsInputPosition, module, Additator::PARTIALS_INPUT)); addInput(createInput<Port24>(widthInputPosition, module, Additator::WIDTH_INPUT)); diff --git a/src/Additator.hpp b/src/Additator.hpp @@ -83,9 +83,21 @@ struct Additator : Module { bogaudio::dsp::SlewLimiter _filterSL; Additator() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _oscillator(1000.0f, 100.0f, maxPartials) + : _oscillator(1000.0f, 100.0f, maxPartials) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(FREQUENCY_PARAM, -3.0f, 6.0f, 0.0f, "frequency"); + configParam(PARTIALS_PARAM, 1.0f, Additator::maxPartials, Additator::maxPartials / 5.0f, "partials"); + configParam(FINE_PARAM, -1.0f, 1.0f, 0.0f, "fine"); + configParam(WIDTH_PARAM, 0.0f, maxWidth, maxWidth / 2.0f, "width"); + configParam(ODD_SKEW_PARAM, -maxSkew, maxSkew, 0.0f, "odd_skew"); + configParam(EVEN_SKEW_PARAM, -maxSkew, maxSkew, 0.0f, "even_skew"); + configParam(GAIN_PARAM, minAmplitudeNormalization, maxAmplitudeNormalization, (maxAmplitudeNormalization - minAmplitudeNormalization, "gain"); + configParam(DECAY_PARAM, minDecay, maxDecay, (maxDecay - minDecay, "decay"); + configParam(BALANCE_PARAM, -1.0f, 1.0f, 0.0f, "balance"); + configParam(FILTER_PARAM, minFilter, maxFilter, (maxFilter - minFilter, "filter"); + configParam(PHASE_PARAM, 1.0f, 2.0f, 1.0f, "phase"); + onReset(); onSampleRateChange(); } diff --git a/src/AddrSeq.cpp b/src/AddrSeq.cpp @@ -76,7 +76,8 @@ struct SelectOnClockMenuItem : MenuItem { struct AddrSeqWidget : ModuleWidget { static constexpr int hp = 6; - AddrSeqWidget(AddrSeq* module) : ModuleWidget(module) { + AddrSeqWidget(AddrSeq* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -119,24 +120,24 @@ struct AddrSeqWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob16>(stepsParamPosition, module, AddrSeq::STEPS_PARAM, 1.0, 8.0, 8.0); + auto w = createParam<Knob16>(stepsParamPosition, module, AddrSeq::STEPS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, AddrSeq::DIRECTION_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, AddrSeq::DIRECTION_PARAM)); { - auto w = createParam<Knob29>(selectParamPosition, module, AddrSeq::SELECT_PARAM, 0.0, 7.0, 0.0); + auto w = createParam<Knob29>(selectParamPosition, module, AddrSeq::SELECT_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<Knob16>(out1ParamPosition, module, AddrSeq::OUT1_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out2ParamPosition, module, AddrSeq::OUT2_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out3ParamPosition, module, AddrSeq::OUT3_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out4ParamPosition, module, AddrSeq::OUT4_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out5ParamPosition, module, AddrSeq::OUT5_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out6ParamPosition, module, AddrSeq::OUT6_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out7ParamPosition, module, AddrSeq::OUT7_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(out8ParamPosition, module, AddrSeq::OUT8_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob16>(out1ParamPosition, module, AddrSeq::OUT1_PARAM)); + addParam(createParam<Knob16>(out2ParamPosition, module, AddrSeq::OUT2_PARAM)); + addParam(createParam<Knob16>(out3ParamPosition, module, AddrSeq::OUT3_PARAM)); + addParam(createParam<Knob16>(out4ParamPosition, module, AddrSeq::OUT4_PARAM)); + addParam(createParam<Knob16>(out5ParamPosition, module, AddrSeq::OUT5_PARAM)); + addParam(createParam<Knob16>(out6ParamPosition, module, AddrSeq::OUT6_PARAM)); + addParam(createParam<Knob16>(out7ParamPosition, module, AddrSeq::OUT7_PARAM)); + addParam(createParam<Knob16>(out8ParamPosition, module, AddrSeq::OUT8_PARAM)); addInput(createInput<Port24>(clockInputPosition, module, AddrSeq::CLOCK_INPUT)); addInput(createInput<Port24>(resetInputPosition, module, AddrSeq::RESET_INPUT)); diff --git a/src/AddrSeq.hpp b/src/AddrSeq.hpp @@ -56,7 +56,20 @@ struct AddrSeq : Module { bool _selectOnClock = false; int _select = 0; - AddrSeq() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + AddrSeq() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(STEPS_PARAM, 1.0f, 8.0f, 8.0f, "steps"); + configParam(DIRECTION_PARAM, 0.0f, 1.0f, 1.0f, "direction"); + configParam(SELECT_PARAM, 0.0f, 7.0f, 0.0f, "select"); + configParam(OUT1_PARAM, -1.0f, 1.0f, 0.0f, "out1"); + configParam(OUT2_PARAM, -1.0f, 1.0f, 0.0f, "out2"); + configParam(OUT3_PARAM, -1.0f, 1.0f, 0.0f, "out3"); + configParam(OUT4_PARAM, -1.0f, 1.0f, 0.0f, "out4"); + configParam(OUT5_PARAM, -1.0f, 1.0f, 0.0f, "out5"); + configParam(OUT6_PARAM, -1.0f, 1.0f, 0.0f, "out6"); + configParam(OUT7_PARAM, -1.0f, 1.0f, 0.0f, "out7"); + configParam(OUT8_PARAM, -1.0f, 1.0f, 0.0f, "out8"); + onReset(); onSampleRateChange(); } diff --git a/src/Analyzer.cpp b/src/Analyzer.cpp @@ -104,7 +104,8 @@ struct RangeDbMenuItem : MenuItem { struct AnalyzerWidget : ModuleWidget { static constexpr int hp = 20; - AnalyzerWidget(Analyzer* module) : ModuleWidget(module) { + AnalyzerWidget(Analyzer* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -152,10 +153,10 @@ struct AnalyzerWidget : ModuleWidget { auto windowKaiserLightPosition = Vec(241.0, 295.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(range2ParamPosition, module, Analyzer::RANGE2_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob38>(smoothParamPosition, module, Analyzer::SMOOTH_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<StatefulButton9>(qualityParamPosition, module, Analyzer::QUALITY_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<StatefulButton9>(windowParamPosition, module, Analyzer::WINDOW_PARAM, 1.0, 3.0, 1.0)); + addParam(createParam<Knob38>(range2ParamPosition, module, Analyzer::RANGE2_PARAM)); + addParam(createParam<Knob38>(smoothParamPosition, module, Analyzer::SMOOTH_PARAM)); + addParam(createParam<StatefulButton9>(qualityParamPosition, module, Analyzer::QUALITY_PARAM)); + addParam(createParam<StatefulButton9>(windowParamPosition, module, Analyzer::WINDOW_PARAM)); addInput(createInput<Port24>(signalaInputPosition, module, Analyzer::SIGNALA_INPUT)); addInput(createInput<Port24>(signalbInputPosition, module, Analyzer::SIGNALB_INPUT)); diff --git a/src/AnalyzerXL.cpp b/src/AnalyzerXL.cpp @@ -242,7 +242,8 @@ struct WindowMenuItem : MenuItem { struct AnalyzerXLWidget : ModuleWidget { static constexpr int hp = 42; - AnalyzerXLWidget(AnalyzerXL* module) : ModuleWidget(module) { + AnalyzerXLWidget(AnalyzerXL* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Blank3.cpp b/src/Blank3.cpp @@ -67,7 +67,8 @@ struct Blank3Display : OpaqueWidget { struct Blank3Widget : ModuleWidget { static constexpr int hp = 3; - Blank3Widget(Blank3* module) : ModuleWidget(module) { + Blank3Widget(Blank3* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Blank3.hpp b/src/Blank3.hpp @@ -30,7 +30,8 @@ struct Blank3 : Module { RootMeanSquare _rms; float _level = 0.0f; - Blank3() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Blank3() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); onSampleRateChange(); } diff --git a/src/Blank6.cpp b/src/Blank6.cpp @@ -67,7 +67,8 @@ struct Blank6Display : OpaqueWidget { struct Blank6Widget : ModuleWidget { static constexpr int hp = 6; - Blank6Widget(Blank6* module) : ModuleWidget(module) { + Blank6Widget(Blank6* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Blank6.hpp b/src/Blank6.hpp @@ -30,7 +30,8 @@ struct Blank6 : Module { RootMeanSquare _rms; float _level = 0.0f; - Blank6() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Blank6() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); onSampleRateChange(); } diff --git a/src/Bool.cpp b/src/Bool.cpp @@ -14,7 +14,8 @@ void Bool::process(const ProcessArgs& args) { struct BoolWidget : ModuleWidget { static constexpr int hp = 3; - BoolWidget(Bool* module) : ModuleWidget(module) { + BoolWidget(Bool* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Bool.hpp b/src/Bool.hpp @@ -30,8 +30,9 @@ struct Bool : Module { NUM_LIGHTS }; - Bool() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { - } + Bool() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + } void process(const ProcessArgs& args) override; }; diff --git a/src/CVD.cpp b/src/CVD.cpp @@ -36,7 +36,8 @@ void CVD::process(const ProcessArgs& args) { struct CVDWidget : ModuleWidget { static constexpr int hp = 3; - CVDWidget(CVD* module) : ModuleWidget(module) { + CVDWidget(CVD* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -61,9 +62,9 @@ struct CVDWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 305.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(timeParamPosition, module, CVD::TIME_PARAM, 0.0, 1.0, 0.5)); + addParam(createParam<Knob29>(timeParamPosition, module, CVD::TIME_PARAM)); { - auto w = createParam<Knob16>(timeScaleParamPosition, module, CVD::TIME_SCALE_PARAM, 0.0, 2.0, 1.0); + auto w = createParam<Knob16>(timeScaleParamPosition, module, CVD::TIME_SCALE_PARAM); auto k = dynamic_cast<SVGKnob*>(w); k->snap = true; k->minAngle = -M_PI / 4.0f; @@ -71,7 +72,7 @@ struct CVDWidget : ModuleWidget { k->speed = 3.0; addParam(w); } - addParam(createParam<Knob29>(mixParamPosition, module, CVD::MIX_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob29>(mixParamPosition, module, CVD::MIX_PARAM)); addInput(createInput<Port24>(timeInputPosition, module, CVD::TIME_INPUT)); addInput(createInput<Port24>(mixInputPosition, module, CVD::MIX_INPUT)); diff --git a/src/CVD.hpp b/src/CVD.hpp @@ -37,9 +37,13 @@ struct CVD : Module { CrossFader _mix; CVD() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _delay(1000.0f, 10000.0f) + : _delay(1000.0f, 10000.0f) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(TIME_PARAM, 0.0f, 1.0f, 0.5f, "time"); + configParam(TIME_SCALE_PARAM, 0.0f, 2.0f, 1.0f, "time_scale"); + configParam(MIX_PARAM, -1.0f, 1.0f, 0.0f, "mix"); + onSampleRateChange(); } diff --git a/src/Clpr.cpp b/src/Clpr.cpp @@ -51,7 +51,8 @@ void Clpr::process(const ProcessArgs& args) { struct ClprWidget : ModuleWidget { static constexpr int hp = 6; - ClprWidget(Clpr* module) : ModuleWidget(module) { + ClprWidget(Clpr* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -78,9 +79,9 @@ struct ClprWidget : ModuleWidget { auto rightOutputPosition = Vec(50.0, 320.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(thresholdParamPosition, module, Clpr::THRESHOLD_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(outputGainParamPosition, module, Clpr::OUTPUT_GAIN_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Clpr::KNEE_PARAM, 0.95, 1.0, 0.0)); + addParam(createParam<Knob38>(thresholdParamPosition, module, Clpr::THRESHOLD_PARAM)); + addParam(createParam<Knob38>(outputGainParamPosition, module, Clpr::OUTPUT_GAIN_PARAM)); + addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Clpr::KNEE_PARAM)); addInput(createInput<Port24>(leftInputPosition, module, Clpr::LEFT_INPUT)); addInput(createInput<Port24>(rightInputPosition, module, Clpr::RIGHT_INPUT)); diff --git a/src/Clpr.hpp b/src/Clpr.hpp @@ -46,7 +46,12 @@ struct Clpr : Module { Amplifier _amplifier; Saturator _saturator; - Clpr() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Clpr() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(THRESHOLD_PARAM, 0.0f, 1.0f, 0.8f, "threshold"); + configParam(OUTPUT_GAIN_PARAM, 0.0f, 1.0f, 0.0f, "output_gain"); + configParam(KNEE_PARAM, 0.95f, 1.0f, 0.0f, "knee"); + onReset(); } diff --git a/src/Cmp.cpp b/src/Cmp.cpp @@ -156,7 +156,8 @@ int Cmp::lagInSamples() { struct CmpWidget : ModuleWidget { static constexpr int hp = 6; - CmpWidget(Cmp* module) : ModuleWidget(module) { + CmpWidget(Cmp* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -187,12 +188,12 @@ struct CmpWidget : ModuleWidget { auto notEqualOutputPosition = Vec(50.0, 319.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(aParamPosition, module, Cmp::A_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob29>(bParamPosition, module, Cmp::B_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob29>(windowParamPosition, module, Cmp::WINDOW_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<Knob29>(lagParamPosition, module, Cmp::LAG_PARAM, 0.0, 1.0, 0.1)); + addParam(createParam<Knob29>(aParamPosition, module, Cmp::A_PARAM)); + addParam(createParam<Knob29>(bParamPosition, module, Cmp::B_PARAM)); + addParam(createParam<Knob29>(windowParamPosition, module, Cmp::WINDOW_PARAM)); + addParam(createParam<Knob29>(lagParamPosition, module, Cmp::LAG_PARAM)); { - auto w = createParam<Knob16>(outputParamPosition, module, Cmp::OUTPUT_PARAM, 0.0, 1.0, 0.0); + auto w = createParam<Knob16>(outputParamPosition, module, Cmp::OUTPUT_PARAM); auto k = dynamic_cast<SVGKnob*>(w); k->snap = true; k->minAngle = 3.0f * (M_PI / 8.0f); diff --git a/src/Cmp.hpp b/src/Cmp.hpp @@ -48,7 +48,14 @@ struct Cmp : Module { State _windowState; int _windowLag = 0; - Cmp() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Cmp() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(A_PARAM, -1.0f, 1.0f, 0.0f, "a"); + configParam(B_PARAM, -1.0f, 1.0f, 0.0f, "b"); + configParam(WINDOW_PARAM, 0.0f, 1.0f, 0.5f, "window"); + configParam(LAG_PARAM, 0.0f, 1.0f, 0.1f, "lag"); + configParam(OUTPUT_PARAM, 0.0f, 1.0f, 0.0f, "output"); + onReset(); } diff --git a/src/DADSRH.cpp b/src/DADSRH.cpp @@ -4,7 +4,8 @@ struct DADSRHWidget : ModuleWidget { static constexpr int hp = 10; - DADSRHWidget(DADSRH* module) : ModuleWidget(module) { + DADSRHWidget(DADSRH* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -57,20 +58,20 @@ struct DADSRHWidget : ModuleWidget { auto releaseShape3LightPosition = Vec(77.0, 284.5); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(delayParamPosition, module, DADSRH::DELAY_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob38>(attackParamPosition, module, DADSRH::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob38>(decayParamPosition, module, DADSRH::DECAY_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(sustainParamPosition, module, DADSRH::SUSTAIN_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<Knob38>(releaseParamPosition, module, DADSRH::RELEASE_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(holdParamPosition, module, DADSRH::HOLD_PARAM, 0.0, 1.0, 0.45)); - addParam(createParam<StatefulButton9>(attackShapeParamPosition, module, DADSRH::ATTACK_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<StatefulButton9>(decayShapeParamPosition, module, DADSRH::DECAY_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<StatefulButton9>(releaseShapeParamPosition, module, DADSRH::RELEASE_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<Button18>(triggerParamPosition, module, DADSRH::TRIGGER_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, DADSRH::MODE_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DADSRH::LOOP_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, DADSRH::SPEED_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(retriggerParamPosition, module, DADSRH::RETRIGGER_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob38>(delayParamPosition, module, DADSRH::DELAY_PARAM)); + addParam(createParam<Knob38>(attackParamPosition, module, DADSRH::ATTACK_PARAM)); + addParam(createParam<Knob38>(decayParamPosition, module, DADSRH::DECAY_PARAM)); + addParam(createParam<Knob38>(sustainParamPosition, module, DADSRH::SUSTAIN_PARAM)); + addParam(createParam<Knob38>(releaseParamPosition, module, DADSRH::RELEASE_PARAM)); + addParam(createParam<Knob38>(holdParamPosition, module, DADSRH::HOLD_PARAM)); + addParam(createParam<StatefulButton9>(attackShapeParamPosition, module, DADSRH::ATTACK_SHAPE_PARAM)); + addParam(createParam<StatefulButton9>(decayShapeParamPosition, module, DADSRH::DECAY_SHAPE_PARAM)); + addParam(createParam<StatefulButton9>(releaseShapeParamPosition, module, DADSRH::RELEASE_SHAPE_PARAM)); + addParam(createParam<Button18>(triggerParamPosition, module, DADSRH::TRIGGER_PARAM)); + addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, DADSRH::MODE_PARAM)); + addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DADSRH::LOOP_PARAM)); + addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, DADSRH::SPEED_PARAM)); + addParam(createParam<SliderSwitch2State14>(retriggerParamPosition, module, DADSRH::RETRIGGER_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, DADSRH::TRIGGER_INPUT)); diff --git a/src/DADSRH.hpp b/src/DADSRH.hpp @@ -115,6 +115,21 @@ struct DADSRH : TriggerOnLoadModule { _triggerOnLoad, _shouldTriggerOnLoad ) { + configParam(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "delay"); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.32f, "decay"); + configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 0.5f, "sustain"); + configParam(RELEASE_PARAM, 0.0f, 1.0f, 0.32f, "release"); + configParam(HOLD_PARAM, 0.0f, 1.0f, 0.45f, "hold"); + configParam(ATTACK_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "attack_shape"); + configParam(DECAY_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "decay_shape"); + configParam(RELEASE_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "release_shape"); + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + configParam(MODE_PARAM, 0.0f, 1.0f, 1.0f, "mode"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "loop"); + configParam(SPEED_PARAM, 0.0f, 1.0f, 1.0f, "speed"); + configParam(RETRIGGER_PARAM, 0.0f, 1.0f, 1.0f, "retrigger"); + onReset(); } diff --git a/src/DADSRHPlus.cpp b/src/DADSRHPlus.cpp @@ -4,7 +4,8 @@ struct DADSRHPlusWidget : ModuleWidget { static constexpr int hp = 15; - DADSRHPlusWidget(DADSRHPlus* module) : ModuleWidget(module) { + DADSRHPlusWidget(DADSRHPlus* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -68,20 +69,20 @@ struct DADSRHPlusWidget : ModuleWidget { auto releaseShape3LightPosition = Vec(77.0, 284.5); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(delayParamPosition, module, DADSRHPlus::DELAY_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob38>(attackParamPosition, module, DADSRHPlus::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob38>(decayParamPosition, module, DADSRHPlus::DECAY_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(sustainParamPosition, module, DADSRHPlus::SUSTAIN_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<Knob38>(releaseParamPosition, module, DADSRHPlus::RELEASE_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(holdParamPosition, module, DADSRHPlus::HOLD_PARAM, 0.0, 1.0, 0.45)); - addParam(createParam<StatefulButton9>(attackShapeParamPosition, module, DADSRHPlus::ATTACK_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<StatefulButton9>(decayShapeParamPosition, module, DADSRHPlus::DECAY_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<StatefulButton9>(releaseShapeParamPosition, module, DADSRHPlus::RELEASE_SHAPE_PARAM, 1.0, 3.0, 1.0)); - addParam(createParam<Button18>(triggerParamPosition, module, DADSRHPlus::TRIGGER_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, DADSRHPlus::MODE_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DADSRHPlus::LOOP_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, DADSRHPlus::SPEED_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(retriggerParamPosition, module, DADSRHPlus::RETRIGGER_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob38>(delayParamPosition, module, DADSRHPlus::DELAY_PARAM)); + addParam(createParam<Knob38>(attackParamPosition, module, DADSRHPlus::ATTACK_PARAM)); + addParam(createParam<Knob38>(decayParamPosition, module, DADSRHPlus::DECAY_PARAM)); + addParam(createParam<Knob38>(sustainParamPosition, module, DADSRHPlus::SUSTAIN_PARAM)); + addParam(createParam<Knob38>(releaseParamPosition, module, DADSRHPlus::RELEASE_PARAM)); + addParam(createParam<Knob38>(holdParamPosition, module, DADSRHPlus::HOLD_PARAM)); + addParam(createParam<StatefulButton9>(attackShapeParamPosition, module, DADSRHPlus::ATTACK_SHAPE_PARAM)); + addParam(createParam<StatefulButton9>(decayShapeParamPosition, module, DADSRHPlus::DECAY_SHAPE_PARAM)); + addParam(createParam<StatefulButton9>(releaseShapeParamPosition, module, DADSRHPlus::RELEASE_SHAPE_PARAM)); + addParam(createParam<Button18>(triggerParamPosition, module, DADSRHPlus::TRIGGER_PARAM)); + addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, DADSRHPlus::MODE_PARAM)); + addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DADSRHPlus::LOOP_PARAM)); + addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, DADSRHPlus::SPEED_PARAM)); + addParam(createParam<SliderSwitch2State14>(retriggerParamPosition, module, DADSRHPlus::RETRIGGER_PARAM)); addInput(createInput<Port24>(delayInputPosition, module, DADSRHPlus::DELAY_INPUT)); addInput(createInput<Port24>(attackInputPosition, module, DADSRHPlus::ATTACK_INPUT)); diff --git a/src/DADSRHPlus.hpp b/src/DADSRHPlus.hpp @@ -126,6 +126,21 @@ struct DADSRHPlus : TriggerOnLoadModule { _triggerOnLoad, _shouldTriggerOnLoad ) { + configParam(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "delay"); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.32f, "decay"); + configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 0.5f, "sustain"); + configParam(RELEASE_PARAM, 0.0f, 1.0f, 0.32f, "release"); + configParam(HOLD_PARAM, 0.0f, 1.0f, 0.45f, "hold"); + configParam(ATTACK_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "attack_shape"); + configParam(DECAY_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "decay_shape"); + configParam(RELEASE_SHAPE_PARAM, 1.0f, 3.0f, 1.0f, "release_shape"); + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + configParam(MODE_PARAM, 0.0f, 1.0f, 1.0f, "mode"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "loop"); + configParam(SPEED_PARAM, 0.0f, 1.0f, 1.0f, "speed"); + configParam(RETRIGGER_PARAM, 0.0f, 1.0f, 1.0f, "retrigger"); + onReset(); } diff --git a/src/DGate.cpp b/src/DGate.cpp @@ -73,7 +73,8 @@ bool DGate::stepStage(Param& knob) { struct DGateWidget : ModuleWidget { static constexpr int hp = 3; - DGateWidget(DGate* module) : ModuleWidget(module) { + DGateWidget(DGate* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -101,10 +102,10 @@ struct DGateWidget : ModuleWidget { auto gateLightPosition = Vec(20.8, 124.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(delayParamPosition, module, DGate::DELAY_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob29>(gateParamPosition, module, DGate::GATE_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DGate::LOOP_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Button18>(triggerParamPosition, module, DGate::TRIGGER_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob29>(delayParamPosition, module, DGate::DELAY_PARAM)); + addParam(createParam<Knob29>(gateParamPosition, module, DGate::GATE_PARAM)); + addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, DGate::LOOP_PARAM)); + addParam(createParam<Button18>(triggerParamPosition, module, DGate::TRIGGER_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, DGate::TRIGGER_INPUT)); diff --git a/src/DGate.hpp b/src/DGate.hpp @@ -45,6 +45,11 @@ struct DGate : TriggerOnLoadModule { float _stageProgress; DGate() : TriggerOnLoadModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + configParam(DELAY_PARAM, 0.0f, 1.0f, 0.0f, "delay"); + configParam(GATE_PARAM, 0.0f, 1.0f, 0.32f, "gate"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "loop"); + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + onReset(); } diff --git a/src/Detune.cpp b/src/Detune.cpp @@ -40,7 +40,8 @@ void Detune::process(const ProcessArgs& args) { struct DetuneWidget : ModuleWidget { static constexpr int hp = 3; - DetuneWidget(Detune* module) : ModuleWidget(module) { + DetuneWidget(Detune* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -65,7 +66,7 @@ struct DetuneWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob26>(centsParamPosition, module, Detune::CENTS_PARAM, 0.0, 50.0, 0.0); + auto w = createParam<Knob26>(centsParamPosition, module, Detune::CENTS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } diff --git a/src/Detune.hpp b/src/Detune.hpp @@ -37,7 +37,9 @@ struct Detune : Module { float _plusCV; float _minusCV; - Detune() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Detune() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(CENTS_PARAM, 0.0f, 50.0f, 0.0f, "cents"); } void process(const ProcessArgs& args) override; diff --git a/src/EightOne.cpp b/src/EightOne.cpp @@ -76,7 +76,8 @@ struct SelectOnClockMenuItem : MenuItem { struct EightOneWidget : ModuleWidget { static constexpr int hp = 6; - EightOneWidget(EightOne* module) : ModuleWidget(module) { + EightOneWidget(EightOne* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -119,13 +120,13 @@ struct EightOneWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob16>(stepsParamPosition, module, EightOne::STEPS_PARAM, 1.0, 8.0, 8.0); + auto w = createParam<Knob16>(stepsParamPosition, module, EightOne::STEPS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, EightOne::DIRECTION_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, EightOne::DIRECTION_PARAM)); { - auto w = createParam<Knob29>(selectParamPosition, module, EightOne::SELECT_PARAM, 0.0, 7.0, 0.0); + auto w = createParam<Knob29>(selectParamPosition, module, EightOne::SELECT_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } diff --git a/src/EightOne.hpp b/src/EightOne.hpp @@ -56,7 +56,12 @@ struct EightOne : Module { bool _selectOnClock = false; int _select = 0; - EightOne() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + EightOne() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(STEPS_PARAM, 1.0f, 8.0f, 8.0f, "steps"); + configParam(DIRECTION_PARAM, 0.0f, 1.0f, 1.0f, "direction"); + configParam(SELECT_PARAM, 0.0f, 7.0f, 0.0f, "select"); + onReset(); onSampleRateChange(); } diff --git a/src/FMOp.cpp b/src/FMOp.cpp @@ -209,7 +209,8 @@ struct LinearLevelMenuItem : MenuItem { struct FMOpWidget : ModuleWidget { static constexpr int hp = 10; - FMOpWidget(FMOp* module) : ModuleWidget(module) { + FMOpWidget(FMOp* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -253,18 +254,18 @@ struct FMOpWidget : ModuleWidget { auto envToLevelLightPosition = Vec(30.0, 253.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(ratioParamPosition, module, FMOp::RATIO_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(fineParamPosition, module, FMOp::FINE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(attackParamPosition, module, FMOp::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob26>(decayParamPosition, module, FMOp::DECAY_PARAM, 0.0, 1.0, 0.31623)); - addParam(createParam<Knob26>(sustainParamPosition, module, FMOp::SUSTAIN_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob26>(releaseParamPosition, module, FMOp::RELEASE_PARAM, 0.0, 1.0, 0.31623)); - addParam(createParam<Knob26>(depthParamPosition, module, FMOp::DEPTH_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(feedbackParamPosition, module, FMOp::FEEDBACK_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(levelParamPosition, module, FMOp::LEVEL_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<StatefulButton9>(envToLevelParamPosition, module, FMOp::ENV_TO_LEVEL_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(envToFeedbackParamPosition, module, FMOp::ENV_TO_FEEDBACK_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(envToDepthParamPosition, module, FMOp::ENV_TO_DEPTH_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob38>(ratioParamPosition, module, FMOp::RATIO_PARAM)); + addParam(createParam<Knob16>(fineParamPosition, module, FMOp::FINE_PARAM)); + addParam(createParam<Knob26>(attackParamPosition, module, FMOp::ATTACK_PARAM)); + addParam(createParam<Knob26>(decayParamPosition, module, FMOp::DECAY_PARAM)); + addParam(createParam<Knob26>(sustainParamPosition, module, FMOp::SUSTAIN_PARAM)); + addParam(createParam<Knob26>(releaseParamPosition, module, FMOp::RELEASE_PARAM)); + addParam(createParam<Knob26>(depthParamPosition, module, FMOp::DEPTH_PARAM)); + addParam(createParam<Knob26>(feedbackParamPosition, module, FMOp::FEEDBACK_PARAM)); + addParam(createParam<Knob26>(levelParamPosition, module, FMOp::LEVEL_PARAM)); + addParam(createParam<StatefulButton9>(envToLevelParamPosition, module, FMOp::ENV_TO_LEVEL_PARAM)); + addParam(createParam<StatefulButton9>(envToFeedbackParamPosition, module, FMOp::ENV_TO_FEEDBACK_PARAM)); + addParam(createParam<StatefulButton9>(envToDepthParamPosition, module, FMOp::ENV_TO_DEPTH_PARAM)); addInput(createInput<Port24>(sustainInputPosition, module, FMOp::SUSTAIN_INPUT)); addInput(createInput<Port24>(depthInputPosition, module, FMOp::DEPTH_INPUT)); diff --git a/src/FMOp.hpp b/src/FMOp.hpp @@ -81,9 +81,22 @@ struct FMOp : Module { bool _linearLevel = false; FMOp() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _envelope(true) + : _envelope(true) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RATIO_PARAM, -1.0f, 1.0f, 0.0f, "ratio"); + configParam(FINE_PARAM, -1.0f, 1.0f, 0.0f, "fine"); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.31623f, "decay"); + configParam(SUSTAIN_PARAM, 0.0f, 1.0f, 1.0f, "sustain"); + configParam(RELEASE_PARAM, 0.0f, 1.0f, 0.31623f, "release"); + configParam(DEPTH_PARAM, 0.0f, 1.0f, 0.0f, "depth"); + configParam(FEEDBACK_PARAM, 0.0f, 1.0f, 0.0f, "feedback"); + configParam(LEVEL_PARAM, 0.0f, 1.0f, 1.0f, "level"); + configParam(ENV_TO_LEVEL_PARAM, 0.0f, 1.0f, 0.0f, "env_to_level"); + configParam(ENV_TO_FEEDBACK_PARAM, 0.0f, 1.0f, 0.0f, "env_to_feedback"); + configParam(ENV_TO_DEPTH_PARAM, 0.0f, 1.0f, 0.0f, "env_to_depth"); + onReset(); onSampleRateChange(); } diff --git a/src/FlipFlop.cpp b/src/FlipFlop.cpp @@ -62,7 +62,8 @@ void FlipFlop::channelStep( struct FlipFlopWidget : ModuleWidget { static constexpr int hp = 3; - FlipFlopWidget(FlipFlop* module) : ModuleWidget(module) { + FlipFlopWidget(FlipFlop* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/FlipFlop.hpp b/src/FlipFlop.hpp @@ -41,7 +41,8 @@ struct FlipFlop : Module { PositiveZeroCrossing _trigger2; Trigger _resetTrigger2; - FlipFlop() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + FlipFlop() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); onReset(); } diff --git a/src/Follow.cpp b/src/Follow.cpp @@ -25,7 +25,8 @@ void Follow::process(const ProcessArgs& args) { struct FollowWidget : ModuleWidget { static constexpr int hp = 3; - FollowWidget(Follow* module) : ModuleWidget(module) { + FollowWidget(Follow* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -49,8 +50,8 @@ struct FollowWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 271.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(responseParamPosition, module, Follow::RESPONSE_PARAM, 0.0, 1.0, 0.3)); - addParam(createParam<Knob29>(scaleParamPosition, module, Follow::SCALE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob29>(responseParamPosition, module, Follow::RESPONSE_PARAM)); + addParam(createParam<Knob29>(scaleParamPosition, module, Follow::SCALE_PARAM)); addInput(createInput<Port24>(responseInputPosition, module, Follow::RESPONSE_INPUT)); addInput(createInput<Port24>(scaleInputPosition, module, Follow::SCALE_INPUT)); diff --git a/src/Follow.hpp b/src/Follow.hpp @@ -35,9 +35,12 @@ struct Follow : Module { RootMeanSquare _rms; Follow() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _rms(1000.0f, 1.0f, 500.0f) + : _rms(1000.0f, 1.0f, 500.0f) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RESPONSE_PARAM, 0.0f, 1.0f, 0.3f, "response"); + configParam(SCALE_PARAM, 0.0f, 1.0f, 1.0f, "scale"); + onSampleRateChange(); } diff --git a/src/LFO.cpp b/src/LFO.cpp @@ -144,13 +144,13 @@ struct LFOWidget : LFOBaseWidget { auto slowLightPosition = Vec(111.0, 240.0); // end generated by svg_widgets.rb - _frequencyKnob = createParam<Knob68>(frequencyParamPosition, module, LFO::FREQUENCY_PARAM, -8.0, 5.0, 0.0); + _frequencyKnob = createParam<Knob68>(frequencyParamPosition, module, LFO::FREQUENCY_PARAM); addParam(_frequencyKnob); - addParam(createParam<StatefulButton9>(slowParamPosition, module, LFO::SLOW_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(sampleParamPosition, module, LFO::SAMPLE_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(pwParamPosition, module, LFO::PW_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(offsetParamPosition, module, LFO::OFFSET_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(scaleParamPosition, module, LFO::SCALE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<StatefulButton9>(slowParamPosition, module, LFO::SLOW_PARAM)); + addParam(createParam<Knob26>(sampleParamPosition, module, LFO::SAMPLE_PARAM)); + addParam(createParam<Knob26>(pwParamPosition, module, LFO::PW_PARAM)); + addParam(createParam<Knob16>(offsetParamPosition, module, LFO::OFFSET_PARAM)); + addParam(createParam<Knob16>(scaleParamPosition, module, LFO::SCALE_PARAM)); addInput(createInput<Port24>(sampleInputPosition, module, LFO::SAMPLE_INPUT)); addInput(createInput<Port24>(pwInputPosition, module, LFO::PW_INPUT)); diff --git a/src/LLFO.cpp b/src/LLFO.cpp @@ -116,12 +116,12 @@ struct LLFOWidget : LFOBaseWidget { auto pulseLightPosition = Vec(24.0, 115.0); // end generated by svg_widgets.rb - _frequencyKnob = createParam<Knob26>(frequencyParamPosition, module, LLFO::FREQUENCY_PARAM, -8.0, 5.0, 0.0); + _frequencyKnob = createParam<Knob26>(frequencyParamPosition, module, LLFO::FREQUENCY_PARAM); addParam(_frequencyKnob); - addParam(createParam<StatefulButton9>(slowParamPosition, module, LLFO::SLOW_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(waveParamPosition, module, LLFO::WAVE_PARAM, 0.0, 5.0, 0.0)); - addParam(createParam<Knob16>(offsetParamPosition, module, LLFO::OFFSET_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(scaleParamPosition, module, LLFO::SCALE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<StatefulButton9>(slowParamPosition, module, LLFO::SLOW_PARAM)); + addParam(createParam<StatefulButton9>(waveParamPosition, module, LLFO::WAVE_PARAM)); + addParam(createParam<Knob16>(offsetParamPosition, module, LLFO::OFFSET_PARAM)); + addParam(createParam<Knob16>(scaleParamPosition, module, LLFO::SCALE_PARAM)); addInput(createInput<Port24>(pitchInputPosition, module, LLFO::PITCH_INPUT)); addInput(createInput<Port24>(resetInputPosition, module, LLFO::RESET_INPUT)); diff --git a/src/Lag.cpp b/src/Lag.cpp @@ -52,7 +52,8 @@ void Lag::process(const ProcessArgs& args) { struct LagWidget : ModuleWidget { static constexpr int hp = 3; - LagWidget(Lag* module) : ModuleWidget(module) { + LagWidget(Lag* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -77,9 +78,9 @@ struct LagWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 305.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(timeParamPosition, module, Lag::TIME_PARAM, 0.0, 1.0, 0.5)); + addParam(createParam<Knob29>(timeParamPosition, module, Lag::TIME_PARAM)); { - auto w = createParam<Knob16>(timeScaleParamPosition, module, Lag::TIME_SCALE_PARAM, 0.0, 2.0, 1.0); + auto w = createParam<Knob16>(timeScaleParamPosition, module, Lag::TIME_SCALE_PARAM); auto k = dynamic_cast<SVGKnob*>(w); k->snap = true; k->minAngle = -M_PI / 4.0f; @@ -87,7 +88,7 @@ struct LagWidget : ModuleWidget { k->speed = 3.0; addParam(w); } - addParam(createParam<Knob29>(shapeParamPosition, module, Lag::SHAPE_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob29>(shapeParamPosition, module, Lag::SHAPE_PARAM)); addInput(createInput<Port24>(timeInputPosition, module, Lag::TIME_INPUT)); addInput(createInput<Port24>(shapeInputPosition, module, Lag::SHAPE_INPUT)); diff --git a/src/Lag.hpp b/src/Lag.hpp @@ -37,7 +37,12 @@ struct Lag : Module { int _modulationStep = 0; ShapedSlewLimiter _slew; - Lag() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Lag() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(TIME_PARAM, 0.0f, 1.0f, 0.5f, "time"); + configParam(TIME_SCALE_PARAM, 0.0f, 2.0f, 1.0f, "time_scale"); + configParam(SHAPE_PARAM, -1.0f, 1.0f, 0.0f, "shape"); + onReset(); } diff --git a/src/Lmtr.cpp b/src/Lmtr.cpp @@ -67,7 +67,8 @@ void Lmtr::process(const ProcessArgs& args) { struct LmtrWidget : ModuleWidget { static constexpr int hp = 6; - LmtrWidget(Lmtr* module) : ModuleWidget(module) { + LmtrWidget(Lmtr* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -94,9 +95,9 @@ struct LmtrWidget : ModuleWidget { auto rightOutputPosition = Vec(50.0, 320.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(thresholdParamPosition, module, Lmtr::THRESHOLD_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(outputGainParamPosition, module, Lmtr::OUTPUT_GAIN_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Lmtr::KNEE_PARAM, 0.95, 1.0, 0.0)); + addParam(createParam<Knob38>(thresholdParamPosition, module, Lmtr::THRESHOLD_PARAM)); + addParam(createParam<Knob38>(outputGainParamPosition, module, Lmtr::OUTPUT_GAIN_PARAM)); + addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Lmtr::KNEE_PARAM)); addInput(createInput<Port24>(leftInputPosition, module, Lmtr::LEFT_INPUT)); addInput(createInput<Port24>(rightInputPosition, module, Lmtr::RIGHT_INPUT)); diff --git a/src/Lmtr.hpp b/src/Lmtr.hpp @@ -50,7 +50,12 @@ struct Lmtr : Module { Amplifier _amplifier; Saturator _saturator; - Lmtr() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Lmtr() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(THRESHOLD_PARAM, 0.0f, 1.0f, 0.8f, "threshold"); + configParam(OUTPUT_GAIN_PARAM, 0.0f, 1.0f, 0.0f, "output_gain"); + configParam(KNEE_PARAM, 0.95f, 1.0f, 0.0f, "knee"); + onReset(); onSampleRateChange(); } diff --git a/src/Manual.cpp b/src/Manual.cpp @@ -32,7 +32,8 @@ void Manual::process(const ProcessArgs& args) { struct ManualWidget : ModuleWidget { static constexpr int hp = 3; - ManualWidget(Manual* module) : ModuleWidget(module) { + ManualWidget(Manual* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -58,7 +59,7 @@ struct ManualWidget : ModuleWidget { auto out8OutputPosition = Vec(10.5, 267.0); // end generated by svg_widgets.rb - addParam(createParam<Button18>(triggerParamPosition, module, Manual::TRIGGER_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Button18>(triggerParamPosition, module, Manual::TRIGGER_PARAM)); addOutput(createOutput<Port24>(out1OutputPosition, module, Manual::OUT1_OUTPUT)); addOutput(createOutput<Port24>(out2OutputPosition, module, Manual::OUT2_OUTPUT)); diff --git a/src/Manual.hpp b/src/Manual.hpp @@ -37,6 +37,8 @@ struct Manual : TriggerOnLoadModule { rack::dsp::PulseGenerator _pulse; Manual() : TriggerOnLoadModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + _triggerOnLoad = false; onReset(); } diff --git a/src/Matrix88.cpp b/src/Matrix88.cpp @@ -15,7 +15,8 @@ void Matrix88::process(const ProcessArgs& args) { struct Matrix88Widget : ModuleWidget { static constexpr int hp = 22; - Matrix88Widget(Matrix88* module) : ModuleWidget(module) { + Matrix88Widget(Matrix88* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -116,71 +117,71 @@ struct Matrix88Widget : ModuleWidget { auto out8OutputPosition = Vec(296.5, 328.0); // end generated by svg_widgets.rb - addParam(createParam<Knob19>(mix11ParamPosition, module, Matrix88::MIX11_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix21ParamPosition, module, Matrix88::MIX21_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix31ParamPosition, module, Matrix88::MIX31_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix41ParamPosition, module, Matrix88::MIX41_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix51ParamPosition, module, Matrix88::MIX51_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix61ParamPosition, module, Matrix88::MIX61_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix71ParamPosition, module, Matrix88::MIX71_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix81ParamPosition, module, Matrix88::MIX81_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix12ParamPosition, module, Matrix88::MIX12_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix22ParamPosition, module, Matrix88::MIX22_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix32ParamPosition, module, Matrix88::MIX32_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix42ParamPosition, module, Matrix88::MIX42_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix52ParamPosition, module, Matrix88::MIX52_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix62ParamPosition, module, Matrix88::MIX62_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix72ParamPosition, module, Matrix88::MIX72_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix82ParamPosition, module, Matrix88::MIX82_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix13ParamPosition, module, Matrix88::MIX13_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix23ParamPosition, module, Matrix88::MIX23_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix33ParamPosition, module, Matrix88::MIX33_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix43ParamPosition, module, Matrix88::MIX43_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix53ParamPosition, module, Matrix88::MIX53_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix63ParamPosition, module, Matrix88::MIX63_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix73ParamPosition, module, Matrix88::MIX73_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix83ParamPosition, module, Matrix88::MIX83_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix14ParamPosition, module, Matrix88::MIX14_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix24ParamPosition, module, Matrix88::MIX24_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix34ParamPosition, module, Matrix88::MIX34_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix44ParamPosition, module, Matrix88::MIX44_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix54ParamPosition, module, Matrix88::MIX54_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix64ParamPosition, module, Matrix88::MIX64_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix74ParamPosition, module, Matrix88::MIX74_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix84ParamPosition, module, Matrix88::MIX84_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix15ParamPosition, module, Matrix88::MIX15_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix25ParamPosition, module, Matrix88::MIX25_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix35ParamPosition, module, Matrix88::MIX35_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix45ParamPosition, module, Matrix88::MIX45_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix55ParamPosition, module, Matrix88::MIX55_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix65ParamPosition, module, Matrix88::MIX65_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix75ParamPosition, module, Matrix88::MIX75_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix85ParamPosition, module, Matrix88::MIX85_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix16ParamPosition, module, Matrix88::MIX16_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix26ParamPosition, module, Matrix88::MIX26_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix36ParamPosition, module, Matrix88::MIX36_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix46ParamPosition, module, Matrix88::MIX46_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix56ParamPosition, module, Matrix88::MIX56_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix66ParamPosition, module, Matrix88::MIX66_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix76ParamPosition, module, Matrix88::MIX76_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix86ParamPosition, module, Matrix88::MIX86_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix17ParamPosition, module, Matrix88::MIX17_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix27ParamPosition, module, Matrix88::MIX27_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix37ParamPosition, module, Matrix88::MIX37_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix47ParamPosition, module, Matrix88::MIX47_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix57ParamPosition, module, Matrix88::MIX57_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix67ParamPosition, module, Matrix88::MIX67_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix77ParamPosition, module, Matrix88::MIX77_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix87ParamPosition, module, Matrix88::MIX87_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix18ParamPosition, module, Matrix88::MIX18_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix28ParamPosition, module, Matrix88::MIX28_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix38ParamPosition, module, Matrix88::MIX38_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix48ParamPosition, module, Matrix88::MIX48_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix58ParamPosition, module, Matrix88::MIX58_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix68ParamPosition, module, Matrix88::MIX68_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix78ParamPosition, module, Matrix88::MIX78_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob19>(mix88ParamPosition, module, Matrix88::MIX88_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(levelParamPosition, module, Matrix88::LEVEL_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob19>(mix11ParamPosition, module, Matrix88::MIX11_PARAM)); + addParam(createParam<Knob19>(mix21ParamPosition, module, Matrix88::MIX21_PARAM)); + addParam(createParam<Knob19>(mix31ParamPosition, module, Matrix88::MIX31_PARAM)); + addParam(createParam<Knob19>(mix41ParamPosition, module, Matrix88::MIX41_PARAM)); + addParam(createParam<Knob19>(mix51ParamPosition, module, Matrix88::MIX51_PARAM)); + addParam(createParam<Knob19>(mix61ParamPosition, module, Matrix88::MIX61_PARAM)); + addParam(createParam<Knob19>(mix71ParamPosition, module, Matrix88::MIX71_PARAM)); + addParam(createParam<Knob19>(mix81ParamPosition, module, Matrix88::MIX81_PARAM)); + addParam(createParam<Knob19>(mix12ParamPosition, module, Matrix88::MIX12_PARAM)); + addParam(createParam<Knob19>(mix22ParamPosition, module, Matrix88::MIX22_PARAM)); + addParam(createParam<Knob19>(mix32ParamPosition, module, Matrix88::MIX32_PARAM)); + addParam(createParam<Knob19>(mix42ParamPosition, module, Matrix88::MIX42_PARAM)); + addParam(createParam<Knob19>(mix52ParamPosition, module, Matrix88::MIX52_PARAM)); + addParam(createParam<Knob19>(mix62ParamPosition, module, Matrix88::MIX62_PARAM)); + addParam(createParam<Knob19>(mix72ParamPosition, module, Matrix88::MIX72_PARAM)); + addParam(createParam<Knob19>(mix82ParamPosition, module, Matrix88::MIX82_PARAM)); + addParam(createParam<Knob19>(mix13ParamPosition, module, Matrix88::MIX13_PARAM)); + addParam(createParam<Knob19>(mix23ParamPosition, module, Matrix88::MIX23_PARAM)); + addParam(createParam<Knob19>(mix33ParamPosition, module, Matrix88::MIX33_PARAM)); + addParam(createParam<Knob19>(mix43ParamPosition, module, Matrix88::MIX43_PARAM)); + addParam(createParam<Knob19>(mix53ParamPosition, module, Matrix88::MIX53_PARAM)); + addParam(createParam<Knob19>(mix63ParamPosition, module, Matrix88::MIX63_PARAM)); + addParam(createParam<Knob19>(mix73ParamPosition, module, Matrix88::MIX73_PARAM)); + addParam(createParam<Knob19>(mix83ParamPosition, module, Matrix88::MIX83_PARAM)); + addParam(createParam<Knob19>(mix14ParamPosition, module, Matrix88::MIX14_PARAM)); + addParam(createParam<Knob19>(mix24ParamPosition, module, Matrix88::MIX24_PARAM)); + addParam(createParam<Knob19>(mix34ParamPosition, module, Matrix88::MIX34_PARAM)); + addParam(createParam<Knob19>(mix44ParamPosition, module, Matrix88::MIX44_PARAM)); + addParam(createParam<Knob19>(mix54ParamPosition, module, Matrix88::MIX54_PARAM)); + addParam(createParam<Knob19>(mix64ParamPosition, module, Matrix88::MIX64_PARAM)); + addParam(createParam<Knob19>(mix74ParamPosition, module, Matrix88::MIX74_PARAM)); + addParam(createParam<Knob19>(mix84ParamPosition, module, Matrix88::MIX84_PARAM)); + addParam(createParam<Knob19>(mix15ParamPosition, module, Matrix88::MIX15_PARAM)); + addParam(createParam<Knob19>(mix25ParamPosition, module, Matrix88::MIX25_PARAM)); + addParam(createParam<Knob19>(mix35ParamPosition, module, Matrix88::MIX35_PARAM)); + addParam(createParam<Knob19>(mix45ParamPosition, module, Matrix88::MIX45_PARAM)); + addParam(createParam<Knob19>(mix55ParamPosition, module, Matrix88::MIX55_PARAM)); + addParam(createParam<Knob19>(mix65ParamPosition, module, Matrix88::MIX65_PARAM)); + addParam(createParam<Knob19>(mix75ParamPosition, module, Matrix88::MIX75_PARAM)); + addParam(createParam<Knob19>(mix85ParamPosition, module, Matrix88::MIX85_PARAM)); + addParam(createParam<Knob19>(mix16ParamPosition, module, Matrix88::MIX16_PARAM)); + addParam(createParam<Knob19>(mix26ParamPosition, module, Matrix88::MIX26_PARAM)); + addParam(createParam<Knob19>(mix36ParamPosition, module, Matrix88::MIX36_PARAM)); + addParam(createParam<Knob19>(mix46ParamPosition, module, Matrix88::MIX46_PARAM)); + addParam(createParam<Knob19>(mix56ParamPosition, module, Matrix88::MIX56_PARAM)); + addParam(createParam<Knob19>(mix66ParamPosition, module, Matrix88::MIX66_PARAM)); + addParam(createParam<Knob19>(mix76ParamPosition, module, Matrix88::MIX76_PARAM)); + addParam(createParam<Knob19>(mix86ParamPosition, module, Matrix88::MIX86_PARAM)); + addParam(createParam<Knob19>(mix17ParamPosition, module, Matrix88::MIX17_PARAM)); + addParam(createParam<Knob19>(mix27ParamPosition, module, Matrix88::MIX27_PARAM)); + addParam(createParam<Knob19>(mix37ParamPosition, module, Matrix88::MIX37_PARAM)); + addParam(createParam<Knob19>(mix47ParamPosition, module, Matrix88::MIX47_PARAM)); + addParam(createParam<Knob19>(mix57ParamPosition, module, Matrix88::MIX57_PARAM)); + addParam(createParam<Knob19>(mix67ParamPosition, module, Matrix88::MIX67_PARAM)); + addParam(createParam<Knob19>(mix77ParamPosition, module, Matrix88::MIX77_PARAM)); + addParam(createParam<Knob19>(mix87ParamPosition, module, Matrix88::MIX87_PARAM)); + addParam(createParam<Knob19>(mix18ParamPosition, module, Matrix88::MIX18_PARAM)); + addParam(createParam<Knob19>(mix28ParamPosition, module, Matrix88::MIX28_PARAM)); + addParam(createParam<Knob19>(mix38ParamPosition, module, Matrix88::MIX38_PARAM)); + addParam(createParam<Knob19>(mix48ParamPosition, module, Matrix88::MIX48_PARAM)); + addParam(createParam<Knob19>(mix58ParamPosition, module, Matrix88::MIX58_PARAM)); + addParam(createParam<Knob19>(mix68ParamPosition, module, Matrix88::MIX68_PARAM)); + addParam(createParam<Knob19>(mix78ParamPosition, module, Matrix88::MIX78_PARAM)); + addParam(createParam<Knob19>(mix88ParamPosition, module, Matrix88::MIX88_PARAM)); + addParam(createParam<Knob16>(levelParamPosition, module, Matrix88::LEVEL_PARAM)); addInput(createInput<Port24>(in1InputPosition, module, Matrix88::IN1_INPUT)); addInput(createInput<Port24>(in2InputPosition, module, Matrix88::IN2_INPUT)); diff --git a/src/Matrix88.hpp b/src/Matrix88.hpp @@ -109,7 +109,73 @@ struct Matrix88 : Module { Saturator _saturators[8]; - Matrix88() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Matrix88() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(MIX11_PARAM, -1.0f, 1.0f, 0.0f, "mix11"); + configParam(MIX21_PARAM, -1.0f, 1.0f, 0.0f, "mix21"); + configParam(MIX31_PARAM, -1.0f, 1.0f, 0.0f, "mix31"); + configParam(MIX41_PARAM, -1.0f, 1.0f, 0.0f, "mix41"); + configParam(MIX51_PARAM, -1.0f, 1.0f, 0.0f, "mix51"); + configParam(MIX61_PARAM, -1.0f, 1.0f, 0.0f, "mix61"); + configParam(MIX71_PARAM, -1.0f, 1.0f, 0.0f, "mix71"); + configParam(MIX81_PARAM, -1.0f, 1.0f, 0.0f, "mix81"); + configParam(MIX12_PARAM, -1.0f, 1.0f, 0.0f, "mix12"); + configParam(MIX22_PARAM, -1.0f, 1.0f, 0.0f, "mix22"); + configParam(MIX32_PARAM, -1.0f, 1.0f, 0.0f, "mix32"); + configParam(MIX42_PARAM, -1.0f, 1.0f, 0.0f, "mix42"); + configParam(MIX52_PARAM, -1.0f, 1.0f, 0.0f, "mix52"); + configParam(MIX62_PARAM, -1.0f, 1.0f, 0.0f, "mix62"); + configParam(MIX72_PARAM, -1.0f, 1.0f, 0.0f, "mix72"); + configParam(MIX82_PARAM, -1.0f, 1.0f, 0.0f, "mix82"); + configParam(MIX13_PARAM, -1.0f, 1.0f, 0.0f, "mix13"); + configParam(MIX23_PARAM, -1.0f, 1.0f, 0.0f, "mix23"); + configParam(MIX33_PARAM, -1.0f, 1.0f, 0.0f, "mix33"); + configParam(MIX43_PARAM, -1.0f, 1.0f, 0.0f, "mix43"); + configParam(MIX53_PARAM, -1.0f, 1.0f, 0.0f, "mix53"); + configParam(MIX63_PARAM, -1.0f, 1.0f, 0.0f, "mix63"); + configParam(MIX73_PARAM, -1.0f, 1.0f, 0.0f, "mix73"); + configParam(MIX83_PARAM, -1.0f, 1.0f, 0.0f, "mix83"); + configParam(MIX14_PARAM, -1.0f, 1.0f, 0.0f, "mix14"); + configParam(MIX24_PARAM, -1.0f, 1.0f, 0.0f, "mix24"); + configParam(MIX34_PARAM, -1.0f, 1.0f, 0.0f, "mix34"); + configParam(MIX44_PARAM, -1.0f, 1.0f, 0.0f, "mix44"); + configParam(MIX54_PARAM, -1.0f, 1.0f, 0.0f, "mix54"); + configParam(MIX64_PARAM, -1.0f, 1.0f, 0.0f, "mix64"); + configParam(MIX74_PARAM, -1.0f, 1.0f, 0.0f, "mix74"); + configParam(MIX84_PARAM, -1.0f, 1.0f, 0.0f, "mix84"); + configParam(MIX15_PARAM, -1.0f, 1.0f, 0.0f, "mix15"); + configParam(MIX25_PARAM, -1.0f, 1.0f, 0.0f, "mix25"); + configParam(MIX35_PARAM, -1.0f, 1.0f, 0.0f, "mix35"); + configParam(MIX45_PARAM, -1.0f, 1.0f, 0.0f, "mix45"); + configParam(MIX55_PARAM, -1.0f, 1.0f, 0.0f, "mix55"); + configParam(MIX65_PARAM, -1.0f, 1.0f, 0.0f, "mix65"); + configParam(MIX75_PARAM, -1.0f, 1.0f, 0.0f, "mix75"); + configParam(MIX85_PARAM, -1.0f, 1.0f, 0.0f, "mix85"); + configParam(MIX16_PARAM, -1.0f, 1.0f, 0.0f, "mix16"); + configParam(MIX26_PARAM, -1.0f, 1.0f, 0.0f, "mix26"); + configParam(MIX36_PARAM, -1.0f, 1.0f, 0.0f, "mix36"); + configParam(MIX46_PARAM, -1.0f, 1.0f, 0.0f, "mix46"); + configParam(MIX56_PARAM, -1.0f, 1.0f, 0.0f, "mix56"); + configParam(MIX66_PARAM, -1.0f, 1.0f, 0.0f, "mix66"); + configParam(MIX76_PARAM, -1.0f, 1.0f, 0.0f, "mix76"); + configParam(MIX86_PARAM, -1.0f, 1.0f, 0.0f, "mix86"); + configParam(MIX17_PARAM, -1.0f, 1.0f, 0.0f, "mix17"); + configParam(MIX27_PARAM, -1.0f, 1.0f, 0.0f, "mix27"); + configParam(MIX37_PARAM, -1.0f, 1.0f, 0.0f, "mix37"); + configParam(MIX47_PARAM, -1.0f, 1.0f, 0.0f, "mix47"); + configParam(MIX57_PARAM, -1.0f, 1.0f, 0.0f, "mix57"); + configParam(MIX67_PARAM, -1.0f, 1.0f, 0.0f, "mix67"); + configParam(MIX77_PARAM, -1.0f, 1.0f, 0.0f, "mix77"); + configParam(MIX87_PARAM, -1.0f, 1.0f, 0.0f, "mix87"); + configParam(MIX18_PARAM, -1.0f, 1.0f, 0.0f, "mix18"); + configParam(MIX28_PARAM, -1.0f, 1.0f, 0.0f, "mix28"); + configParam(MIX38_PARAM, -1.0f, 1.0f, 0.0f, "mix38"); + configParam(MIX48_PARAM, -1.0f, 1.0f, 0.0f, "mix48"); + configParam(MIX58_PARAM, -1.0f, 1.0f, 0.0f, "mix58"); + configParam(MIX68_PARAM, -1.0f, 1.0f, 0.0f, "mix68"); + configParam(MIX78_PARAM, -1.0f, 1.0f, 0.0f, "mix78"); + configParam(MIX88_PARAM, -1.0f, 1.0f, 0.0f, "mix88"); + configParam(LEVEL_PARAM, 0.0f, 1.0f, 1.0f, "level"); } void process(const ProcessArgs& args) override; diff --git a/src/Mix1.cpp b/src/Mix1.cpp @@ -13,7 +13,8 @@ void Mix1::process(const ProcessArgs& args) { struct Mix1Widget : ModuleWidget { static constexpr int hp = 3; - Mix1Widget(Mix1* module) : ModuleWidget(module) { + Mix1Widget(Mix1* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -38,20 +39,13 @@ struct Mix1Widget : ModuleWidget { // end generated by svg_widgets.rb { - auto slider = createParam<VUSlider151>( - levelParamPosition, - module, - Mix1::LEVEL_PARAM, - 0.0, - 1.0, - fabsf(MixerChannel::minDecibels) / (MixerChannel::maxDecibels - MixerChannel::minDecibels) - ); + auto slider = createParam<VUSlider151>levelParamPosition, module, Mix1::LEVEL_PARAM); if (module) { dynamic_cast<VUSlider*>(slider)->setVULevel(&module->_channel.rms); } addParam(slider); } - addParam(createParam<MuteButton>(muteParamPosition, module, Mix1::MUTE_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<MuteButton>(muteParamPosition, module, Mix1::MUTE_PARAM)); addInput(createInput<Port24>(muteInputPosition, module, Mix1::MUTE_INPUT)); addInput(createInput<Port24>(levelInputPosition, module, Mix1::LEVEL_INPUT)); diff --git a/src/Mix1.hpp b/src/Mix1.hpp @@ -36,8 +36,7 @@ struct Mix1 : Module { MixerChannel _channel; Mix1() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _channel( + : _channel( params[LEVEL_PARAM], params[LEVEL_PARAM], // not used params[MUTE_PARAM], @@ -48,6 +47,10 @@ struct Mix1 : Module { &inputs[MUTE_INPUT] ) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(LEVEL_PARAM, 0.0f, 1.0f, fabsf(MixerChannel::minDecibels, "level"); + configParam(MUTE_PARAM, 0.0f, 1.0f, 0.0f, "mute"); + onSampleRateChange(); } diff --git a/src/Mult.cpp b/src/Mult.cpp @@ -18,7 +18,8 @@ void Mult::process(const ProcessArgs& args) { struct MultWidget : ModuleWidget { static constexpr int hp = 3; - MultWidget(Mult* module) : ModuleWidget(module) { + MultWidget(Mult* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Mult.hpp b/src/Mult.hpp @@ -31,8 +31,9 @@ struct Mult : Module { NUM_LIGHTS }; - Mult() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { - } + Mult() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + } void process(const ProcessArgs& args) override; }; diff --git a/src/Mute8.cpp b/src/Mute8.cpp @@ -46,7 +46,8 @@ void Mute8::stepChannel(int i, bool solo) { struct Mute8Widget : ModuleWidget { static constexpr int hp = 10; - Mute8Widget(Mute8* module) : ModuleWidget(module) { + Mute8Widget(Mute8* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -107,14 +108,14 @@ struct Mute8Widget : ModuleWidget { auto mute8LightPosition = Vec(100.5, 324.8); // end generated by svg_widgets.rb - addParam(createParam<SoloMuteButton>(mute1ParamPosition, module, Mute8::MUTE1_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute2ParamPosition, module, Mute8::MUTE2_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute3ParamPosition, module, Mute8::MUTE3_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute4ParamPosition, module, Mute8::MUTE4_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute5ParamPosition, module, Mute8::MUTE5_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute6ParamPosition, module, Mute8::MUTE6_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute7ParamPosition, module, Mute8::MUTE7_PARAM, 0.0, 3.0, 0.0)); - addParam(createParam<SoloMuteButton>(mute8ParamPosition, module, Mute8::MUTE8_PARAM, 0.0, 3.0, 0.0)); + addParam(createParam<SoloMuteButton>(mute1ParamPosition, module, Mute8::MUTE1_PARAM)); + addParam(createParam<SoloMuteButton>(mute2ParamPosition, module, Mute8::MUTE2_PARAM)); + addParam(createParam<SoloMuteButton>(mute3ParamPosition, module, Mute8::MUTE3_PARAM)); + addParam(createParam<SoloMuteButton>(mute4ParamPosition, module, Mute8::MUTE4_PARAM)); + addParam(createParam<SoloMuteButton>(mute5ParamPosition, module, Mute8::MUTE5_PARAM)); + addParam(createParam<SoloMuteButton>(mute6ParamPosition, module, Mute8::MUTE6_PARAM)); + addParam(createParam<SoloMuteButton>(mute7ParamPosition, module, Mute8::MUTE7_PARAM)); + addParam(createParam<SoloMuteButton>(mute8ParamPosition, module, Mute8::MUTE8_PARAM)); addInput(createInput<Port24>(input1InputPosition, module, Mute8::INPUT1_INPUT)); addInput(createInput<Port24>(input2InputPosition, module, Mute8::INPUT2_INPUT)); diff --git a/src/Mute8.hpp b/src/Mute8.hpp @@ -74,7 +74,17 @@ struct Mute8 : Module { bogaudio::dsp::SlewLimiter _slewLimiters[8]; Trigger _triggers[8]; - Mute8() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Mute8() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(MUTE1_PARAM, 0.0f, 3.0f, 0.0f, "mute1"); + configParam(MUTE2_PARAM, 0.0f, 3.0f, 0.0f, "mute2"); + configParam(MUTE3_PARAM, 0.0f, 3.0f, 0.0f, "mute3"); + configParam(MUTE4_PARAM, 0.0f, 3.0f, 0.0f, "mute4"); + configParam(MUTE5_PARAM, 0.0f, 3.0f, 0.0f, "mute5"); + configParam(MUTE6_PARAM, 0.0f, 3.0f, 0.0f, "mute6"); + configParam(MUTE7_PARAM, 0.0f, 3.0f, 0.0f, "mute7"); + configParam(MUTE8_PARAM, 0.0f, 3.0f, 0.0f, "mute8"); + onReset(); onSampleRateChange(); } diff --git a/src/Noise.cpp b/src/Noise.cpp @@ -31,7 +31,8 @@ void Noise::process(const ProcessArgs& args) { struct NoiseWidget : ModuleWidget { static constexpr int hp = 3; - NoiseWidget(Noise* module) : ModuleWidget(module) { + NoiseWidget(Noise* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/Noise.hpp b/src/Noise.hpp @@ -39,7 +39,9 @@ struct Noise : Module { RedNoiseGenerator _red; GaussianNoiseGenerator _gauss; - Noise() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} + Noise() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + } void process(const ProcessArgs& args) override; }; diff --git a/src/Nsgt.cpp b/src/Nsgt.cpp @@ -71,7 +71,8 @@ void Nsgt::process(const ProcessArgs& args) { struct NsgtWidget : ModuleWidget { static constexpr int hp = 6; - NsgtWidget(Nsgt* module) : ModuleWidget(module) { + NsgtWidget(Nsgt* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -98,9 +99,9 @@ struct NsgtWidget : ModuleWidget { auto rightOutputPosition = Vec(50.0, 320.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(thresholdParamPosition, module, Nsgt::THRESHOLD_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(ratioParamPosition, module, Nsgt::RATIO_PARAM, 0.0, 1.0, 0.552)); - addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Nsgt::KNEE_PARAM, 0.95, 1.0, 1.0)); + addParam(createParam<Knob38>(thresholdParamPosition, module, Nsgt::THRESHOLD_PARAM)); + addParam(createParam<Knob38>(ratioParamPosition, module, Nsgt::RATIO_PARAM)); + addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Nsgt::KNEE_PARAM)); addInput(createInput<Port24>(leftInputPosition, module, Nsgt::LEFT_INPUT)); addInput(createInput<Port24>(rightInputPosition, module, Nsgt::RIGHT_INPUT)); diff --git a/src/Nsgt.hpp b/src/Nsgt.hpp @@ -50,7 +50,12 @@ struct Nsgt : Module { Amplifier _amplifier; Saturator _saturator; - Nsgt() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Nsgt() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(THRESHOLD_PARAM, 0.0f, 1.0f, 0.8f, "threshold"); + configParam(RATIO_PARAM, 0.0f, 1.0f, 0.552f, "ratio"); + configParam(KNEE_PARAM, 0.95f, 1.0f, 1.0f, "knee"); + onReset(); onSampleRateChange(); } diff --git a/src/Offset.cpp b/src/Offset.cpp @@ -51,8 +51,8 @@ struct OffsetWidget : DisableOutputLimitModuleWidget { auto outOutputPosition = Vec(10.5, 281.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(offsetParamPosition, module, Offset::OFFSET_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob29>(scaleParamPosition, module, Offset::SCALE_PARAM, -1.0, 1.0, 0.316)); + addParam(createParam<Knob29>(offsetParamPosition, module, Offset::OFFSET_PARAM)); + addParam(createParam<Knob29>(scaleParamPosition, module, Offset::SCALE_PARAM)); addInput(createInput<Port24>(offsetInputPosition, module, Offset::OFFSET_INPUT)); addInput(createInput<Port24>(scaleInputPosition, module, Offset::SCALE_INPUT)); diff --git a/src/Offset.hpp b/src/Offset.hpp @@ -26,7 +26,10 @@ struct Offset : DisableOutputLimitModule { NUM_OUTPUTS }; - Offset() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {} + Offset() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS) {configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "offset"); + configParam(SCALE_PARAM, -1.0f, 1.0f, 0.316f, "scale"); + + } void process(const ProcessArgs& args) override; diff --git a/src/OneEight.cpp b/src/OneEight.cpp @@ -75,7 +75,8 @@ struct SelectOnClockMenuItem : MenuItem { struct OneEightWidget : ModuleWidget { static constexpr int hp = 6; - OneEightWidget(OneEight* module) : ModuleWidget(module) { + OneEightWidget(OneEight* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -118,13 +119,13 @@ struct OneEightWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob16>(stepsParamPosition, module, OneEight::STEPS_PARAM, 1.0, 8.0, 8.0); + auto w = createParam<Knob16>(stepsParamPosition, module, OneEight::STEPS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, OneEight::DIRECTION_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<SliderSwitch2State14>(directionParamPosition, module, OneEight::DIRECTION_PARAM)); { - auto w = createParam<Knob29>(selectParamPosition, module, OneEight::SELECT_PARAM, 0.0, 7.0, 0.0); + auto w = createParam<Knob29>(selectParamPosition, module, OneEight::SELECT_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } diff --git a/src/OneEight.hpp b/src/OneEight.hpp @@ -56,7 +56,12 @@ struct OneEight : Module { bool _selectOnClock = false; int _select = 0; - OneEight() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + OneEight() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(STEPS_PARAM, 1.0f, 8.0f, 8.0f, "steps"); + configParam(DIRECTION_PARAM, 0.0f, 1.0f, 1.0f, "direction"); + configParam(SELECT_PARAM, 0.0f, 7.0f, 0.0f, "select"); + onReset(); onSampleRateChange(); } diff --git a/src/Pan.cpp b/src/Pan.cpp @@ -35,7 +35,8 @@ void Pan::process(const ProcessArgs& args) { struct PanWidget : ModuleWidget { static constexpr int hp = 3; - PanWidget(Pan* module) : ModuleWidget(module) { + PanWidget(Pan* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -61,8 +62,8 @@ struct PanWidget : ModuleWidget { auto rOutputPosition = Vec(10.5, 303.0); // end generated by svg_widgets.rb - addParam(createParam<Knob26>(pan1ParamPosition, module, Pan::PAN1_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(pan2ParamPosition, module, Pan::PAN2_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob26>(pan1ParamPosition, module, Pan::PAN1_PARAM)); + addParam(createParam<Knob26>(pan2ParamPosition, module, Pan::PAN2_PARAM)); addInput(createInput<Port24>(cv1InputPosition, module, Pan::CV1_INPUT)); addInput(createInput<Port24>(in1InputPosition, module, Pan::IN1_INPUT)); diff --git a/src/Pan.hpp b/src/Pan.hpp @@ -41,7 +41,11 @@ struct Pan : Module { Saturator _saturatorLeft; Saturator _saturatorRight; - Pan() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Pan() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(PAN1_PARAM, -1.0f, 1.0f, 0.0f, "pan1"); + configParam(PAN2_PARAM, -1.0f, 1.0f, 0.0f, "pan2"); + onSampleRateChange(); } diff --git a/src/Pressor.cpp b/src/Pressor.cpp @@ -172,7 +172,8 @@ struct CompressionDisplay : OpaqueWidget { struct PressorWidget : ModuleWidget { static constexpr int hp = 15; - PressorWidget(Pressor* module) : ModuleWidget(module) { + PressorWidget(Pressor* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -221,16 +222,16 @@ struct PressorWidget : ModuleWidget { auto rightOutputPosition = Vec(186.0, 318.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(thresholdParamPosition, module, Pressor::THRESHOLD_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(ratioParamPosition, module, Pressor::RATIO_PARAM, 0.0, 1.0, 0.552)); - addParam(createParam<Knob26>(attackParamPosition, module, Pressor::ATTACK_PARAM, 0.0, 1.0, 0.316)); - addParam(createParam<Knob26>(releaseParamPosition, module, Pressor::RELEASE_PARAM, 0.0, 1.0, 0.316)); - addParam(createParam<Knob26>(outputGainParamPosition, module, Pressor::OUTPUT_GAIN_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(inputGainParamPosition, module, Pressor::INPUT_GAIN_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(detectorMixParamPosition, module, Pressor::DETECTOR_MIX_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, Pressor::MODE_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(dectectorModeParamPosition, module, Pressor::DECTECTOR_MODE_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Pressor::KNEE_PARAM, 0.95, 1.0, 1.0)); + addParam(createParam<Knob38>(thresholdParamPosition, module, Pressor::THRESHOLD_PARAM)); + addParam(createParam<Knob38>(ratioParamPosition, module, Pressor::RATIO_PARAM)); + addParam(createParam<Knob26>(attackParamPosition, module, Pressor::ATTACK_PARAM)); + addParam(createParam<Knob26>(releaseParamPosition, module, Pressor::RELEASE_PARAM)); + addParam(createParam<Knob26>(outputGainParamPosition, module, Pressor::OUTPUT_GAIN_PARAM)); + addParam(createParam<Knob26>(inputGainParamPosition, module, Pressor::INPUT_GAIN_PARAM)); + addParam(createParam<Knob26>(detectorMixParamPosition, module, Pressor::DETECTOR_MIX_PARAM)); + addParam(createParam<SliderSwitch2State14>(modeParamPosition, module, Pressor::MODE_PARAM)); + addParam(createParam<SliderSwitch2State14>(dectectorModeParamPosition, module, Pressor::DECTECTOR_MODE_PARAM)); + addParam(createParam<SliderSwitch2State14>(kneeParamPosition, module, Pressor::KNEE_PARAM)); addInput(createInput<Port24>(leftInputPosition, module, Pressor::LEFT_INPUT)); addInput(createInput<Port24>(sidechainInputPosition, module, Pressor::SIDECHAIN_INPUT)); diff --git a/src/Pressor.hpp b/src/Pressor.hpp @@ -73,9 +73,20 @@ struct Pressor : Module { Saturator _saturator; Pressor() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _detectorRMS(1000.0f, 1.0f, 50.0f) + : _detectorRMS(1000.0f, 1.0f, 50.0f) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(THRESHOLD_PARAM, 0.0f, 1.0f, 0.8f, "threshold"); + configParam(RATIO_PARAM, 0.0f, 1.0f, 0.552f, "ratio"); + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.316f, "attack"); + configParam(RELEASE_PARAM, 0.0f, 1.0f, 0.316f, "release"); + configParam(OUTPUT_GAIN_PARAM, 0.0f, 1.0f, 0.0f, "output_gain"); + configParam(INPUT_GAIN_PARAM, -1.0f, 1.0f, 0.0f, "input_gain"); + configParam(DETECTOR_MIX_PARAM, -1.0f, 1.0f, 0.0f, "detector_mix"); + configParam(MODE_PARAM, 0.0f, 1.0f, 1.0f, "mode"); + configParam(DECTECTOR_MODE_PARAM, 0.0f, 1.0f, 1.0f, "dectector_mode"); + configParam(KNEE_PARAM, 0.95f, 1.0f, 1.0f, "knee"); + onReset(); onSampleRateChange(); } diff --git a/src/Reftone.cpp b/src/Reftone.cpp @@ -186,7 +186,8 @@ float ReftoneDisplay::textRenderWidth(const DrawArgs& args, const char* s, int s struct ReftoneWidget : ModuleWidget { static constexpr int hp = 3; - ReftoneWidget(Reftone* module) : ModuleWidget(module) { + ReftoneWidget(Reftone* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -218,16 +219,16 @@ struct ReftoneWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob26>(pitchParamPosition, module, Reftone::PITCH_PARAM, 0.0, 11.0, 9.0); + auto w = createParam<Knob26>(pitchParamPosition, module, Reftone::PITCH_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } { - auto w = createParam<Knob26>(octaveParamPosition, module, Reftone::OCTAVE_PARAM, 1.0, 8.0, 4.0); + auto w = createParam<Knob26>(octaveParamPosition, module, Reftone::OCTAVE_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } - addParam(createParam<Knob26>(fineParamPosition, module, Reftone::FINE_PARAM, -0.99, 0.99, 0.0)); + addParam(createParam<Knob26>(fineParamPosition, module, Reftone::FINE_PARAM)); addOutput(createOutput<Port24>(cvOutputPosition, module, Reftone::CV_OUTPUT)); addOutput(createOutput<Port24>(outOutputPosition, module, Reftone::OUT_OUTPUT)); diff --git a/src/Reftone.hpp b/src/Reftone.hpp @@ -39,7 +39,12 @@ struct Reftone : Module { float _cv = frequencyToCV(_frequency); SineOscillator _sine; - Reftone() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Reftone() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(PITCH_PARAM, 0.0f, 11.0f, 9.0f, "pitch"); + configParam(OCTAVE_PARAM, 1.0f, 8.0f, 4.0f, "octave"); + configParam(FINE_PARAM, -0.99f, 0.99f, 0.0f, "fine"); + onSampleRateChange(); } diff --git a/src/SampleHold.cpp b/src/SampleHold.cpp @@ -41,7 +41,8 @@ void SampleHold::process(const ProcessArgs& args) { struct SampleHoldWidget : ModuleWidget { static constexpr int hp = 3; - SampleHoldWidget(SampleHold* module) : ModuleWidget(module) { + SampleHoldWidget(SampleHold* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -72,10 +73,10 @@ struct SampleHoldWidget : ModuleWidget { auto track2LightPosition = Vec(7.0, 287.0); // end generated by svg_widgets.rb - addParam(createParam<Button18>(trigger1ParamPosition, module, SampleHold::TRIGGER1_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Button18>(trigger2ParamPosition, module, SampleHold::TRIGGER2_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(track1ParamPosition, module, SampleHold::TRACK1_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(track2ParamPosition, module, SampleHold::TRACK2_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Button18>(trigger1ParamPosition, module, SampleHold::TRIGGER1_PARAM)); + addParam(createParam<Button18>(trigger2ParamPosition, module, SampleHold::TRIGGER2_PARAM)); + addParam(createParam<StatefulButton9>(track1ParamPosition, module, SampleHold::TRACK1_PARAM)); + addParam(createParam<StatefulButton9>(track2ParamPosition, module, SampleHold::TRACK2_PARAM)); addInput(createInput<Port24>(trigger1InputPosition, module, SampleHold::TRIGGER1_INPUT)); addInput(createInput<Port24>(in1InputPosition, module, SampleHold::IN1_INPUT)); diff --git a/src/SampleHold.hpp b/src/SampleHold.hpp @@ -43,10 +43,15 @@ struct SampleHold : Module { WhiteNoiseGenerator _noise; SampleHold() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _value1(0.0f) + : _value1(0.0f) , _value2(0.0f) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(TRIGGER1_PARAM, 0.0f, 1.0f, 0.0f, "trigger1"); + configParam(TRIGGER2_PARAM, 0.0f, 1.0f, 0.0f, "trigger2"); + configParam(TRACK1_PARAM, 0.0f, 1.0f, 0.0f, "track1"); + configParam(TRACK2_PARAM, 0.0f, 1.0f, 0.0f, "track2"); + onReset(); } diff --git a/src/Shaper.cpp b/src/Shaper.cpp @@ -4,7 +4,8 @@ struct ShaperWidget : ModuleWidget { static constexpr int hp = 10; - ShaperWidget(Shaper* module) : ModuleWidget(module) { + ShaperWidget(Shaper* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -44,18 +45,18 @@ struct ShaperWidget : ModuleWidget { auto offLightPosition = Vec(12.0, 237.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(attackParamPosition, module, Shaper::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob38>(onParamPosition, module, Shaper::ON_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(decayParamPosition, module, Shaper::DECAY_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(offParamPosition, module, Shaper::OFF_PARAM, 0.0, 1.0, 0.07)); - addParam(createParam<Knob38>(envParamPosition, module, Shaper::ENV_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob38>(signalParamPosition, module, Shaper::SIGNAL_PARAM, 0.0, 1.0, 0.1)); + addParam(createParam<Knob38>(attackParamPosition, module, Shaper::ATTACK_PARAM)); + addParam(createParam<Knob38>(onParamPosition, module, Shaper::ON_PARAM)); + addParam(createParam<Knob38>(decayParamPosition, module, Shaper::DECAY_PARAM)); + addParam(createParam<Knob38>(offParamPosition, module, Shaper::OFF_PARAM)); + addParam(createParam<Knob38>(envParamPosition, module, Shaper::ENV_PARAM)); + addParam(createParam<Knob38>(signalParamPosition, module, Shaper::SIGNAL_PARAM)); - addParam(createParam<Button18>(triggerParamPosition, module, Shaper::TRIGGER_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Button18>(triggerParamPosition, module, Shaper::TRIGGER_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, Shaper::TRIGGER_INPUT)); - addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, Shaper::SPEED_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, Shaper::LOOP_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, Shaper::SPEED_PARAM)); + addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, Shaper::LOOP_PARAM)); addOutput(createOutput<Port24>(triggerOutputPosition, module, Shaper::TRIGGER_OUTPUT)); addOutput(createOutput<Port24>(envOutputPosition, module, Shaper::ENV_OUTPUT)); diff --git a/src/Shaper.hpp b/src/Shaper.hpp @@ -89,6 +89,16 @@ struct Shaper : TriggerOnLoadModule { _shouldTriggerOnLoad ) { + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(ON_PARAM, 0.0f, 1.0f, 0.32f, "on"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.32f, "decay"); + configParam(OFF_PARAM, 0.0f, 1.0f, 0.07f, "off"); + configParam(ENV_PARAM, 0.0f, 1.0f, 1.0f, "env"); + configParam(SIGNAL_PARAM, 0.0f, 1.0f, 0.1f, "signal"); + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + configParam(SPEED_PARAM, 0.0f, 1.0f, 1.0f, "speed"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "loop"); + onReset(); } diff --git a/src/ShaperPlus.cpp b/src/ShaperPlus.cpp @@ -4,7 +4,8 @@ struct ShaperPlusWidget : ModuleWidget { static constexpr int hp = 15; - ShaperPlusWidget(ShaperPlus* module) : ModuleWidget(module) { + ShaperPlusWidget(ShaperPlus* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -54,18 +55,18 @@ struct ShaperPlusWidget : ModuleWidget { auto offLightPosition = Vec(12.0, 237.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(attackParamPosition, module, ShaperPlus::ATTACK_PARAM, 0.0, 1.0, 0.12)); - addParam(createParam<Knob38>(onParamPosition, module, ShaperPlus::ON_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(decayParamPosition, module, ShaperPlus::DECAY_PARAM, 0.0, 1.0, 0.32)); - addParam(createParam<Knob38>(offParamPosition, module, ShaperPlus::OFF_PARAM, 0.0, 1.0, 0.07)); - addParam(createParam<Knob38>(envParamPosition, module, ShaperPlus::ENV_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob38>(signalParamPosition, module, ShaperPlus::SIGNAL_PARAM, 0.0, 1.0, 0.1)); + addParam(createParam<Knob38>(attackParamPosition, module, ShaperPlus::ATTACK_PARAM)); + addParam(createParam<Knob38>(onParamPosition, module, ShaperPlus::ON_PARAM)); + addParam(createParam<Knob38>(decayParamPosition, module, ShaperPlus::DECAY_PARAM)); + addParam(createParam<Knob38>(offParamPosition, module, ShaperPlus::OFF_PARAM)); + addParam(createParam<Knob38>(envParamPosition, module, ShaperPlus::ENV_PARAM)); + addParam(createParam<Knob38>(signalParamPosition, module, ShaperPlus::SIGNAL_PARAM)); - addParam(createParam<Button18>(triggerParamPosition, module, ShaperPlus::TRIGGER_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Button18>(triggerParamPosition, module, ShaperPlus::TRIGGER_PARAM)); addInput(createInput<Port24>(triggerInputPosition, module, ShaperPlus::TRIGGER_INPUT)); - addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, ShaperPlus::SPEED_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, ShaperPlus::LOOP_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<SliderSwitch2State14>(speedParamPosition, module, ShaperPlus::SPEED_PARAM)); + addParam(createParam<SliderSwitch2State14>(loopParamPosition, module, ShaperPlus::LOOP_PARAM)); addOutput(createOutput<Port24>(triggerOutputPosition, module, ShaperPlus::TRIGGER_OUTPUT)); addOutput(createOutput<Port24>(envOutputPosition, module, ShaperPlus::ENV_OUTPUT)); diff --git a/src/ShaperPlus.hpp b/src/ShaperPlus.hpp @@ -96,6 +96,16 @@ struct ShaperPlus : TriggerOnLoadModule { _shouldTriggerOnLoad ) { + configParam(ATTACK_PARAM, 0.0f, 1.0f, 0.12f, "attack"); + configParam(ON_PARAM, 0.0f, 1.0f, 0.32f, "on"); + configParam(DECAY_PARAM, 0.0f, 1.0f, 0.32f, "decay"); + configParam(OFF_PARAM, 0.0f, 1.0f, 0.07f, "off"); + configParam(ENV_PARAM, 0.0f, 1.0f, 1.0f, "env"); + configParam(SIGNAL_PARAM, 0.0f, 1.0f, 0.1f, "signal"); + configParam(TRIGGER_PARAM, 0.0f, 1.0f, 0.0f, "trigger"); + configParam(SPEED_PARAM, 0.0f, 1.0f, 1.0f, "speed"); + configParam(LOOP_PARAM, 0.0f, 1.0f, 1.0f, "loop"); + onReset(); } diff --git a/src/Slew.cpp b/src/Slew.cpp @@ -63,7 +63,8 @@ float Slew::shape(Param& param) { struct SlewWidget : ModuleWidget { static constexpr int hp = 3; - SlewWidget(Slew* module) : ModuleWidget(module) { + SlewWidget(Slew* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -89,10 +90,10 @@ struct SlewWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 301.0); // end generated by svg_widgets.rb - addParam(createParam<Knob26>(riseParamPosition, module, Slew::RISE_PARAM, 0.0, 1.0, 0.316)); - addParam(createParam<Knob16>(riseShapeParamPosition, module, Slew::RISE_SHAPE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(fallParamPosition, module, Slew::FALL_PARAM, 0.0, 1.0, 0.316)); - addParam(createParam<Knob16>(fallShapeParamPosition, module, Slew::FALL_SHAPE_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob26>(riseParamPosition, module, Slew::RISE_PARAM)); + addParam(createParam<Knob16>(riseShapeParamPosition, module, Slew::RISE_SHAPE_PARAM)); + addParam(createParam<Knob26>(fallParamPosition, module, Slew::FALL_PARAM)); + addParam(createParam<Knob16>(fallShapeParamPosition, module, Slew::FALL_SHAPE_PARAM)); addInput(createInput<Port24>(riseInputPosition, module, Slew::RISE_INPUT)); addInput(createInput<Port24>(fallInputPosition, module, Slew::FALL_INPUT)); diff --git a/src/Slew.hpp b/src/Slew.hpp @@ -41,7 +41,13 @@ struct Slew : Module { ShapedSlewLimiter _rise; ShapedSlewLimiter _fall; - Slew() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Slew() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RISE_PARAM, 0.0f, 1.0f, 0.316f, "rise"); + configParam(RISE_SHAPE_PARAM, -1.0f, 1.0f, 0.0f, "rise_shape"); + configParam(FALL_PARAM, 0.0f, 1.0f, 0.316f, "fall"); + configParam(FALL_SHAPE_PARAM, -1.0f, 1.0f, 0.0f, "fall_shape"); + onReset(); } diff --git a/src/Stack.cpp b/src/Stack.cpp @@ -42,7 +42,8 @@ void Stack::process(const ProcessArgs& args) { struct StackWidget : ModuleWidget { static constexpr int hp = 3; - StackWidget(Stack* module) : ModuleWidget(module) { + StackWidget(Stack* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -71,20 +72,20 @@ struct StackWidget : ModuleWidget { // end generated by svg_widgets.rb { - auto w = createParam<Knob26>(semisParamPosition, module, Stack::SEMIS_PARAM, 0.0, 11.0, 0.0); + auto w = createParam<Knob26>(semisParamPosition, module, Stack::SEMIS_PARAM); dynamic_cast<Knob*>(w)->snap = true; addParam(w); } { - auto w = createParam<Knob16>(octaveParamPosition, module, Stack::OCTAVE_PARAM, -3.0, 3.0, 0.0); + auto w = createParam<Knob16>(octaveParamPosition, module, Stack::OCTAVE_PARAM); auto k = dynamic_cast<SVGKnob*>(w); k->snap = true; k->minAngle = -0.5 * M_PI; k->maxAngle = 0.5 * M_PI; addParam(w); } - addParam(createParam<Knob16>(fineParamPosition, module, Stack::FINE_PARAM, -0.99, 0.99, 0.0)); - addParam(createParam<StatefulButton9>(quantizeParamPosition, module, Stack::QUANTIZE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob16>(fineParamPosition, module, Stack::FINE_PARAM)); + addParam(createParam<StatefulButton9>(quantizeParamPosition, module, Stack::QUANTIZE_PARAM)); addInput(createInput<Port24>(cvInputPosition, module, Stack::CV_INPUT)); addInput(createInput<Port24>(inInputPosition, module, Stack::IN_INPUT)); diff --git a/src/Stack.hpp b/src/Stack.hpp @@ -43,7 +43,12 @@ struct Stack : Module { float _fine = -1000.0f; float _outCV; - Stack() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Stack() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(SEMIS_PARAM, 0.0f, 11.0f, 0.0f, "semis"); + configParam(OCTAVE_PARAM, -3.0f, 3.0f, 0.0f, "octave"); + configParam(FINE_PARAM, -0.99f, 0.99f, 0.0f, "fine"); + configParam(QUANTIZE_PARAM, 0.0f, 1.0f, 1.0f, "quantize"); } void process(const ProcessArgs& args) override; diff --git a/src/Sums.hpp b/src/Sums.hpp @@ -33,6 +33,7 @@ struct Sums : DisableOutputLimitModule { }; Sums() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + } void process(const ProcessArgs& args) override; diff --git a/src/Test.cpp b/src/Test.cpp @@ -483,7 +483,8 @@ float Test::index3() { struct TestWidget : ModuleWidget { - TestWidget(Test* module) : ModuleWidget(module) { + TestWidget(Test* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * 3, RACK_GRID_HEIGHT); { @@ -510,9 +511,9 @@ struct TestWidget : ModuleWidget { auto out2OutputPosition = Vec(20.5, 316.0); // end generated by svg_widgets.rb - addParam(createParam<Knob26>(param1ParamPosition, module, Test::PARAM1_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<Knob26>(param2ParamPosition, module, Test::PARAM2_PARAM, 0.0, 1.0, 0.5)); - addParam(createParam<Knob26>(param3ParamPosition, module, Test::PARAM3_PARAM, 0.0, 1.0, 0.5)); + addParam(createParam<Knob26>(param1ParamPosition, module, Test::PARAM1_PARAM)); + addParam(createParam<Knob26>(param2ParamPosition, module, Test::PARAM2_PARAM)); + addParam(createParam<Knob26>(param3ParamPosition, module, Test::PARAM3_PARAM)); addInput(createInput<Port24>(cv1InputPosition, module, Test::CV1_INPUT)); addInput(createInput<Port24>(cv2InputPosition, module, Test::CV2_INPUT)); diff --git a/src/Test.hpp b/src/Test.hpp @@ -249,6 +249,10 @@ struct Test : Module { , _average(APP->engine->getSampleRate(), 1.0f, 1000.0f) #endif { + configParam(PARAM1_PARAM, 0.0f, 1.0f, 0.5f, "param1"); + configParam(PARAM2_PARAM, 0.0f, 1.0f, 0.5f, "param2"); + configParam(PARAM3_PARAM, 0.0f, 1.0f, 0.5f, "param3"); + onReset(); #ifdef SINE diff --git a/src/Test2.cpp b/src/Test2.cpp @@ -105,7 +105,8 @@ void Test2::process(const ProcessArgs& args) { struct Test2Widget : ModuleWidget { - Test2Widget(Test2* module) : ModuleWidget(module) { + Test2Widget(Test2* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * 6, RACK_GRID_HEIGHT); { @@ -137,12 +138,12 @@ struct Test2Widget : ModuleWidget { auto outOutputPosition = Vec(55.5, 323.0); // end generated by svg_widgets.rb - addParam(createParam<Knob26>(param1aParamPosition, module, Test2::PARAM1A_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(param2aParamPosition, module, Test2::PARAM2A_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(param3aParamPosition, module, Test2::PARAM3A_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(param1bParamPosition, module, Test2::PARAM1B_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(param2bParamPosition, module, Test2::PARAM2B_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(param3bParamPosition, module, Test2::PARAM3B_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob26>(param1aParamPosition, module, Test2::PARAM1A_PARAM)); + addParam(createParam<Knob26>(param2aParamPosition, module, Test2::PARAM2A_PARAM)); + addParam(createParam<Knob26>(param3aParamPosition, module, Test2::PARAM3A_PARAM)); + addParam(createParam<Knob26>(param1bParamPosition, module, Test2::PARAM1B_PARAM)); + addParam(createParam<Knob26>(param2bParamPosition, module, Test2::PARAM2B_PARAM)); + addParam(createParam<Knob26>(param3bParamPosition, module, Test2::PARAM3B_PARAM)); addInput(createInput<Port24>(cv1aInputPosition, module, Test2::CV1A_INPUT)); addInput(createInput<Port24>(cv2aInputPosition, module, Test2::CV2A_INPUT)); diff --git a/src/Test2.hpp b/src/Test2.hpp @@ -69,7 +69,15 @@ struct Test2 : Module { Limiter _limiter; #endif - Test2() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Test2() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(PARAM1A_PARAM, 0.0f, 1.0f, 0.0f, "param1a"); + configParam(PARAM2A_PARAM, 0.0f, 1.0f, 0.0f, "param2a"); + configParam(PARAM3A_PARAM, 0.0f, 1.0f, 0.0f, "param3a"); + configParam(PARAM1B_PARAM, 0.0f, 1.0f, 0.0f, "param1b"); + configParam(PARAM2B_PARAM, 0.0f, 1.0f, 0.0f, "param2b"); + configParam(PARAM3B_PARAM, 0.0f, 1.0f, 0.0f, "param3b"); + onReset(); } diff --git a/src/UMix.cpp b/src/UMix.cpp @@ -104,7 +104,8 @@ struct CVModeMenuItem : MenuItem { struct UMixWidget : ModuleWidget { static constexpr int hp = 3; - UMixWidget(UMix* module) : ModuleWidget(module) { + UMixWidget(UMix* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -132,7 +133,7 @@ struct UMixWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 263.0); // end generated by svg_widgets.rb - addParam(createParam<Knob16>(levelParamPosition, module, UMix::LEVEL_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob16>(levelParamPosition, module, UMix::LEVEL_PARAM)); addInput(createInput<Port24>(in1InputPosition, module, UMix::IN1_INPUT)); addInput(createInput<Port24>(in2InputPosition, module, UMix::IN2_INPUT)); diff --git a/src/UMix.hpp b/src/UMix.hpp @@ -40,7 +40,9 @@ struct UMix : Module { bool _cvMode = false; Saturator _saturator; - UMix() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + UMix() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(LEVEL_PARAM, 0.0f, 1.0f, 1.0f, "level"); } json_t* dataToJson() override; diff --git a/src/VCA.cpp b/src/VCA.cpp @@ -36,7 +36,8 @@ void VCA::channelStep(Input& input, Output& output, Param& knob, Input& cv, Ampl struct VCAWidget : ModuleWidget { static constexpr int hp = 3; - VCAWidget(VCA* module) : ModuleWidget(module) { + VCAWidget(VCA* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -65,9 +66,9 @@ struct VCAWidget : ModuleWidget { auto linearLightPosition = Vec(6.5, 334.5); // end generated by svg_widgets.rb - addParam(createParam<Knob26>(level1ParamPosition, module, VCA::LEVEL1_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob26>(level2ParamPosition, module, VCA::LEVEL2_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, VCA::LINEAR_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob26>(level1ParamPosition, module, VCA::LEVEL1_PARAM)); + addParam(createParam<Knob26>(level2ParamPosition, module, VCA::LEVEL2_PARAM)); + addParam(createParam<StatefulButton9>(linearParamPosition, module, VCA::LINEAR_PARAM)); addInput(createInput<Port24>(cv1InputPosition, module, VCA::CV1_INPUT)); addInput(createInput<Port24>(in1InputPosition, module, VCA::IN1_INPUT)); diff --git a/src/VCA.hpp b/src/VCA.hpp @@ -41,7 +41,12 @@ struct VCA : Module { Amplifier _amplifier2; bogaudio::dsp::SlewLimiter _levelSL2; - VCA() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + VCA() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(LEVEL1_PARAM, 0.0f, 1.0f, 0.8f, "level1"); + configParam(LEVEL2_PARAM, 0.0f, 1.0f, 0.8f, "level2"); + configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "linear"); + onSampleRateChange(); } diff --git a/src/VCAmp.cpp b/src/VCAmp.cpp @@ -31,7 +31,8 @@ void VCAmp::process(const ProcessArgs& args) { struct VCAmpWidget : ModuleWidget { static constexpr int hp = 3; - VCAmpWidget(VCAmp* module) : ModuleWidget(module) { + VCAmpWidget(VCAmp* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -53,14 +54,7 @@ struct VCAmpWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 286.0); // end generated by svg_widgets.rb - auto slider = createParam<VUSlider>( - levelParamPosition, - module, - VCAmp::LEVEL_PARAM, - 0.0, - 1.0, - fabs(minDecibels) / (maxDecibels - minDecibels) - ); + auto slider = createParam<VUSlider>levelParamPosition, module, VCAmp::LEVEL_PARAM); if (module) { dynamic_cast<VUSlider*>(slider)->setVULevel(&(module->_rmsLevel)); } diff --git a/src/VCAmp.hpp b/src/VCAmp.hpp @@ -36,7 +36,10 @@ struct VCAmp : Module { RootMeanSquare _rms; float _rmsLevel = 0.0f; - VCAmp() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + VCAmp() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(LEVEL_PARAM, 0.0f, 1.0f, fabs(minDecibels, "level"); + onSampleRateChange(); _rms.setSensitivity(0.05f); } diff --git a/src/VCM.cpp b/src/VCM.cpp @@ -79,12 +79,12 @@ struct VCMWidget : DisableOutputLimitModuleWidget { auto linearLightPosition = Vec(46.0, 344.0); // end generated by svg_widgets.rb - addParam(createParam<Knob38>(level1ParamPosition, module, VCM::LEVEL1_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(level2ParamPosition, module, VCM::LEVEL2_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(level3ParamPosition, module, VCM::LEVEL3_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(level4ParamPosition, module, VCM::LEVEL4_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<Knob38>(mixParamPosition, module, VCM::MIX_PARAM, 0.0, 1.0, 0.8)); - addParam(createParam<StatefulButton9>(linearParamPosition, module, VCM::LINEAR_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<Knob38>(level1ParamPosition, module, VCM::LEVEL1_PARAM)); + addParam(createParam<Knob38>(level2ParamPosition, module, VCM::LEVEL2_PARAM)); + addParam(createParam<Knob38>(level3ParamPosition, module, VCM::LEVEL3_PARAM)); + addParam(createParam<Knob38>(level4ParamPosition, module, VCM::LEVEL4_PARAM)); + addParam(createParam<Knob38>(mixParamPosition, module, VCM::MIX_PARAM)); + addParam(createParam<StatefulButton9>(linearParamPosition, module, VCM::LINEAR_PARAM)); addInput(createInput<Port24>(in1InputPosition, module, VCM::IN1_INPUT)); addInput(createInput<Port24>(cv1InputPosition, module, VCM::CV1_INPUT)); diff --git a/src/VCM.hpp b/src/VCM.hpp @@ -50,6 +50,13 @@ struct VCM : DisableOutputLimitModule { Amplifier _amplifier4; VCM() : DisableOutputLimitModule(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + configParam(LEVEL1_PARAM, 0.0f, 1.0f, 0.8f, "level1"); + configParam(LEVEL2_PARAM, 0.0f, 1.0f, 0.8f, "level2"); + configParam(LEVEL3_PARAM, 0.0f, 1.0f, 0.8f, "level3"); + configParam(LEVEL4_PARAM, 0.0f, 1.0f, 0.8f, "level4"); + configParam(MIX_PARAM, 0.0f, 1.0f, 0.8f, "mix"); + configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "linear"); + onReset(); } diff --git a/src/VCO.cpp b/src/VCO.cpp @@ -155,7 +155,8 @@ void VCO::setFrequency(float frequency) { struct VCOWidget : ModuleWidget { static constexpr int hp = 10; - VCOWidget(VCO* module) : ModuleWidget(module) { + VCOWidget(VCO* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -191,12 +192,12 @@ struct VCOWidget : ModuleWidget { auto slowLightPosition = Vec(82.0, 158.5); // end generated by svg_widgets.rb - addParam(createParam<Knob68>(frequencyParamPosition, module, VCO::FREQUENCY_PARAM, -3.0, 6.0, 0.0)); - addParam(createParam<Knob16>(fineParamPosition, module, VCO::FINE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, VCO::SLOW_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob26>(pwParamPosition, module, VCO::PW_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob26>(fmParamPosition, module, VCO::FM_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, VCO::FM_TYPE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob68>(frequencyParamPosition, module, VCO::FREQUENCY_PARAM)); + addParam(createParam<Knob16>(fineParamPosition, module, VCO::FINE_PARAM)); + addParam(createParam<StatefulButton9>(slowParamPosition, module, VCO::SLOW_PARAM)); + addParam(createParam<Knob26>(pwParamPosition, module, VCO::PW_PARAM)); + addParam(createParam<Knob26>(fmParamPosition, module, VCO::FM_PARAM)); + addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, VCO::FM_TYPE_PARAM)); addInput(createInput<Port24>(pitchInputPosition, module, VCO::PITCH_INPUT)); addInput(createInput<Port24>(syncInputPosition, module, VCO::SYNC_INPUT)); diff --git a/src/VCO.hpp b/src/VCO.hpp @@ -69,7 +69,15 @@ struct VCO : Module { PositiveZeroCrossing _syncTrigger; bogaudio::dsp::SlewLimiter _squarePulseWidthSL; - VCO() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + VCO() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(FREQUENCY_PARAM, -3.0f, 6.0f, 0.0f, "frequency"); + configParam(FINE_PARAM, -1.0f, 1.0f, 0.0f, "fine"); + configParam(SLOW_PARAM, 0.0f, 1.0f, 0.0f, "slow"); + configParam(PW_PARAM, -1.0f, 1.0f, 0.0f, "pw"); + configParam(FM_PARAM, 0.0f, 1.0f, 0.0f, "fm"); + configParam(FM_TYPE_PARAM, 0.0f, 1.0f, 1.0f, "fm_type"); + onReset(); setSampleRate(APP->engine->getSampleRate()); _saw.setQuality(12); diff --git a/src/VU.cpp b/src/VU.cpp @@ -92,7 +92,8 @@ struct VUDisplay : OpaqueWidget { struct VUWidget : ModuleWidget { static constexpr int hp = 3; - VUWidget(VU* module) : ModuleWidget(module) { + VUWidget(VU* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { diff --git a/src/VU.hpp b/src/VU.hpp @@ -35,7 +35,8 @@ struct VU : Module { float _lLevel = 0.0f; float _rLevel = 0.0f; - VU() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + VU() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); onSampleRateChange(); _lRms.setSensitivity(0.05f); _rRms.setSensitivity(0.05f); diff --git a/src/Walk.cpp b/src/Walk.cpp @@ -48,7 +48,8 @@ void Walk::process(const ProcessArgs& args) { struct WalkWidget : ModuleWidget { static constexpr int hp = 3; - WalkWidget(Walk* module) : ModuleWidget(module) { + WalkWidget(Walk* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -74,9 +75,9 @@ struct WalkWidget : ModuleWidget { auto outOutputPosition = Vec(10.5, 303.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(rateParamPosition, module, Walk::RATE_PARAM, 0.0, 1.0, 0.1)); - addParam(createParam<Knob16>(offsetParamPosition, module, Walk::OFFSET_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(scaleParamPosition, module, Walk::SCALE_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob29>(rateParamPosition, module, Walk::RATE_PARAM)); + addParam(createParam<Knob16>(offsetParamPosition, module, Walk::OFFSET_PARAM)); + addParam(createParam<Knob16>(scaleParamPosition, module, Walk::SCALE_PARAM)); addInput(createInput<Port24>(rateInputPosition, module, Walk::RATE_INPUT)); addInput(createInput<Port24>(offsetInputPosition, module, Walk::OFFSET_INPUT)); diff --git a/src/Walk.hpp b/src/Walk.hpp @@ -43,7 +43,12 @@ struct Walk : Module { RandomWalk _walk; bogaudio::dsp::SlewLimiter _slew; - Walk() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + Walk() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RATE_PARAM, 0.0f, 1.0f, 0.1f, "rate"); + configParam(OFFSET_PARAM, -1.0f, 1.0f, 0.0f, "offset"); + configParam(SCALE_PARAM, 0.0f, 1.0f, 1.0f, "scale"); + onReset(); } diff --git a/src/Walk2.cpp b/src/Walk2.cpp @@ -476,7 +476,8 @@ struct ColorMenuItem : MenuItem { struct Walk2Widget : ModuleWidget { static constexpr int hp = 14; - Walk2Widget(Walk2* module) : ModuleWidget(module) { + Walk2Widget(Walk2* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -522,12 +523,12 @@ struct Walk2Widget : ModuleWidget { auto distanceOutputPosition = Vec(109.0, 303.0); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(rateXParamPosition, module, Walk2::RATE_X_PARAM, 0.0, 1.0, 0.1)); - addParam(createParam<Knob29>(rateYParamPosition, module, Walk2::RATE_Y_PARAM, 0.0, 1.0, 0.1)); - addParam(createParam<Knob16>(offsetXParamPosition, module, Walk2::OFFSET_X_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(offsetYParamPosition, module, Walk2::OFFSET_Y_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(scaleXParamPosition, module, Walk2::SCALE_X_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob16>(scaleYParamPosition, module, Walk2::SCALE_Y_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob29>(rateXParamPosition, module, Walk2::RATE_X_PARAM)); + addParam(createParam<Knob29>(rateYParamPosition, module, Walk2::RATE_Y_PARAM)); + addParam(createParam<Knob16>(offsetXParamPosition, module, Walk2::OFFSET_X_PARAM)); + addParam(createParam<Knob16>(offsetYParamPosition, module, Walk2::OFFSET_Y_PARAM)); + addParam(createParam<Knob16>(scaleXParamPosition, module, Walk2::SCALE_X_PARAM)); + addParam(createParam<Knob16>(scaleYParamPosition, module, Walk2::SCALE_Y_PARAM)); addInput(createInput<Port24>(offsetXInputPosition, module, Walk2::OFFSET_X_INPUT)); addInput(createInput<Port24>(scaleXInputPosition, module, Walk2::SCALE_X_INPUT)); diff --git a/src/Walk2.hpp b/src/Walk2.hpp @@ -73,11 +73,18 @@ struct Walk2 : Module { TraceColor _traceColor = GREEN_TRACE_COLOR; Walk2() - : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) - , _outsX(historyPoints, 0.0f) + : _outsX(historyPoints, 0.0f) , _outsY(historyPoints, 0.0f) , _jumpTo(NULL) { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(RATE_X_PARAM, 0.0f, 1.0f, 0.1f, "rate_x"); + configParam(RATE_Y_PARAM, 0.0f, 1.0f, 0.1f, "rate_y"); + configParam(OFFSET_X_PARAM, -1.0f, 1.0f, 0.0f, "offset_x"); + configParam(OFFSET_Y_PARAM, -1.0f, 1.0f, 0.0f, "offset_y"); + configParam(SCALE_X_PARAM, 0.0f, 1.0f, 1.0f, "scale_x"); + configParam(SCALE_Y_PARAM, 0.0f, 1.0f, 1.0f, "scale_y"); + onReset(); onSampleRateChange(); } diff --git a/src/XCO.cpp b/src/XCO.cpp @@ -257,7 +257,8 @@ void XCO::setFrequency(float frequency) { struct XCOWidget : ModuleWidget { static constexpr int hp = 20; - XCOWidget(XCO* module) : ModuleWidget(module) { + XCOWidget(XCO* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -317,23 +318,23 @@ struct XCOWidget : ModuleWidget { auto slowLightPosition = Vec(81.0, 158.5); // end generated by svg_widgets.rb - addParam(createParam<Knob68>(frequencyParamPosition, module, XCO::FREQUENCY_PARAM, -3.0, 6.0, 0.0)); - addParam(createParam<Knob16>(fineParamPosition, module, XCO::FINE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<StatefulButton9>(slowParamPosition, module, XCO::SLOW_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob38>(fmParamPosition, module, XCO::FM_DEPTH_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, XCO::FM_TYPE_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob16>(squarePwParamPosition, module, XCO::SQUARE_PW_PARAM, -0.97, 0.97, 0.0)); - addParam(createParam<Knob16>(squarePhaseParamPosition, module, XCO::SQUARE_PHASE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(squareMixParamPosition, module, XCO::SQUARE_MIX_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob16>(sawSaturationParamPosition, module, XCO::SAW_SATURATION_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob16>(sawPhaseParamPosition, module, XCO::SAW_PHASE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(sawMixParamPosition, module, XCO::SAW_MIX_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob16>(triangleSampleParamPosition, module, XCO::TRIANGLE_SAMPLE_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob16>(trianglePhaseParamPosition, module, XCO::TRIANGLE_PHASE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(triangleMixParamPosition, module, XCO::TRIANGLE_MIX_PARAM, 0.0, 1.0, 1.0)); - addParam(createParam<Knob16>(sineFeedbackParamPosition, module, XCO::SINE_FEEDBACK_PARAM, 0.0, 1.0, 0.0)); - addParam(createParam<Knob16>(sinePhaseParamPosition, module, XCO::SINE_PHASE_PARAM, -1.0, 1.0, 0.0)); - addParam(createParam<Knob16>(sineMixParamPosition, module, XCO::SINE_MIX_PARAM, 0.0, 1.0, 1.0)); + addParam(createParam<Knob68>(frequencyParamPosition, module, XCO::FREQUENCY_PARAM)); + addParam(createParam<Knob16>(fineParamPosition, module, XCO::FINE_PARAM)); + addParam(createParam<StatefulButton9>(slowParamPosition, module, XCO::SLOW_PARAM)); + addParam(createParam<Knob38>(fmParamPosition, module, XCO::FM_DEPTH_PARAM)); + addParam(createParam<SliderSwitch2State14>(fmTypeParamPosition, module, XCO::FM_TYPE_PARAM)); + addParam(createParam<Knob16>(squarePwParamPosition, module, XCO::SQUARE_PW_PARAM)); + addParam(createParam<Knob16>(squarePhaseParamPosition, module, XCO::SQUARE_PHASE_PARAM)); + addParam(createParam<Knob16>(squareMixParamPosition, module, XCO::SQUARE_MIX_PARAM)); + addParam(createParam<Knob16>(sawSaturationParamPosition, module, XCO::SAW_SATURATION_PARAM)); + addParam(createParam<Knob16>(sawPhaseParamPosition, module, XCO::SAW_PHASE_PARAM)); + addParam(createParam<Knob16>(sawMixParamPosition, module, XCO::SAW_MIX_PARAM)); + addParam(createParam<Knob16>(triangleSampleParamPosition, module, XCO::TRIANGLE_SAMPLE_PARAM)); + addParam(createParam<Knob16>(trianglePhaseParamPosition, module, XCO::TRIANGLE_PHASE_PARAM)); + addParam(createParam<Knob16>(triangleMixParamPosition, module, XCO::TRIANGLE_MIX_PARAM)); + addParam(createParam<Knob16>(sineFeedbackParamPosition, module, XCO::SINE_FEEDBACK_PARAM)); + addParam(createParam<Knob16>(sinePhaseParamPosition, module, XCO::SINE_PHASE_PARAM)); + addParam(createParam<Knob16>(sineMixParamPosition, module, XCO::SINE_MIX_PARAM)); addInput(createInput<Port24>(fmInputPosition, module, XCO::FM_INPUT)); addInput(createInput<Port24>(fmDepthInputPosition, module, XCO::FM_DEPTH_INPUT)); diff --git a/src/XCO.hpp b/src/XCO.hpp @@ -117,7 +117,26 @@ struct XCO : Module { bogaudio::dsp::SlewLimiter _triangleMixSL; bogaudio::dsp::SlewLimiter _sineMixSL; - XCO() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + XCO() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(FREQUENCY_PARAM, -3.0f, 6.0f, 0.0f, "frequency"); + configParam(FINE_PARAM, -1.0f, 1.0f, 0.0f, "fine"); + configParam(SLOW_PARAM, 0.0f, 1.0f, 0.0f, "slow"); + configParam(FM_DEPTH_PARAM, 0.0f, 1.0f, 0.0f, "fm_depth"); + configParam(FM_TYPE_PARAM, 0.0f, 1.0f, 1.0f, "fm_type"); + configParam(SQUARE_PW_PARAM, -0.97f, 0.97f, 0.0f, "square_pw"); + configParam(SQUARE_PHASE_PARAM, -1.0f, 1.0f, 0.0f, "square_phase"); + configParam(SQUARE_MIX_PARAM, 0.0f, 1.0f, 1.0f, "square_mix"); + configParam(SAW_SATURATION_PARAM, 0.0f, 1.0f, 0.0f, "saw_saturation"); + configParam(SAW_PHASE_PARAM, -1.0f, 1.0f, 0.0f, "saw_phase"); + configParam(SAW_MIX_PARAM, 0.0f, 1.0f, 1.0f, "saw_mix"); + configParam(TRIANGLE_SAMPLE_PARAM, 0.0f, 1.0f, 0.0f, "triangle_sample"); + configParam(TRIANGLE_PHASE_PARAM, -1.0f, 1.0f, 0.0f, "triangle_phase"); + configParam(TRIANGLE_MIX_PARAM, 0.0f, 1.0f, 1.0f, "triangle_mix"); + configParam(SINE_FEEDBACK_PARAM, 0.0f, 1.0f, 0.0f, "sine_feedback"); + configParam(SINE_PHASE_PARAM, -1.0f, 1.0f, 0.0f, "sine_phase"); + configParam(SINE_MIX_PARAM, 0.0f, 1.0f, 1.0f, "sine_mix"); + onReset(); setSampleRate(APP->engine->getSampleRate()); _saw.setQuality(12); diff --git a/src/XFade.cpp b/src/XFade.cpp @@ -39,7 +39,8 @@ void XFade::process(const ProcessArgs& args) { struct XFadeWidget : ModuleWidget { static constexpr int hp = 3; - XFadeWidget(XFade* module) : ModuleWidget(module) { + XFadeWidget(XFade* module) { + setModule(module); box.size = Vec(RACK_GRID_WIDTH * hp, RACK_GRID_HEIGHT); { @@ -66,15 +67,15 @@ struct XFadeWidget : ModuleWidget { auto linearLightPosition = Vec(6.5, 177.5); // end generated by svg_widgets.rb - addParam(createParam<Knob29>(mixParamPosition, module, XFade::MIX_PARAM, -1.0, 1.0, 0.0)); + addParam(createParam<Knob29>(mixParamPosition, module, XFade::MIX_PARAM)); { - auto w = createParam<Knob16>(curveParamPosition, module, XFade::CURVE_PARAM, 0.0, 1.0, 0.5); + auto w = createParam<Knob16>(curveParamPosition, module, XFade::CURVE_PARAM); auto k = dynamic_cast<SVGKnob*>(w); k->minAngle = -0.5 * M_PI; k->maxAngle = 0.5 * M_PI; addParam(w); } - addParam(createParam<StatefulButton9>(linearParamPosition, module, XFade::LINEAR_PARAM, 0.0, 1.0, 0.0)); + addParam(createParam<StatefulButton9>(linearParamPosition, module, XFade::LINEAR_PARAM)); addInput(createInput<Port24>(mixInputPosition, module, XFade::MIX_INPUT)); addInput(createInput<Port24>(aInputPosition, module, XFade::A_INPUT)); diff --git a/src/XFade.hpp b/src/XFade.hpp @@ -40,7 +40,12 @@ struct XFade : Module { bogaudio::dsp::SlewLimiter _mixSL; CrossFader _mixer; - XFade() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) { + XFade() { + config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); + configParam(MIX_PARAM, -1.0f, 1.0f, 0.0f, "mix"); + configParam(CURVE_PARAM, 0.0f, 1.0f, 0.5f, "curve"); + configParam(LINEAR_PARAM, 0.0f, 1.0f, 0.0f, "linear"); + onSampleRateChange(); }