@@ -1,6 +1,3 @@ | |||||
SLUG = AudibleInstruments | |||||
VERSION = 0.6.3 | |||||
FLAGS += \ | FLAGS += \ | ||||
-DTEST \ | -DTEST \ | ||||
-I./eurorack \ | -I./eurorack \ | ||||
@@ -141,7 +141,7 @@ | |||||
"name": "Keyframer/Mixer", | "name": "Keyframer/Mixer", | ||||
"description": "", | "description": "", | ||||
"tags": [ | "tags": [ | ||||
"Oscillator" | |||||
"Oscillator", | |||||
"Mixer", | "Mixer", | ||||
"Attenuator", | "Attenuator", | ||||
"LFO" | "LFO" | ||||
@@ -163,6 +163,6 @@ | |||||
"tags": [ | "tags": [ | ||||
"Random" | "Random" | ||||
] | ] | ||||
}, | |||||
} | |||||
] | ] | ||||
} | } |
@@ -1,10 +1,10 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
Plugin *plugin; | |||||
Plugin *pluginInstance; | |||||
void init(rack::Plugin *p) { | void init(rack::Plugin *p) { | ||||
plugin = p; | |||||
pluginInstance = p; | |||||
p->addModel(modelBraids); | p->addModel(modelBraids); | ||||
p->addModel(modelPlaits); | p->addModel(modelPlaits); | ||||
@@ -1,10 +1,10 @@ | |||||
#include "rack.hpp" | |||||
#include "rack0.hpp" | |||||
using namespace rack; | using namespace rack; | ||||
extern Plugin *plugin; | |||||
extern Plugin *pluginInstance; | |||||
extern Model *modelBraids; | extern Model *modelBraids; | ||||
extern Model *modelPlaits; | extern Model *modelPlaits; | ||||
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include <string.h> | |||||
struct Blinds : Module { | struct Blinds : Module { | ||||
@@ -71,49 +70,49 @@ void Blinds::step() { | |||||
struct BlindsWidget : ModuleWidget { | struct BlindsWidget : ModuleWidget { | ||||
BlindsWidget(Blinds *module) : ModuleWidget(module) { | BlindsWidget(Blinds *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Blinds.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(150, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(150, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 52), module, Blinds::GAIN1_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 131), module, Blinds::GAIN2_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 210), module, Blinds::GAIN3_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 288), module, Blinds::GAIN4_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 63), module, Blinds::MOD1_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 142), module, Blinds::MOD2_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 221), module, Blinds::MOD3_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 300), module, Blinds::MOD4_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 41), Port::INPUT, module, Blinds::IN1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 120), Port::INPUT, module, Blinds::IN2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 198), Port::INPUT, module, Blinds::IN3_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 277), Port::INPUT, module, Blinds::IN4_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 80), Port::INPUT, module, Blinds::CV1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 159), Port::INPUT, module, Blinds::CV2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 238), Port::INPUT, module, Blinds::CV3_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 316), Port::INPUT, module, Blinds::CV4_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 41), Port::OUTPUT, module, Blinds::OUT1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 120), Port::OUTPUT, module, Blinds::OUT2_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 198), Port::OUTPUT, module, Blinds::OUT3_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 277), Port::OUTPUT, module, Blinds::OUT4_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(78, 96), module, Blinds::CV1_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(78, 175), module, Blinds::CV2_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(78, 254), module, Blinds::CV3_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(78, 333), module, Blinds::CV4_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 87), module, Blinds::OUT1_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 166), module, Blinds::OUT2_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 245), module, Blinds::OUT3_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 324), module, Blinds::OUT4_POS_LIGHT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Blinds.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(150, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(150, 365))); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 52), module, Blinds::GAIN1_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 131), module, Blinds::GAIN2_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 210), module, Blinds::GAIN3_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 288), module, Blinds::GAIN4_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 63), module, Blinds::MOD1_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 142), module, Blinds::MOD2_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 221), module, Blinds::MOD3_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 300), module, Blinds::MOD4_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 41), PortWidget::INPUT, module, Blinds::IN1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 120), PortWidget::INPUT, module, Blinds::IN2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 198), PortWidget::INPUT, module, Blinds::IN3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 277), PortWidget::INPUT, module, Blinds::IN4_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 80), PortWidget::INPUT, module, Blinds::CV1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 159), PortWidget::INPUT, module, Blinds::CV2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 238), PortWidget::INPUT, module, Blinds::CV3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 316), PortWidget::INPUT, module, Blinds::CV4_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 41), PortWidget::OUTPUT, module, Blinds::OUT1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 120), PortWidget::OUTPUT, module, Blinds::OUT2_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 198), PortWidget::OUTPUT, module, Blinds::OUT3_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 277), PortWidget::OUTPUT, module, Blinds::OUT4_OUTPUT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(78, 96), module, Blinds::CV1_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(78, 175), module, Blinds::CV2_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(78, 254), module, Blinds::CV3_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(78, 333), module, Blinds::CV4_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 87), module, Blinds::OUT1_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 166), module, Blinds::OUT2_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 245), module, Blinds::OUT3_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 324), module, Blinds::OUT4_POS_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelBlinds = Model::create<Blinds, BlindsWidget>("Blinds"); | |||||
Model *modelBlinds = createModel<Blinds, BlindsWidget>("Blinds"); |
@@ -1,7 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "braids/macro_oscillator.h" | #include "braids/macro_oscillator.h" | ||||
#include "braids/vco_jitter_source.h" | #include "braids/vco_jitter_source.h" | ||||
#include "braids/signature_waveshaper.h" | #include "braids/signature_waveshaper.h" | ||||
@@ -45,7 +42,7 @@ struct Braids : Module { | |||||
void step() override; | void step() override; | ||||
void setShape(int shape); | void setShape(int shape); | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_t *settingsJ = json_array(); | json_t *settingsJ = json_array(); | ||||
uint8_t *settingsArray = &settings.shape; | uint8_t *settingsArray = &settings.shape; | ||||
@@ -61,7 +58,7 @@ struct Braids : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *settingsJ = json_object_get(rootJ, "settings"); | json_t *settingsJ = json_object_get(rootJ, "settings"); | ||||
if (settingsJ) { | if (settingsJ) { | ||||
uint8_t *settingsArray = &settings.shape; | uint8_t *settingsArray = &settings.shape; | ||||
@@ -236,7 +233,7 @@ struct BraidsDisplay : TransparentWidget { | |||||
std::shared_ptr<Font> font; | std::shared_ptr<Font> font; | ||||
BraidsDisplay() { | BraidsDisplay() { | ||||
font = Font::load(assetPlugin(plugin, "res/hdad-segment14-1.002/Segment14.ttf")); | |||||
font = Font::load(assetPlugin(pluginInstance, "res/hdad-segment14-1.002/Segment14.ttf")); | |||||
} | } | ||||
void draw(NVGcontext *vg) override { | void draw(NVGcontext *vg) override { | ||||
@@ -271,7 +268,7 @@ struct BraidsSettingItem : MenuItem { | |||||
uint8_t *setting = NULL; | uint8_t *setting = NULL; | ||||
uint8_t offValue = 0; | uint8_t offValue = 0; | ||||
uint8_t onValue = 1; | uint8_t onValue = 1; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
// Toggle setting | // Toggle setting | ||||
*setting = (*setting == onValue) ? offValue : onValue; | *setting = (*setting == onValue) ? offValue : onValue; | ||||
} | } | ||||
@@ -283,7 +280,7 @@ struct BraidsSettingItem : MenuItem { | |||||
struct BraidsLowCpuItem : MenuItem { | struct BraidsLowCpuItem : MenuItem { | ||||
Braids *braids; | Braids *braids; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
braids->lowCpu = !braids->lowCpu; | braids->lowCpu = !braids->lowCpu; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -295,7 +292,7 @@ struct BraidsLowCpuItem : MenuItem { | |||||
struct BraidsWidget : ModuleWidget { | struct BraidsWidget : ModuleWidget { | ||||
BraidsWidget(Braids *module) : ModuleWidget(module) { | BraidsWidget(Braids *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Braids.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Braids.svg"))); | |||||
{ | { | ||||
BraidsDisplay *display = new BraidsDisplay(); | BraidsDisplay *display = new BraidsDisplay(); | ||||
@@ -305,27 +302,27 @@ struct BraidsWidget : ModuleWidget { | |||||
addChild(display); | addChild(display); | ||||
} | } | ||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(210, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(210, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(210, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(210, 365))); | |||||
addParam(ParamWidget::create<Rogan2SGray>(Vec(176, 59), module, Braids::SHAPE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan2SGray>(Vec(176, 59), module, Braids::SHAPE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan2PSWhite>(Vec(19, 138), module, Braids::FINE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan2PSWhite>(Vec(97, 138), module, Braids::COARSE_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan2PSWhite>(Vec(176, 138), module, Braids::FM_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan2PSWhite>(Vec(19, 138), module, Braids::FINE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan2PSWhite>(Vec(97, 138), module, Braids::COARSE_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(createParam<Rogan2PSWhite>(Vec(176, 138), module, Braids::FM_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan2PSGreen>(Vec(19, 217), module, Braids::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan2PSGreen>(Vec(97, 217), module, Braids::MODULATION_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan2PSRed>(Vec(176, 217), module, Braids::COLOR_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan2PSGreen>(Vec(19, 217), module, Braids::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan2PSGreen>(Vec(97, 217), module, Braids::MODULATION_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan2PSRed>(Vec(176, 217), module, Braids::COLOR_PARAM, 0.0, 1.0, 0.5)); | |||||
addInput(Port::create<PJ301MPort>(Vec(10, 316), Port::INPUT, module, Braids::TRIG_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(47, 316), Port::INPUT, module, Braids::PITCH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(84, 316), Port::INPUT, module, Braids::FM_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(122, 316), Port::INPUT, module, Braids::TIMBRE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(160, 316), Port::INPUT, module, Braids::COLOR_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(205, 316), Port::OUTPUT, module, Braids::OUT_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(10, 316), PortWidget::INPUT, module, Braids::TRIG_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(47, 316), PortWidget::INPUT, module, Braids::PITCH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(84, 316), PortWidget::INPUT, module, Braids::FM_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(122, 316), PortWidget::INPUT, module, Braids::TIMBRE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(160, 316), PortWidget::INPUT, module, Braids::COLOR_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(205, 316), PortWidget::OUTPUT, module, Braids::OUT_OUTPUT)); | |||||
} | } | ||||
void appendContextMenu(Menu *menu) override { | void appendContextMenu(Menu *menu) override { | ||||
@@ -342,4 +339,4 @@ struct BraidsWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelBraids = Model::create<Braids, BraidsWidget>("Braids"); | |||||
Model *modelBraids = createModel<Braids, BraidsWidget>("Braids"); |
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/digital.hpp" | |||||
struct Branches : Module { | struct Branches : Module { | ||||
@@ -39,7 +38,7 @@ struct Branches : Module { | |||||
Branches() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | Branches() : Module(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS) {} | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_t *modesJ = json_array(); | json_t *modesJ = json_array(); | ||||
for (int i = 0; i < 2; i++) { | for (int i = 0; i < 2; i++) { | ||||
@@ -49,7 +48,7 @@ struct Branches : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *modesJ = json_object_get(rootJ, "modes"); | json_t *modesJ = json_object_get(rootJ, "modes"); | ||||
if (modesJ) { | if (modesJ) { | ||||
for (int i = 0; i < 2; i++) { | for (int i = 0; i < 2; i++) { | ||||
@@ -113,27 +112,27 @@ void Branches::step() { | |||||
struct BranchesWidget : ModuleWidget { | struct BranchesWidget : ModuleWidget { | ||||
BranchesWidget(Branches *module) : ModuleWidget(module) { | BranchesWidget(Branches *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Branches.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(24, 64), module, Branches::THRESHOLD1_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(69, 58), module, Branches::MODE1_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(9, 122), Port::INPUT, module, Branches::IN1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(55, 122), Port::INPUT, module, Branches::P1_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(9, 160), Port::OUTPUT, module, Branches::OUT1A_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(55, 160), Port::OUTPUT, module, Branches::OUT1B_OUTPUT)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(24, 220), module, Branches::THRESHOLD2_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(69, 214), module, Branches::MODE2_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(9, 278), Port::INPUT, module, Branches::IN2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(55, 278), Port::INPUT, module, Branches::P2_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(9, 316), Port::OUTPUT, module, Branches::OUT2A_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(55, 316), Port::OUTPUT, module, Branches::OUT2B_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(40, 169), module, Branches::STATE1_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(40, 325), module, Branches::STATE2_POS_LIGHT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Branches.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addParam(createParam<Rogan1PSRed>(Vec(24, 64), module, Branches::THRESHOLD1_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<TL1105>(Vec(69, 58), module, Branches::MODE1_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(9, 122), PortWidget::INPUT, module, Branches::IN1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(55, 122), PortWidget::INPUT, module, Branches::P1_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(9, 160), PortWidget::OUTPUT, module, Branches::OUT1A_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(55, 160), PortWidget::OUTPUT, module, Branches::OUT1B_OUTPUT)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(24, 220), module, Branches::THRESHOLD2_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<TL1105>(Vec(69, 214), module, Branches::MODE2_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(9, 278), PortWidget::INPUT, module, Branches::IN2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(55, 278), PortWidget::INPUT, module, Branches::P2_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(9, 316), PortWidget::OUTPUT, module, Branches::OUT2A_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(55, 316), PortWidget::OUTPUT, module, Branches::OUT2B_OUTPUT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(40, 169), module, Branches::STATE1_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(40, 325), module, Branches::STATE2_POS_LIGHT)); | |||||
} | } | ||||
void appendContextMenu(Menu *menu) override { | void appendContextMenu(Menu *menu) override { | ||||
@@ -143,7 +142,7 @@ struct BranchesWidget : ModuleWidget { | |||||
struct BranchesModeItem : MenuItem { | struct BranchesModeItem : MenuItem { | ||||
Branches *branches; | Branches *branches; | ||||
int channel; | int channel; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
branches->modes[channel] ^= 1; | branches->modes[channel] ^= 1; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -161,4 +160,4 @@ struct BranchesWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelBranches = Model::create<Branches, BranchesWidget>("Branches"); | |||||
Model *modelBranches = createModel<Branches, BranchesWidget>("Branches"); |
@@ -1,9 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "dsp/digital.hpp" | |||||
#include "dsp/vumeter.hpp" | |||||
#include "clouds/dsp/granular_processor.h" | #include "clouds/dsp/granular_processor.h" | ||||
@@ -81,7 +76,7 @@ struct Clouds : Module { | |||||
quality = 0; | quality = 0; | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "playback", json_integer((int) playback)); | json_object_set_new(rootJ, "playback", json_integer((int) playback)); | ||||
@@ -91,7 +86,7 @@ struct Clouds : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *playbackJ = json_object_get(rootJ, "playback"); | json_t *playbackJ = json_object_get(rootJ, "playback"); | ||||
if (playbackJ) { | if (playbackJ) { | ||||
playback = (clouds::PlaybackMode) json_integer_value(playbackJ); | playback = (clouds::PlaybackMode) json_integer_value(playbackJ); | ||||
@@ -267,7 +262,7 @@ struct FreezeLight : YellowLight { | |||||
struct CloudsBlendItem : MenuItem { | struct CloudsBlendItem : MenuItem { | ||||
Clouds *module; | Clouds *module; | ||||
int blendMode; | int blendMode; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->blendMode = blendMode; | module->blendMode = blendMode; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -280,7 +275,7 @@ struct CloudsBlendItem : MenuItem { | |||||
struct CloudsPlaybackItem : MenuItem { | struct CloudsPlaybackItem : MenuItem { | ||||
Clouds *module; | Clouds *module; | ||||
clouds::PlaybackMode playback; | clouds::PlaybackMode playback; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->playback = playback; | module->playback = playback; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -293,7 +288,7 @@ struct CloudsPlaybackItem : MenuItem { | |||||
struct CloudsQualityItem : MenuItem { | struct CloudsQualityItem : MenuItem { | ||||
Clouds *module; | Clouds *module; | ||||
int quality; | int quality; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->quality = quality; | module->quality = quality; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -310,52 +305,52 @@ struct CloudsWidget : ModuleWidget { | |||||
ParamWidget *reverbParam; | ParamWidget *reverbParam; | ||||
CloudsWidget(Clouds *module) : ModuleWidget(module) { | CloudsWidget(Clouds *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Clouds.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Clouds.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(240, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(240, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(240, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(240, 365))); | |||||
addParam(ParamWidget::create<Rogan3PSRed>(Vec(27, 93), module, Clouds::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan3PSGreen>(Vec(108, 93), module, Clouds::SIZE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(Vec(190, 93), module, Clouds::PITCH_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(createParam<Rogan3PSRed>(Vec(27, 93), module, Clouds::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan3PSGreen>(Vec(108, 93), module, Clouds::SIZE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan3PSWhite>(Vec(190, 93), module, Clouds::PITCH_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(14, 180), module, Clouds::IN_GAIN_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(81, 180), module, Clouds::DENSITY_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(146, 180), module, Clouds::TEXTURE_PARAM, 0.0, 1.0, 0.5)); | |||||
blendParam = ParamWidget::create<Rogan1PSWhite>(Vec(213, 180), module, Clouds::BLEND_PARAM, 0.0, 1.0, 0.5); | |||||
addParam(createParam<Rogan1PSRed>(Vec(14, 180), module, Clouds::IN_GAIN_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSRed>(Vec(81, 180), module, Clouds::DENSITY_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(146, 180), module, Clouds::TEXTURE_PARAM, 0.0, 1.0, 0.5)); | |||||
blendParam = createParam<Rogan1PSWhite>(Vec(213, 180), module, Clouds::BLEND_PARAM, 0.0, 1.0, 0.5); | |||||
addParam(blendParam); | addParam(blendParam); | ||||
spreadParam = ParamWidget::create<Rogan1PSRed>(Vec(213, 180), module, Clouds::SPREAD_PARAM, 0.0, 1.0, 0.0); | |||||
spreadParam = createParam<Rogan1PSRed>(Vec(213, 180), module, Clouds::SPREAD_PARAM, 0.0, 1.0, 0.0); | |||||
addParam(spreadParam); | addParam(spreadParam); | ||||
feedbackParam = ParamWidget::create<Rogan1PSGreen>(Vec(213, 180), module, Clouds::FEEDBACK_PARAM, 0.0, 1.0, 0.0); | |||||
feedbackParam = createParam<Rogan1PSGreen>(Vec(213, 180), module, Clouds::FEEDBACK_PARAM, 0.0, 1.0, 0.0); | |||||
addParam(feedbackParam); | addParam(feedbackParam); | ||||
reverbParam = ParamWidget::create<Rogan1PSBlue>(Vec(213, 180), module, Clouds::REVERB_PARAM, 0.0, 1.0, 0.0); | |||||
reverbParam = createParam<Rogan1PSBlue>(Vec(213, 180), module, Clouds::REVERB_PARAM, 0.0, 1.0, 0.0); | |||||
addParam(reverbParam); | addParam(reverbParam); | ||||
addParam(ParamWidget::create<CKD6>(Vec(12, 43), module, Clouds::FREEZE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(211, 50), module, Clouds::MODE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(239, 50), module, Clouds::LOAD_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(15, 274), Port::INPUT, module, Clouds::FREEZE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(58, 274), Port::INPUT, module, Clouds::TRIG_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(101, 274), Port::INPUT, module, Clouds::POSITION_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(144, 274), Port::INPUT, module, Clouds::SIZE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(188, 274), Port::INPUT, module, Clouds::PITCH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(230, 274), Port::INPUT, module, Clouds::BLEND_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(15, 317), Port::INPUT, module, Clouds::IN_L_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(58, 317), Port::INPUT, module, Clouds::IN_R_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(101, 317), Port::INPUT, module, Clouds::DENSITY_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(144, 317), Port::INPUT, module, Clouds::TEXTURE_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(188, 317), Port::OUTPUT, module, Clouds::OUT_L_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(230, 317), Port::OUTPUT, module, Clouds::OUT_R_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<FreezeLight>(Vec(12+3, 43+3), module, Clouds::FREEZE_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(82.5, 53), module, Clouds::MIX_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(114.5, 53), module, Clouds::PAN_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(145.5, 53), module, Clouds::FEEDBACK_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(177.5, 53), module, Clouds::REVERB_GREEN_LIGHT)); | |||||
addParam(createParam<CKD6>(Vec(12, 43), module, Clouds::FREEZE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(Vec(211, 50), module, Clouds::MODE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(Vec(239, 50), module, Clouds::LOAD_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(15, 274), PortWidget::INPUT, module, Clouds::FREEZE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(58, 274), PortWidget::INPUT, module, Clouds::TRIG_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(101, 274), PortWidget::INPUT, module, Clouds::POSITION_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(144, 274), PortWidget::INPUT, module, Clouds::SIZE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(188, 274), PortWidget::INPUT, module, Clouds::PITCH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(230, 274), PortWidget::INPUT, module, Clouds::BLEND_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(15, 317), PortWidget::INPUT, module, Clouds::IN_L_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(58, 317), PortWidget::INPUT, module, Clouds::IN_R_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(101, 317), PortWidget::INPUT, module, Clouds::DENSITY_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(144, 317), PortWidget::INPUT, module, Clouds::TEXTURE_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(188, 317), PortWidget::OUTPUT, module, Clouds::OUT_L_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(230, 317), PortWidget::OUTPUT, module, Clouds::OUT_R_OUTPUT)); | |||||
addChild(createLight<FreezeLight>(Vec(12+3, 43+3), module, Clouds::FREEZE_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(82.5, 53), module, Clouds::MIX_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(114.5, 53), module, Clouds::PAN_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(145.5, 53), module, Clouds::FEEDBACK_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(177.5, 53), module, Clouds::REVERB_GREEN_LIGHT)); | |||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -397,4 +392,4 @@ struct CloudsWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelClouds = Model::create<Clouds, CloudsWidget>("Clouds"); | |||||
Model *modelClouds = createModel<Clouds, CloudsWidget>("Clouds"); |
@@ -1,8 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/functions.hpp" | |||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "elements/dsp/part.h" | #include "elements/dsp/part.h" | ||||
@@ -86,13 +82,13 @@ struct Elements : Module { | |||||
~Elements(); | ~Elements(); | ||||
void step() override; | void step() override; | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "model", json_integer(getModel())); | json_object_set_new(rootJ, "model", json_integer(getModel())); | ||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *modelJ = json_object_get(rootJ, "model"); | json_t *modelJ = json_object_get(rootJ, "model"); | ||||
if (modelJ) { | if (modelJ) { | ||||
setModel(json_integer_value(modelJ)); | setModel(json_integer_value(modelJ)); | ||||
@@ -217,7 +213,7 @@ void Elements::step() { | |||||
struct ElementsModalItem : MenuItem { | struct ElementsModalItem : MenuItem { | ||||
Elements *elements; | Elements *elements; | ||||
int model; | int model; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
elements->setModel(model); | elements->setModel(model); | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -229,68 +225,68 @@ struct ElementsModalItem : MenuItem { | |||||
struct ElementsWidget : ModuleWidget { | struct ElementsWidget : ModuleWidget { | ||||
ElementsWidget(Elements *module) : ModuleWidget(module) { | ElementsWidget(Elements *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Elements.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(480, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(480, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(28, 42), module, Elements::CONTOUR_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(99, 42), module, Elements::BOW_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(169, 42), module, Elements::BLOW_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(239, 42), module, Elements::STRIKE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(310, 42), module, Elements::COARSE_PARAM, -30.0, 30.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(381, 42), module, Elements::FINE_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(451, 42), module, Elements::FM_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan3PSRed>(Vec(115, 116), module, Elements::FLOW_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan3PSGreen>(Vec(212, 116), module, Elements::MALLET_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(Vec(326, 116), module, Elements::GEOMETRY_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(Vec(423, 116), module, Elements::BRIGHTNESS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(99, 202), module, Elements::BOW_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(170, 202), module, Elements::BLOW_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(239, 202), module, Elements::STRIKE_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(310, 202), module, Elements::DAMPING_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(380, 202), module, Elements::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(451, 202), module, Elements::SPACE_PARAM, 0.0, 2.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(104.5, 273), module, Elements::BOW_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(142.5, 273), module, Elements::FLOW_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(181.5, 273), module, Elements::BLOW_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(219.5, 273), module, Elements::MALLET_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(257.5, 273), module, Elements::STRIKE_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(315.5, 273), module, Elements::DAMPING_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(354.5, 273), module, Elements::GEOMETRY_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(392.5, 273), module, Elements::POSITION_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(430.5, 273), module, Elements::BRIGHTNESS_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(469.5, 273), module, Elements::SPACE_MOD_PARAM, -2.0, 2.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(20, 178), Port::INPUT, module, Elements::NOTE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(55, 178), Port::INPUT, module, Elements::FM_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(20, 224), Port::INPUT, module, Elements::GATE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(55, 224), Port::INPUT, module, Elements::STRENGTH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(20, 270), Port::INPUT, module, Elements::BLOW_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(55, 270), Port::INPUT, module, Elements::STRIKE_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(20, 316), Port::OUTPUT, module, Elements::AUX_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(55, 316), Port::OUTPUT, module, Elements::MAIN_OUTPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(101, 316), Port::INPUT, module, Elements::BOW_TIMBRE_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(139, 316), Port::INPUT, module, Elements::FLOW_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(178, 316), Port::INPUT, module, Elements::BLOW_TIMBRE_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(216, 316), Port::INPUT, module, Elements::MALLET_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(254, 316), Port::INPUT, module, Elements::STRIKE_TIMBRE_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(312, 316), Port::INPUT, module, Elements::DAMPING_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(350, 316), Port::INPUT, module, Elements::GEOMETRY_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(389, 316), Port::INPUT, module, Elements::POSITION_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(427, 316), Port::INPUT, module, Elements::BRIGHTNESS_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(466, 316), Port::INPUT, module, Elements::SPACE_MOD_INPUT)); | |||||
addParam(ParamWidget::create<CKD6>(Vec(36, 116), module, Elements::PLAY_PARAM, 0.0, 1.0, 0.0)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Elements.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(480, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(480, 365))); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(28, 42), module, Elements::CONTOUR_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(99, 42), module, Elements::BOW_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSRed>(Vec(169, 42), module, Elements::BLOW_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(239, 42), module, Elements::STRIKE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(310, 42), module, Elements::COARSE_PARAM, -30.0, 30.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(381, 42), module, Elements::FINE_PARAM, -2.0, 2.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(451, 42), module, Elements::FM_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan3PSRed>(Vec(115, 116), module, Elements::FLOW_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan3PSGreen>(Vec(212, 116), module, Elements::MALLET_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan3PSWhite>(Vec(326, 116), module, Elements::GEOMETRY_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan3PSWhite>(Vec(423, 116), module, Elements::BRIGHTNESS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(99, 202), module, Elements::BOW_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSRed>(Vec(170, 202), module, Elements::BLOW_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(239, 202), module, Elements::STRIKE_TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(310, 202), module, Elements::DAMPING_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(380, 202), module, Elements::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(451, 202), module, Elements::SPACE_PARAM, 0.0, 2.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(104.5, 273), module, Elements::BOW_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(142.5, 273), module, Elements::FLOW_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(181.5, 273), module, Elements::BLOW_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(219.5, 273), module, Elements::MALLET_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(257.5, 273), module, Elements::STRIKE_TIMBRE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(315.5, 273), module, Elements::DAMPING_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(354.5, 273), module, Elements::GEOMETRY_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(392.5, 273), module, Elements::POSITION_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(430.5, 273), module, Elements::BRIGHTNESS_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(469.5, 273), module, Elements::SPACE_MOD_PARAM, -2.0, 2.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(20, 178), PortWidget::INPUT, module, Elements::NOTE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(55, 178), PortWidget::INPUT, module, Elements::FM_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(20, 224), PortWidget::INPUT, module, Elements::GATE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(55, 224), PortWidget::INPUT, module, Elements::STRENGTH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(20, 270), PortWidget::INPUT, module, Elements::BLOW_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(55, 270), PortWidget::INPUT, module, Elements::STRIKE_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(20, 316), PortWidget::OUTPUT, module, Elements::AUX_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(55, 316), PortWidget::OUTPUT, module, Elements::MAIN_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(101, 316), PortWidget::INPUT, module, Elements::BOW_TIMBRE_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(139, 316), PortWidget::INPUT, module, Elements::FLOW_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(178, 316), PortWidget::INPUT, module, Elements::BLOW_TIMBRE_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(216, 316), PortWidget::INPUT, module, Elements::MALLET_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(254, 316), PortWidget::INPUT, module, Elements::STRIKE_TIMBRE_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(312, 316), PortWidget::INPUT, module, Elements::DAMPING_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(350, 316), PortWidget::INPUT, module, Elements::GEOMETRY_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(389, 316), PortWidget::INPUT, module, Elements::POSITION_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(427, 316), PortWidget::INPUT, module, Elements::BRIGHTNESS_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(466, 316), PortWidget::INPUT, module, Elements::SPACE_MOD_INPUT)); | |||||
addParam(createParam<CKD6>(Vec(36, 116), module, Elements::PLAY_PARAM, 0.0, 1.0, 0.0)); | |||||
struct GateLight : YellowLight { | struct GateLight : YellowLight { | ||||
GateLight() { | GateLight() { | ||||
@@ -299,9 +295,9 @@ struct ElementsWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
addChild(ModuleLightWidget::create<GateLight>(Vec(36+3, 116+3), module, Elements::GATE_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(184, 165), module, Elements::EXCITER_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<RedLight>>(Vec(395, 165), module, Elements::RESONATOR_LIGHT)); | |||||
addChild(createLight<GateLight>(Vec(36+3, 116+3), module, Elements::GATE_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(184, 165), module, Elements::EXCITER_LIGHT)); | |||||
addChild(createLight<MediumLight<RedLight>>(Vec(395, 165), module, Elements::RESONATOR_LIGHT)); | |||||
} | } | ||||
void appendContextMenu(Menu *menu) override { | void appendContextMenu(Menu *menu) override { | ||||
@@ -317,4 +313,4 @@ struct ElementsWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelElements = Model::create<Elements, ElementsWidget>("Elements"); | |||||
Model *modelElements = createModel<Elements, ElementsWidget>("Elements"); |
@@ -1,8 +1,6 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include <string.h> | |||||
#include "frames/keyframer.h" | #include "frames/keyframer.h" | ||||
#include "frames/poly_lfo.h" | #include "frames/poly_lfo.h" | ||||
#include "dsp/digital.hpp" | |||||
struct Frames : Module { | struct Frames : Module { | ||||
@@ -54,7 +52,7 @@ struct Frames : Module { | |||||
Frames(); | Frames(); | ||||
void step() override; | void step() override; | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | json_object_set_new(rootJ, "polyLfo", json_boolean(poly_lfo_mode)); | ||||
@@ -82,7 +80,7 @@ struct Frames : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | json_t *polyLfoJ = json_object_get(rootJ, "polyLfo"); | ||||
if (polyLfoJ) | if (polyLfoJ) | ||||
poly_lfo_mode = json_boolean_value(polyLfoJ); | poly_lfo_mode = json_boolean_value(polyLfoJ); | ||||
@@ -275,61 +273,59 @@ void Frames::step() { | |||||
} | } | ||||
struct CKSSRot : SVGSwitch, ToggleSwitch { | |||||
struct CKSSRot : SVGSwitch { | |||||
CKSSRot() { | CKSSRot() { | ||||
addFrame(SVG::load(assetPlugin(plugin, "res/CKSS_rot_0.svg"))); | |||||
addFrame(SVG::load(assetPlugin(plugin, "res/CKSS_rot_1.svg"))); | |||||
sw->wrap(); | |||||
box.size = sw->box.size; | |||||
addFrame(SVG::load(assetPlugin(pluginInstance, "res/CKSS_rot_0.svg"))); | |||||
addFrame(SVG::load(assetPlugin(pluginInstance, "res/CKSS_rot_1.svg"))); | |||||
} | } | ||||
}; | }; | ||||
struct FramesWidget : ModuleWidget { | struct FramesWidget : ModuleWidget { | ||||
FramesWidget(Frames *module) : ModuleWidget(module) { | FramesWidget(Frames *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Frames.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x-30, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(14, 52), module, Frames::GAIN1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(81, 52), module, Frames::GAIN2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(149, 52), module, Frames::GAIN3_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(216, 52), module, Frames::GAIN4_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan6PSWhite>(Vec(89, 115), module, Frames::FRAME_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(208, 141), module, Frames::MODULATION_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<CKD6>(Vec(19, 123), module, Frames::ADD_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<CKD6>(Vec(19, 172), module, Frames::DEL_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<CKSSRot>(Vec(18, 239), module, Frames::OFFSET_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(16, 273), Port::INPUT, module, Frames::ALL_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(59, 273), Port::INPUT, module, Frames::IN1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(102, 273), Port::INPUT, module, Frames::IN2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(145, 273), Port::INPUT, module, Frames::IN3_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(188, 273), Port::INPUT, module, Frames::IN4_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(231, 273), Port::INPUT, module, Frames::FRAME_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(16, 315), Port::OUTPUT, module, Frames::MIX_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(59, 315), Port::OUTPUT, module, Frames::OUT1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(102, 315), Port::OUTPUT, module, Frames::OUT2_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(145, 315), Port::OUTPUT, module, Frames::OUT3_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(188, 315), Port::OUTPUT, module, Frames::OUT4_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(231, 315), Port::OUTPUT, module, Frames::FRAME_STEP_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(30, 101), module, Frames::GAIN1_LIGHT + 0)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(97, 101), module, Frames::GAIN1_LIGHT + 1)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(165, 101), module, Frames::GAIN1_LIGHT + 2)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenLight>>(Vec(232, 101), module, Frames::GAIN1_LIGHT + 3)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(61, 155), module, Frames::EDIT_LIGHT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Frames.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x-30, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x-30, 365))); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(14, 52), module, Frames::GAIN1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(81, 52), module, Frames::GAIN2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(149, 52), module, Frames::GAIN3_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(216, 52), module, Frames::GAIN4_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan6PSWhite>(Vec(89, 115), module, Frames::FRAME_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(208, 141), module, Frames::MODULATION_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<CKD6>(Vec(19, 123), module, Frames::ADD_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<CKD6>(Vec(19, 172), module, Frames::DEL_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<CKSSRot>(Vec(18, 239), module, Frames::OFFSET_PARAM, 0.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(16, 273), PortWidget::INPUT, module, Frames::ALL_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(59, 273), PortWidget::INPUT, module, Frames::IN1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(102, 273), PortWidget::INPUT, module, Frames::IN2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(145, 273), PortWidget::INPUT, module, Frames::IN3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(188, 273), PortWidget::INPUT, module, Frames::IN4_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(231, 273), PortWidget::INPUT, module, Frames::FRAME_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(16, 315), PortWidget::OUTPUT, module, Frames::MIX_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(59, 315), PortWidget::OUTPUT, module, Frames::OUT1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(102, 315), PortWidget::OUTPUT, module, Frames::OUT2_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(145, 315), PortWidget::OUTPUT, module, Frames::OUT3_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(188, 315), PortWidget::OUTPUT, module, Frames::OUT4_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(231, 315), PortWidget::OUTPUT, module, Frames::FRAME_STEP_OUTPUT)); | |||||
addChild(createLight<SmallLight<GreenLight>>(Vec(30, 101), module, Frames::GAIN1_LIGHT + 0)); | |||||
addChild(createLight<SmallLight<GreenLight>>(Vec(97, 101), module, Frames::GAIN1_LIGHT + 1)); | |||||
addChild(createLight<SmallLight<GreenLight>>(Vec(165, 101), module, Frames::GAIN1_LIGHT + 2)); | |||||
addChild(createLight<SmallLight<GreenLight>>(Vec(232, 101), module, Frames::GAIN1_LIGHT + 3)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(61, 155), module, Frames::EDIT_LIGHT)); | |||||
struct FrameLight : RedGreenBlueLight { | struct FrameLight : RedGreenBlueLight { | ||||
FrameLight() { | FrameLight() { | ||||
box.size = Vec(71, 71); | box.size = Vec(71, 71); | ||||
} | } | ||||
}; | }; | ||||
addChild(ModuleLightWidget::create<FrameLight>(Vec(100, 126), module, Frames::FRAME_LIGHT)); | |||||
addChild(createLight<FrameLight>(Vec(100, 126), module, Frames::FRAME_LIGHT)); | |||||
} | } | ||||
@@ -343,7 +339,7 @@ struct FramesWidget : ModuleWidget { | |||||
Frames *frames; | Frames *frames; | ||||
uint8_t channel; | uint8_t channel; | ||||
frames::EasingCurve curve; | frames::EasingCurve curve; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
frames->keyframer.mutable_settings(channel)->easing_curve = curve; | frames->keyframer.mutable_settings(channel)->easing_curve = curve; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -356,7 +352,7 @@ struct FramesWidget : ModuleWidget { | |||||
Frames *frames; | Frames *frames; | ||||
uint8_t channel; | uint8_t channel; | ||||
uint8_t response; | uint8_t response; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
frames->keyframer.mutable_settings(channel)->response = response; | frames->keyframer.mutable_settings(channel)->response = response; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -371,7 +367,7 @@ struct FramesWidget : ModuleWidget { | |||||
Menu *createChildMenu() override { | Menu *createChildMenu() override { | ||||
Menu *menu = new Menu(); | Menu *menu = new Menu(); | ||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, stringf("Channel %d", channel + 1))); | |||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, string::f("Channel %d", channel + 1))); | |||||
menu->addChild(construct<MenuLabel>()); | menu->addChild(construct<MenuLabel>()); | ||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Interpolation Curve")); | menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Interpolation Curve")); | ||||
@@ -392,7 +388,7 @@ struct FramesWidget : ModuleWidget { | |||||
struct FramesClearItem : MenuItem { | struct FramesClearItem : MenuItem { | ||||
Frames *frames; | Frames *frames; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
frames->keyframer.Clear(); | frames->keyframer.Clear(); | ||||
} | } | ||||
}; | }; | ||||
@@ -400,7 +396,7 @@ struct FramesWidget : ModuleWidget { | |||||
struct FramesModeItem : MenuItem { | struct FramesModeItem : MenuItem { | ||||
Frames *frames; | Frames *frames; | ||||
bool poly_lfo_mode; | bool poly_lfo_mode; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
frames->poly_lfo_mode = poly_lfo_mode; | frames->poly_lfo_mode = poly_lfo_mode; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -412,7 +408,7 @@ struct FramesWidget : ModuleWidget { | |||||
menu->addChild(construct<MenuLabel>()); | menu->addChild(construct<MenuLabel>()); | ||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Channel Settings")); | menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Channel Settings")); | ||||
for (int i = 0; i < 4; i++) { | for (int i = 0; i < 4; i++) { | ||||
menu->addChild(construct<FramesChannelSettingsItem>(&MenuItem::text, stringf("Channel %d", i + 1), &FramesChannelSettingsItem::frames, frames, &FramesChannelSettingsItem::channel, i)); | |||||
menu->addChild(construct<FramesChannelSettingsItem>(&MenuItem::text, string::f("Channel %d", i + 1), &FramesChannelSettingsItem::frames, frames, &FramesChannelSettingsItem::channel, i)); | |||||
} | } | ||||
menu->addChild(construct<FramesClearItem>(&MenuItem::text, "Clear Keyframes", &FramesClearItem::frames, frames)); | menu->addChild(construct<FramesClearItem>(&MenuItem::text, "Clear Keyframes", &FramesClearItem::frames, frames)); | ||||
@@ -424,4 +420,4 @@ struct FramesWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelFrames = Model::create<Frames, FramesWidget>("Frames"); | |||||
Model *modelFrames = createModel<Frames, FramesWidget>("Frames"); |
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/digital.hpp" | |||||
struct Kinks : Module { | struct Kinks : Module { | ||||
@@ -70,31 +69,31 @@ void Kinks::step() { | |||||
struct KinksWidget : ModuleWidget { | struct KinksWidget : ModuleWidget { | ||||
KinksWidget(Kinks *module) : ModuleWidget(module) { | KinksWidget(Kinks *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Kinks.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Kinks.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 75), Port::INPUT, module, Kinks::SIGN_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 75), Port::OUTPUT, module, Kinks::INVERT_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(4, 113), Port::OUTPUT, module, Kinks::HALF_RECTIFY_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 113), Port::OUTPUT, module, Kinks::FULL_RECTIFY_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 75), PortWidget::INPUT, module, Kinks::SIGN_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 75), PortWidget::OUTPUT, module, Kinks::INVERT_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(4, 113), PortWidget::OUTPUT, module, Kinks::HALF_RECTIFY_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 113), PortWidget::OUTPUT, module, Kinks::FULL_RECTIFY_OUTPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 177), Port::INPUT, module, Kinks::LOGIC_A_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(31, 177), Port::INPUT, module, Kinks::LOGIC_B_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(4, 214), Port::OUTPUT, module, Kinks::MAX_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 214), Port::OUTPUT, module, Kinks::MIN_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 177), PortWidget::INPUT, module, Kinks::LOGIC_A_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(31, 177), PortWidget::INPUT, module, Kinks::LOGIC_B_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(4, 214), PortWidget::OUTPUT, module, Kinks::MAX_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 214), PortWidget::OUTPUT, module, Kinks::MIN_OUTPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 278), Port::INPUT, module, Kinks::SH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(31, 278), Port::INPUT, module, Kinks::TRIG_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(4, 316), Port::OUTPUT, module, Kinks::NOISE_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 316), Port::OUTPUT, module, Kinks::SH_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 278), PortWidget::INPUT, module, Kinks::SH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(31, 278), PortWidget::INPUT, module, Kinks::TRIG_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(4, 316), PortWidget::OUTPUT, module, Kinks::NOISE_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 316), PortWidget::OUTPUT, module, Kinks::SH_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(11, 59), module, Kinks::SIGN_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(11, 161), module, Kinks::LOGIC_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(11, 262), module, Kinks::SH_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(11, 59), module, Kinks::SIGN_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(11, 161), module, Kinks::LOGIC_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(11, 262), module, Kinks::SH_POS_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelKinks = Model::create<Kinks, KinksWidget>("Kinks"); | |||||
Model *modelKinks = createModel<Kinks, KinksWidget>("Kinks"); |
@@ -58,31 +58,31 @@ void Links::step() { | |||||
struct LinksWidget : ModuleWidget { | struct LinksWidget : ModuleWidget { | ||||
LinksWidget(Links *module) : ModuleWidget(module) { | LinksWidget(Links *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Links.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Links.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 75), Port::INPUT, module, Links::A1_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 75), Port::OUTPUT, module, Links::A1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(4, 113), Port::OUTPUT, module, Links::A2_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 113), Port::OUTPUT, module, Links::A3_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 75), PortWidget::INPUT, module, Links::A1_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 75), PortWidget::OUTPUT, module, Links::A1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(4, 113), PortWidget::OUTPUT, module, Links::A2_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 113), PortWidget::OUTPUT, module, Links::A3_OUTPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 177), Port::INPUT, module, Links::B1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(31, 177), Port::INPUT, module, Links::B2_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(4, 214), Port::OUTPUT, module, Links::B1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 214), Port::OUTPUT, module, Links::B2_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 177), PortWidget::INPUT, module, Links::B1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(31, 177), PortWidget::INPUT, module, Links::B2_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(4, 214), PortWidget::OUTPUT, module, Links::B1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 214), PortWidget::OUTPUT, module, Links::B2_OUTPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 278), Port::INPUT, module, Links::C1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(31, 278), Port::INPUT, module, Links::C2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(4, 316), Port::INPUT, module, Links::C3_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(31, 316), Port::OUTPUT, module, Links::C1_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 278), PortWidget::INPUT, module, Links::C1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(31, 278), PortWidget::INPUT, module, Links::C2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(4, 316), PortWidget::INPUT, module, Links::C3_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(31, 316), PortWidget::OUTPUT, module, Links::C1_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(26, 59), module, Links::A_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(26, 161), module, Links::B_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(26, 262), module, Links::C_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(26, 59), module, Links::A_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(26, 161), module, Links::B_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(26, 262), module, Links::C_POS_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelLinks = Model::create<Links, LinksWidget>("Links"); | |||||
Model *modelLinks = createModel<Links, LinksWidget>("Links"); |
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/digital.hpp" | |||||
#include "marbles/random/random_generator.h" | #include "marbles/random/random_generator.h" | ||||
#include "marbles/random/random_stream.h" | #include "marbles/random/random_stream.h" | ||||
#include "marbles/random/t_generator.h" | #include "marbles/random/t_generator.h" | ||||
@@ -263,7 +262,7 @@ struct Marbles : Module { | |||||
} | } | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "t_deja_vu", json_boolean(t_deja_vu)); | json_object_set_new(rootJ, "t_deja_vu", json_boolean(t_deja_vu)); | ||||
@@ -280,7 +279,7 @@ struct Marbles : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *t_deja_vuJ = json_object_get(rootJ, "t_deja_vu"); | json_t *t_deja_vuJ = json_object_get(rootJ, "t_deja_vu"); | ||||
if (t_deja_vuJ) | if (t_deja_vuJ) | ||||
t_deja_vu = json_boolean_value(t_deja_vuJ); | t_deja_vu = json_boolean_value(t_deja_vuJ); | ||||
@@ -511,7 +510,7 @@ struct CKD6Light : BASE { | |||||
struct MarblesWidget : ModuleWidget { | struct MarblesWidget : ModuleWidget { | ||||
MarblesWidget(Marbles *module) : ModuleWidget(module) { | MarblesWidget(Marbles *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Marbles.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Marbles.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | ||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | ||||
@@ -574,13 +573,13 @@ struct MarblesWidget : ModuleWidget { | |||||
struct ScaleItem : MenuItem { | struct ScaleItem : MenuItem { | ||||
Marbles *module; | Marbles *module; | ||||
int scale; | int scale; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->x_scale = scale; | module->x_scale = scale; | ||||
} | } | ||||
}; | }; | ||||
menu->addChild(MenuEntry::create()); | |||||
menu->addChild(MenuLabel::create("Scales")); | |||||
menu->addChild(new MenuEntry); | |||||
menu->addChild(createMenuLabel("Scales")); | |||||
const std::string scaleLabels[] = { | const std::string scaleLabels[] = { | ||||
"Major", | "Major", | ||||
"Minor", | "Minor", | ||||
@@ -590,7 +589,7 @@ struct MarblesWidget : ModuleWidget { | |||||
"Raag Shri", | "Raag Shri", | ||||
}; | }; | ||||
for (int i = 0; i < (int) LENGTHOF(scaleLabels); i++) { | for (int i = 0; i < (int) LENGTHOF(scaleLabels); i++) { | ||||
ScaleItem *item = MenuItem::create<ScaleItem>(scaleLabels[i], CHECKMARK(module->x_scale == i)); | |||||
ScaleItem *item = createMenuItem<ScaleItem>(scaleLabels[i], CHECKMARK(module->x_scale == i)); | |||||
item->module = module; | item->module = module; | ||||
item->scale = i; | item->scale = i; | ||||
menu->addChild(item); | menu->addChild(item); | ||||
@@ -599,13 +598,13 @@ struct MarblesWidget : ModuleWidget { | |||||
struct XClockSourceInternal : MenuItem { | struct XClockSourceInternal : MenuItem { | ||||
Marbles *module; | Marbles *module; | ||||
int source; | int source; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->x_clock_source_internal = source; | module->x_clock_source_internal = source; | ||||
} | } | ||||
}; | }; | ||||
menu->addChild(MenuEntry::create()); | |||||
menu->addChild(MenuLabel::create("Internal X clock source")); | |||||
menu->addChild(new MenuEntry); | |||||
menu->addChild(createMenuLabel("Internal X clock source")); | |||||
const std::string sourceLabels[] = { | const std::string sourceLabels[] = { | ||||
"T₁ → X₁, T₂ → X₂, T₃ → X₃", | "T₁ → X₁, T₂ → X₂, T₃ → X₃", | ||||
"T₁ → X₁, X₂, X₃", | "T₁ → X₁, X₂, X₃", | ||||
@@ -613,7 +612,7 @@ struct MarblesWidget : ModuleWidget { | |||||
"T₃ → X₁, X₂, X₃", | "T₃ → X₁, X₂, X₃", | ||||
}; | }; | ||||
for (int i = 0; i < (int) LENGTHOF(sourceLabels); i++) { | for (int i = 0; i < (int) LENGTHOF(sourceLabels); i++) { | ||||
XClockSourceInternal *item = MenuItem::create<XClockSourceInternal>(sourceLabels[i], CHECKMARK(module->x_clock_source_internal == i)); | |||||
XClockSourceInternal *item = createMenuItem<XClockSourceInternal>(sourceLabels[i], CHECKMARK(module->x_clock_source_internal == i)); | |||||
item->module = module; | item->module = module; | ||||
item->source = i; | item->source = i; | ||||
menu->addChild(item); | menu->addChild(item); | ||||
@@ -622,7 +621,7 @@ struct MarblesWidget : ModuleWidget { | |||||
struct YDividerIndexItem : MenuItem { | struct YDividerIndexItem : MenuItem { | ||||
Marbles *module; | Marbles *module; | ||||
int index; | int index; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->y_divider_index = index; | module->y_divider_index = index; | ||||
} | } | ||||
}; | }; | ||||
@@ -646,7 +645,7 @@ struct MarblesWidget : ModuleWidget { | |||||
"1", | "1", | ||||
}; | }; | ||||
for (int i = 0; i < (int) LENGTHOF(yDividerRatioLabels); i++) { | for (int i = 0; i < (int) LENGTHOF(yDividerRatioLabels); i++) { | ||||
YDividerIndexItem *item = MenuItem::create<YDividerIndexItem>(yDividerRatioLabels[i], CHECKMARK(module->y_divider_index == i)); | |||||
YDividerIndexItem *item = createMenuItem<YDividerIndexItem>(yDividerRatioLabels[i], CHECKMARK(module->y_divider_index == i)); | |||||
item->module = module; | item->module = module; | ||||
item->index = i; | item->index = i; | ||||
menu->addChild(item); | menu->addChild(item); | ||||
@@ -655,8 +654,8 @@ struct MarblesWidget : ModuleWidget { | |||||
} | } | ||||
}; | }; | ||||
menu->addChild(MenuEntry::create()); | |||||
YDividerItem *yDividerItem = MenuItem::create<YDividerItem>("Y divider ratio"); | |||||
menu->addChild(new MenuEntry); | |||||
YDividerItem *yDividerItem = createMenuItem<YDividerItem>("Y divider ratio"); | |||||
yDividerItem->module = module; | yDividerItem->module = module; | ||||
menu->addChild(yDividerItem); | menu->addChild(yDividerItem); | ||||
} | } | ||||
@@ -1,13 +1,6 @@ | |||||
#include <string> | |||||
#include <chrono> | #include <chrono> | ||||
#include "dsp/digital.hpp" | |||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "peaks/io_buffer.h" | #include "peaks/io_buffer.h" | ||||
#include "peaks/processors.h" | #include "peaks/processors.h" | ||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
@@ -193,7 +186,7 @@ struct Peaks : Module { | |||||
setFunction(1, function_[1]); | setFunction(1, function_[1]); | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
saveState(); | saveState(); | ||||
@@ -215,7 +208,7 @@ struct Peaks : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *editModeJ = json_object_get(rootJ, "edit_mode"); | json_t *editModeJ = json_object_get(rootJ, "edit_mode"); | ||||
if (editModeJ) { | if (editModeJ) { | ||||
settings_.edit_mode = static_cast<EditMode>(json_integer_value(editModeJ)); | settings_.edit_mode = static_cast<EditMode>(json_integer_value(editModeJ)); | ||||
@@ -261,7 +254,7 @@ struct Peaks : Module { | |||||
} | } | ||||
if (outputBuffer.empty()) { | if (outputBuffer.empty()) { | ||||
ioBuffer.Process(process); | |||||
ioBuffer.Process(::process); | |||||
uint32_t external_gate_inputs = 0; | uint32_t external_gate_inputs = 0; | ||||
external_gate_inputs |= (inputs[GATE_1_INPUT].value ? 1 : 0); | external_gate_inputs |= (inputs[GATE_1_INPUT].value ? 1 : 0); | ||||
@@ -601,43 +594,42 @@ void Peaks::refreshLeds() { | |||||
struct PeaksWidget : ModuleWidget { | struct PeaksWidget : ModuleWidget { | ||||
PeaksWidget(Peaks *module) : ModuleWidget(module) { | PeaksWidget(Peaks *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Peaks.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addParam(ParamWidget::create<TL1105>(Vec(8.5, 52), module, Peaks::BUTTON_1_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(11.88, 74), module, Peaks::TWIN_MODE_LIGHT)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(8.5, 89), module, Peaks::BUTTON_2_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(11.88, 111), module, Peaks::FUNC_1_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(11.88, 126.75), module, Peaks::FUNC_2_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(11.88, 142.5), module, Peaks::FUNC_3_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(Vec(11.88, 158), module, Peaks::FUNC_4_LIGHT)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(61, 51), module, Peaks::KNOB_1_PARAM, 0.0f, 65535.0f, 16384.0f)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(61, 115), module, Peaks::KNOB_2_PARAM, 0.0f, 65535.0f, 16384.0f)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(61, 179), module, Peaks::KNOB_3_PARAM, 0.0f, 65535.0f, 32678.0f)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(61, 244), module, Peaks::KNOB_4_PARAM, 0.0f, 65535.0f, 32678.0f)); | |||||
addParam(ParamWidget::create<LEDBezel>(Vec(11, 188), module, Peaks::TRIG_1_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addParam(ParamWidget::create<LEDBezel>(Vec(11, 273), module, Peaks::TRIG_2_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(ModuleLightWidget::create<LEDBezelLight<GreenLight>>(Vec(11, 188).plus(mm2px(Vec(0.75, 0.75))), module, Peaks::TRIG_1_LIGHT)); | |||||
addChild(ModuleLightWidget::create<LEDBezelLight<GreenLight>>(Vec(11, 273).plus(mm2px(Vec(0.75, 0.75))), module, Peaks::TRIG_2_LIGHT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(10, 230), Port::INPUT, module, Peaks::GATE_1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(10, 315), Port::INPUT, module, Peaks::GATE_2_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(53, 315), Port::OUTPUT, module, Peaks::OUT_1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(86, 315), Port::OUTPUT, module, Peaks::OUT_2_OUTPUT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Peaks.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addParam(createParam<TL1105>(Vec(8.5, 52), module, Peaks::BUTTON_1_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(11.88, 74), module, Peaks::TWIN_MODE_LIGHT)); | |||||
addParam(createParam<TL1105>(Vec(8.5, 89), module, Peaks::BUTTON_2_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(11.88, 111), module, Peaks::FUNC_1_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(11.88, 126.75), module, Peaks::FUNC_2_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(11.88, 142.5), module, Peaks::FUNC_3_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenLight>>(Vec(11.88, 158), module, Peaks::FUNC_4_LIGHT)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(61, 51), module, Peaks::KNOB_1_PARAM, 0.0f, 65535.0f, 16384.0f)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(61, 115), module, Peaks::KNOB_2_PARAM, 0.0f, 65535.0f, 16384.0f)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(61, 179), module, Peaks::KNOB_3_PARAM, 0.0f, 65535.0f, 32678.0f)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(61, 244), module, Peaks::KNOB_4_PARAM, 0.0f, 65535.0f, 32678.0f)); | |||||
addParam(createParam<LEDBezel>(Vec(11, 188), module, Peaks::TRIG_1_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addParam(createParam<LEDBezel>(Vec(11, 273), module, Peaks::TRIG_2_PARAM, 0.0f, 1.0f, 0.0f)); | |||||
addChild(createLight<LEDBezelLight<GreenLight>>(Vec(11, 188).plus(mm2px(Vec(0.75, 0.75))), module, Peaks::TRIG_1_LIGHT)); | |||||
addChild(createLight<LEDBezelLight<GreenLight>>(Vec(11, 273).plus(mm2px(Vec(0.75, 0.75))), module, Peaks::TRIG_2_LIGHT)); | |||||
addInput(createPort<PJ301MPort>(Vec(10, 230), PortWidget::INPUT, module, Peaks::GATE_1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(10, 315), PortWidget::INPUT, module, Peaks::GATE_2_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(53, 315), PortWidget::OUTPUT, module, Peaks::OUT_1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(86, 315), PortWidget::OUTPUT, module, Peaks::OUT_2_OUTPUT)); | |||||
} | } | ||||
Menu *createContextMenu() override { | |||||
Menu *menu = ModuleWidget::createContextMenu(); | |||||
void appendContextMenu(Menu *menu) override { | |||||
Peaks *peaks = dynamic_cast<Peaks*>(this->module); | Peaks *peaks = dynamic_cast<Peaks*>(this->module); | ||||
struct SnapModeItem : MenuItem { | struct SnapModeItem : MenuItem { | ||||
Peaks *peaks; | Peaks *peaks; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
peaks->snap_mode_ = !peaks->snap_mode_; | peaks->snap_mode_ = !peaks->snap_mode_; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -648,7 +640,7 @@ struct PeaksWidget : ModuleWidget { | |||||
struct NumberStationItem : MenuItem { | struct NumberStationItem : MenuItem { | ||||
Peaks *peaks; | Peaks *peaks; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
peaks->initNumberStation = true; | peaks->initNumberStation = true; | ||||
} | } | ||||
}; | }; | ||||
@@ -659,11 +651,9 @@ struct PeaksWidget : ModuleWidget { | |||||
menu->addChild(construct<MenuLabel>()); | menu->addChild(construct<MenuLabel>()); | ||||
menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Secret Modes")); | menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Secret Modes")); | ||||
menu->addChild(construct<NumberStationItem>(&NumberStationItem::text, "Number Station", &NumberStationItem::peaks, peaks)); | menu->addChild(construct<NumberStationItem>(&NumberStationItem::text, "Number Station", &NumberStationItem::peaks, peaks)); | ||||
return menu; | |||||
} | } | ||||
}; | }; | ||||
Model *modelPeaks = Model::create<Peaks, PeaksWidget>("Peaks"); | |||||
Model *modelPeaks = createModel<Peaks, PeaksWidget>("Peaks"); |
@@ -1,8 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "dsp/functions.hpp" | |||||
#include "dsp/digital.hpp" | |||||
#include "plaits/dsp/voice.h" | #include "plaits/dsp/voice.h" | ||||
@@ -74,7 +70,7 @@ struct Plaits : Module { | |||||
patch.engine = randomu32() % 16; | patch.engine = randomu32() % 16; | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "lowCpu", json_boolean(lowCpu)); | json_object_set_new(rootJ, "lowCpu", json_boolean(lowCpu)); | ||||
@@ -85,7 +81,7 @@ struct Plaits : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *lowCpuJ = json_object_get(rootJ, "lowCpu"); | json_t *lowCpuJ = json_object_get(rootJ, "lowCpu"); | ||||
if (lowCpuJ) | if (lowCpuJ) | ||||
lowCpu = json_boolean_value(lowCpuJ); | lowCpu = json_boolean_value(lowCpuJ); | ||||
@@ -232,43 +228,43 @@ static const std::string modelLabels[16] = { | |||||
struct PlaitsWidget : ModuleWidget { | struct PlaitsWidget : ModuleWidget { | ||||
PlaitsWidget(Plaits *module) : ModuleWidget(module) { | PlaitsWidget(Plaits *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Plaits.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(23.32685, 14.6539)), module, Plaits::MODEL1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(32.22764, 14.6539)), module, Plaits::MODEL2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(mm2px(Vec(3.1577, 20.21088)), module, Plaits::FREQ_PARAM, -4.0, 4.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(mm2px(Vec(39.3327, 20.21088)), module, Plaits::HARMONICS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(mm2px(Vec(4.04171, 49.6562)), module, Plaits::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(mm2px(Vec(42.71716, 49.6562)), module, Plaits::MORPH_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(7.88712, 77.60705)), module, Plaits::TIMBRE_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(27.2245, 77.60705)), module, Plaits::FREQ_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(46.56189, 77.60705)), module, Plaits::MORPH_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(3.31381, 92.48067)), Port::INPUT, module, Plaits::ENGINE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.75983, 92.48067)), Port::INPUT, module, Plaits::TIMBRE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(26.20655, 92.48067)), Port::INPUT, module, Plaits::FREQ_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(37.65257, 92.48067)), Port::INPUT, module, Plaits::MORPH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(49.0986, 92.48067)), Port::INPUT, module, Plaits::HARMONICS_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(3.31381, 107.08103)), Port::INPUT, module, Plaits::TRIGGER_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.75983, 107.08103)), Port::INPUT, module, Plaits::LEVEL_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(26.20655, 107.08103)), Port::INPUT, module, Plaits::NOTE_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(37.65257, 107.08103)), Port::OUTPUT, module, Plaits::OUT_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(49.0986, 107.08103)), Port::OUTPUT, module, Plaits::AUX_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 23.31649)), module, Plaits::MODEL_LIGHT + 0 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 28.71704)), module, Plaits::MODEL_LIGHT + 1 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 34.1162)), module, Plaits::MODEL_LIGHT + 2 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 39.51675)), module, Plaits::MODEL_LIGHT + 3 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 44.91731)), module, Plaits::MODEL_LIGHT + 4 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 50.31785)), module, Plaits::MODEL_LIGHT + 5 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 55.71771)), module, Plaits::MODEL_LIGHT + 6 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 61.11827)), module, Plaits::MODEL_LIGHT + 7 * 2)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Plaits.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addParam(createParam<TL1105>(mm2px(Vec(23.32685, 14.6539)), module, Plaits::MODEL1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(32.22764, 14.6539)), module, Plaits::MODEL2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan3PSWhite>(mm2px(Vec(3.1577, 20.21088)), module, Plaits::FREQ_PARAM, -4.0, 4.0, 0.0)); | |||||
addParam(createParam<Rogan3PSWhite>(mm2px(Vec(39.3327, 20.21088)), module, Plaits::HARMONICS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(mm2px(Vec(4.04171, 49.6562)), module, Plaits::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(mm2px(Vec(42.71716, 49.6562)), module, Plaits::MORPH_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(7.88712, 77.60705)), module, Plaits::TIMBRE_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(27.2245, 77.60705)), module, Plaits::FREQ_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(46.56189, 77.60705)), module, Plaits::MORPH_CV_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(3.31381, 92.48067)), PortWidget::INPUT, module, Plaits::ENGINE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(14.75983, 92.48067)), PortWidget::INPUT, module, Plaits::TIMBRE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(26.20655, 92.48067)), PortWidget::INPUT, module, Plaits::FREQ_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(37.65257, 92.48067)), PortWidget::INPUT, module, Plaits::MORPH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(49.0986, 92.48067)), PortWidget::INPUT, module, Plaits::HARMONICS_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(3.31381, 107.08103)), PortWidget::INPUT, module, Plaits::TRIGGER_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(14.75983, 107.08103)), PortWidget::INPUT, module, Plaits::LEVEL_INPUT)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(26.20655, 107.08103)), PortWidget::INPUT, module, Plaits::NOTE_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(37.65257, 107.08103)), PortWidget::OUTPUT, module, Plaits::OUT_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(49.0986, 107.08103)), PortWidget::OUTPUT, module, Plaits::AUX_OUTPUT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 23.31649)), module, Plaits::MODEL_LIGHT + 0 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 28.71704)), module, Plaits::MODEL_LIGHT + 1 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 34.1162)), module, Plaits::MODEL_LIGHT + 2 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 39.51675)), module, Plaits::MODEL_LIGHT + 3 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 44.91731)), module, Plaits::MODEL_LIGHT + 4 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 50.31785)), module, Plaits::MODEL_LIGHT + 5 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 55.71771)), module, Plaits::MODEL_LIGHT + 6 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.79498, 61.11827)), module, Plaits::MODEL_LIGHT + 7 * 2)); | |||||
} | } | ||||
void appendContextMenu(Menu *menu) override { | void appendContextMenu(Menu *menu) override { | ||||
@@ -276,14 +272,14 @@ struct PlaitsWidget : ModuleWidget { | |||||
struct PlaitsLowCpuItem : MenuItem { | struct PlaitsLowCpuItem : MenuItem { | ||||
Plaits *module; | Plaits *module; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->lowCpu ^= true; | module->lowCpu ^= true; | ||||
} | } | ||||
}; | }; | ||||
struct PlaitsLPGItem : MenuItem { | struct PlaitsLPGItem : MenuItem { | ||||
Plaits *module; | Plaits *module; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->lpg ^= true; | module->lpg ^= true; | ||||
} | } | ||||
}; | }; | ||||
@@ -291,23 +287,23 @@ struct PlaitsWidget : ModuleWidget { | |||||
struct PlaitsModelItem : MenuItem { | struct PlaitsModelItem : MenuItem { | ||||
Plaits *module; | Plaits *module; | ||||
int model; | int model; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->patch.engine = model; | module->patch.engine = model; | ||||
} | } | ||||
}; | }; | ||||
menu->addChild(MenuEntry::create()); | |||||
PlaitsLowCpuItem *lowCpuItem = MenuItem::create<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu)); | |||||
menu->addChild(new MenuEntry); | |||||
PlaitsLowCpuItem *lowCpuItem = createMenuItem<PlaitsLowCpuItem>("Low CPU", CHECKMARK(module->lowCpu)); | |||||
lowCpuItem->module = module; | lowCpuItem->module = module; | ||||
menu->addChild(lowCpuItem); | menu->addChild(lowCpuItem); | ||||
PlaitsLPGItem *lpgItem = MenuItem::create<PlaitsLPGItem>("Edit LPG response/decay", CHECKMARK(module->lpg)); | |||||
PlaitsLPGItem *lpgItem = createMenuItem<PlaitsLPGItem>("Edit LPG response/decay", CHECKMARK(module->lpg)); | |||||
lpgItem->module = module; | lpgItem->module = module; | ||||
menu->addChild(lpgItem); | menu->addChild(lpgItem); | ||||
menu->addChild(new MenuEntry()); | menu->addChild(new MenuEntry()); | ||||
menu->addChild(MenuLabel::create("Models")); | |||||
menu->addChild(createMenuLabel("Models")); | |||||
for (int i = 0; i < 16; i++) { | for (int i = 0; i < 16; i++) { | ||||
PlaitsModelItem *modelItem = MenuItem::create<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i)); | |||||
PlaitsModelItem *modelItem = createMenuItem<PlaitsModelItem>(modelLabels[i], CHECKMARK(module->patch.engine == i)); | |||||
modelItem->module = module; | modelItem->module = module; | ||||
modelItem->model = i; | modelItem->model = i; | ||||
menu->addChild(modelItem); | menu->addChild(modelItem); | ||||
@@ -316,5 +312,5 @@ struct PlaitsWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelPlaits = Model::create<Plaits, PlaitsWidget>("Plaits"); | |||||
Model *modelPlaits = createModel<Plaits, PlaitsWidget>("Plaits"); | |||||
@@ -1,9 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/functions.hpp" | |||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/ringbuffer.hpp" | |||||
#include "dsp/digital.hpp" | |||||
#include "rings/dsp/part.h" | #include "rings/dsp/part.h" | ||||
#include "rings/dsp/strummer.h" | #include "rings/dsp/strummer.h" | ||||
#include "rings/dsp/string_synth_part.h" | #include "rings/dsp/string_synth_part.h" | ||||
@@ -65,23 +60,23 @@ struct Rings : Module { | |||||
SchmittTrigger polyphonyTrigger; | SchmittTrigger polyphonyTrigger; | ||||
SchmittTrigger modelTrigger; | SchmittTrigger modelTrigger; | ||||
int polyphonyMode = 0; | int polyphonyMode = 0; | ||||
rings::ResonatorModel model = rings::RESONATOR_MODEL_MODAL; | |||||
rings::ResonatorModel resonatorModel = rings::RESONATOR_MODEL_MODAL; | |||||
bool easterEgg = false; | bool easterEgg = false; | ||||
Rings(); | Rings(); | ||||
void step() override; | void step() override; | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "polyphony", json_integer(polyphonyMode)); | json_object_set_new(rootJ, "polyphony", json_integer(polyphonyMode)); | ||||
json_object_set_new(rootJ, "model", json_integer((int) model)); | |||||
json_object_set_new(rootJ, "model", json_integer((int) resonatorModel)); | |||||
json_object_set_new(rootJ, "easterEgg", json_boolean(easterEgg)); | json_object_set_new(rootJ, "easterEgg", json_boolean(easterEgg)); | ||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *polyphonyJ = json_object_get(rootJ, "polyphony"); | json_t *polyphonyJ = json_object_get(rootJ, "polyphony"); | ||||
if (polyphonyJ) { | if (polyphonyJ) { | ||||
polyphonyMode = json_integer_value(polyphonyJ); | polyphonyMode = json_integer_value(polyphonyJ); | ||||
@@ -89,7 +84,7 @@ struct Rings : Module { | |||||
json_t *modelJ = json_object_get(rootJ, "model"); | json_t *modelJ = json_object_get(rootJ, "model"); | ||||
if (modelJ) { | if (modelJ) { | ||||
model = (rings::ResonatorModel) json_integer_value(modelJ); | |||||
resonatorModel = (rings::ResonatorModel) json_integer_value(modelJ); | |||||
} | } | ||||
json_t *easterEggJ = json_object_get(rootJ, "easterEgg"); | json_t *easterEggJ = json_object_get(rootJ, "easterEgg"); | ||||
@@ -100,12 +95,12 @@ struct Rings : Module { | |||||
void onReset() override { | void onReset() override { | ||||
polyphonyMode = 0; | polyphonyMode = 0; | ||||
model = rings::RESONATOR_MODEL_MODAL; | |||||
resonatorModel = rings::RESONATOR_MODEL_MODAL; | |||||
} | } | ||||
void onRandomize() override { | void onRandomize() override { | ||||
polyphonyMode = randomu32() % 3; | polyphonyMode = randomu32() % 3; | ||||
model = (rings::ResonatorModel) (randomu32() % 3); | |||||
resonatorModel = (rings::ResonatorModel) (randomu32() % 3); | |||||
} | } | ||||
}; | }; | ||||
@@ -142,9 +137,9 @@ void Rings::step() { | |||||
lights[POLYPHONY_RED_LIGHT].value = (polyphonyMode == 1 || polyphonyMode == 2) ? 1.0 : 0.0; | lights[POLYPHONY_RED_LIGHT].value = (polyphonyMode == 1 || polyphonyMode == 2) ? 1.0 : 0.0; | ||||
if (modelTrigger.process(params[RESONATOR_PARAM].value)) { | if (modelTrigger.process(params[RESONATOR_PARAM].value)) { | ||||
model = (rings::ResonatorModel) ((model + 1) % 3); | |||||
resonatorModel = (rings::ResonatorModel) ((resonatorModel + 1) % 3); | |||||
} | } | ||||
int modelColor = model % 3; | |||||
int modelColor = resonatorModel % 3; | |||||
lights[RESONATOR_GREEN_LIGHT].value = (modelColor == 0 || modelColor == 1) ? 1.0 : 0.0; | lights[RESONATOR_GREEN_LIGHT].value = (modelColor == 0 || modelColor == 1) ? 1.0 : 0.0; | ||||
lights[RESONATOR_RED_LIGHT].value = (modelColor == 1 || modelColor == 2) ? 1.0 : 0.0; | lights[RESONATOR_RED_LIGHT].value = (modelColor == 1 || modelColor == 2) ? 1.0 : 0.0; | ||||
@@ -166,9 +161,9 @@ void Rings::step() { | |||||
part.set_polyphony(polyphony); | part.set_polyphony(polyphony); | ||||
// Model | // Model | ||||
if (easterEgg) | if (easterEgg) | ||||
string_synth.set_fx((rings::FxType) model); | |||||
string_synth.set_fx((rings::FxType) resonatorModel); | |||||
else | else | ||||
part.set_model(model); | |||||
part.set_model(resonatorModel); | |||||
// Patch | // Patch | ||||
rings::Patch patch; | rings::Patch patch; | ||||
@@ -248,43 +243,43 @@ void Rings::step() { | |||||
struct RingsWidget : ModuleWidget { | struct RingsWidget : ModuleWidget { | ||||
RingsWidget(Rings *module) : ModuleWidget(module) { | RingsWidget(Rings *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Rings.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(180, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(180, 365))); | |||||
addParam(ParamWidget::create<TL1105>(Vec(14, 40), module, Rings::POLYPHONY_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(179, 40), module, Rings::RESONATOR_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(Vec(29, 72), module, Rings::FREQUENCY_PARAM, 0.0, 60.0, 30.0)); | |||||
addParam(ParamWidget::create<Rogan3PSWhite>(Vec(126, 72), module, Rings::STRUCTURE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(13, 158), module, Rings::BRIGHTNESS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(83, 158), module, Rings::DAMPING_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(154, 158), module, Rings::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(19, 229), module, Rings::BRIGHTNESS_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(57, 229), module, Rings::FREQUENCY_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(96, 229), module, Rings::DAMPING_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(134, 229), module, Rings::STRUCTURE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(173, 229), module, Rings::POSITION_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(15, 273), Port::INPUT, module, Rings::BRIGHTNESS_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(54, 273), Port::INPUT, module, Rings::FREQUENCY_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(92, 273), Port::INPUT, module, Rings::DAMPING_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(131, 273), Port::INPUT, module, Rings::STRUCTURE_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(169, 273), Port::INPUT, module, Rings::POSITION_MOD_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(15, 316), Port::INPUT, module, Rings::STRUM_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(54, 316), Port::INPUT, module, Rings::PITCH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(92, 316), Port::INPUT, module, Rings::IN_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(131, 316), Port::OUTPUT, module, Rings::ODD_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(169, 316), Port::OUTPUT, module, Rings::EVEN_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(37, 43), module, Rings::POLYPHONY_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(162, 43), module, Rings::RESONATOR_GREEN_LIGHT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Rings.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(180, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(180, 365))); | |||||
addParam(createParam<TL1105>(Vec(14, 40), module, Rings::POLYPHONY_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(Vec(179, 40), module, Rings::RESONATOR_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan3PSWhite>(Vec(29, 72), module, Rings::FREQUENCY_PARAM, 0.0, 60.0, 30.0)); | |||||
addParam(createParam<Rogan3PSWhite>(Vec(126, 72), module, Rings::STRUCTURE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(13, 158), module, Rings::BRIGHTNESS_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(83, 158), module, Rings::DAMPING_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(154, 158), module, Rings::POSITION_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(Vec(19, 229), module, Rings::BRIGHTNESS_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(57, 229), module, Rings::FREQUENCY_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(96, 229), module, Rings::DAMPING_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(134, 229), module, Rings::STRUCTURE_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(173, 229), module, Rings::POSITION_MOD_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(15, 273), PortWidget::INPUT, module, Rings::BRIGHTNESS_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(54, 273), PortWidget::INPUT, module, Rings::FREQUENCY_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(92, 273), PortWidget::INPUT, module, Rings::DAMPING_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(131, 273), PortWidget::INPUT, module, Rings::STRUCTURE_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(169, 273), PortWidget::INPUT, module, Rings::POSITION_MOD_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(15, 316), PortWidget::INPUT, module, Rings::STRUM_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(54, 316), PortWidget::INPUT, module, Rings::PITCH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(92, 316), PortWidget::INPUT, module, Rings::IN_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(131, 316), PortWidget::OUTPUT, module, Rings::ODD_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(169, 316), PortWidget::OUTPUT, module, Rings::EVEN_OUTPUT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(37, 43), module, Rings::POLYPHONY_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(162, 43), module, Rings::RESONATOR_GREEN_LIGHT)); | |||||
} | } | ||||
void appendContextMenu(Menu *menu) override { | void appendContextMenu(Menu *menu) override { | ||||
@@ -294,18 +289,18 @@ struct RingsWidget : ModuleWidget { | |||||
struct RingsModelItem : MenuItem { | struct RingsModelItem : MenuItem { | ||||
Rings *rings; | Rings *rings; | ||||
rings::ResonatorModel model; | rings::ResonatorModel model; | ||||
void onAction(EventAction &e) override { | |||||
rings->model = model; | |||||
void onAction(const event::Action &e) override { | |||||
rings->resonatorModel = model; | |||||
} | } | ||||
void step() override { | void step() override { | ||||
rightText = (rings->model == model) ? "✔" : ""; | |||||
rightText = (rings->resonatorModel == model) ? "✔" : ""; | |||||
MenuItem::step(); | MenuItem::step(); | ||||
} | } | ||||
}; | }; | ||||
struct RingsEasterEggItem : MenuItem { | struct RingsEasterEggItem : MenuItem { | ||||
Rings *rings; | Rings *rings; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
rings->easterEgg = !rings->easterEgg; | rings->easterEgg = !rings->easterEgg; | ||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -329,4 +324,4 @@ struct RingsWidget : ModuleWidget { | |||||
}; | }; | ||||
Model *modelRings = Model::create<Rings, RingsWidget>("Rings"); | |||||
Model *modelRings = createModel<Rings, RingsWidget>("Rings"); |
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include <string.h> | |||||
struct Shades : Module { | struct Shades : Module { | ||||
@@ -62,32 +61,32 @@ void Shades::step() { | |||||
struct ShadesWidget : ModuleWidget { | struct ShadesWidget : ModuleWidget { | ||||
ShadesWidget(Shades *module) : ModuleWidget(module) { | ShadesWidget(Shades *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Shades.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Shades.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSRed>(Vec(40, 40), module, Shades::GAIN1_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(40, 106), module, Shades::GAIN2_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(40, 172), module, Shades::GAIN3_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSRed>(Vec(40, 40), module, Shades::GAIN1_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(40, 106), module, Shades::GAIN2_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(40, 172), module, Shades::GAIN3_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<CKSS>(Vec(10, 51), module, Shades::MODE1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<CKSS>(Vec(10, 117), module, Shades::MODE2_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<CKSS>(Vec(10, 183), module, Shades::MODE3_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<CKSS>(Vec(10, 51), module, Shades::MODE1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<CKSS>(Vec(10, 117), module, Shades::MODE2_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<CKSS>(Vec(10, 183), module, Shades::MODE3_PARAM, 0.0, 1.0, 1.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(9, 245), Port::INPUT, module, Shades::IN1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(9, 281), Port::INPUT, module, Shades::IN2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(9, 317), Port::INPUT, module, Shades::IN3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(9, 245), PortWidget::INPUT, module, Shades::IN1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(9, 281), PortWidget::INPUT, module, Shades::IN2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(9, 317), PortWidget::INPUT, module, Shades::IN3_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(56, 245), Port::OUTPUT, module, Shades::OUT1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(56, 281), Port::OUTPUT, module, Shades::OUT2_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(56, 317), Port::OUTPUT, module, Shades::OUT3_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(56, 245), PortWidget::OUTPUT, module, Shades::OUT1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(56, 281), PortWidget::OUTPUT, module, Shades::OUT2_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(56, 317), PortWidget::OUTPUT, module, Shades::OUT3_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(41, 254), module, Shades::OUT1_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(41, 290), module, Shades::OUT2_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(41, 326), module, Shades::OUT3_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(41, 254), module, Shades::OUT1_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(41, 290), module, Shades::OUT2_POS_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(41, 326), module, Shades::OUT3_POS_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelShades = Model::create<Shades, ShadesWidget>("Shades"); | |||||
Model *modelShades = createModel<Shades, ShadesWidget>("Shades"); |
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/digital.hpp" | |||||
#include "stages/segment_generator.h" | #include "stages/segment_generator.h" | ||||
#include "stages/oscillator.h" | #include "stages/oscillator.h" | ||||
@@ -171,7 +170,7 @@ struct Stages : Module { | |||||
onSampleRateChange(); | onSampleRateChange(); | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_t *configurationsJ = json_array(); | json_t *configurationsJ = json_array(); | ||||
@@ -186,7 +185,7 @@ struct Stages : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *configurationsJ = json_object_get(rootJ, "configurations"); | json_t *configurationsJ = json_object_get(rootJ, "configurations"); | ||||
for (int i = 0; i < NUM_CHANNELS; i++) { | for (int i = 0; i < NUM_CHANNELS; i++) { | ||||
json_t *configurationJ = json_array_get(configurationsJ, i); | json_t *configurationJ = json_array_get(configurationsJ, i); | ||||
@@ -375,66 +374,66 @@ struct Stages : Module { | |||||
struct StagesWidget : ModuleWidget { | struct StagesWidget : ModuleWidget { | ||||
StagesWidget(Stages *module) : ModuleWidget(module) { | StagesWidget(Stages *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Stages.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(3.72965, 13.98158)), module, Stages::SHAPE_PARAMS + 0, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(15.17012, 13.98158)), module, Stages::SHAPE_PARAMS + 1, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(26.6099, 13.98158)), module, Stages::SHAPE_PARAMS + 2, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(38.07174, 13.98158)), module, Stages::SHAPE_PARAMS + 3, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(49.51152, 13.98158)), module, Stages::SHAPE_PARAMS + 4, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<Trimpot>(mm2px(Vec(60.95199, 13.98158)), module, Stages::SHAPE_PARAMS + 5, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(4.17259, 32.37248)), module, Stages::TYPE_PARAMS + 0, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(15.61237, 32.37248)), module, Stages::TYPE_PARAMS + 1, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(27.05284, 32.37248)), module, Stages::TYPE_PARAMS + 2, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(38.51399, 32.37248)), module, Stages::TYPE_PARAMS + 3, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(49.95446, 32.37248)), module, Stages::TYPE_PARAMS + 4, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<TL1105>(mm2px(Vec(61.39424, 32.37248)), module, Stages::TYPE_PARAMS + 5, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(3.36193, 43.06508)), module, Stages::LEVEL_PARAMS + 0, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(14.81619, 43.06508)), module, Stages::LEVEL_PARAMS + 1, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(26.26975, 43.06508)), module, Stages::LEVEL_PARAMS + 2, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(37.70265, 43.06508)), module, Stages::LEVEL_PARAMS + 3, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(49.15759, 43.06508)), module, Stages::LEVEL_PARAMS + 4, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<LEDSliderGreen>(mm2px(Vec(60.61184, 43.06508)), module, Stages::LEVEL_PARAMS + 5, 0.0, 1.0, 0.5)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.70756, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 0)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.14734, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 1)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(25.58781, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 2)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(37.04896, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 3)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(48.48943, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 4)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(59.92921, 77.75277)), Port::INPUT, module, Stages::LEVEL_INPUTS + 5)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(2.70756, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 0)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(14.14734, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 1)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(25.58781, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 2)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(37.04896, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 3)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(48.48943, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 4)); | |||||
addInput(Port::create<PJ301MPort>(mm2px(Vec(59.92921, 92.35239)), Port::INPUT, module, Stages::GATE_INPUTS + 5)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(2.70756, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 0)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(14.14734, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 1)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(25.58781, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 2)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(37.04896, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 3)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(48.48943, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 4)); | |||||
addOutput(Port::create<PJ301MPort>(mm2px(Vec(59.92921, 106.95203)), Port::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 5)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(5.27737, 26.74447)), module, Stages::TYPE_LIGHTS + 0 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(16.73784, 26.74447)), module, Stages::TYPE_LIGHTS + 1 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(28.1783, 26.74447)), module, Stages::TYPE_LIGHTS + 2 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(39.61877, 26.74447)), module, Stages::TYPE_LIGHTS + 3 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(51.07923, 26.74447)), module, Stages::TYPE_LIGHTS + 4 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(mm2px(Vec(62.51971, 26.74447)), module, Stages::TYPE_LIGHTS + 5 * 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(2.29462, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 0)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(13.73509, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 1)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(25.17556, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 2)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(36.63671, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 3)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(48.07649, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 4)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenLight>>(mm2px(Vec(59.51696, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 5)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Stages.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(3.72965, 13.98158)), module, Stages::SHAPE_PARAMS + 0, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(15.17012, 13.98158)), module, Stages::SHAPE_PARAMS + 1, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(26.6099, 13.98158)), module, Stages::SHAPE_PARAMS + 2, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(38.07174, 13.98158)), module, Stages::SHAPE_PARAMS + 3, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(49.51152, 13.98158)), module, Stages::SHAPE_PARAMS + 4, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<Trimpot>(mm2px(Vec(60.95199, 13.98158)), module, Stages::SHAPE_PARAMS + 5, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(4.17259, 32.37248)), module, Stages::TYPE_PARAMS + 0, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(15.61237, 32.37248)), module, Stages::TYPE_PARAMS + 1, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(27.05284, 32.37248)), module, Stages::TYPE_PARAMS + 2, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(38.51399, 32.37248)), module, Stages::TYPE_PARAMS + 3, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(49.95446, 32.37248)), module, Stages::TYPE_PARAMS + 4, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<TL1105>(mm2px(Vec(61.39424, 32.37248)), module, Stages::TYPE_PARAMS + 5, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(3.36193, 43.06508)), module, Stages::LEVEL_PARAMS + 0, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(14.81619, 43.06508)), module, Stages::LEVEL_PARAMS + 1, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(26.26975, 43.06508)), module, Stages::LEVEL_PARAMS + 2, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(37.70265, 43.06508)), module, Stages::LEVEL_PARAMS + 3, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(49.15759, 43.06508)), module, Stages::LEVEL_PARAMS + 4, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<LEDSliderGreen>(mm2px(Vec(60.61184, 43.06508)), module, Stages::LEVEL_PARAMS + 5, 0.0, 1.0, 0.5)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(2.70756, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 0)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(14.14734, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 1)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(25.58781, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 2)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(37.04896, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 3)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(48.48943, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 4)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(59.92921, 77.75277)), PortWidget::INPUT, module, Stages::LEVEL_INPUTS + 5)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(2.70756, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 0)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(14.14734, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 1)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(25.58781, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 2)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(37.04896, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 3)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(48.48943, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 4)); | |||||
addInput(createPort<PJ301MPort>(mm2px(Vec(59.92921, 92.35239)), PortWidget::INPUT, module, Stages::GATE_INPUTS + 5)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(2.70756, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 0)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(14.14734, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 1)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(25.58781, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 2)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(37.04896, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 3)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(48.48943, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 4)); | |||||
addOutput(createPort<PJ301MPort>(mm2px(Vec(59.92921, 106.95203)), PortWidget::OUTPUT, module, Stages::ENVELOPE_OUTPUTS + 5)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(5.27737, 26.74447)), module, Stages::TYPE_LIGHTS + 0 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(16.73784, 26.74447)), module, Stages::TYPE_LIGHTS + 1 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(28.1783, 26.74447)), module, Stages::TYPE_LIGHTS + 2 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(39.61877, 26.74447)), module, Stages::TYPE_LIGHTS + 3 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(51.07923, 26.74447)), module, Stages::TYPE_LIGHTS + 4 * 2)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(mm2px(Vec(62.51971, 26.74447)), module, Stages::TYPE_LIGHTS + 5 * 2)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(2.29462, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 0)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(13.73509, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 1)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(25.17556, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 2)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(36.63671, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 3)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(48.07649, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 4)); | |||||
addChild(createLight<MediumLight<GreenLight>>(mm2px(Vec(59.51696, 103.19253)), module, Stages::ENVELOPE_LIGHTS + 5)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelStages = Model::create<Stages, StagesWidget>("Stages"); | |||||
Model *modelStages = createModel<Stages, StagesWidget>("Stages"); |
@@ -1,7 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/samplerate.hpp" | |||||
#include "dsp/digital.hpp" | |||||
#include "tides/generator.h" | #include "tides/generator.h" | ||||
@@ -68,7 +65,7 @@ struct Tides : Module { | |||||
generator.set_mode((tides::GeneratorMode) (randomu32() % 3)); | generator.set_mode((tides::GeneratorMode) (randomu32() % 3)); | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "mode", json_integer((int) generator.mode())); | json_object_set_new(rootJ, "mode", json_integer((int) generator.mode())); | ||||
@@ -78,7 +75,7 @@ struct Tides : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *modeJ = json_object_get(rootJ, "mode"); | json_t *modeJ = json_object_get(rootJ, "mode"); | ||||
if (modeJ) { | if (modeJ) { | ||||
generator.set_mode((tides::GeneratorMode) json_integer_value(modeJ)); | generator.set_mode((tides::GeneratorMode) json_integer_value(modeJ)); | ||||
@@ -200,51 +197,51 @@ struct TidesWidget : ModuleWidget { | |||||
box.size = Vec(15*14, 380); | box.size = Vec(15*14, 380); | ||||
{ | { | ||||
tidesPanel = new SVGPanel(); | tidesPanel = new SVGPanel(); | ||||
tidesPanel->setBackground(SVG::load(assetPlugin(plugin, "res/Tides.svg"))); | |||||
tidesPanel->setBackground(SVG::load(assetPlugin(pluginInstance, "res/Tides.svg"))); | |||||
tidesPanel->box.size = box.size; | tidesPanel->box.size = box.size; | ||||
addChild(tidesPanel); | addChild(tidesPanel); | ||||
} | } | ||||
{ | { | ||||
sheepPanel = new SVGPanel(); | sheepPanel = new SVGPanel(); | ||||
sheepPanel->setBackground(SVG::load(assetPlugin(plugin, "res/Sheep.svg"))); | |||||
sheepPanel->setBackground(SVG::load(assetPlugin(pluginInstance, "res/Sheep.svg"))); | |||||
sheepPanel->box.size = box.size; | sheepPanel->box.size = box.size; | ||||
addChild(sheepPanel); | addChild(sheepPanel); | ||||
} | } | ||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(180, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(180, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(180, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(180, 365))); | |||||
addParam(ParamWidget::create<CKD6>(Vec(19, 52), module, Tides::MODE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<CKD6>(Vec(19, 93), module, Tides::RANGE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<CKD6>(Vec(19, 52), module, Tides::MODE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<CKD6>(Vec(19, 93), module, Tides::RANGE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan3PSGreen>(Vec(78, 60), module, Tides::FREQUENCY_PARAM, -48.0, 48.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSGreen>(Vec(156, 66), module, Tides::FM_PARAM, -12.0, 12.0, 0.0)); | |||||
addParam(createParam<Rogan3PSGreen>(Vec(78, 60), module, Tides::FREQUENCY_PARAM, -48.0, 48.0, 0.0)); | |||||
addParam(createParam<Rogan1PSGreen>(Vec(156, 66), module, Tides::FM_PARAM, -12.0, 12.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(13, 155), module, Tides::SHAPE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(85, 155), module, Tides::SLOPE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(156, 155), module, Tides::SMOOTHNESS_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(13, 155), module, Tides::SHAPE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(85, 155), module, Tides::SLOPE_PARAM, -1.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(156, 155), module, Tides::SMOOTHNESS_PARAM, -1.0, 1.0, 0.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(21, 219), Port::INPUT, module, Tides::SHAPE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(93, 219), Port::INPUT, module, Tides::SLOPE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(164, 219), Port::INPUT, module, Tides::SMOOTHNESS_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(21, 219), PortWidget::INPUT, module, Tides::SHAPE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(93, 219), PortWidget::INPUT, module, Tides::SLOPE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(164, 219), PortWidget::INPUT, module, Tides::SMOOTHNESS_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(21, 274), Port::INPUT, module, Tides::TRIG_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(57, 274), Port::INPUT, module, Tides::FREEZE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(93, 274), Port::INPUT, module, Tides::PITCH_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(128, 274), Port::INPUT, module, Tides::FM_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(164, 274), Port::INPUT, module, Tides::LEVEL_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(21, 274), PortWidget::INPUT, module, Tides::TRIG_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(57, 274), PortWidget::INPUT, module, Tides::FREEZE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(93, 274), PortWidget::INPUT, module, Tides::PITCH_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(128, 274), PortWidget::INPUT, module, Tides::FM_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(164, 274), PortWidget::INPUT, module, Tides::LEVEL_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(21, 316), Port::INPUT, module, Tides::CLOCK_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(57, 316), Port::OUTPUT, module, Tides::HIGH_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(93, 316), Port::OUTPUT, module, Tides::LOW_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(128, 316), Port::OUTPUT, module, Tides::UNI_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(164, 316), Port::OUTPUT, module, Tides::BI_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(21, 316), PortWidget::INPUT, module, Tides::CLOCK_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(57, 316), PortWidget::OUTPUT, module, Tides::HIGH_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(93, 316), PortWidget::OUTPUT, module, Tides::LOW_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(128, 316), PortWidget::OUTPUT, module, Tides::UNI_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(164, 316), PortWidget::OUTPUT, module, Tides::BI_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(56, 61), module, Tides::MODE_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(56, 82), module, Tides::PHASE_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(56, 102), module, Tides::RANGE_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(56, 61), module, Tides::MODE_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(56, 82), module, Tides::PHASE_GREEN_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(56, 102), module, Tides::RANGE_GREEN_LIGHT)); | |||||
} | } | ||||
void step() override { | void step() override { | ||||
@@ -263,17 +260,17 @@ struct TidesWidget : ModuleWidget { | |||||
struct SheepItem : MenuItem { | struct SheepItem : MenuItem { | ||||
Tides *module; | Tides *module; | ||||
void onAction(EventAction &e) override { | |||||
void onAction(const event::Action &e) override { | |||||
module->sheep ^= true; | module->sheep ^= true; | ||||
} | } | ||||
}; | }; | ||||
menu->addChild(MenuEntry::create()); | |||||
SheepItem *sheepItem = MenuItem::create<SheepItem>("Sheep", CHECKMARK(module->sheep)); | |||||
menu->addChild(new MenuEntry); | |||||
SheepItem *sheepItem = createMenuItem<SheepItem>("Sheep", CHECKMARK(module->sheep)); | |||||
sheepItem->module = module; | sheepItem->module = module; | ||||
menu->addChild(sheepItem); | menu->addChild(sheepItem); | ||||
} | } | ||||
}; | }; | ||||
Model *modelTides = Model::create<Tides, TidesWidget>("Tides"); | |||||
Model *modelTides = createModel<Tides, TidesWidget>("Tides"); |
@@ -1,6 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/functions.hpp" | |||||
#include "dsp/digital.hpp" | |||||
#include "stmlib/dsp/hysteresis_quantizer.h" | #include "stmlib/dsp/hysteresis_quantizer.h" | ||||
#include "stmlib/dsp/units.h" | #include "stmlib/dsp/units.h" | ||||
#include "tides2/poly_slope_generator.h" | #include "tides2/poly_slope_generator.h" | ||||
@@ -127,7 +125,7 @@ struct Tides2 : Module { | |||||
ramp_extractor.Init(engineGetSampleRate(), 40.f / engineGetSampleRate()); | ramp_extractor.Init(engineGetSampleRate(), 40.f / engineGetSampleRate()); | ||||
} | } | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
json_object_set_new(rootJ, "range", json_integer(range)); | json_object_set_new(rootJ, "range", json_integer(range)); | ||||
@@ -137,7 +135,7 @@ struct Tides2 : Module { | |||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *rangeJ = json_object_get(rootJ, "range"); | json_t *rangeJ = json_object_get(rootJ, "range"); | ||||
if (rangeJ) | if (rangeJ) | ||||
range = json_integer_value(rangeJ); | range = json_integer_value(rangeJ); | ||||
@@ -249,7 +247,7 @@ struct Tides2 : Module { | |||||
struct Tides2Widget : ModuleWidget { | struct Tides2Widget : ModuleWidget { | ||||
Tides2Widget(Tides2 *module) : ModuleWidget(module) { | Tides2Widget(Tides2 *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Tides2.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Tides2.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0))); | ||||
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0))); | ||||
@@ -1,5 +1,4 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include <string.h> | |||||
struct Veils : Module { | struct Veils : Module { | ||||
@@ -70,44 +69,44 @@ void Veils::step() { | |||||
struct VeilsWidget : ModuleWidget { | struct VeilsWidget : ModuleWidget { | ||||
VeilsWidget(Veils *module) : ModuleWidget(module) { | VeilsWidget(Veils *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Veils.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(150, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(150, 365))); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 52), module, Veils::GAIN1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 131), module, Veils::GAIN2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 210), module, Veils::GAIN3_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(8, 288), module, Veils::GAIN4_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 56), module, Veils::RESPONSE1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 135), module, Veils::RESPONSE2_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 214), module, Veils::RESPONSE3_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(72, 292), module, Veils::RESPONSE4_PARAM, 0.0, 1.0, 1.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 41), Port::INPUT, module, Veils::IN1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 120), Port::INPUT, module, Veils::IN2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 198), Port::INPUT, module, Veils::IN3_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 277), Port::INPUT, module, Veils::IN4_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 80), Port::INPUT, module, Veils::CV1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 159), Port::INPUT, module, Veils::CV2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 238), Port::INPUT, module, Veils::CV3_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(110, 316), Port::INPUT, module, Veils::CV4_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 41), Port::OUTPUT, module, Veils::OUT1_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 120), Port::OUTPUT, module, Veils::OUT2_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 198), Port::OUTPUT, module, Veils::OUT3_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(144, 277), Port::OUTPUT, module, Veils::OUT4_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 87), module, Veils::OUT1_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 166), module, Veils::OUT2_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 245), module, Veils::OUT3_POS_LIGHT)); | |||||
addChild(ModuleLightWidget::create<MediumLight<GreenRedLight>>(Vec(152, 324), module, Veils::OUT4_POS_LIGHT)); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Veils.svg"))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(150, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(150, 365))); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 52), module, Veils::GAIN1_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 131), module, Veils::GAIN2_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 210), module, Veils::GAIN3_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(8, 288), module, Veils::GAIN4_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 56), module, Veils::RESPONSE1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 135), module, Veils::RESPONSE2_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 214), module, Veils::RESPONSE3_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Trimpot>(Vec(72, 292), module, Veils::RESPONSE4_PARAM, 0.0, 1.0, 1.0)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 41), PortWidget::INPUT, module, Veils::IN1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 120), PortWidget::INPUT, module, Veils::IN2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 198), PortWidget::INPUT, module, Veils::IN3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 277), PortWidget::INPUT, module, Veils::IN4_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 80), PortWidget::INPUT, module, Veils::CV1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 159), PortWidget::INPUT, module, Veils::CV2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 238), PortWidget::INPUT, module, Veils::CV3_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(110, 316), PortWidget::INPUT, module, Veils::CV4_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 41), PortWidget::OUTPUT, module, Veils::OUT1_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 120), PortWidget::OUTPUT, module, Veils::OUT2_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 198), PortWidget::OUTPUT, module, Veils::OUT3_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(144, 277), PortWidget::OUTPUT, module, Veils::OUT4_OUTPUT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 87), module, Veils::OUT1_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 166), module, Veils::OUT2_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 245), module, Veils::OUT3_POS_LIGHT)); | |||||
addChild(createLight<MediumLight<GreenRedLight>>(Vec(152, 324), module, Veils::OUT4_POS_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelVeils = Model::create<Veils, VeilsWidget>("Veils"); | |||||
Model *modelVeils = createModel<Veils, VeilsWidget>("Veils"); |
@@ -1,6 +1,4 @@ | |||||
#include <string.h> | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
#include "dsp/digital.hpp" | |||||
#include "warps/dsp/modulator.h" | #include "warps/dsp/modulator.h" | ||||
@@ -43,14 +41,14 @@ struct Warps : Module { | |||||
Warps(); | Warps(); | ||||
void step() override; | void step() override; | ||||
json_t *toJson() override { | |||||
json_t *dataToJson() override { | |||||
json_t *rootJ = json_object(); | json_t *rootJ = json_object(); | ||||
warps::Parameters *p = modulator.mutable_parameters(); | warps::Parameters *p = modulator.mutable_parameters(); | ||||
json_object_set_new(rootJ, "shape", json_integer(p->carrier_shape)); | json_object_set_new(rootJ, "shape", json_integer(p->carrier_shape)); | ||||
return rootJ; | return rootJ; | ||||
} | } | ||||
void fromJson(json_t *rootJ) override { | |||||
void dataFromJson(json_t *rootJ) override { | |||||
json_t *shapeJ = json_object_get(rootJ, "shape"); | json_t *shapeJ = json_object_get(rootJ, "shape"); | ||||
warps::Parameters *p = modulator.mutable_parameters(); | warps::Parameters *p = modulator.mutable_parameters(); | ||||
if (shapeJ) { | if (shapeJ) { | ||||
@@ -128,35 +126,35 @@ struct AlgorithmLight : RedGreenBlueLight { | |||||
struct WarpsWidget : ModuleWidget { | struct WarpsWidget : ModuleWidget { | ||||
WarpsWidget(Warps *module) : ModuleWidget(module) { | WarpsWidget(Warps *module) : ModuleWidget(module) { | ||||
setPanel(SVG::load(assetPlugin(plugin, "res/Warps.svg"))); | |||||
setPanel(SVG::load(assetPlugin(pluginInstance, "res/Warps.svg"))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(120, 0))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(15, 365))); | |||||
addChild(Widget::create<ScrewSilver>(Vec(120, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(120, 0))); | |||||
addChild(createWidget<ScrewSilver>(Vec(15, 365))); | |||||
addChild(createWidget<ScrewSilver>(Vec(120, 365))); | |||||
addParam(ParamWidget::create<Rogan6PSWhite>(Vec(29, 52), module, Warps::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | |||||
addParam(createParam<Rogan6PSWhite>(Vec(29, 52), module, Warps::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | |||||
addParam(ParamWidget::create<Rogan1PSWhite>(Vec(94, 173), module, Warps::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(ParamWidget::create<TL1105>(Vec(16, 182), module, Warps::STATE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(14, 213), module, Warps::LEVEL1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(ParamWidget::create<Trimpot>(Vec(53, 213), module, Warps::LEVEL2_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Rogan1PSWhite>(Vec(94, 173), module, Warps::TIMBRE_PARAM, 0.0, 1.0, 0.5)); | |||||
addParam(createParam<TL1105>(Vec(16, 182), module, Warps::STATE_PARAM, 0.0, 1.0, 0.0)); | |||||
addParam(createParam<Trimpot>(Vec(14, 213), module, Warps::LEVEL1_PARAM, 0.0, 1.0, 1.0)); | |||||
addParam(createParam<Trimpot>(Vec(53, 213), module, Warps::LEVEL2_PARAM, 0.0, 1.0, 1.0)); | |||||
addInput(Port::create<PJ301MPort>(Vec(8, 273), Port::INPUT, module, Warps::LEVEL1_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(44, 273), Port::INPUT, module, Warps::LEVEL2_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(80, 273), Port::INPUT, module, Warps::ALGORITHM_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(116, 273), Port::INPUT, module, Warps::TIMBRE_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(8, 273), PortWidget::INPUT, module, Warps::LEVEL1_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(44, 273), PortWidget::INPUT, module, Warps::LEVEL2_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(80, 273), PortWidget::INPUT, module, Warps::ALGORITHM_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(116, 273), PortWidget::INPUT, module, Warps::TIMBRE_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(8, 316), Port::INPUT, module, Warps::CARRIER_INPUT)); | |||||
addInput(Port::create<PJ301MPort>(Vec(44, 316), Port::INPUT, module, Warps::MODULATOR_INPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(80, 316), Port::OUTPUT, module, Warps::MODULATOR_OUTPUT)); | |||||
addOutput(Port::create<PJ301MPort>(Vec(116, 316), Port::OUTPUT, module, Warps::AUX_OUTPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(8, 316), PortWidget::INPUT, module, Warps::CARRIER_INPUT)); | |||||
addInput(createPort<PJ301MPort>(Vec(44, 316), PortWidget::INPUT, module, Warps::MODULATOR_INPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(80, 316), PortWidget::OUTPUT, module, Warps::MODULATOR_OUTPUT)); | |||||
addOutput(createPort<PJ301MPort>(Vec(116, 316), PortWidget::OUTPUT, module, Warps::AUX_OUTPUT)); | |||||
addChild(ModuleLightWidget::create<SmallLight<GreenRedLight>>(Vec(21, 167), module, Warps::CARRIER_GREEN_LIGHT)); | |||||
addChild(createLight<SmallLight<GreenRedLight>>(Vec(21, 167), module, Warps::CARRIER_GREEN_LIGHT)); | |||||
addChild(ModuleLightWidget::create<AlgorithmLight>(Vec(40, 63), module, Warps::ALGORITHM_LIGHT)); | |||||
addChild(createLight<AlgorithmLight>(Vec(40, 63), module, Warps::ALGORITHM_LIGHT)); | |||||
} | } | ||||
}; | }; | ||||
Model *modelWarps = Model::create<Warps, WarpsWidget>("Warps"); | |||||
Model *modelWarps = createModel<Warps, WarpsWidget>("Warps"); |