@@ -31,10 +31,11 @@ void _8vert::step() { | |||
} | |||
_8vertWidget::_8vertWidget() { | |||
_8vert *module = new _8vert(); | |||
setModule(module); | |||
box.size = Vec(8 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT); | |||
struct _8vertWidget : ModuleWidget { | |||
_8vertWidget(_8vert *module); | |||
}; | |||
_8vertWidget::_8vertWidget(_8vert *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/8vert.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
@@ -78,3 +79,6 @@ _8vertWidget::_8vertWidget() { | |||
addChild(ModuleLightWidget::create<TinyLight<GreenRedLight>>(Vec(107.702, 281.076), module, 12)); | |||
addChild(ModuleLightWidget::create<TinyLight<GreenRedLight>>(Vec(107.702, 319.521), module, 14)); | |||
} | |||
Model *model_8vertWidget = Model::create<_8vert, _8vertWidget>("Fundamental", "8vert", "8vert", ATTENUATOR_TAG); |
@@ -102,17 +102,12 @@ void ADSR::step() { | |||
} | |||
ADSRWidget::ADSRWidget() { | |||
ADSR *module = new ADSR(); | |||
setModule(module); | |||
box.size = Vec(15*8, 380); | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/ADSR.svg"))); | |||
addChild(panel); | |||
} | |||
struct ADSRWidget : ModuleWidget { | |||
ADSRWidget(ADSR *module); | |||
}; | |||
ADSRWidget::ADSRWidget(ADSR *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/ADSR.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -138,3 +133,6 @@ ADSRWidget::ADSRWidget() { | |||
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(94, 175), module, ADSR::SUSTAIN_LIGHT)); | |||
addChild(ModuleLightWidget::create<SmallLight<RedLight>>(Vec(94, 242), module, ADSR::RELEASE_LIGHT)); | |||
} | |||
Model *modelADSRWidget = Model::create<ADSR, ADSRWidget>("Fundamental", "ADSR", "ADSR", ENVELOPE_GENERATOR_TAG); |
@@ -107,17 +107,12 @@ void Delay::step() { | |||
} | |||
DelayWidget::DelayWidget() { | |||
Delay *module = new Delay(); | |||
setModule(module); | |||
box.size = Vec(15*8, 380); | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/Delay.svg"))); | |||
addChild(panel); | |||
} | |||
struct DelayWidget : ModuleWidget { | |||
DelayWidget(Delay *module); | |||
}; | |||
DelayWidget::DelayWidget(Delay *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/Delay.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -136,3 +131,6 @@ DelayWidget::DelayWidget() { | |||
addInput(Port::create<PJ301MPort>(Vec(14, 320), Port::INPUT, module, Delay::IN_INPUT)); | |||
addOutput(Port::create<PJ301MPort>(Vec(73, 320), Port::OUTPUT, module, Delay::OUT_OUTPUT)); | |||
} | |||
Model *modelDelayWidget = Model::create<Delay, DelayWidget>("Fundamental", "Delay", "Delay", DELAY_TAG); |
@@ -8,20 +8,20 @@ void init(rack::Plugin *p) { | |||
p->slug = TOSTRING(SLUG); | |||
p->version = TOSTRING(VERSION); | |||
p->addModel(createModel<VCOWidget>("Fundamental", "VCO", "VCO-1", OSCILLATOR_TAG)); | |||
p->addModel(createModel<VCO2Widget>("Fundamental", "VCO2", "VCO-2", OSCILLATOR_TAG)); | |||
p->addModel(createModel<VCFWidget>("Fundamental", "VCF", "VCF", FILTER_TAG)); | |||
p->addModel(createModel<VCAWidget>("Fundamental", "VCA", "VCA", AMPLIFIER_TAG)); | |||
p->addModel(createModel<LFOWidget>("Fundamental", "LFO", "LFO-1", LFO_TAG)); | |||
p->addModel(createModel<LFO2Widget>("Fundamental", "LFO2", "LFO-2", LFO_TAG)); | |||
p->addModel(createModel<DelayWidget>("Fundamental", "Delay", "Delay", DELAY_TAG)); | |||
p->addModel(createModel<ADSRWidget>("Fundamental", "ADSR", "ADSR", ENVELOPE_GENERATOR_TAG)); | |||
p->addModel(createModel<VCMixerWidget>("Fundamental", "VCMixer", "VC Mixer", MIXER_TAG, AMPLIFIER_TAG)); | |||
p->addModel(createModel<_8vertWidget>("Fundamental", "8vert", "8vert", ATTENUATOR_TAG)); | |||
p->addModel(createModel<UnityWidget>("Fundamental", "Unity", "Unity", MIXER_TAG, UTILITY_TAG)); | |||
p->addModel(createModel<MutesWidget>("Fundamental", "Mutes", "Mutes", SWITCH_TAG)); | |||
p->addModel(createModel<ScopeWidget>("Fundamental", "Scope", "Scope", VISUAL_TAG)); | |||
p->addModel(createModel<SEQ3Widget>("Fundamental", "SEQ3", "SEQ-3", SEQUENCER_TAG)); | |||
p->addModel(createModel<SequentialSwitch1Widget>("Fundamental", "SequentialSwitch1", "Sequential Switch 1", UTILITY_TAG)); | |||
p->addModel(createModel<SequentialSwitch2Widget>("Fundamental", "SequentialSwitch2", "Sequential Switch 2", UTILITY_TAG)); | |||
p->addModel(modelVCOWidget); | |||
p->addModel(modelVCO2Widget); | |||
p->addModel(modelVCFWidget); | |||
p->addModel(modelVCAWidget); | |||
p->addModel(modelLFOWidget); | |||
p->addModel(modelLFO2Widget); | |||
p->addModel(modelDelayWidget); | |||
p->addModel(modelADSRWidget); | |||
p->addModel(modelVCMixerWidget); | |||
p->addModel(model_8vertWidget); | |||
p->addModel(modelUnityWidget); | |||
p->addModel(modelMutesWidget); | |||
p->addModel(modelScopeWidget); | |||
p->addModel(modelSEQ3Widget); | |||
p->addModel(modelSequentialSwitch1Widget); | |||
p->addModel(modelSequentialSwitch2Widget); | |||
} |
@@ -6,72 +6,21 @@ using namespace rack; | |||
extern Plugin *plugin; | |||
//////////////////// | |||
// module widgets | |||
//////////////////// | |||
extern Model *modelVCOWidget; | |||
extern Model *modelVCO2Widget; | |||
extern Model *modelVCFWidget; | |||
extern Model *modelVCAWidget; | |||
extern Model *modelLFOWidget; | |||
extern Model *modelLFO2Widget; | |||
extern Model *modelDelayWidget; | |||
extern Model *modelADSRWidget; | |||
extern Model *modelVCMixerWidget; | |||
extern Model *model_8vertWidget; | |||
extern Model *modelUnityWidget; | |||
extern Model *modelMutesWidget; | |||
extern Model *modelScopeWidget; | |||
extern Model *modelSEQ3Widget; | |||
extern Model *modelSequentialSwitch1Widget; | |||
extern Model *modelSequentialSwitch2Widget; | |||
struct VCOWidget : ModuleWidget { | |||
VCOWidget(); | |||
}; | |||
struct VCO2Widget : ModuleWidget { | |||
VCO2Widget(); | |||
}; | |||
struct VCFWidget : ModuleWidget { | |||
VCFWidget(); | |||
}; | |||
struct VCAWidget : ModuleWidget { | |||
VCAWidget(); | |||
}; | |||
struct LFOWidget : ModuleWidget { | |||
LFOWidget(); | |||
}; | |||
struct LFO2Widget : ModuleWidget { | |||
LFO2Widget(); | |||
}; | |||
struct DelayWidget : ModuleWidget { | |||
DelayWidget(); | |||
}; | |||
struct ADSRWidget : ModuleWidget { | |||
ADSRWidget(); | |||
}; | |||
struct VCMixerWidget : ModuleWidget { | |||
VCMixerWidget(); | |||
}; | |||
struct _8vertWidget : ModuleWidget { | |||
_8vertWidget(); | |||
}; | |||
struct UnityWidget : ModuleWidget { | |||
UnityWidget(); | |||
Menu *createContextMenu() override; | |||
}; | |||
struct MutesWidget : ModuleWidget { | |||
MutesWidget(); | |||
}; | |||
struct ScopeWidget : ModuleWidget { | |||
ScopeWidget(); | |||
}; | |||
struct SEQ3Widget : ModuleWidget { | |||
SEQ3Widget(); | |||
Menu *createContextMenu() override; | |||
}; | |||
struct SequentialSwitch1Widget : ModuleWidget { | |||
SequentialSwitch1Widget(); | |||
}; | |||
struct SequentialSwitch2Widget : ModuleWidget { | |||
SequentialSwitch2Widget(); | |||
}; |
@@ -120,17 +120,12 @@ void LFO::step() { | |||
} | |||
LFOWidget::LFOWidget() { | |||
LFO *module = new LFO(); | |||
setModule(module); | |||
box.size = Vec(15*10, 380); | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/LFO-1.svg"))); | |||
addChild(panel); | |||
} | |||
struct LFOWidget : ModuleWidget { | |||
LFOWidget(LFO *module); | |||
}; | |||
LFOWidget::LFOWidget(LFO *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/LFO-1.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -160,6 +155,8 @@ LFOWidget::LFOWidget() { | |||
} | |||
Model *modelLFOWidget = Model::create<LFO, LFOWidget>("Fundamental", "LFO", "LFO-1", LFO_TAG); | |||
struct LFO2 : Module { | |||
enum ParamIds { | |||
@@ -216,17 +213,12 @@ void LFO2::step() { | |||
} | |||
LFO2Widget::LFO2Widget() { | |||
LFO2 *module = new LFO2(); | |||
setModule(module); | |||
box.size = Vec(15*6, 380); | |||
struct LFO2Widget : ModuleWidget { | |||
LFO2Widget(LFO2 *module); | |||
}; | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/LFO-2.svg"))); | |||
addChild(panel); | |||
} | |||
LFO2Widget::LFO2Widget(LFO2 *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/LFO-2.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -248,3 +240,6 @@ LFO2Widget::LFO2Widget() { | |||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(68, 42.5f), module, LFO2::PHASE_POS_LIGHT)); | |||
} | |||
Model *modelLFO2Widget = Model::create<LFO2, LFO2Widget>("Fundamental", "LFO2", "LFO-2", LFO_TAG); |
@@ -86,9 +86,12 @@ struct MuteLight : BASE { | |||
} | |||
}; | |||
MutesWidget::MutesWidget() { | |||
Mutes *module = new Mutes(); | |||
setModule(module); | |||
struct MutesWidget : ModuleWidget { | |||
MutesWidget(Mutes *module); | |||
}; | |||
MutesWidget::MutesWidget(Mutes *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/Mutes.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
@@ -140,3 +143,6 @@ MutesWidget::MutesWidget() { | |||
addChild(ModuleLightWidget::create<MuteLight<GreenLight>>(mm2px(Vec(17.32, 98.915)), module, Mutes::MUTE_LIGHT + 8)); | |||
addChild(ModuleLightWidget::create<MuteLight<GreenLight>>(mm2px(Vec(17.32, 108.915)), module, Mutes::MUTE_LIGHT + 9)); | |||
} | |||
Model *modelMutesWidget = Model::create<Mutes, MutesWidget>("Fundamental", "Mutes", "Mutes", SWITCH_TAG); |
@@ -211,17 +211,13 @@ void SEQ3::step() { | |||
} | |||
SEQ3Widget::SEQ3Widget() { | |||
SEQ3 *module = new SEQ3(); | |||
setModule(module); | |||
box.size = Vec(15*22, 380); | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/SEQ3.svg"))); | |||
addChild(panel); | |||
} | |||
struct SEQ3Widget : ModuleWidget { | |||
SEQ3Widget(SEQ3 *module); | |||
Menu *createContextMenu() override; | |||
}; | |||
SEQ3Widget::SEQ3Widget(SEQ3 *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/SEQ3.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -303,3 +299,6 @@ Menu *SEQ3Widget::createContextMenu() { | |||
return menu; | |||
} | |||
Model *modelSEQ3Widget = Model::create<SEQ3, SEQ3Widget>("Fundamental", "SEQ3", "SEQ-3", SEQUENCER_TAG); |
@@ -299,17 +299,12 @@ struct ScopeDisplay : TransparentWidget { | |||
}; | |||
ScopeWidget::ScopeWidget() { | |||
Scope *module = new Scope(); | |||
setModule(module); | |||
box.size = Vec(15*13, 380); | |||
struct ScopeWidget : ModuleWidget { | |||
ScopeWidget(Scope *module); | |||
}; | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/Scope.svg"))); | |||
addChild(panel); | |||
} | |||
ScopeWidget::ScopeWidget(Scope *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/Scope.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -342,3 +337,6 @@ ScopeWidget::ScopeWidget() { | |||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(150, 251), module, Scope::INTERNAL_LIGHT)); | |||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(150, 296), module, Scope::EXTERNAL_LIGHT)); | |||
} | |||
Model *modelScopeWidget = Model::create<Scope, ScopeWidget>("Fundamental", "Scope", "Scope", VISUAL_TAG); |
@@ -75,10 +75,12 @@ struct SequentialSwitch : Module { | |||
}; | |||
SequentialSwitch1Widget::SequentialSwitch1Widget() { | |||
struct SequentialSwitch1Widget : ModuleWidget { | |||
SequentialSwitch1Widget(SequentialSwitch<1> *module); | |||
}; | |||
SequentialSwitch1Widget::SequentialSwitch1Widget(SequentialSwitch<1> *module) : ModuleWidget(module) { | |||
typedef SequentialSwitch<1> TSequentialSwitch; | |||
TSequentialSwitch *module = new TSequentialSwitch(); | |||
setModule(module); | |||
setPanel(SVG::load(assetPlugin(plugin, "res/SequentialSwitch1.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
@@ -102,10 +104,15 @@ SequentialSwitch1Widget::SequentialSwitch1Widget() { | |||
} | |||
SequentialSwitch2Widget::SequentialSwitch2Widget() { | |||
Model *modelSequentialSwitch1Widget = Model::create<SequentialSwitch<1>, SequentialSwitch1Widget>("Fundamental", "SequentialSwitch1", "Sequential Switch 1", UTILITY_TAG); | |||
struct SequentialSwitch2Widget : ModuleWidget { | |||
SequentialSwitch2Widget(SequentialSwitch<2> *module); | |||
}; | |||
SequentialSwitch2Widget::SequentialSwitch2Widget(SequentialSwitch<2> *module) : ModuleWidget(module) { | |||
typedef SequentialSwitch<2> TSequentialSwitch; | |||
TSequentialSwitch *module = new TSequentialSwitch(); | |||
setModule(module); | |||
setPanel(SVG::load(assetPlugin(plugin, "res/SequentialSwitch2.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||
@@ -127,3 +134,6 @@ SequentialSwitch2Widget::SequentialSwitch2Widget() { | |||
addChild(ModuleLightWidget::create<TinyLight<GreenLight>>(mm2px(Vec(10.7321, 82.6285)), module, TSequentialSwitch::CHANNEL_LIGHT + 2)); | |||
addChild(ModuleLightWidget::create<TinyLight<GreenLight>>(mm2px(Vec(10.7321, 92.6276)), module, TSequentialSwitch::CHANNEL_LIGHT + 3)); | |||
} | |||
Model *modelSequentialSwitch2Widget = Model::create<SequentialSwitch<2>, SequentialSwitch2Widget>("Fundamental", "SequentialSwitch2", "Sequential Switch 2", UTILITY_TAG); |
@@ -90,9 +90,12 @@ void Unity::step() { | |||
} | |||
UnityWidget::UnityWidget() { | |||
Unity *module = new Unity(); | |||
setModule(module); | |||
struct UnityWidget : ModuleWidget { | |||
UnityWidget(Unity *module); | |||
Menu *createContextMenu() override; | |||
}; | |||
UnityWidget::UnityWidget(Unity *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/Unity.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
@@ -160,3 +163,6 @@ Menu *UnityWidget::createContextMenu() { | |||
return menu; | |||
} | |||
Model *modelUnityWidget = Model::create<Unity, UnityWidget>("Fundamental", "Unity", "Unity", MIXER_TAG, UTILITY_TAG); |
@@ -43,17 +43,12 @@ void VCA::step() { | |||
} | |||
VCAWidget::VCAWidget() { | |||
VCA *module = new VCA(); | |||
setModule(module); | |||
box.size = Vec(15*6, 380); | |||
struct VCAWidget : ModuleWidget { | |||
VCAWidget(VCA *module); | |||
}; | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCA.svg"))); | |||
addChild(panel); | |||
} | |||
VCAWidget::VCAWidget(VCA *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/VCA.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -73,3 +68,6 @@ VCAWidget::VCAWidget() { | |||
addOutput(Port::create<PJ301MPort>(Vec(54, 156), Port::OUTPUT, module, VCA::OUT1_OUTPUT)); | |||
addOutput(Port::create<PJ301MPort>(Vec(54, 320), Port::OUTPUT, module, VCA::OUT2_OUTPUT)); | |||
} | |||
Model *modelVCAWidget = Model::create<VCA, VCAWidget>("Fundamental", "VCA", "VCA", AMPLIFIER_TAG); |
@@ -144,17 +144,12 @@ void VCF::step() { | |||
} | |||
VCFWidget::VCFWidget() { | |||
VCF *module = new VCF(); | |||
setModule(module); | |||
box.size = Vec(15*8, 380); | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCF.svg"))); | |||
addChild(panel); | |||
} | |||
struct VCFWidget : ModuleWidget { | |||
VCFWidget(VCF *module); | |||
}; | |||
VCFWidget::VCFWidget(VCF *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/VCF.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -175,3 +170,6 @@ VCFWidget::VCFWidget() { | |||
addOutput(Port::create<PJ301MPort>(Vec(48, 320), Port::OUTPUT, module, VCF::LPF_OUTPUT)); | |||
addOutput(Port::create<PJ301MPort>(Vec(85, 320), Port::OUTPUT, module, VCF::HPF_OUTPUT)); | |||
} | |||
Model *modelVCFWidget = Model::create<VCF, VCFWidget>("Fundamental", "VCF", "VCF", FILTER_TAG); |
@@ -46,17 +46,12 @@ void VCMixer::step() { | |||
} | |||
VCMixerWidget::VCMixerWidget() { | |||
VCMixer *module = new VCMixer(); | |||
setModule(module); | |||
box.size = Vec(15*10, 380); | |||
struct VCMixerWidget : ModuleWidget { | |||
VCMixerWidget(VCMixer *module); | |||
}; | |||
{ | |||
SVGPanel *panel = new SVGPanel(); | |||
panel->box.size = box.size; | |||
panel->setBackground(SVG::load(assetPlugin(plugin, "res/VCMixer.svg"))); | |||
addChild(panel); | |||
} | |||
VCMixerWidget::VCMixerWidget(VCMixer *module) : ModuleWidget(module) { | |||
setPanel(SVG::load(assetPlugin(plugin, "res/VCMixer.svg"))); | |||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||
@@ -81,3 +76,6 @@ VCMixerWidget::VCMixerWidget() { | |||
addOutput(Port::create<PJ301MPort>(Vec(110, 225), Port::OUTPUT, module, VCMixer::CH2_OUTPUT)); | |||
addOutput(Port::create<PJ301MPort>(Vec(110, 306), Port::OUTPUT, module, VCMixer::CH3_OUTPUT)); | |||
} | |||
Model *modelVCMixerWidget = Model::create<VCMixer, VCMixerWidget>("Fundamental", "VCMixer", "VC Mixer", MIXER_TAG, AMPLIFIER_TAG); |