@@ -1,10 +1,10 @@ | |||||
ARCH ?= linux | |||||
CXXFLAGS = -MMD -fPIC -g -Wall -std=c++11 -O3 -msse -mfpmath=sse -ffast-math -DTEST \ | |||||
ARCH ?= lin | |||||
FLAGS = -fPIC -g -Wall -O3 -msse -mfpmath=sse -ffast-math \ | |||||
-fshort-enums -DTEST \ | |||||
-I./src -I../../include -I./eurorack \ | -I./src -I../../include -I./eurorack \ | ||||
-fshort-enums | |||||
-Wno-unused-local-typedefs | |||||
LDFLAGS = | |||||
SOURCES = $(wildcard src/*.cpp) \ | SOURCES = $(wildcard src/*.cpp) \ | ||||
eurorack/stmlib/utils/random.cc \ | eurorack/stmlib/utils/random.cc \ | ||||
@@ -46,30 +46,17 @@ SOURCES = $(wildcard src/*.cpp) \ | |||||
eurorack/warps/resources.cc | eurorack/warps/resources.cc | ||||
# Linux | |||||
ifeq ($(ARCH), linux) | |||||
CC = gcc | |||||
CXX = g++ | |||||
CXXFLAGS += -Wno-unused-local-typedefs | |||||
ifeq ($(ARCH), lin) | |||||
LDFLAGS += -shared | LDFLAGS += -shared | ||||
TARGET = plugin.so | TARGET = plugin.so | ||||
endif | endif | ||||
# Apple | |||||
ifeq ($(ARCH), apple) | |||||
CC = clang | |||||
CXX = clang++ | |||||
CXXFLAGS += -stdlib=libc++ | |||||
LDFLAGS += -stdlib=libc++ -shared -undefined dynamic_lookup | |||||
ifeq ($(ARCH), mac) | |||||
LDFLAGS += -shared -undefined dynamic_lookup | |||||
TARGET = plugin.dylib | TARGET = plugin.dylib | ||||
endif | endif | ||||
# Windows | |||||
ifeq ($(ARCH), windows) | |||||
CC = x86_64-w64-mingw32-gcc | |||||
CXX = x86_64-w64-mingw32-g++ | |||||
CXXFLAGS += -D_USE_MATH_DEFINES -Wno-unused-local-typedefs | |||||
SOURCES += | |||||
ifeq ($(ARCH), win) | |||||
LDFLAGS += -shared -L../../ -lRack | LDFLAGS += -shared -L../../ -lRack | ||||
TARGET = plugin.dll | TARGET = plugin.dll | ||||
endif | endif | ||||
@@ -1,31 +1,15 @@ | |||||
#include "AudibleInstruments.hpp" | #include "AudibleInstruments.hpp" | ||||
void ValueLight::step() { | |||||
float v = getf(value); | |||||
if (v > 0) { | |||||
color = nvgHSL(0.36, 0.7, 0.7); | |||||
color.a = v; // May be larger than 1 | |||||
} | |||||
else if (v < 0) { | |||||
color = nvgHSL(0.0, 0.7, 0.7); | |||||
color.a = -v; | |||||
} | |||||
else { | |||||
color = nvgRGBAf(1.0, 1.0, 1.0, 0.0); | |||||
} | |||||
} | |||||
void ModeLight::step() { | |||||
int mode = (int) roundf(getf(value)); | |||||
switch (mode) { | |||||
case 0: color = nvgHSL(0.36, 0.7, 0.7); break; | |||||
case 1: color = nvgHSL(0.18, 0.7, 0.7); break; | |||||
case 2: color = nvgHSL(0.0, 0.7, 0.7); break; | |||||
default: color = nvgRGBAf(0.0, 0.0, 0.0, 0.0); break; | |||||
} | |||||
} | |||||
// void ModeLight::step() { | |||||
// int mode = (int) roundf(getf(value)); | |||||
// switch (mode) { | |||||
// case 0: color = nvgHSL(0.36, 0.7, 0.7); break; | |||||
// case 1: color = nvgHSL(0.18, 0.7, 0.7); break; | |||||
// case 2: color = nvgHSL(0.0, 0.7, 0.7); break; | |||||
// default: color = nvgRGBAf(0.0, 0.0, 0.0, 0.0); break; | |||||
// } | |||||
// } | |||||
struct AudibleInstrumentsPlugin : Plugin { | struct AudibleInstrumentsPlugin : Plugin { | ||||
@@ -165,49 +165,18 @@ struct SlideSwitch : Switch { | |||||
} | } | ||||
}; | }; | ||||
//////////////////// | |||||
// lights | |||||
//////////////////// | |||||
struct ValueLight : virtual Light { | |||||
float *value = NULL; | |||||
void step(); | |||||
}; | |||||
struct ModeLight : ValueLight { | |||||
void step(); | |||||
}; | |||||
struct SmallLight : virtual Light { | |||||
SmallLight() { | |||||
box.size = Vec(7, 7); | |||||
spriteOffset = Vec(-16, -16); | |||||
spriteSize = Vec(38, 38); | |||||
spriteImage = Image::load("plugins/AudibleInstruments/res/light_small.png"); | |||||
} | |||||
}; | |||||
struct MediumLight : virtual Light { | |||||
MediumLight() { | |||||
box.size = Vec(14, 14); | |||||
spriteOffset = Vec(-16, -15); | |||||
spriteSize = Vec(45, 45); | |||||
spriteImage = Image::load("plugins/AudibleInstruments/res/light_medium.png"); | |||||
struct TripleModeLight : ValueLight { | |||||
void step() { | |||||
float v = roundf(getf(value)); | |||||
if (v == 0.0) | |||||
color = SCHEME_CYAN; | |||||
else if (v == 1.0) | |||||
color = SCHEME_ORANGE; | |||||
else | |||||
color = SCHEME_RED; | |||||
} | } | ||||
}; | }; | ||||
struct SmallValueLight : SmallLight, ValueLight {}; | |||||
struct MediumValueLight : MediumLight, ValueLight {}; | |||||
struct SmallModeLight : SmallLight, ModeLight {}; | |||||
template <class TLight> | |||||
ValueLight *createValueLight(Vec pos, float *value) { | |||||
ValueLight *light = new TLight(); | |||||
light->box.pos = pos; | |||||
light->value = value; | |||||
return light; | |||||
} | |||||
//////////////////// | //////////////////// | ||||
// module widgets | // module widgets | ||||
//////////////////// | //////////////////// | ||||
@@ -84,7 +84,9 @@ void Blinds::step() { | |||||
} | } | ||||
BlindsWidget::BlindsWidget() : ModuleWidget(new Blinds()) { | |||||
BlindsWidget::BlindsWidget() { | |||||
Blinds *module = new Blinds(); | |||||
setModule(module); | |||||
box.size = Vec(15*12, 380); | box.size = Vec(15*12, 380); | ||||
{ | { | ||||
@@ -94,10 +96,10 @@ BlindsWidget::BlindsWidget() : ModuleWidget(new Blinds()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(150, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(150, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 365))); | |||||
addParam(createParam<SmallWhiteKnob>(Vec(8, 52), module, Blinds::GAIN1_PARAM, -1.0, 1.0, 0.0)); | addParam(createParam<SmallWhiteKnob>(Vec(8, 52), module, Blinds::GAIN1_PARAM, -1.0, 1.0, 0.0)); | ||||
addParam(createParam<SmallWhiteKnob>(Vec(8, 131), module, Blinds::GAIN2_PARAM, -1.0, 1.0, 0.0)); | addParam(createParam<SmallWhiteKnob>(Vec(8, 131), module, Blinds::GAIN2_PARAM, -1.0, 1.0, 0.0)); | ||||
@@ -124,14 +126,13 @@ BlindsWidget::BlindsWidget() : ModuleWidget(new Blinds()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(141, 195), module, Blinds::OUT3_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(141, 195), module, Blinds::OUT3_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(141, 274), module, Blinds::OUT4_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(141, 274), module, Blinds::OUT4_OUTPUT)); | ||||
Blinds *blinds = dynamic_cast<Blinds*>(module); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 86), &blinds->lights[0])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 165), &blinds->lights[1])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 244), &blinds->lights[2])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 323), &blinds->lights[3])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 87), &module->lights[0])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 166), &module->lights[1])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 245), &module->lights[2])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 324), &module->lights[3])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(78, 97), &blinds->gainLights[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(78, 176), &blinds->gainLights[1])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(78, 255), &blinds->gainLights[2])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(78, 334), &blinds->gainLights[3])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(77, 96), &module->gainLights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(77, 175), &module->gainLights[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(77, 254), &module->gainLights[2])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(77, 333), &module->gainLights[3])); | |||||
} | } |
@@ -173,14 +173,16 @@ struct BraidsDisplay : TransparentWidget { | |||||
NVGcolor color = nvgRGB(0xaf, 0xd2, 0x2c); | NVGcolor color = nvgRGB(0xaf, 0xd2, 0x2c); | ||||
nvgFillColor(vg, nvgTransRGBA(color, 16)); | nvgFillColor(vg, nvgTransRGBA(color, 16)); | ||||
nvgText(vg, box.pos.x, box.pos.y, "~~~~", NULL); | |||||
nvgText(vg, 0.0, 0.0, "~~~~", NULL); | |||||
nvgFillColor(vg, color); | nvgFillColor(vg, color); | ||||
nvgText(vg, box.pos.x, box.pos.y, algo_values[shape], NULL); | |||||
nvgText(vg, 0.0, 0.0, algo_values[shape], NULL); | |||||
} | } | ||||
}; | }; | ||||
BraidsWidget::BraidsWidget() : ModuleWidget(new Braids()) { | |||||
BraidsWidget::BraidsWidget() { | |||||
Braids *module = new Braids(); | |||||
setModule(module); | |||||
box.size = Vec(15*16, 380); | box.size = Vec(15*16, 380); | ||||
{ | { | ||||
@@ -197,10 +199,10 @@ BraidsWidget::BraidsWidget() : ModuleWidget(new Braids()) { | |||||
addChild(display); | addChild(display); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(210, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(210, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(210, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(210, 365))); | |||||
addParam(createParam<MediumWhiteKnob>(Vec(187-10, 71-11), module, Braids::SHAPE_PARAM, 0.0, braids::MACRO_OSC_SHAPE_LAST-2, 0.0)); | addParam(createParam<MediumWhiteKnob>(Vec(187-10, 71-11), module, Braids::SHAPE_PARAM, 0.0, braids::MACRO_OSC_SHAPE_LAST-2, 0.0)); | ||||
@@ -73,7 +73,9 @@ void Branches::step() { | |||||
} | } | ||||
BranchesWidget::BranchesWidget() : ModuleWidget(new Branches()) { | |||||
BranchesWidget::BranchesWidget() { | |||||
Branches *module = new Branches(); | |||||
setModule(module); | |||||
box.size = Vec(15*6, 380); | box.size = Vec(15*6, 380); | ||||
{ | { | ||||
@@ -83,8 +85,8 @@ BranchesWidget::BranchesWidget() : ModuleWidget(new Branches()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addParam(createParam<SmallRedKnob>(Vec(24, 64), module, Branches::THRESHOLD1_PARAM, 0.0, 1.0, 0.5)); | addParam(createParam<SmallRedKnob>(Vec(24, 64), module, Branches::THRESHOLD1_PARAM, 0.0, 1.0, 0.5)); | ||||
addParam(createParam<MediumToggleSwitch>(Vec(69, 58), module, Branches::MODE1_PARAM, 0.0, 1.0, 0.0)); | addParam(createParam<MediumToggleSwitch>(Vec(69, 58), module, Branches::MODE1_PARAM, 0.0, 1.0, 0.0)); | ||||
@@ -100,7 +102,6 @@ BranchesWidget::BranchesWidget() : ModuleWidget(new Branches()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(5, 313), module, Branches::OUT2A_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(5, 313), module, Branches::OUT2A_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(52, 313), module, Branches::OUT2B_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(52, 313), module, Branches::OUT2B_OUTPUT)); | ||||
Branches *branches = dynamic_cast<Branches*>(module); | |||||
addChild(createValueLight<SmallValueLight>(Vec(42, 170), &branches->light[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(42, 326), &branches->light[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(40, 169), &module->light[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(40, 325), &module->light[1])); | |||||
} | } |
@@ -156,7 +156,9 @@ void Clouds::step() { | |||||
} | } | ||||
CloudsWidget::CloudsWidget() : ModuleWidget(new Clouds()) { | |||||
CloudsWidget::CloudsWidget() { | |||||
Clouds *module = new Clouds(); | |||||
setModule(module); | |||||
box.size = Vec(15*18, 380); | box.size = Vec(15*18, 380); | ||||
{ | { | ||||
@@ -166,10 +168,10 @@ CloudsWidget::CloudsWidget() : ModuleWidget(new Clouds()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(240, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(240, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(240, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(240, 365))); | |||||
// TODO | // TODO | ||||
// addParam(createParam<MediumMomentarySwitch>(Vec(211, 51), module, Clouds::POSITION_PARAM, 0.0, 1.0, 0.5)); | // addParam(createParam<MediumMomentarySwitch>(Vec(211, 51), module, Clouds::POSITION_PARAM, 0.0, 1.0, 0.5)); | ||||
@@ -189,7 +189,9 @@ void Elements::step() { | |||||
} | } | ||||
ElementsWidget::ElementsWidget() : ModuleWidget(new Elements()) { | |||||
ElementsWidget::ElementsWidget() { | |||||
Elements *module = new Elements(); | |||||
setModule(module); | |||||
box.size = Vec(15*34, 380); | box.size = Vec(15*34, 380); | ||||
{ | { | ||||
@@ -199,10 +201,10 @@ ElementsWidget::ElementsWidget() : ModuleWidget(new Elements()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(480, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(480, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(480, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(480, 365))); | |||||
addParam(createParam<SmallWhiteKnob>(Vec(29, 43), module, Elements::CONTOUR_PARAM, 0.0, 1.0, 0.5)); | addParam(createParam<SmallWhiteKnob>(Vec(29, 43), module, Elements::CONTOUR_PARAM, 0.0, 1.0, 0.5)); | ||||
addParam(createParam<SmallWhiteKnob>(Vec(100, 43), module, Elements::BOW_PARAM, 0.0, 1.0, 0.5)); | addParam(createParam<SmallWhiteKnob>(Vec(100, 43), module, Elements::BOW_PARAM, 0.0, 1.0, 0.5)); | ||||
@@ -260,7 +262,6 @@ ElementsWidget::ElementsWidget() : ModuleWidget(new Elements()) { | |||||
addParam(createParam<LargeMomentarySwitch>(Vec(36, 116), module, Elements::PLAY_PARAM, 0.0, 2.0, 0.0)); | addParam(createParam<LargeMomentarySwitch>(Vec(36, 116), module, Elements::PLAY_PARAM, 0.0, 2.0, 0.0)); | ||||
Elements *elements = dynamic_cast<Elements*>(module); | |||||
addChild(createValueLight<MediumValueLight>(Vec(184, 168), &elements->lights[0])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(395, 168), &elements->lights[1])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(184, 165), &module->lights[0])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(395, 165), &module->lights[1])); | |||||
} | } |
@@ -85,7 +85,9 @@ void Kinks::step() { | |||||
} | } | ||||
KinksWidget::KinksWidget() : ModuleWidget(new Kinks()) { | |||||
KinksWidget::KinksWidget() { | |||||
Kinks *module = new Kinks(); | |||||
setModule(module); | |||||
box.size = Vec(15*4, 380); | box.size = Vec(15*4, 380); | ||||
{ | { | ||||
@@ -95,8 +97,8 @@ KinksWidget::KinksWidget() : ModuleWidget(new Kinks()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addInput(createInput<InputPortPJ3410>(Vec(0, 72), module, Kinks::SIGN_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(0, 72), module, Kinks::SIGN_INPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(29, 72), module, Kinks::INVERT_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(29, 72), module, Kinks::INVERT_OUTPUT)); | ||||
@@ -113,8 +115,7 @@ KinksWidget::KinksWidget() : ModuleWidget(new Kinks()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(0, 313), module, Kinks::NOISE_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(0, 313), module, Kinks::NOISE_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(29, 313), module, Kinks::SH_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(29, 313), module, Kinks::SH_OUTPUT)); | ||||
Kinks *kinks = dynamic_cast<Kinks*>(module); | |||||
addChild(createValueLight<SmallValueLight>(Vec(12, 61), &kinks->lights[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(12, 164), &kinks->lights[1])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(12, 264), &kinks->lights[2])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(11, 59), &module->lights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(11, 161), &module->lights[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(11, 262), &module->lights[2])); | |||||
} | } |
@@ -48,13 +48,15 @@ void Links::step() { | |||||
setf(outputs[B2_OUTPUT], in2); | setf(outputs[B2_OUTPUT], in2); | ||||
setf(outputs[C1_OUTPUT], in3); | setf(outputs[C1_OUTPUT], in3); | ||||
lights[0] = in1; | |||||
lights[1] = in2; | |||||
lights[2] = in3; | |||||
lights[0] = in1 / 5.0; | |||||
lights[1] = in2 / 5.0; | |||||
lights[2] = in3 / 5.0; | |||||
} | } | ||||
LinksWidget::LinksWidget() : ModuleWidget(new Links()) { | |||||
LinksWidget::LinksWidget() { | |||||
Links *module = new Links(); | |||||
setModule(module); | |||||
box.size = Vec(15*4, 380); | box.size = Vec(15*4, 380); | ||||
{ | { | ||||
@@ -64,8 +66,8 @@ LinksWidget::LinksWidget() : ModuleWidget(new Links()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addInput(createInput<InputPortPJ3410>(Vec(0, 72), module, Links::A1_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(0, 72), module, Links::A1_INPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(29, 72), module, Links::A1_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(29, 72), module, Links::A1_OUTPUT)); | ||||
@@ -82,8 +84,7 @@ LinksWidget::LinksWidget() : ModuleWidget(new Links()) { | |||||
addInput(createInput<InputPortPJ3410>(Vec(0, 313), module, Links::C3_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(0, 313), module, Links::C3_INPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(29, 313), module, Links::C1_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(29, 313), module, Links::C1_OUTPUT)); | ||||
Links *links = dynamic_cast<Links*>(module); | |||||
addChild(createValueLight<SmallValueLight>(Vec(26, 61), &links->lights[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(26, 164), &links->lights[1])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(26, 264), &links->lights[2])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(26, 59), &module->lights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(26, 161), &module->lights[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(26, 262), &module->lights[2])); | |||||
} | } |
@@ -196,7 +196,9 @@ void Rings::step() { | |||||
} | } | ||||
RingsWidget::RingsWidget() : ModuleWidget(new Rings()) { | |||||
RingsWidget::RingsWidget() { | |||||
Rings *module = new Rings(); | |||||
setModule(module); | |||||
box.size = Vec(15*14, 380); | box.size = Vec(15*14, 380); | ||||
{ | { | ||||
@@ -206,10 +208,10 @@ RingsWidget::RingsWidget() : ModuleWidget(new Rings()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(180, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(180, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(180, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(180, 365))); | |||||
addParam(createParam<MediumToggleSwitch>(Vec(14, 40), module, Rings::POLYPHONY_PARAM, 0.0, 2.0, 0.0)); | addParam(createParam<MediumToggleSwitch>(Vec(14, 40), module, Rings::POLYPHONY_PARAM, 0.0, 2.0, 0.0)); | ||||
addParam(createParam<MediumToggleSwitch>(Vec(179, 40), module, Rings::RESONATOR_PARAM, 0.0, 2.0, 0.0)); | addParam(createParam<MediumToggleSwitch>(Vec(179, 40), module, Rings::RESONATOR_PARAM, 0.0, 2.0, 0.0)); | ||||
@@ -239,7 +241,6 @@ RingsWidget::RingsWidget() : ModuleWidget(new Rings()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(128, 313), module, Rings::ODD_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(128, 313), module, Rings::ODD_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(166, 313), module, Rings::EVEN_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(166, 313), module, Rings::EVEN_OUTPUT)); | ||||
Rings *rings = dynamic_cast<Rings*>(module); | |||||
addChild(createValueLight<SmallModeLight>(Vec(39, 45), &rings->params[Rings::POLYPHONY_PARAM])); | |||||
addChild(createValueLight<SmallModeLight>(Vec(164, 45), &rings->params[Rings::RESONATOR_PARAM])); | |||||
addChild(createValueLight<SmallLight<TripleModeLight>>(Vec(38, 44), &module->params[Rings::POLYPHONY_PARAM])); | |||||
addChild(createValueLight<SmallLight<TripleModeLight>>(Vec(163, 44), &module->params[Rings::RESONATOR_PARAM])); | |||||
} | } |
@@ -75,7 +75,9 @@ void Shades::step() { | |||||
} | } | ||||
ShadesWidget::ShadesWidget() : ModuleWidget(new Shades()) { | |||||
ShadesWidget::ShadesWidget() { | |||||
Shades *module = new Shades(); | |||||
setModule(module); | |||||
box.size = Vec(15*6, 380); | box.size = Vec(15*6, 380); | ||||
{ | { | ||||
@@ -85,8 +87,8 @@ ShadesWidget::ShadesWidget() : ModuleWidget(new Shades()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addParam(createParam<SmallRedKnob>(Vec(40, 41), module, Shades::GAIN1_PARAM, 0.0, 1.0, 0.5)); | addParam(createParam<SmallRedKnob>(Vec(40, 41), module, Shades::GAIN1_PARAM, 0.0, 1.0, 0.5)); | ||||
addParam(createParam<SmallWhiteKnob>(Vec(40, 107), module, Shades::GAIN2_PARAM, 0.0, 1.0, 0.5)); | addParam(createParam<SmallWhiteKnob>(Vec(40, 107), module, Shades::GAIN2_PARAM, 0.0, 1.0, 0.5)); | ||||
@@ -104,8 +106,7 @@ ShadesWidget::ShadesWidget() : ModuleWidget(new Shades()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(52, 278), module, Shades::OUT2_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(52, 278), module, Shades::OUT2_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(52, 314), module, Shades::OUT3_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(52, 314), module, Shades::OUT3_OUTPUT)); | ||||
Shades *shades = dynamic_cast<Shades*>(module); | |||||
addChild(createValueLight<SmallValueLight>(Vec(42, 256), &shades->lights[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(42, 292), &shades->lights[1])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(42, 328), &shades->lights[2])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(41, 254), &module->lights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(41, 290), &module->lights[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(41, 326), &module->lights[2])); | |||||
} | } |
@@ -46,7 +46,9 @@ void Streams::step() { | |||||
} | } | ||||
StreamsWidget::StreamsWidget() : ModuleWidget(new Streams()) { | |||||
StreamsWidget::StreamsWidget() { | |||||
Streams *module = new Streams(); | |||||
setModule(module); | |||||
box.size = Vec(15*12, 380); | box.size = Vec(15*12, 380); | ||||
{ | { | ||||
@@ -56,10 +58,10 @@ StreamsWidget::StreamsWidget() : ModuleWidget(new Streams()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(150, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(150, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 365))); | |||||
// addParam(createParam<HugeGlowKnob>(Vec(30, 53), module, Streams::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | // addParam(createParam<HugeGlowKnob>(Vec(30, 53), module, Streams::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | ||||
@@ -137,11 +137,13 @@ void Tides::step() { | |||||
setf(outputs[UNI_OUTPUT], unif); | setf(outputs[UNI_OUTPUT], unif); | ||||
setf(outputs[BI_OUTPUT], bif); | setf(outputs[BI_OUTPUT], bif); | ||||
lights[1] = sample.flags & tides::FLAG_END_OF_ATTACK ? -unif : unif; | |||||
lights[1] = (sample.flags & tides::FLAG_END_OF_ATTACK ? -unif : unif) / 8.0; | |||||
} | } | ||||
TidesWidget::TidesWidget() : ModuleWidget(new Tides()) { | |||||
TidesWidget::TidesWidget() { | |||||
Tides *module = new Tides(); | |||||
setModule(module); | |||||
box.size = Vec(15*14, 380); | box.size = Vec(15*14, 380); | ||||
{ | { | ||||
@@ -151,10 +153,10 @@ TidesWidget::TidesWidget() : ModuleWidget(new Tides()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(180, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(180, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(180, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(180, 365))); | |||||
addParam(createParam<LargeToggleSwitch>(Vec(19, 52), module, Tides::MODE_PARAM, -1.0, 1.0, 0.0)); | addParam(createParam<LargeToggleSwitch>(Vec(19, 52), module, Tides::MODE_PARAM, -1.0, 1.0, 0.0)); | ||||
addParam(createParam<LargeToggleSwitch>(Vec(19, 93), module, Tides::RANGE_PARAM, -1.0, 1.0, 0.0)); | addParam(createParam<LargeToggleSwitch>(Vec(19, 93), module, Tides::RANGE_PARAM, -1.0, 1.0, 0.0)); | ||||
@@ -170,11 +172,11 @@ TidesWidget::TidesWidget() : ModuleWidget(new Tides()) { | |||||
addInput(createInput<InputPortPJ3410>(Vec(90, 216), module, Tides::SLOPE_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(90, 216), module, Tides::SLOPE_INPUT)); | ||||
addInput(createInput<InputPortPJ3410>(Vec(161, 216), module, Tides::SMOOTHNESS_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(161, 216), module, Tides::SMOOTHNESS_INPUT)); | ||||
addInput(createInput<InputPortPJ3410>(Vec(18, 270), module, Tides::TRIG_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(54, 270), module, Tides::FREEZE_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(90, 270), module, Tides::PITCH_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(125, 270), module, Tides::FM_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(161, 270), module, Tides::LEVEL_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(18, 271), module, Tides::TRIG_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(54, 271), module, Tides::FREEZE_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(90, 271), module, Tides::PITCH_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(125, 271), module, Tides::FM_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(161, 271), module, Tides::LEVEL_INPUT)); | |||||
addInput(createInput<InputPortPJ3410>(Vec(18, 313), module, Tides::CLOCK_INPUT)); | addInput(createInput<InputPortPJ3410>(Vec(18, 313), module, Tides::CLOCK_INPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(54, 313), module, Tides::HIGH_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(54, 313), module, Tides::HIGH_OUTPUT)); | ||||
@@ -182,8 +184,7 @@ TidesWidget::TidesWidget() : ModuleWidget(new Tides()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(125, 313), module, Tides::UNI_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(125, 313), module, Tides::UNI_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(161, 313), module, Tides::BI_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(161, 313), module, Tides::BI_OUTPUT)); | ||||
Tides *tides = dynamic_cast<Tides*>(module); | |||||
addChild(createValueLight<SmallValueLight>(Vec(58, 63), &tides->lights[0])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(58, 84), &tides->lights[1])); | |||||
addChild(createValueLight<SmallValueLight>(Vec(58, 105), &tides->lights[2])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(57, 62), &module->lights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(57, 83), &module->lights[1])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(57, 103), &module->lights[2])); | |||||
} | } |
@@ -93,7 +93,9 @@ void Veils::step() { | |||||
} | } | ||||
VeilsWidget::VeilsWidget() : ModuleWidget(new Veils()) { | |||||
VeilsWidget::VeilsWidget() { | |||||
Veils *module = new Veils(); | |||||
setModule(module); | |||||
box.size = Vec(15*12, 380); | box.size = Vec(15*12, 380); | ||||
{ | { | ||||
@@ -103,10 +105,10 @@ VeilsWidget::VeilsWidget() : ModuleWidget(new Veils()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(150, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(150, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(150, 365))); | |||||
addParam(createParam<SmallWhiteKnob>(Vec(8, 52), module, Veils::GAIN1_PARAM, 0.0, 1.0, 0.0)); | addParam(createParam<SmallWhiteKnob>(Vec(8, 52), module, Veils::GAIN1_PARAM, 0.0, 1.0, 0.0)); | ||||
addParam(createParam<SmallWhiteKnob>(Vec(8, 131), module, Veils::GAIN2_PARAM, 0.0, 1.0, 0.0)); | addParam(createParam<SmallWhiteKnob>(Vec(8, 131), module, Veils::GAIN2_PARAM, 0.0, 1.0, 0.0)); | ||||
@@ -133,9 +135,8 @@ VeilsWidget::VeilsWidget() : ModuleWidget(new Veils()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(141, 195), module, Veils::OUT3_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(141, 195), module, Veils::OUT3_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(141, 274), module, Veils::OUT4_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(141, 274), module, Veils::OUT4_OUTPUT)); | ||||
Veils *veils = dynamic_cast<Veils*>(module); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 86), &veils->lights[0])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 165), &veils->lights[1])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 244), &veils->lights[2])); | |||||
addChild(createValueLight<MediumValueLight>(Vec(149, 323), &veils->lights[3])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 87), &module->lights[0])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 166), &module->lights[1])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 245), &module->lights[2])); | |||||
addChild(createValueLight<MediumLight<GreenRedPolarityLight>>(Vec(150, 324), &module->lights[3])); | |||||
} | } |
@@ -76,7 +76,9 @@ void Warps::step() { | |||||
} | } | ||||
WarpsWidget::WarpsWidget() : ModuleWidget(new Warps()) { | |||||
WarpsWidget::WarpsWidget() { | |||||
Warps *module = new Warps(); | |||||
setModule(module); | |||||
box.size = Vec(15*10, 380); | box.size = Vec(15*10, 380); | ||||
{ | { | ||||
@@ -86,10 +88,10 @@ WarpsWidget::WarpsWidget() : ModuleWidget(new Warps()) { | |||||
addChild(panel); | addChild(panel); | ||||
} | } | ||||
addChild(createScrew(Vec(15, 0))); | |||||
addChild(createScrew(Vec(120, 0))); | |||||
addChild(createScrew(Vec(15, 365))); | |||||
addChild(createScrew(Vec(120, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(120, 0))); | |||||
addChild(createScrew<SilverScrew>(Vec(15, 365))); | |||||
addChild(createScrew<SilverScrew>(Vec(120, 365))); | |||||
addParam(createParam<HugeGlowKnob>(Vec(30, 53), module, Warps::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | addParam(createParam<HugeGlowKnob>(Vec(30, 53), module, Warps::ALGORITHM_PARAM, 0.0, 8.0, 0.0)); | ||||
@@ -108,6 +110,5 @@ WarpsWidget::WarpsWidget() : ModuleWidget(new Warps()) { | |||||
addOutput(createOutput<OutputPortPJ3410>(Vec(77, 313), module, Warps::MODULATOR_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(77, 313), module, Warps::MODULATOR_OUTPUT)); | ||||
addOutput(createOutput<OutputPortPJ3410>(Vec(113, 313), module, Warps::AUX_OUTPUT)); | addOutput(createOutput<OutputPortPJ3410>(Vec(113, 313), module, Warps::AUX_OUTPUT)); | ||||
Warps *warps = dynamic_cast<Warps*>(module); | |||||
addChild(createValueLight<SmallModeLight>(Vec(21, 168), &warps->lights[0])); | |||||
addChild(createValueLight<SmallLight<GreenRedPolarityLight>>(Vec(20, 167), &module->lights[0])); | |||||
} | } |