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