From fdbe4ca645b686e73378abf5c559cd8680406cc7 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 6 Dec 2022 20:18:40 +0100 Subject: [PATCH 01/55] Midi-Mon - extracted LogDisplay.hpp --- src/MidiMon.cpp | 55 +++++------------------------------ src/components/LogDisplay.hpp | 43 +++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 47 deletions(-) create mode 100644 src/components/LogDisplay.hpp diff --git a/src/MidiMon.cpp b/src/MidiMon.cpp index 975361e..6ea64b1 100644 --- a/src/MidiMon.cpp +++ b/src/MidiMon.cpp @@ -1,6 +1,7 @@ #include "plugin.hpp" #include "components/LedTextDisplay.hpp" #include "components/MidiWidget.hpp" +#include "components/LogDisplay.hpp" #include #include @@ -249,47 +250,8 @@ struct MidiMonModule : Module { }; -struct MidiDisplay : LedTextDisplay { - MidiMonModule* module; - std::list>* buffer; - bool dirty = true; - - MidiDisplay() { - color = nvgRGB(0xf0, 0xf0, 0xf0); - bgColor.a = 0.f; - fontSize = 9.2f; - textOffset.y += 2.f; - } - - void step() override { - LedTextDisplay::step(); - if (dirty) { - text = ""; - size_t size = std::min(buffer->size(), (size_t)(box.size.x / fontSize - 1)); - size_t i = 0; - for (std::tuple s : *buffer) { - if (i >= size) break; - float timestamp = std::get<0>(s); - if (timestamp >= 0.f) { - text += string::f("[%9.4f] %s\n", timestamp, std::get<1>(s).c_str()); - } - else { - text += string::f("%s\n", std::get<1>(s).c_str()); - } - i++; - } - } - } - - void reset() { - buffer->clear(); - dirty = true; - } -}; - - struct MidiMonWidget : ThemedModuleWidget { - MidiDisplay* textField; + LogDisplay* logDisplay; std::list> buffer; MidiMonWidget(MidiMonModule* module) @@ -310,11 +272,10 @@ struct MidiMonWidget : ThemedModuleWidget { textDisplay->box.size = Vec(219.9f, 234.1f); addChild(textDisplay); - textField = createWidget(Vec()); - textField->module = module; - textField->buffer = &buffer; - textField->box.size = textDisplay->box.size.minus(Vec(0.f, 4.f)); - textDisplay->addChild(textField); + logDisplay = createWidget(Vec()); + logDisplay->buffer = &buffer; + logDisplay->box.size = textDisplay->box.size.minus(Vec(0.f, 4.f)); + textDisplay->addChild(logDisplay); } void step() override { @@ -325,7 +286,7 @@ struct MidiMonWidget : ThemedModuleWidget { if (buffer.size() == BUFFERSIZE) buffer.pop_back(); std::tuple s = module->midiLogMessages.shift(); buffer.push_front(s); - textField->dirty = true; + logDisplay->dirty = true; } } @@ -356,7 +317,7 @@ struct MidiMonWidget : ThemedModuleWidget { void resetLog() { buffer.clear(); module->resetTimestamp(); - textField->reset(); + logDisplay->reset(); } void exportLog(std::string filename) { diff --git a/src/components/LogDisplay.hpp b/src/components/LogDisplay.hpp new file mode 100644 index 0000000..49e2422 --- /dev/null +++ b/src/components/LogDisplay.hpp @@ -0,0 +1,43 @@ +#pragma once +#include "../plugin.hpp" + +namespace StoermelderPackOne { + +struct LogDisplay : LedTextDisplay { + std::list>* buffer; + bool dirty = true; + + LogDisplay() { + color = nvgRGB(0xf0, 0xf0, 0xf0); + bgColor.a = 0.f; + fontSize = 9.2f; + textOffset.y += 2.f; + } + + void step() override { + LedTextDisplay::step(); + if (dirty) { + text = ""; + size_t size = std::min(buffer->size(), (size_t)(box.size.x / fontSize - 1)); + size_t i = 0; + for (std::tuple s : *buffer) { + if (i >= size) break; + float timestamp = std::get<0>(s); + if (timestamp >= 0.f) { + text += string::f("[%9.4f] %s\n", timestamp, std::get<1>(s).c_str()); + } + else { + text += string::f("%s\n", std::get<1>(s).c_str()); + } + i++; + } + } + } + + void reset() { + buffer->clear(); + dirty = true; + } +}; + +} \ No newline at end of file From 404eb30b12107a0249d3ca13bef48515d5e1e195 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 9 Dec 2022 22:04:29 +0100 Subject: [PATCH 02/55] Midi-Cat - added lebels on panel --- docs/MidiCat.md | 2 +- res-src/MidiCat.afdesign | Bin 17473 -> 19647 bytes res-src/dark/MidiCat.afdesign | Bin 18680 -> 20832 bytes res/MidiCat.svg | 99 +++++++++++++++++++++++----------- res/dark/MidiCat.svg | 81 ++++++++++++++++++++-------- 5 files changed, 128 insertions(+), 54 deletions(-) diff --git a/docs/MidiCat.md b/docs/MidiCat.md index 2c78a87..7658519 100644 --- a/docs/MidiCat.md +++ b/docs/MidiCat.md @@ -191,7 +191,7 @@ Additionally MIDI-CAT CTX provides a button for activating mapping on the first CLK is a companion module for MIDI-CAT which provides four additional clock-inputs. These clock-inputs can be used to time-quantize the incoming MIDI messages to running clocks or triggers or gates: When enabled the incoming MIDI message is buffered and applied to the parameter on the next trigger. CLK for MIDI-CAT must be placed on the right side of MIDI-CAT and can be used together with the other expanders. -![CTX workflow](./MidiCat-Clk.png) +![CLK workflow](./MidiCat-Clk.png) There are two modes with different behavior for MIDI-feedback: diff --git a/res-src/MidiCat.afdesign b/res-src/MidiCat.afdesign index a6485ca5ca9325391af76407f8b8d27c3f8f020c..29a201226f2f1c987d2ac807adbf44a26afdb90f 100644 GIT binary patch literal 19647 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
7pI_#3-?0iC;sD!CbetiI;s#t3 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%0D60M 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 A761SM literal 18680 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 diff --git a/res/MidiCat.svg b/res/MidiCat.svg index b6a91bd..525025e 100644 --- a/res/MidiCat.svg +++ b/res/MidiCat.svg @@ -5,10 +5,19 @@ + + + + + + + + + - + @@ -17,13 +26,13 @@ - + - + @@ -40,19 +49,10 @@ - + - - - - - - - - - @@ -61,7 +61,7 @@ - + @@ -73,10 +73,10 @@ - + - + @@ -84,13 +84,13 @@ - + - + - + @@ -105,10 +105,10 @@ - + - + @@ -120,43 +120,80 @@ - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/res/dark/MidiCat.svg b/res/dark/MidiCat.svg index b7de4b3..db7ad7b 100644 --- a/res/dark/MidiCat.svg +++ b/res/dark/MidiCat.svg @@ -17,7 +17,7 @@ - + @@ -26,13 +26,13 @@ - + - + @@ -49,7 +49,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -73,10 +73,10 @@ - + - + @@ -84,13 +84,13 @@ - + - + - + @@ -105,10 +105,10 @@ - + - + @@ -120,43 +120,80 @@ - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 05d421c7592ffb18a53adfd8ef371fc7575a115e Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 10 Dec 2022 14:10:30 +0100 Subject: [PATCH 03/55] Prisma - revisited panel --- res-src/Prisma.afdesign | Bin 42009 -> 45948 bytes res-src/dark/Prisma.afdesign | Bin 39141 -> 42691 bytes res/Prisma.svg | 223 +++++++++++++++++++---------- res/dark/Prisma.svg | 269 ++++++++++++++++++++++------------- src/Prisma.cpp | 54 +++---- 5 files changed, 346 insertions(+), 200 deletions(-) diff --git a/res-src/Prisma.afdesign b/res-src/Prisma.afdesign index 53095ef0013e75dfa8c3b5fbee8f577ea6f8f718..d9f53ca37efc63b6af6aa910e199768b93d3a727 100644 GIT binary patch literal 45948 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 literal 42009 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%0De)6Ol^Re!e!%`c9$WpZ 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

FG!N}G>QBECJ?D8$e^PizFh(*U$PM| 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 uay$a9iDV}IjPrVY9 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 S{Q?nVhy%9H*m7(Cq<;XLLDGT% diff --git a/res/Prisma.svg b/res/Prisma.svg index dd19349..861914e 100644 --- a/res/Prisma.svg +++ b/res/Prisma.svg @@ -1,17 +1,17 @@ - - - + + + - + - + - + @@ -53,19 +53,21 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -131,10 +133,10 @@ - + - + @@ -145,7 +147,7 @@ - + @@ -159,27 +161,22 @@ - - + + - - - - - - - - - - - - - - - - + + + + + + + + + + + - + @@ -187,43 +184,113 @@ - - + + + + - - + + + + - - + + + + - - + + + + - - + + - - + + - - + + + + + + + - - + + + + + + + + + + + + + + + + + - - + + + + + + + - - + + - - + + - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -231,7 +298,7 @@ - + @@ -242,14 +309,14 @@ - + - + - + @@ -257,7 +324,13 @@ - + + + + + + + @@ -265,7 +338,7 @@ - + @@ -276,14 +349,14 @@ - + - + - + diff --git a/res/dark/Prisma.svg b/res/dark/Prisma.svg index cda3676..86d15be 100644 --- a/res/dark/Prisma.svg +++ b/res/dark/Prisma.svg @@ -1,71 +1,73 @@ - - - + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -131,10 +133,10 @@ - + - + @@ -145,7 +147,7 @@ - + @@ -159,27 +161,22 @@ - - + + - - - - - - - - - - - - - - - - + + + + + + + + - + + + + @@ -187,108 +184,184 @@ - - + + + + - - + + + + - - + + + + - - + + + + - - + + - - + + - - + + + + + + + - - + + + + + + + + + + + + + + + + + - - + + + + + + + - - + + - - + + - - + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + + + + + + + - + - + - + - + - + - + - + - + - + - + diff --git a/src/Prisma.cpp b/src/Prisma.cpp index c743275..79fddcf 100644 --- a/src/Prisma.cpp +++ b/src/Prisma.cpp @@ -170,34 +170,34 @@ struct PrismaWidget : ThemedModuleWidget> { 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))); - addInput(createInputCentered(Vec(20.1f, 72.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 0)); - addParam(createParamCentered(Vec(27.0f, 49.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 0)); - addParam(createParamCentered(Vec(52.5f, 67.9f), module, PrismaModule<4>::PARAM_SHIFT + 0)); - addParam(createParamCentered(Vec(78.0f, 49.3f), module, PrismaModule<4>::PARAM_LEVEL + 0)); - addInput(createInputCentered(Vec(84.9f, 72.8f), module, PrismaModule<4>::INPUT_LEVEL + 0)); - - addInput(createInputCentered(Vec(20.1f, 106.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 1)); - addParam(createParamCentered(Vec(27.0f, 130.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 1)); - addParam(createParamCentered(Vec(52.5f, 111.7f), module, PrismaModule<4>::PARAM_SHIFT + 1)); - addParam(createParamCentered(Vec(78.0f, 130.3f), module, PrismaModule<4>::PARAM_LEVEL + 1)); - addInput(createInputCentered(Vec(84.9f, 106.8f), module, PrismaModule<4>::INPUT_LEVEL + 1)); - - addInput(createInputCentered(Vec(20.1f, 272.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 2)); - addParam(createParamCentered(Vec(27.0f, 249.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 2)); - addParam(createParamCentered(Vec(52.5f, 267.9f), module, PrismaModule<4>::PARAM_SHIFT + 2)); - addParam(createParamCentered(Vec(78.0f, 249.3f), module, PrismaModule<4>::PARAM_LEVEL + 2)); - addInput(createInputCentered(Vec(84.9f, 272.8f), module, PrismaModule<4>::INPUT_LEVEL + 2)); - - addInput(createInputCentered(Vec(20.1f, 306.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 3)); - addParam(createParamCentered(Vec(27.0f, 330.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 3)); - addParam(createParamCentered(Vec(52.5f, 311.7f), module, PrismaModule<4>::PARAM_SHIFT + 3)); - addParam(createParamCentered(Vec(78.0f, 330.3f), module, PrismaModule<4>::PARAM_LEVEL + 3)); - addInput(createInputCentered(Vec(84.9f, 306.8f), module, PrismaModule<4>::INPUT_LEVEL + 3)); + addInput(createInputCentered(Vec(22.5f, 72.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 0)); + addParam(createParamCentered(Vec(33.6f, 47.9f), module, PrismaModule<4>::PARAM_SHIFT_CV + 0)); + addParam(createParamCentered(Vec(67.5f, 65.9f), module, PrismaModule<4>::PARAM_SHIFT + 0)); + addParam(createParamCentered(Vec(101.4f, 47.9f), module, PrismaModule<4>::PARAM_LEVEL + 0)); + addInput(createInputCentered(Vec(112.5f, 72.8f), module, PrismaModule<4>::INPUT_LEVEL + 0)); + + addInput(createInputCentered(Vec(22.5f, 129.f), module, PrismaModule<4>::INPUT_SHIFT_CV + 1)); + addParam(createParamCentered(Vec(33.6f, 104.1f), module, PrismaModule<4>::PARAM_SHIFT_CV + 1)); + addParam(createParamCentered(Vec(67.5f, 122.1f), module, PrismaModule<4>::PARAM_SHIFT + 1)); + addParam(createParamCentered(Vec(101.4f, 104.1f), module, PrismaModule<4>::PARAM_LEVEL + 1)); + addInput(createInputCentered(Vec(112.5f, 129.f), module, PrismaModule<4>::INPUT_LEVEL + 1)); + + addInput(createInputCentered(Vec(22.5f, 185.2f), module, PrismaModule<4>::INPUT_SHIFT_CV + 2)); + addParam(createParamCentered(Vec(33.6f, 160.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 2)); + addParam(createParamCentered(Vec(67.5f, 178.3f), module, PrismaModule<4>::PARAM_SHIFT + 2)); + addParam(createParamCentered(Vec(101.4f, 160.3f), module, PrismaModule<4>::PARAM_LEVEL + 2)); + addInput(createInputCentered(Vec(112.5f, 185.2f), module, PrismaModule<4>::INPUT_LEVEL + 2)); + + addInput(createInputCentered(Vec(22.5f, 241.4f), module, PrismaModule<4>::INPUT_SHIFT_CV + 3)); + addParam(createParamCentered(Vec(33.6f, 216.5f), module, PrismaModule<4>::PARAM_SHIFT_CV + 3)); + addParam(createParamCentered(Vec(67.5f, 234.5f), module, PrismaModule<4>::PARAM_SHIFT + 3)); + addParam(createParamCentered(Vec(101.4f, 216.5f), module, PrismaModule<4>::PARAM_LEVEL + 3)); + addInput(createInputCentered(Vec(112.5f, 241.4f), module, PrismaModule<4>::INPUT_LEVEL + 3)); - addInput(createInputCentered(Vec(37.3f, 172.6f), module, PrismaModule<4>::INPUT)); - addParam(createParamCentered(Vec(67.7f, 172.6f), module, PrismaModule<4>::PARAM_INPUT)); - addOutput(createOutputCentered(Vec(37.3f, 216.6f), module, PrismaModule<4>::OUTPUT_POLY)); - addOutput(createOutputCentered(Vec(67.7f, 216.6f), module, PrismaModule<4>::OUTPUT)); + addInput(createInputCentered(Vec(52.3f, 285.f), module, PrismaModule<4>::INPUT)); + addParam(createParamCentered(Vec(82.7f, 285.f), module, PrismaModule<4>::PARAM_INPUT)); + addOutput(createOutputCentered(Vec(52.3f, 327.9f), module, PrismaModule<4>::OUTPUT_POLY)); + addOutput(createOutputCentered(Vec(82.7f, 327.9f), module, PrismaModule<4>::OUTPUT)); } }; From 785e6b243475217cfcaf37614b6830b895603dac Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 10 Dec 2022 14:10:54 +0100 Subject: [PATCH 04/55] fixed font size in LedTextPanel --- src/components/LedTextDisplay.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/LedTextDisplay.hpp b/src/components/LedTextDisplay.hpp index 138c025..62c3c4b 100644 --- a/src/components/LedTextDisplay.hpp +++ b/src/components/LedTextDisplay.hpp @@ -57,7 +57,7 @@ struct LedTextDisplay : OpaqueWidget { nvgFillColor(args.vg, color); nvgFontFaceId(args.vg, font->handle); nvgTextLetterSpacing(args.vg, 0.0); - nvgFontSize(args.vg, 12); + nvgFontSize(args.vg, fontSize); nvgTextBox(args.vg, textOffset.x, textOffset.y + fontSize, box.size.x - 2 * textOffset.x, text.c_str(), NULL); } nvgResetScissor(args.vg); From 507cdc27644cb414df938ddc3d566939f8a72938 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 10 Dec 2022 14:16:14 +0100 Subject: [PATCH 05/55] minor code formating --- src/Hive.cpp | 2 +- src/IntermixBase.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Hive.cpp b/src/Hive.cpp index 64731d2..fbbc1f5 100644 --- a/src/Hive.cpp +++ b/src/Hive.cpp @@ -211,7 +211,7 @@ struct HiveModule : Module { grid.cursor[i].pos.r = grid.cursor[i].startPos.r = (grid.usedRadius + 1) / NUM_PORTS * i; /// Divide across SW edge grid.cursor[i].dir = grid.cursor[i].startDir = DIRECTION::NE; grid.cursor[i].turnMode = TURNMODE::SIXTY; /// Start with small turns - grid.cursor[i].ninetyState = TURNMODE::SIXTY; /// Turnmode 90 starts with a small turn first + grid.cursor[i].ninetyState = TURNMODE::SIXTY; /// Turnmode 90 starts with a small turn first grid.cursor[i].outMode = OUTMODE::UNI_3V; resetTimer[i].reset(); grid.cursor[i].ratchetingEnabled = RATCHETMODE::DEFAULT; diff --git a/src/IntermixBase.hpp b/src/IntermixBase.hpp index 33d9f19..88bd1e0 100644 --- a/src/IntermixBase.hpp +++ b/src/IntermixBase.hpp @@ -6,7 +6,7 @@ namespace Intermix { template struct IntermixBase { - typedef float (*IntermixMatrix)[PORTS]; + typedef float (*IntermixMatrix)[PORTS]; virtual IntermixMatrix expGetCurrentMatrix() { return NULL; } virtual int expGetChannelCount() { return 0; } virtual void expSetFade(int i, float* fadeIn, float* fadeOut) { } From 81c282782d1e17aabb1d6e5aca403a3da04462b8 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 24 Dec 2022 11:07:03 +0100 Subject: [PATCH 06/55] Mb - fixed crash on exiting Rack after adding Mb #352 --- CHANGELOG.md | 9 ++++++++- src/Mb.cpp | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a84c9b..5e6671a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,14 @@ - Module [PRISMA](./docs/Prisma.md) - A wave multiplier/phase shifter inspired by A-137-2 -## 2.0.beta3 (in development) +## 2.0.0 (in development) + +### Fixes and Changes + +- Module [MB](./docs/Mb.md) + - Fixed crash on exiting Rack's after adding MB (#352) + +## 2.0.beta3 ### New modules diff --git a/src/Mb.cpp b/src/Mb.cpp index 6936a27..416154e 100644 --- a/src/Mb.cpp +++ b/src/Mb.cpp @@ -151,6 +151,27 @@ BrowserOverlay::BrowserOverlay() { mbWidgetBackup->hide(); APP->scene->removeChild(mbWidgetBackup); + // Clear all frambuffers of the default module browser - if Rack is shut down after inserting MB + // the default module browser is deleted after the window and the GL context is destroyed + // which causes Rack crashing on the Framebuffer destruction. + std::list l; + l.push_back(mbWidgetBackup); + while (!l.empty()) { + Widget* w = l.front(); + l.pop_front(); + FramebufferWidget* fb = dynamic_cast(w); + if (fb) { + fb->setDirty(); + fb->deleteFramebuffer(); + } + else { + for (Widget* _w : w->children) { + l.push_back(_w); + } + } + } + + mbV06 = new v06::ModuleBrowser; addChild(mbV06); From da923d9c60680686cbe8579c9aedde81f70ef6be Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 24 Dec 2022 11:15:26 +0100 Subject: [PATCH 07/55] Mb - missing commit changes --- src/Mb.cpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Mb.cpp b/src/Mb.cpp index 416154e..d1c20dc 100644 --- a/src/Mb.cpp +++ b/src/Mb.cpp @@ -151,9 +151,9 @@ BrowserOverlay::BrowserOverlay() { mbWidgetBackup->hide(); APP->scene->removeChild(mbWidgetBackup); - // Clear all frambuffers of the default module browser - if Rack is shut down after inserting MB - // the default module browser is deleted after the window and the GL context is destroyed - // which causes Rack crashing on the Framebuffer destruction. + // Clear all framebuffers of the default module browser - if Rack is shut down after adding MB + // the default module browser is deleted after the window and the GL context has been destroyed + // This causes Rack crashing on the Framebuffer's destruction. std::list l; l.push_back(mbWidgetBackup); while (!l.empty()) { @@ -164,10 +164,8 @@ BrowserOverlay::BrowserOverlay() { fb->setDirty(); fb->deleteFramebuffer(); } - else { - for (Widget* _w : w->children) { - l.push_back(_w); - } + for (Widget* _w : w->children) { + l.push_back(_w); } } From dafd06cf5875ae5f152990fbed29f4c83d5063ff Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 24 Dec 2022 22:00:28 +0100 Subject: [PATCH 08/55] 8Face - added long-press option #354 --- CHANGELOG.md | 2 ++ src/EightFace.cpp | 89 +++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 84 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e6671a..8213a33 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,8 @@ ### Fixes and Changes +- Modules [8FACE, 8FACEx2](./docs/EightFace.md) + - Allow disabling of "long press" for changing the number of active slots (#354) - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) diff --git a/src/EightFace.cpp b/src/EightFace.cpp index 933a094..6c49aeb 100644 --- a/src/EightFace.cpp +++ b/src/EightFace.cpp @@ -34,7 +34,7 @@ enum class CTRLMODE { WRITE }; -template < int NUM_PRESETS > +template struct EightFaceModule : Module { enum ParamIds { CTRLMODE_PARAM, @@ -80,10 +80,14 @@ struct EightFaceModule : Module { /** [Stored to JSON] */ json_t* presetSlot[NUM_PRESETS]; + const int presetMax = NUM_PRESETS; /** [Stored to JSON] */ int preset = 0; /** [Stored to JSON] */ int presetCount = NUM_PRESETS; + /** [Stored to JSON] */ + bool presetCountLongPress = true; + /** [Stored to JSON] */ AUTOLOAD autoload = AUTOLOAD::OFF; @@ -326,9 +330,11 @@ struct EightFaceModule : Module { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetLoad(t, i, slotCvMode == SLOTCVMODE::ARM, true); break; + presetLoad(t, i, slotCvMode == SLOTCVMODE::ARM, true); + break; case LongPressButton::LONG_PRESS: - presetSetCount(i + 1); break; + if (presetCountLongPress) presetSetCount(i + 1); + break; } } } @@ -343,9 +349,11 @@ struct EightFaceModule : Module { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetSave(t, i); break; + presetSave(t, i); + break; case LongPressButton::LONG_PRESS: - presetClear(i); break; + presetClear(i); + break; } } } @@ -497,6 +505,7 @@ struct EightFaceModule : Module { json_object_set_new(rootJ, "slotCvMode", json_integer((int)slotCvMode)); json_object_set_new(rootJ, "preset", json_integer(preset)); json_object_set_new(rootJ, "presetCount", json_integer(presetCount)); + json_object_set_new(rootJ, "presetCountLongPress", json_boolean(presetCountLongPress)); json_t* presetsJ = json_array(); for (int i = 0; i < NUM_PRESETS; i++) { @@ -531,6 +540,8 @@ struct EightFaceModule : Module { slotCvMode = (SLOTCVMODE)json_integer_value(json_object_get(rootJ, "slotCvMode")); preset = json_integer_value(json_object_get(rootJ, "preset")); presetCount = json_integer_value(json_object_get(rootJ, "presetCount")); + json_t* presetCountLongPressJ = json_object_get(rootJ, "presetCountLongPress"); + if (presetCountLongPressJ) presetCountLongPress = json_boolean_value(presetCountLongPressJ); for (int i = 0; i < NUM_PRESETS; i++) { if (presetSlotUsed[i]) { @@ -588,8 +599,65 @@ struct WhiteRedLight : GrayModuleLightWidget { }; -template < typename MODULE > +template struct EightFaceWidgetTemplate : ModuleWidget { + struct NumberOfSlotsSlider : ui::Slider { + struct NumberOfSlotsQuantity : Quantity { + MODULE* module; + float v = -1.f; + + NumberOfSlotsQuantity(MODULE* module) { + this->module = module; + } + void setValue(float value) override { + v = clamp(value, 1.f, float(module->presetMax)); + module->presetSetCount(int(v)); + } + float getValue() override { + if (v < 0.f) v = module->presetCount; + return v; + } + float getDefaultValue() override { + return 8.f; + } + float getMinValue() override { + return 1.f; + } + float getMaxValue() override { + return float(module->presetMax); + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + int i = int(getValue()); + return string::f("%i", i); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Slots"; + } + std::string getUnit() override { + return ""; + } + }; + + NumberOfSlotsSlider(MODULE* module) { + box.size.x = 160.0; + quantity = new NumberOfSlotsQuantity(module); + } + ~NumberOfSlotsSlider() { + delete quantity; + } + void onDragMove(const event::DragMove& e) override { + if (quantity) { + quantity->moveScaledValue(0.002f * e.mouseDelta.x); + } + } + }; + void appendContextMenu(Menu* menu) override { MODULE* module = dynamic_cast(this->module); assert(module); @@ -601,8 +669,15 @@ struct EightFaceWidgetTemplate : ModuleWidget { } menu->addChild(new MenuSeparator()); + menu->addChild(createSubmenuItem("Number of slots", "", + [=](Menu* menu) { + menu->addChild(new NumberOfSlotsSlider(module)); + menu->addChild(createBoolPtrMenuItem("Set by long press", "", &module->presetCountLongPress)); + } + )); + menu->addChild(createSubmenuItem("Port SLOT mode", "", - [=](Menu* menu) { + [=](Menu* menu) { struct SlotCvModeItem : MenuItem { MODULE* module; SLOTCVMODE slotCvMode; From 8aae65126ebaf9d09869165cf8fb3eac87fda1ab Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 24 Dec 2022 22:40:12 +0100 Subject: [PATCH 09/55] 8Face mk2 - added long-press option #354 --- CHANGELOG.md | 2 ++ docs/EightFace.md | 3 +- docs/EightFaceMk2.md | 3 +- src/EightFaceMk2.cpp | 80 +++++++++++++++++++++++++++++++++++++++++--- 4 files changed, 82 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8213a33..c0161c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,8 @@ - Modules [8FACE, 8FACEx2](./docs/EightFace.md) - Allow disabling of "long press" for changing the number of active slots (#354) +- Module [8FACE mk2](./docs/EightFaceMk2.md) + - Allow disabling of "long press" for changing the number of active slots (#354) - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) diff --git a/docs/EightFace.md b/docs/EightFace.md index cb30d77..71b63e0 100644 --- a/docs/EightFace.md +++ b/docs/EightFace.md @@ -95,4 +95,5 @@ With the option "Autoload first preset" on the context menu you can autoload the - Added retrigger-function for CV-input channel 2 in C4 mode (#330) - Fixed unconnected modules after patch reload (#338) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" \ No newline at end of file + - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" + - Allow disabling of "long press" for changing the number of active slots (#354) \ No newline at end of file diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 01cf4a5..519e2c8 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -120,4 +120,5 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Added retrigger-function for CV-input channel 2 in C4 mode (#330) - Added "Bind module (select multiple)" option (#291) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" \ No newline at end of file + - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" + - Allow disabling of "long press" for changing the number of active slots (#354) \ No newline at end of file diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index e3c1a8e..652d221 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -72,6 +72,8 @@ struct EightFaceMk2Module : EightFaceMk2Base { int preset; /** [Stored to JSON] Number of currently active snapshots */ int presetCount; + /** [Stored to JSON] */ + bool presetCountLongPress = true; /** Total number of snapshots including expanders */ int presetTotal; @@ -390,9 +392,11 @@ struct EightFaceMk2Module : EightFaceMk2Base { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetLoad(i, slotCvMode == SLOTCVMODE::ARM, true); break; + presetLoad(i, slotCvMode == SLOTCVMODE::ARM, true); + break; case LongPressButton::LONG_PRESS: - presetSetCount(i + 1); break; + if (presetCountLongPress) presetSetCount(i + 1); + break; } } } @@ -409,9 +413,11 @@ struct EightFaceMk2Module : EightFaceMk2Base { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetSave(i); break; + presetSave(i); + break; case LongPressButton::LONG_PRESS: - presetClear(i); break; + presetClear(i); + break; } } } @@ -685,6 +691,7 @@ struct EightFaceMk2Module : EightFaceMk2Base { json_object_set_new(rootJ, "slotCvMode", json_integer((int)slotCvMode)); json_object_set_new(rootJ, "preset", json_integer(preset)); json_object_set_new(rootJ, "presetCount", json_integer(presetCount)); + json_object_set_new(rootJ, "presetCountLongPress", json_boolean(presetCountLongPress)); json_object_set_new(rootJ, "boxDraw", json_boolean(boxDraw)); json_object_set_new(rootJ, "boxColor", json_string(color::toHexString(boxColor).c_str())); @@ -709,6 +716,8 @@ struct EightFaceMk2Module : EightFaceMk2Base { slotCvMode = (SLOTCVMODE)json_integer_value(json_object_get(rootJ, "slotCvMode")); preset = json_integer_value(json_object_get(rootJ, "preset")); presetCount = json_integer_value(json_object_get(rootJ, "presetCount")); + json_t* presetCountLongPressJ = json_object_get(rootJ, "presetCountLongPress"); + if (presetCountLongPressJ) presetCountLongPress = json_boolean_value(presetCountLongPressJ); boxDraw = json_boolean_value(json_object_get(rootJ, "boxDraw")); json_t* boxColorJ = json_object_get(rootJ, "boxColor"); @@ -902,6 +911,63 @@ struct EightFaceMk2Widget : ThemedModuleWidget> MODULE* module = dynamic_cast(this->module); assert(module); + struct NumberOfSlotsSlider : ui::Slider { + struct NumberOfSlotsQuantity : Quantity { + MODULE* module; + float v = -1.f; + + NumberOfSlotsQuantity(MODULE* module) { + this->module = module; + } + void setValue(float value) override { + v = clamp(value, 1.f, float(module->presetTotal)); + module->presetSetCount(int(v)); + } + float getValue() override { + if (v < 0.f) v = module->presetCount; + return v; + } + float getDefaultValue() override { + return 8.f; + } + float getMinValue() override { + return 1.f; + } + float getMaxValue() override { + return float(module->presetTotal); + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + int i = int(getValue()); + return string::f("%i", i); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Slots"; + } + std::string getUnit() override { + return ""; + } + }; + + NumberOfSlotsSlider(MODULE* module) { + box.size.x = 160.0; + quantity = new NumberOfSlotsQuantity(module); + } + ~NumberOfSlotsSlider() { + delete quantity; + } + void onDragMove(const event::DragMove& e) override { + if (quantity) { + quantity->moveScaledValue(0.002f * e.mouseDelta.x); + } + } + }; + struct SlotCvModeMenuItem : MenuItem { struct SlotCvModeItem : MenuItem { MODULE* module; @@ -1060,6 +1126,12 @@ struct EightFaceMk2Widget : ThemedModuleWidget> }; menu->addChild(new MenuSeparator()); + menu->addChild(createSubmenuItem("Number of slots", "", + [=](Menu* menu) { + menu->addChild(new NumberOfSlotsSlider(module)); + menu->addChild(createBoolPtrMenuItem("Set by long press", "", &module->presetCountLongPress)); + } + )); menu->addChild(construct(&MenuItem::text, "Port CV mode", &SlotCvModeMenuItem::module, module)); //menu->addChild(construct(&MenuItem::text, "Autoload", &AutoloadMenuItem::module, module)); menu->addChild(new MenuSeparator()); From e010facb555dea5166f170c20583e42a92f5c3c9 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 24 Dec 2022 23:45:26 +0100 Subject: [PATCH 10/55] Transit - added long-press option #354 --- CHANGELOG.md | 6 ++- docs/Transit.md | 3 +- src/EightFace.cpp | 4 +- src/EightFaceMk2.cpp | 4 +- src/Transit.cpp | 93 ++++++++++++++++++++++++++++++++++++-------- 5 files changed, 87 insertions(+), 23 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c0161c9..4f25cdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,11 +17,13 @@ ### Fixes and Changes - Modules [8FACE, 8FACEx2](./docs/EightFace.md) - - Allow disabling of "long press" for changing the number of active slots (#354) + - Allow disabling of "long-press" for changing the number of active slots (#354) - Module [8FACE mk2](./docs/EightFaceMk2.md) - - Allow disabling of "long press" for changing the number of active slots (#354) + - Allow disabling of "long-press" for changing the number of active slots (#354) - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) +- Module [TRANSIT](./docs/Transit.md) + - Allow disabling of "long-press" for changing the number of active snapshots (#354) ## 2.0.beta3 diff --git a/docs/Transit.md b/docs/Transit.md index f4b44c7..1cafcbd 100644 --- a/docs/Transit.md +++ b/docs/Transit.md @@ -165,4 +165,5 @@ Once placed next to TRANSIT the expander works and behaves the same way TRANSIT - Fixed premature end of processing and not reaching stored snapshot state (#329) - Fixed broken Auto/Write-modes if CV-port is set to "Phase" (#282) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" \ No newline at end of file + - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" + - Allow disabling of "long press" for changing the number of active slots (#354) \ No newline at end of file diff --git a/src/EightFace.cpp b/src/EightFace.cpp index 6c49aeb..e511c72 100644 --- a/src/EightFace.cpp +++ b/src/EightFace.cpp @@ -669,10 +669,10 @@ struct EightFaceWidgetTemplate : ModuleWidget { } menu->addChild(new MenuSeparator()); - menu->addChild(createSubmenuItem("Number of slots", "", + menu->addChild(createSubmenuItem("Number of slots", string::f("%i", module->presetCount), [=](Menu* menu) { menu->addChild(new NumberOfSlotsSlider(module)); - menu->addChild(createBoolPtrMenuItem("Set by long press", "", &module->presetCountLongPress)); + menu->addChild(createBoolPtrMenuItem("Set by long-press", "", &module->presetCountLongPress)); } )); diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index 652d221..d2570a1 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -1126,10 +1126,10 @@ struct EightFaceMk2Widget : ThemedModuleWidget> }; menu->addChild(new MenuSeparator()); - menu->addChild(createSubmenuItem("Number of slots", "", + menu->addChild(createSubmenuItem("Number of slots", string::f("%i", module->presetCount), [=](Menu* menu) { menu->addChild(new NumberOfSlotsSlider(module)); - menu->addChild(createBoolPtrMenuItem("Set by long press", "", &module->presetCountLongPress)); + menu->addChild(createBoolPtrMenuItem("Set by long-press", "", &module->presetCountLongPress)); } )); menu->addChild(construct(&MenuItem::text, "Port CV mode", &SlotCvModeMenuItem::module, module)); diff --git a/src/Transit.cpp b/src/Transit.cpp index 37f0805..ebe51fd 100644 --- a/src/Transit.cpp +++ b/src/Transit.cpp @@ -70,6 +70,8 @@ struct TransitModule : TransitBase { int preset; /** [Stored to JSON] Number of currently active snapshots */ int presetCount; + /** [Stored to JSON] */ + bool presetCountLongPress = true; /** Total number of snapshots including expanders */ int presetTotal; @@ -411,9 +413,11 @@ struct TransitModule : TransitBase { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetLoad(i, slotCvMode == SLOTCVMODE::ARM, true); break; + presetLoad(i, slotCvMode == SLOTCVMODE::ARM, true); + break; case LongPressButton::LONG_PRESS: - presetSetCount(i + 1); break; + if (presetCountLongPress) presetSetCount(i + 1); + break; } } } @@ -430,9 +434,11 @@ struct TransitModule : TransitBase { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - presetSave(i); break; + presetSave(i); + break; case LongPressButton::LONG_PRESS: - presetClear(i); break; + presetClear(i); + break; } } } @@ -872,6 +878,7 @@ struct TransitModule : TransitBase { json_object_set_new(rootJ, "outMode", json_integer((int)outMode)); json_object_set_new(rootJ, "preset", json_integer(preset)); json_object_set_new(rootJ, "presetCount", json_integer(presetCount)); + json_object_set_new(rootJ, "presetCountLongPress", json_boolean(presetCountLongPress)); json_t* sourceMapsJ = json_array(); for (size_t i = 0; i < sourceHandles.size(); i++) { @@ -894,6 +901,8 @@ struct TransitModule : TransitBase { outMode = (OUTMODE)json_integer_value(json_object_get(rootJ, "outMode")); preset = json_integer_value(json_object_get(rootJ, "preset")); presetCount = json_integer_value(json_object_get(rootJ, "presetCount")); + json_t* presetCountLongPressJ = json_object_get(rootJ, "presetCountLongPress"); + if (presetCountLongPressJ) presetCountLongPress = json_boolean_value(presetCountLongPressJ); if (preset >= presetCount) { preset = -1; @@ -1068,17 +1077,6 @@ struct TransitWidget : ThemedModuleWidget> { int sampleRate = int(APP->engine->getSampleRate()); MODULE* module = dynamic_cast(this->module); - struct MappingIndicatorHiddenItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->mappingIndicatorHidden ^= true; - } - void step() override { - rightText = module->mappingIndicatorHidden ? "✔" : ""; - MenuItem::step(); - } - }; - auto precisionMenuItem = StoermelderPackOne::Rack::createMapSubmenuItem("Precision", { { 1, string::f("Audio rate (%i Hz)", sampleRate / 1) }, { 8, string::f("Lower CPU (%i Hz)", sampleRate / 8) }, @@ -1094,6 +1092,63 @@ struct TransitWidget : ThemedModuleWidget> { } ); + struct NumberOfSlotsSlider : ui::Slider { + struct NumberOfSlotsQuantity : Quantity { + MODULE* module; + float v = -1.f; + + NumberOfSlotsQuantity(MODULE* module) { + this->module = module; + } + void setValue(float value) override { + v = clamp(value, 1.f, float(module->presetTotal)); + module->presetSetCount(int(v)); + } + float getValue() override { + if (v < 0.f) v = module->presetCount; + return v; + } + float getDefaultValue() override { + return 8.f; + } + float getMinValue() override { + return 1.f; + } + float getMaxValue() override { + return float(module->presetTotal); + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + int i = int(getValue()); + return string::f("%i", i); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Slots"; + } + std::string getUnit() override { + return ""; + } + }; + + NumberOfSlotsSlider(MODULE* module) { + box.size.x = 160.0; + quantity = new NumberOfSlotsQuantity(module); + } + ~NumberOfSlotsSlider() { + delete quantity; + } + void onDragMove(const event::DragMove& e) override { + if (quantity) { + quantity->moveScaledValue(0.002f * e.mouseDelta.x); + } + } + }; + struct SlotCvModeMenuItem : MenuItem { struct SlotCvModeItem : MenuItem { MODULE* module; @@ -1288,9 +1343,15 @@ struct TransitWidget : ThemedModuleWidget> { }; menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Hide mapping indicators", &MappingIndicatorHiddenItem::module, module)); + menu->addChild(createBoolPtrMenuItem("Hide mapping indicators", "", &module->mappingIndicatorHidden)); menu->addChild(precisionMenuItem); menu->addChild(new MenuSeparator()); + menu->addChild(createSubmenuItem("Number of snapshots", string::f("%i", module->presetCount), + [=](Menu* menu) { + menu->addChild(new NumberOfSlotsSlider(module)); + menu->addChild(createBoolPtrMenuItem("Set by long-press", "", &module->presetCountLongPress)); + } + )); menu->addChild(construct(&MenuItem::text, "Port CV mode", &SlotCvModeMenuItem::module, module)); menu->addChild(construct(&MenuItem::text, "Port OUT mode", &OutModeMenuItem::module, module)); menu->addChild(new MenuSeparator()); From 60119924f59231a74b05efb62d59d9e87243e828 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sun, 25 Dec 2022 00:16:43 +0100 Subject: [PATCH 11/55] Transit - context menu code cleanup --- src/Transit.cpp | 289 +++++++++++++++++------------------------------- 1 file changed, 99 insertions(+), 190 deletions(-) diff --git a/src/Transit.cpp b/src/Transit.cpp index ebe51fd..6d8b772 100644 --- a/src/Transit.cpp +++ b/src/Transit.cpp @@ -1077,21 +1077,6 @@ struct TransitWidget : ThemedModuleWidget> { int sampleRate = int(APP->engine->getSampleRate()); MODULE* module = dynamic_cast(this->module); - auto precisionMenuItem = StoermelderPackOne::Rack::createMapSubmenuItem("Precision", { - { 1, string::f("Audio rate (%i Hz)", sampleRate / 1) }, - { 8, string::f("Lower CPU (%i Hz)", sampleRate / 8) }, - { 64, string::f("Lowest CPU (%i Hz)", sampleRate / 64) }, - { 256, string::f("Even lower CPU (%i Hz)", sampleRate / 256) }, - { 1024, string::f("Crazy low CPU (%i Hz)", sampleRate / 1024) } - }, - [=]() { - return module->getProcessDivision(); - }, - [=](int division) { - module->setProcessDivision(division); - } - ); - struct NumberOfSlotsSlider : ui::Slider { struct NumberOfSlotsQuantity : Quantity { MODULE* module; @@ -1149,7 +1134,45 @@ struct TransitWidget : ThemedModuleWidget> { } }; - struct SlotCvModeMenuItem : MenuItem { + struct BindParameterItem : MenuItem { + WIDGET* widget; + int mode; + std::string rightText = ""; + void onAction(const event::Action& e) override { + widget->enableLearn(mode); + } + void step() override { + MenuItem::rightText = widget->learn == mode ? "Active" : rightText; + MenuItem::step(); + } + }; + + menu->addChild(new MenuSeparator()); + menu->addChild(createBoolPtrMenuItem("Hide mapping indicators", "", &module->mappingIndicatorHidden)); + menu->addChild(StoermelderPackOne::Rack::createMapSubmenuItem("Precision", { + { 1, string::f("Audio rate (%i Hz)", sampleRate / 1) }, + { 8, string::f("Lower CPU (%i Hz)", sampleRate / 8) }, + { 64, string::f("Lowest CPU (%i Hz)", sampleRate / 64) }, + { 256, string::f("Even lower CPU (%i Hz)", sampleRate / 256) }, + { 1024, string::f("Crazy low CPU (%i Hz)", sampleRate / 1024) } + }, + [=]() { + return module->getProcessDivision(); + }, + [=](int division) { + module->setProcessDivision(division); + } + )); + + menu->addChild(new MenuSeparator()); + menu->addChild(createSubmenuItem("Number of snapshots", string::f("%i", module->presetCount), + [=](Menu* menu) { + menu->addChild(new NumberOfSlotsSlider(module)); + menu->addChild(createBoolPtrMenuItem("Set by long-press", "", &module->presetCountLongPress)); + } + )); + + menu->addChild(createSubmenuItem("Port CV mode", "", [=](Menu* menu) { struct SlotCvModeItem : MenuItem { MODULE* module; SLOTCVMODE slotCvMode; @@ -1163,33 +1186,24 @@ struct TransitWidget : ThemedModuleWidget> { } }; - MODULE* module; - SlotCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - menu->addChild(construct(&MenuItem::text, "Trigger forward", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_FWD)); - menu->addChild(construct(&MenuItem::text, "Trigger reverse", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_REV)); - menu->addChild(construct(&MenuItem::text, "Trigger pingpong", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_PINGPONG)); - menu->addChild(construct(&MenuItem::text, "Trigger alternating", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_ALT)); - menu->addChild(construct(&MenuItem::text, "Trigger random", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM)); - menu->addChild(construct(&MenuItem::text, "Trigger pseudo-random", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM_WO_REPEAT)); - menu->addChild(construct(&MenuItem::text, "Trigger random walk", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM_WALK)); - menu->addChild(construct(&MenuItem::text, "Trigger shuffle", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_SHUFFLE)); - menu->addChild(construct(&MenuItem::text, "0..10V", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::VOLT)); - menu->addChild(construct(&MenuItem::text, "C4", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::C4)); - menu->addChild(construct(&MenuItem::text, "Arm", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::ARM)); - menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuItem::text, "Phase", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::PHASE)); - menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuItem::text, "Off", &SlotCvModeItem::rightTextEx, RACK_MOD_SHIFT_NAME "+Q", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::OFF)); - return menu; - } - }; - - struct OutModeMenuItem : MenuItem { + menu->addChild(construct(&MenuItem::text, "Trigger forward", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_FWD)); + menu->addChild(construct(&MenuItem::text, "Trigger reverse", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_REV)); + menu->addChild(construct(&MenuItem::text, "Trigger pingpong", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_PINGPONG)); + menu->addChild(construct(&MenuItem::text, "Trigger alternating", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_ALT)); + menu->addChild(construct(&MenuItem::text, "Trigger random", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM)); + menu->addChild(construct(&MenuItem::text, "Trigger pseudo-random", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM_WO_REPEAT)); + menu->addChild(construct(&MenuItem::text, "Trigger random walk", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_RANDOM_WALK)); + menu->addChild(construct(&MenuItem::text, "Trigger shuffle", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::TRIG_SHUFFLE)); + menu->addChild(construct(&MenuItem::text, "0..10V", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::VOLT)); + menu->addChild(construct(&MenuItem::text, "C4", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::C4)); + menu->addChild(construct(&MenuItem::text, "Arm", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::ARM)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuItem::text, "Phase", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::PHASE)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuItem::text, "Off", &SlotCvModeItem::rightTextEx, RACK_MOD_SHIFT_NAME "+Q", &SlotCvModeItem::module, module, &SlotCvModeItem::slotCvMode, SLOTCVMODE::OFF)); + })); + + menu->addChild(createSubmenuItem("Port OUT mode", "", [=](Menu* menu) { struct OutModeItem : MenuItem { MODULE* module; OUTMODE outMode; @@ -1202,129 +1216,27 @@ struct TransitWidget : ThemedModuleWidget> { } }; - MODULE* module; - OutModeMenuItem() { - rightText = RIGHT_ARROW; - } + bool phaseMode = module->slotCvMode == SLOTCVMODE::PHASE; + menu->addChild(construct(&MenuItem::text, "Envelope", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::ENV, &OutModeItem::disabled, phaseMode)); + menu->addChild(construct(&MenuItem::text, "Gate", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::GATE, &OutModeItem::disabled, phaseMode)); + menu->addChild(construct(&MenuItem::text, "Trigger snapshot change", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_SNAPSHOT, &OutModeItem::disabled, phaseMode)); + menu->addChild(construct(&MenuItem::text, "Trigger fade start", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_SOC, &OutModeItem::disabled, phaseMode)); + menu->addChild(construct(&MenuItem::text, "Trigger fade end", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_EOC, &OutModeItem::disabled, phaseMode)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuItem::text, "Polyphonic", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::POLY, &OutModeItem::disabled, phaseMode)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuItem::text, "Phase", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::PHASE, &OutModeItem::disabled, !phaseMode)); + })); - Menu* createChildMenu() override { - bool phaseMode = module->slotCvMode == SLOTCVMODE::PHASE; - Menu* menu = new Menu; - menu->addChild(construct(&MenuItem::text, "Envelope", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::ENV, &OutModeItem::disabled, phaseMode)); - menu->addChild(construct(&MenuItem::text, "Gate", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::GATE, &OutModeItem::disabled, phaseMode)); - menu->addChild(construct(&MenuItem::text, "Trigger snapshot change", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_SNAPSHOT, &OutModeItem::disabled, phaseMode)); - menu->addChild(construct(&MenuItem::text, "Trigger fade start", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_SOC, &OutModeItem::disabled, phaseMode)); - menu->addChild(construct(&MenuItem::text, "Trigger fade end", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::TRIG_EOC, &OutModeItem::disabled, phaseMode)); - menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuItem::text, "Polyphonic", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::POLY, &OutModeItem::disabled, phaseMode)); - menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuItem::text, "Phase", &OutModeItem::module, module, &OutModeItem::outMode, OUTMODE::PHASE, &OutModeItem::disabled, !phaseMode)); - return menu; - } - }; - - struct BindModuleItem : MenuItem { - MODULE* module; - WIDGET* widget; - void onAction(const event::Action& e) override { - widget->disableLearn(); - module->bindModuleExpander(); - } - }; - - struct BindModuleSelectItem : MenuItem { - WIDGET* widget; - void onAction(const event::Action& e) override { - widget->enableLearn(1); - } - }; - - struct BindParameterItem : MenuItem { - WIDGET* widget; - int mode; - std::string rightText = ""; - void onAction(const event::Action& e) override { - widget->enableLearn(mode); - } - void step() override { - MenuItem::rightText = widget->learn == mode ? "Active" : rightText; - MenuItem::step(); - } - }; - - struct ParameterMenuItem : MenuItem { - struct ParameterItem : MenuItem { - struct IndicateItem : MenuItem { - MODULE* module; - ParamHandleIndicator* handle; - void onAction(const event::Action& e) override { - ModuleWidget* mw = APP->scene->rack->getModule(handle->moduleId); - handle->indicate(mw); - } - }; - - struct UnbindItem : MenuItem { - MODULE* module; - ParamHandleIndicator* handle; - void onAction(const event::Action& e) override { - APP->engine->updateParamHandle(handle, -1, 0, true); - } - }; - - MODULE* module; - ParamHandleIndicator* handle; - ParameterItem() { - rightText = RIGHT_ARROW; - } - Menu* createChildMenu() override { - Menu* menu = new Menu; - menu->addChild(construct(&MenuItem::text, "Locate and indicate", &IndicateItem::module, module, &IndicateItem::handle, handle)); - menu->addChild(construct(&MenuItem::text, "Unbind", &UnbindItem::module, module, &UnbindItem::handle, handle)); - return menu; - } - }; - - MODULE* module; - ParameterMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - for (size_t i = 0; i < module->sourceHandles.size(); i++) { - ParamHandleIndicator* handle = module->sourceHandles[i]; - ModuleWidget* moduleWidget = APP->scene->rack->getModule(handle->moduleId); - if (!moduleWidget) continue; - ParamWidget* paramWidget = moduleWidget->getParam(handle->paramId); - if (!paramWidget) continue; - - std::string text = string::f("%s %s", moduleWidget->model->name.c_str(), paramWidget->getParamQuantity()->getLabel().c_str()); - menu->addChild(construct(&MenuItem::text, text, &ParameterItem::module, module, &ParameterItem::handle, handle)); - } - return menu; - } - }; - - struct ModuleMenuItem : MenuItem { - MODULE* module; - ModuleMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - struct UnbindItem : MenuItem { - MODULE* module; - int64_t moduleId; - void onAction(const event::Action& e) override { - for (size_t i = 0; i < module->sourceHandles.size(); i++) { - ParamHandle* handle = module->sourceHandles[i]; - if (handle->moduleId != moduleId) continue; - APP->engine->updateParamHandle(handle, -1, 0, true); - } - } - }; + menu->addChild(new MenuSeparator()); + menu->addChild(createMenuItem("Bind module (left)", "", [=]() { disableLearn(); module->bindModuleExpander(); })); + menu->addChild(createMenuItem("Bind module (select)", "", [=]() { enableLearn(1); })); + menu->addChild(construct(&MenuItem::text, "Bind single parameter", &BindParameterItem::rightText, RACK_MOD_SHIFT_NAME "+B", &BindParameterItem::widget, this, &BindParameterItem::mode, 2)); + menu->addChild(construct(&MenuItem::text, "Bind multiple parameters", &BindParameterItem::rightText, RACK_MOD_SHIFT_NAME "+A", &BindParameterItem::widget, this, &BindParameterItem::mode, 3)); - Menu* menu = new Menu; + if (module->sourceHandles.size() > 0) { + menu->addChild(new MenuSeparator()); + menu->addChild(createSubmenuItem("Bound modules", "", [=](Menu* menu) { std::set moduleIds; for (size_t i = 0; i < module->sourceHandles.size(); i++) { ParamHandle* handle = module->sourceHandles[i]; @@ -1336,34 +1248,31 @@ struct TransitWidget : ThemedModuleWidget> { ModuleWidget* moduleWidget = APP->scene->rack->getModule(moduleId); if (!moduleWidget) continue; std::string text = string::f("Unbind \"%s %s\"", moduleWidget->model->plugin->name.c_str(), moduleWidget->model->name.c_str()); - menu->addChild(construct(&MenuItem::text, text, &UnbindItem::module, module, &UnbindItem::moduleId, moduleId)); + menu->addChild(createMenuItem(text, "", [=]() { + for (size_t i = 0; i < module->sourceHandles.size(); i++) { + ParamHandle* handle = module->sourceHandles[i]; + if (handle->moduleId != moduleId) continue; + APP->engine->updateParamHandle(handle, -1, 0, true); + } + })); } - return menu; - } - }; + })); - menu->addChild(new MenuSeparator()); - menu->addChild(createBoolPtrMenuItem("Hide mapping indicators", "", &module->mappingIndicatorHidden)); - menu->addChild(precisionMenuItem); - menu->addChild(new MenuSeparator()); - menu->addChild(createSubmenuItem("Number of snapshots", string::f("%i", module->presetCount), - [=](Menu* menu) { - menu->addChild(new NumberOfSlotsSlider(module)); - menu->addChild(createBoolPtrMenuItem("Set by long-press", "", &module->presetCountLongPress)); - } - )); - menu->addChild(construct(&MenuItem::text, "Port CV mode", &SlotCvModeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Port OUT mode", &OutModeMenuItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Bind module (left)", &BindModuleItem::widget, this, &BindModuleItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Bind module (select)", &BindModuleSelectItem::widget, this)); - menu->addChild(construct(&MenuItem::text, "Bind single parameter", &BindParameterItem::rightText, RACK_MOD_SHIFT_NAME "+B", &BindParameterItem::widget, this, &BindParameterItem::mode, 2)); - menu->addChild(construct(&MenuItem::text, "Bind multiple parameters", &BindParameterItem::rightText, RACK_MOD_SHIFT_NAME "+A", &BindParameterItem::widget, this, &BindParameterItem::mode, 3)); - - if (module->sourceHandles.size() > 0) { - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Bound modules", &ModuleMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Bound parameters", &ParameterMenuItem::module, module)); + menu->addChild(createSubmenuItem("Bound parameters", "", [=](Menu* menu) { + for (size_t i = 0; i < module->sourceHandles.size(); i++) { + ParamHandleIndicator* handle = module->sourceHandles[i]; + ModuleWidget* moduleWidget = APP->scene->rack->getModule(handle->moduleId); + if (!moduleWidget) continue; + ParamWidget* paramWidget = moduleWidget->getParam(handle->paramId); + if (!paramWidget) continue; + + std::string text = string::f("%s %s", moduleWidget->model->name.c_str(), paramWidget->getParamQuantity()->getLabel().c_str()); + menu->addChild(createSubmenuItem(text, "", [=](Menu* menu) { + menu->addChild(createMenuItem("Locate and indicate", "", [=]() { handle->indicate(APP->scene->rack->getModule(handle->moduleId)); })); + menu->addChild(createMenuItem("Unbind", "", [=]() { APP->engine->updateParamHandle(handle, -1, 0, true); })); + })); + } + })); } } }; From d886e873bb02ce5eefe04f621e3394a4256954ea Mon Sep 17 00:00:00 2001 From: stoermelder Date: Mon, 26 Dec 2022 18:47:55 +0100 Subject: [PATCH 12/55] implemented HSL color picker --- CHANGELOG.md | 3 + docs/EightFaceMk2.md | 3 +- docs/Glue.md | 3 +- src/EightFaceMk2.cpp | 19 +- src/Glue.cpp | 76 +++---- src/Stroke.cpp | 42 ++-- src/components/MenuColorField.hpp | 22 +- src/components/MenuColorLabel.hpp | 4 +- src/components/MenuColorPicker.hpp | 309 +++++++++++++++++++++++++++++ 9 files changed, 383 insertions(+), 98 deletions(-) create mode 100644 src/components/MenuColorPicker.hpp diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f25cdd..98c72b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,9 @@ - Allow disabling of "long-press" for changing the number of active slots (#354) - Module [8FACE mk2](./docs/EightFaceMk2.md) - Allow disabling of "long-press" for changing the number of active slots (#354) + - Added HSL color picker for bound modules' box +- Module [GLUE](./docs/Glue.md) + - Added HSL color picker - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) - Module [TRANSIT](./docs/Transit.md) diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 519e2c8..4284e5a 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -121,4 +121,5 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Added "Bind module (select multiple)" option (#291) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" - - Allow disabling of "long press" for changing the number of active slots (#354) \ No newline at end of file + - Allow disabling of "long press" for changing the number of active slots (#354) + - Added HSL color picker for bound modules' box \ No newline at end of file diff --git a/docs/Glue.md b/docs/Glue.md index 099664a..26c1930 100644 --- a/docs/Glue.md +++ b/docs/Glue.md @@ -70,4 +70,5 @@ The context menu option "Duplicate" arms the labeling mode. Click on any module - Added option to consolidate all GLUE modules into the current one - v2.0.0 - Changed "Add label" hotkey from Ctrl+A to Ctrl+G (#305) - - Added hotkey Ctrl+Shift+G for "Lock" \ No newline at end of file + - Added hotkey Ctrl+Shift+G for "Lock" + - Added HSL color picker \ No newline at end of file diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index d2570a1..1ecf2ac 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -3,6 +3,7 @@ #include "helpers/TaskWorker.hpp" #include "components/MenuColorLabel.hpp" #include "components/MenuColorField.hpp" +#include "components/MenuColorPicker.hpp" #include "ui/ModuleSelectProcessor.hpp" #include "EightFace.hpp" #include "EightFaceMk2Base.hpp" @@ -1107,20 +1108,12 @@ struct EightFaceMk2Widget : ThemedModuleWidget> rightText = RIGHT_ARROW; } Menu* createChildMenu() override { - struct ColorField : MenuColorField { - MODULE* module; - NVGcolor initColor() override { - return module->boxColor; - } - void returnColor(NVGcolor color) override { - module->boxColor = color; - } - }; - Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, module->boxColor); - menu->addChild(colorLabel); - menu->addChild(construct(&ColorField::module, module, &MenuColorField::colorLabel, colorLabel)); + menu->addChild(construct(&MenuColorLabel::fillColor, &module->boxColor)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &module->boxColor)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorField::color, &module->boxColor)); return menu; } }; diff --git a/src/Glue.cpp b/src/Glue.cpp index 9b4d0f9..3932be7 100644 --- a/src/Glue.cpp +++ b/src/Glue.cpp @@ -3,6 +3,7 @@ #include "helpers/StripIdFixModule.hpp" #include "components/MenuColorLabel.hpp" #include "components/MenuColorField.hpp" +#include "components/MenuColorPicker.hpp" namespace StoermelderPackOne { namespace Glue { @@ -601,6 +602,7 @@ struct LabelWidget : widget::TransparentWidget { NVGcolor color; void onAction(const event::Action& e) override { label->fontColor = color; + e.unconsume(); } void step() override { rightText = color::toHexString(label->fontColor) == color::toHexString(color) ? "✔" : ""; @@ -608,22 +610,14 @@ struct LabelWidget : widget::TransparentWidget { } }; - struct CustomFontColorField : MenuColorField { - Label* label; - NVGcolor initColor() override { - return label->fontColor; - } - void returnColor(NVGcolor color) override { - label->fontColor = color; - } - }; - Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, label->fontColor); - menu->addChild(colorLabel); + menu->addChild(construct(&MenuColorLabel::fillColor, &label->fontColor)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &label->fontColor)); + menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Black", &FontColorItem::label, label, &FontColorItem::color, LABEL_FONTCOLOR_DEFAULT)); menu->addChild(construct(&MenuItem::text, "White", &FontColorItem::label, label, &FontColorItem::color, LABEL_FONTCOLOR_WHITE)); - menu->addChild(construct(&MenuColorField::colorLabel, colorLabel, &CustomFontColorField::label, label, &MenuColorField::textSelected, textSelected)); + menu->addChild(construct(&MenuColorField::color, &label->fontColor, &MenuColorField::textSelected, textSelected)); return menu; } }; @@ -641,6 +635,7 @@ struct LabelWidget : widget::TransparentWidget { NVGcolor color; void onAction(const event::Action& e) override { label->color = color; + e.unconsume(); } void step() override { rightText = color::toHexString(label->color) == color::toHexString(color) ? "✔" : ""; @@ -648,26 +643,18 @@ struct LabelWidget : widget::TransparentWidget { } }; - struct CustomColorField : MenuColorField { - Label* label; - NVGcolor initColor() override { - return label->color; - } - void returnColor(NVGcolor color) override { - label->color = color; - } - }; - Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, label->color); - menu->addChild(colorLabel); + menu->addChild(construct(&MenuColorLabel::fillColor, &label->color)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &label->color)); + menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Yellow", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_YELLOW)); menu->addChild(construct(&MenuItem::text, "Red", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_RED)); menu->addChild(construct(&MenuItem::text, "Cyan", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_CYAN)); menu->addChild(construct(&MenuItem::text, "Green", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_GREEN)); menu->addChild(construct(&MenuItem::text, "Pink", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_PINK)); menu->addChild(construct(&MenuItem::text, "White", &ColorItem::label, label, &ColorItem::color, LABEL_COLOR_WHITE)); - menu->addChild(construct(&MenuColorField::colorLabel, colorLabel, &CustomColorField::label, label, &MenuColorField::textSelected, textSelected)); + menu->addChild(construct(&MenuColorField::color, &label->color, &MenuColorField::textSelected, textSelected)); return menu; } }; @@ -1241,6 +1228,7 @@ struct GlueWidget : ThemedModuleWidget { NVGcolor color; void onAction(const event::Action& e) override { module->defaultFontColor = color; + e.unconsume(); } void step() override { rightText = color::toHexString(module->defaultFontColor) == color::toHexString(color) ? "✔" : ""; @@ -1248,22 +1236,14 @@ struct GlueWidget : ThemedModuleWidget { } }; - struct CustomFontColorField : MenuColorField { - GlueModule* module; - NVGcolor initColor() override { - return module->defaultFontColor; - } - void returnColor(NVGcolor color) override { - module->defaultFontColor = color; - } - }; - Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, module->defaultFontColor); - menu->addChild(colorLabel); + menu->addChild(construct(&MenuColorLabel::fillColor, &module->defaultFontColor)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &module->defaultFontColor)); + menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Black", &FontColorItem::module, module, &FontColorItem::color, LABEL_FONTCOLOR_DEFAULT)); menu->addChild(construct(&MenuItem::text, "White", &FontColorItem::module, module, &FontColorItem::color, LABEL_FONTCOLOR_WHITE)); - menu->addChild(construct(&MenuColorField::colorLabel, colorLabel, &CustomFontColorField::module, module)); + menu->addChild(construct(&MenuColorField::color, &module->defaultFontColor)); return menu; } }; @@ -1280,6 +1260,7 @@ struct GlueWidget : ThemedModuleWidget { NVGcolor color; void onAction(const event::Action& e) override { module->defaultColor = color; + e.unconsume(); } void step() override { rightText = color::toHexString(module->defaultColor) == color::toHexString(color) ? "✔" : ""; @@ -1287,26 +1268,19 @@ struct GlueWidget : ThemedModuleWidget { } }; - struct CustomColorField : MenuColorField { - GlueModule* module; - NVGcolor initColor() override { - return module->defaultColor; - } - void returnColor(NVGcolor color) override { - module->defaultColor = color; - } - }; - Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, module->defaultColor); + MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, &module->defaultColor); menu->addChild(colorLabel); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &module->defaultColor)); + menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Yellow", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_YELLOW)); menu->addChild(construct(&MenuItem::text, "Red", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_RED)); menu->addChild(construct(&MenuItem::text, "Cyan", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_CYAN)); menu->addChild(construct(&MenuItem::text, "Green", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_GREEN)); menu->addChild(construct(&MenuItem::text, "Pink", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_PINK)); menu->addChild(construct(&MenuItem::text, "White", &ColorItem::module, module, &ColorItem::color, LABEL_COLOR_WHITE)); - menu->addChild(construct(&MenuColorField::colorLabel, colorLabel, &CustomColorField::module, module)); + menu->addChild(construct(&MenuColorField::color, &module->defaultColor)); return menu; } }; diff --git a/src/Stroke.cpp b/src/Stroke.cpp index 2f8509e..8c704dd 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -1,6 +1,7 @@ #include "plugin.hpp" #include "components/MenuColorLabel.hpp" #include "components/MenuColorField.hpp" +#include "components/MenuColorPicker.hpp" #include "ui/ModuleSelectProcessor.hpp" #include "ui/keyboard.hpp" @@ -1472,33 +1473,38 @@ struct KeyDisplay : StoermelderLedDisplay { struct CableColorMenuItem : MenuItem { StrokeModule* module; int idx; + NVGcolor color; + bool firstRun = true; + void step() override { - rightText = module->keys[idx].mode == KEY_MODE::S_CABLE_COLOR ? "✔ " RIGHT_ARROW : ""; + if (module->keys[idx].mode == KEY_MODE::S_CABLE_COLOR) { + if (firstRun) { + color = color::fromHexString(module->keys[idx].data); + firstRun = false; + } + module->keys[idx].data = color::toHexString(color); + rightText = "✔ " RIGHT_ARROW; + } MenuItem::step(); } + void onAction(const event::Action& e) override { - module->keys[idx].mode = KEY_MODE::S_CABLE_COLOR; - module->keys[idx].high = false; - module->keys[idx].data = color::toHexString(color::BLACK); + if (module->keys[idx].mode != KEY_MODE::S_CABLE_COLOR) { + module->keys[idx].mode = KEY_MODE::S_CABLE_COLOR; + module->keys[idx].high = false; + module->keys[idx].data = color::toHexString(color::BLACK); + } } Menu* createChildMenu() override { - struct ColorField : MenuColorField { - StrokeModule* module; - int idx; - void returnColor(NVGcolor color) override { - module->keys[idx].data = color::toHexString(color); - } - NVGcolor initColor() override { - return module->keys[idx].data != "" ? color::fromHexString(module->keys[idx].data) : color::BLACK; - } - }; - if (module->keys[idx].mode == KEY_MODE::S_CABLE_COLOR) { + Menu* menu = new Menu; - MenuColorLabel* colorLabel = construct(&MenuColorLabel::fillColor, color::fromHexString(module->keys[idx].data)); - menu->addChild(colorLabel); - menu->addChild(construct(&ColorField::module, module, &MenuColorField::colorLabel, colorLabel, &ColorField::idx, idx)); + menu->addChild(construct(&MenuColorLabel::fillColor, &color)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorPicker::color, &color)); + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuColorField::color, &color)); return menu; } return NULL; diff --git a/src/components/MenuColorField.hpp b/src/components/MenuColorField.hpp index 890f987..e8f103e 100644 --- a/src/components/MenuColorField.hpp +++ b/src/components/MenuColorField.hpp @@ -5,8 +5,8 @@ namespace StoermelderPackOne { struct MenuColorField : ui::TextField { - bool firstRun = true; - MenuColorLabel* colorLabel = NULL; + NVGcolor* color; + NVGcolor textColor; bool* textSelected = NULL; MenuColorField() { @@ -14,23 +14,24 @@ struct MenuColorField : ui::TextField { } void step() override { - if (firstRun) { - text = color::toHexString(initColor()); - firstRun = false; + if (!color::isEqual(*color, textColor)) { + // color has been modified outside of this widget + text = color::toHexString(*color); + textColor = *color; } ui::TextField::step(); } void onSelectKey(const event::SelectKey& e) override { - if (colorLabel) { - colorLabel->fillColor = color::fromHexString(rack::string::trim(text)); - } if (e.action == GLFW_PRESS && e.key == GLFW_KEY_ENTER) { - returnColor(color::fromHexString(rack::string::trim(text))); ui::MenuOverlay* overlay = getAncestorOfType(); overlay->requestDelete(); e.consume(this); } + if (e.action == GLFW_RELEASE) { + *color = color::fromHexString(rack::string::trim(text)); + textColor = *color; + } if (!e.getTarget()) { ui::TextField::onSelectKey(e); } @@ -40,9 +41,6 @@ struct MenuColorField : ui::TextField { if (textSelected) *textSelected = false; TextField::onButton(e); } - - virtual void returnColor(NVGcolor color) { } - virtual NVGcolor initColor() { return color::BLACK; } }; diff --git a/src/components/MenuColorLabel.hpp b/src/components/MenuColorLabel.hpp index d491579..f10b831 100644 --- a/src/components/MenuColorLabel.hpp +++ b/src/components/MenuColorLabel.hpp @@ -4,7 +4,7 @@ namespace StoermelderPackOne { struct MenuColorLabel : MenuLabel { - NVGcolor fillColor; + NVGcolor* fillColor; MenuColorLabel() { box.size.y *= 1.4f; @@ -12,7 +12,7 @@ struct MenuColorLabel : MenuLabel { void draw(const DrawArgs& args) override { nvgBeginPath(args.vg); nvgRoundedRect(args.vg, 2.f, 2.f, box.size.x - 4.f, box.size.y - 4.f, 2.f); - nvgFillColor(args.vg, fillColor); + nvgFillColor(args.vg, *fillColor); nvgFill(args.vg); } }; // struct MenuColorLabel diff --git a/src/components/MenuColorPicker.hpp b/src/components/MenuColorPicker.hpp new file mode 100644 index 0000000..23b3e6b --- /dev/null +++ b/src/components/MenuColorPicker.hpp @@ -0,0 +1,309 @@ +#pragma once +#include "plugin.hpp" + +namespace StoermelderPackOne { + +struct MenuColorPicker : MenuEntry { + NVGcolor* color; + NVGcolor hslcolor; + float h = 0.5f; + float s = 1.f; + float l = 0.5f; + + struct hGradient : OpaqueWidget { + MenuColorPicker* picker; + + hGradient(MenuColorPicker* picker) { + this->picker = picker; + } + + void draw(const DrawArgs& args) override { + nvgBeginPath(args.vg); + float x = box.size.x - 4.f; + float y = box.size.y - 4.f; + nvgRoundedRect(args.vg, 2.f, 2.f, x, y, 3.f); + + for (int i = 0; i < 6; i++) { + float x1 = float(i) * 1.f / 6.f; + float x2 = (float(i) + 1.f) * 1.f / 6.f; + + nvgScissor(args.vg, x1 * box.size.x, 0.f, x2 * box.size.x + 0.3f, box.size.y); + NVGpaint paint = nvgLinearGradient(args.vg, x1 * box.size.x, 0.f, x2 * box.size.x, 0.f, nvgHSL(x1, picker->s, picker->l), nvgHSL(x2, picker->s, picker->l)); + nvgFillPaint(args.vg, paint); + nvgFill(args.vg); + nvgResetScissor(args.vg); + } + } + }; + + struct hSlider : ui::Slider { + struct hQuantity : Quantity { + MenuColorPicker* picker; + + hQuantity(MenuColorPicker* picker) { + this->picker = picker; + } + void setValue(float value) override { + picker->h = clamp(value, 0.f, 1.f); + picker->updateColor(); + } + float getValue() override { + return picker->h; + } + float getDefaultValue() override { + return 0.f; + } + float getMinValue() override { + return 0.f; + } + float getMaxValue() override { + return 1.f; + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + return string::f("%.2f", picker->h * 360.f); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Hue"; + } + std::string getUnit() override { + return "°"; + } + }; + + hSlider(MenuColorPicker* picker) { + quantity = new hQuantity(picker); + } + ~hSlider() { + delete quantity; + } + }; + + struct sGradient : OpaqueWidget { + MenuColorPicker* picker; + + sGradient(MenuColorPicker* picker) { + this->picker = picker; + } + + void draw(const DrawArgs& args) override { + nvgBeginPath(args.vg); + float x = box.size.x - 4.f; + float y = box.size.y - 4.f; + nvgRoundedRect(args.vg, 2.f, 2.f, x, y, 3.f); + NVGpaint paint = nvgLinearGradient(args.vg, 0.f, 0.f, box.size.x, 0.f, nvgHSL(picker->h, 0.f, picker->l), nvgHSL(picker->h, 1.f, picker->l)); + nvgFillPaint(args.vg, paint); + nvgFill(args.vg); + } + }; + + struct sSlider : ui::Slider { + struct sQuantity : Quantity { + MenuColorPicker* picker; + + sQuantity(MenuColorPicker* picker) { + this->picker = picker; + } + void setValue(float value) override { + picker->s = clamp(value, 0.f, 1.f); + picker->updateColor(); + } + float getValue() override { + return picker->s; + } + float getDefaultValue() override { + return 1.f; + } + float getMinValue() override { + return 0.f; + } + float getMaxValue() override { + return 1.f; + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + return string::f("%.2f", picker->s * 100.f); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Saturation"; + } + std::string getUnit() override { + return "%"; + } + }; + + sSlider(MenuColorPicker* picker) { + quantity = new sQuantity(picker); + } + ~sSlider() { + delete quantity; + } + }; + + struct lGradient : OpaqueWidget { + MenuColorPicker* picker; + + lGradient(MenuColorPicker* picker) { + this->picker = picker; + } + + void draw(const DrawArgs& args) override { + nvgBeginPath(args.vg); + float x = box.size.x - 4.f; + float y = box.size.y - 4.f; + nvgRoundedRect(args.vg, 2.f, 2.f, x, y, 3.f); + NVGpaint paint = nvgLinearGradient(args.vg, 0.f, 0.f, box.size.x, 0.f, nvgHSL(picker->h, picker->s, 0.f), nvgHSL(picker->h, picker->s, 1.f)); + nvgFillPaint(args.vg, paint); + nvgFill(args.vg); + } + }; + + struct lSlider : ui::Slider { + struct lQuantity : Quantity { + MenuColorPicker* picker; + + lQuantity(MenuColorPicker* picker) { + this->picker = picker; + } + void setValue(float value) override { + picker->l = clamp(value, 0.f, 1.f); + picker->updateColor(); + } + float getValue() override { + return picker->l; + } + float getDefaultValue() override { + return 0.5f; + } + float getMinValue() override { + return 0.f; + } + float getMaxValue() override { + return 1.f; + } + float getDisplayValue() override { + return getValue(); + } + std::string getDisplayValueString() override { + return string::f("%.2f", picker->l * 100.f); + } + void setDisplayValue(float displayValue) override { + setValue(displayValue); + } + std::string getLabel() override { + return "Lightness"; + } + std::string getUnit() override { + return "%"; + } + }; + + lSlider(MenuColorPicker* picker) { + quantity = new lQuantity(picker); + } + ~lSlider() { + delete quantity; + } + }; + + MenuColorPicker() { + const float width = 280.f; + const float pad = 4.0f; + + hGradient* hgradient = new hGradient(this); + hgradient->box.size = Vec(width, 50.f); + addChild(hgradient); + + hSlider* hslider = new hSlider(this); + hslider->box.pos = hgradient->box.getBottomLeft() + Vec(pad, -BND_WIDGET_HEIGHT - pad); + hslider->box.size = Vec(width - 2.f * pad, BND_WIDGET_HEIGHT); + addChild(hslider); + + sGradient* sgradient = new sGradient(this); + sgradient->box.pos = Vec(0.f, hgradient->box.getBottomLeft().y + 2.f); + sgradient->box.size = Vec(width, 50.f); + addChild(sgradient); + + sSlider* sslider = new sSlider(this); + sslider->box.pos = sgradient->box.getBottomLeft() + Vec(pad, -BND_WIDGET_HEIGHT - pad); + sslider->box.size = Vec(width - 2.f * pad, BND_WIDGET_HEIGHT); + addChild(sslider); + + lGradient* lgradient = new lGradient(this); + lgradient->box.pos = Vec(0.f, sgradient->box.getBottomLeft().y + 2.f); + lgradient->box.size = Vec(width, 50.f); + addChild(lgradient); + + lSlider* lslider = new lSlider(this); + lslider->box.pos = lgradient->box.getBottomLeft() + Vec(pad, -BND_WIDGET_HEIGHT - pad); + lslider->box.size = Vec(width - 2.f * pad, BND_WIDGET_HEIGHT); + addChild(lslider); + + box.size = Vec(width, lgradient->box.getBottomLeft().y); + } + + void draw(const DrawArgs& args) override { + bndMenuLabel(args.vg, 0.0, 0.0, box.size.x, box.size.y, -1, ""); + OpaqueWidget::draw(args); + } + + void step() override { + if (!color::isEqual(*color, hslcolor)) { + // color has been modified outside of this widget + + // Convert rgb to hsl + // Find greatest and smallest channel values + float cmin = std::min(color->r, std::min(color->g, color->b)); + float cmax = std::max(color->r, std::max(color->g, color->b)); + float delta = cmax - cmin; + + // Calculate hue + // No difference + if (delta == 0.f) + h = 0.f; + // Red is max + else if (cmax == color->r) + h = int((color->g - color->b) / delta) % 6; + // Green is max + else if (cmax == color->g) + h = (color->b - color->r) / delta + 2.f; + // Blue is max + else + h = (color->r - color->g) / delta + 4.f; + + h = round(h * 60.f); + // Make negative hues positive behind 360° + if (h < 0.f) + h += 360.f; + + h /= 360.f; + // Calculate lightness + l = (cmax + cmin) / 2; + // Calculate saturation + s = delta == 0 ? 0 : delta / (1 - abs(2 * l - 1)); + + hslcolor = *color; + } + OpaqueWidget::step(); + } + + void onAction(const ActionEvent& e) override { + e.consume(this); + } + + void updateColor() { + *color = hslcolor = nvgHSL(h, s, l); + } +}; // struct MenuColorPicker + +} // namespace StoermelderPackOne \ No newline at end of file From 9937f0afd2254896e59a28957710c72131545a40 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 21 Jan 2023 12:33:58 +0100 Subject: [PATCH 13/55] Sail - possible fix for crash #358 --- CHANGELOG.md | 2 ++ src/Sail.cpp | 13 ++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98c72b3..21c6276 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,8 @@ - Fixed crash on exiting Rack's after adding MB (#352) - Module [TRANSIT](./docs/Transit.md) - Allow disabling of "long-press" for changing the number of active snapshots (#354) +- Module [SAIL](./docs/Sail.md) + - Fixed occasional crash (#358) ## 2.0.beta3 diff --git a/src/Sail.cpp b/src/Sail.cpp index 7d198c4..46408f7 100644 --- a/src/Sail.cpp +++ b/src/Sail.cpp @@ -61,7 +61,6 @@ struct SailModule : Module { float valueBaseOut; float valuePrevious; - bool hoveredWidgetNull = true; WeakPtr hoveredWidget; int64_t hoveredModuleId = -1; int hoveredParamId = -1; @@ -111,11 +110,12 @@ struct SailModule : Module { incdecTarget -= step; } + ParamWidget* _hoveredWidget = hoveredWidget.get(); ParamQuantity* paramQuantity = NULL; - // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample - if (!hoveredWidgetNull && hoveredWidget.get() != nullptr) { - paramQuantity = hoveredWidget->getParamQuantity(); + if (_hoveredWidget != nullptr) { + paramQuantity = _hoveredWidget->getParamQuantity(); } + // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample if (processDivider.process() && paramQuantity && paramQuantity->module != this) { if (paramQuantity->module->id != hoveredModuleId || paramQuantity->paramId != hoveredParamId) { @@ -208,13 +208,12 @@ struct SailModule : Module { void setHoveredWidget(ParamWidget* pw) { if (pw) { - hoveredWidgetNull = false; if (hoveredModuleId != pw->module->id || hoveredParamId != pw->paramId) { hoveredWidget = pw; } } else { - hoveredWidgetNull = true; + hoveredWidget.set(nullptr); hoveredModuleId = -1; hoveredParamId = -1; } @@ -290,7 +289,7 @@ struct SailWidget : ThemedModuleWidget, OverlayMessageProvider { } void getOverlayMessage(int id, Message& m) override { - if (module->hoveredWidgetNull || module->overlayMessageId != id) return; + if (module->hoveredWidget.get() == nullptr || module->overlayMessageId != id) return; ParamWidget* pw = module->hoveredWidget.get(); if (pw == nullptr) return; ParamQuantity* paramQuantity = pw->getParamQuantity(); From 7d022f2173bc617d0f522ee710ebe5d45800846c Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 21 Jan 2023 16:52:46 +0100 Subject: [PATCH 14/55] Sail - possible fix for crash #358 --- src/Sail.cpp | 159 +++++++++++++++++++++++++++------------------------ 1 file changed, 84 insertions(+), 75 deletions(-) diff --git a/src/Sail.cpp b/src/Sail.cpp index 46408f7..66b6ddf 100644 --- a/src/Sail.cpp +++ b/src/Sail.cpp @@ -110,90 +110,92 @@ struct SailModule : Module { incdecTarget -= step; } - ParamWidget* _hoveredWidget = hoveredWidget.get(); - ParamQuantity* paramQuantity = NULL; - if (_hoveredWidget != nullptr) { - paramQuantity = _hoveredWidget->getParamQuantity(); - } - // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample - - if (processDivider.process() && paramQuantity && paramQuantity->module != this) { - if (paramQuantity->module->id != hoveredModuleId || paramQuantity->paramId != hoveredParamId) { - hoveredModuleId = paramQuantity->module->id; - hoveredParamId = paramQuantity->paramId; - overlayMessageId++; - // Current parameter value - valuePrevious = paramQuantity->getScaledValue(); - inVoltTarget = incdecTarget = slewLimiter.out = valuePrevious; - inVoltBase = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); + if (processDivider.process()) { + ParamQuantity* paramQuantity = NULL; + ParamWidget* _hoveredWidget = hoveredWidget.get(); + if (_hoveredWidget != nullptr) { + paramQuantity = _hoveredWidget->getParamQuantity(); } + // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample + + if (paramQuantity && paramQuantity->module != this) { + if (paramQuantity->module->id != hoveredModuleId || paramQuantity->paramId != hoveredParamId) { + hoveredModuleId = paramQuantity->module->id; + hoveredParamId = paramQuantity->paramId; + overlayMessageId++; + // Current parameter value + valuePrevious = paramQuantity->getScaledValue(); + inVoltTarget = incdecTarget = slewLimiter.out = valuePrevious; + inVoltBase = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); + } - if (paramQuantity->isBounded()) { - float valueNext = valuePrevious; - - if (inputs[INPUT_VALUE].isConnected()) { - // IN-port - float inVolt = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); - switch (inMode) { - case IN_MODE::DIFF: { - // Change since last time - float d1 = inVolt - inVoltBase; - inVoltBase = inVolt; - if (fineMod || inputs[INPUT_FINE].getVoltage() >= 1.f) d1 *= FINE; - // Actual change of parameter after slew limiting - float d2 = inVoltTarget - valuePrevious; - // Reapply the sum of both - valueNext = clamp(valuePrevious + d1 + d2, 0.f, 1.f); - inVoltTarget = valueNext; - break; - } - case IN_MODE::ABSOLUTE: { - // Only move on input voltage change - if (inVolt != inVoltBase) { - valueNext = inVolt; - // Detach when target value has been reached - if (valuePrevious == inVolt) inVoltBase = inVolt; + if (paramQuantity->isBounded()) { + float valueNext = valuePrevious; + + if (inputs[INPUT_VALUE].isConnected()) { + // IN-port + float inVolt = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); + switch (inMode) { + case IN_MODE::DIFF: { + // Change since last time + float d1 = inVolt - inVoltBase; + inVoltBase = inVolt; + if (fineMod || inputs[INPUT_FINE].getVoltage() >= 1.f) d1 *= FINE; + // Actual change of parameter after slew limiting + float d2 = inVoltTarget - valuePrevious; + // Reapply the sum of both + valueNext = clamp(valuePrevious + d1 + d2, 0.f, 1.f); + inVoltTarget = valueNext; + break; + } + case IN_MODE::ABSOLUTE: { + // Only move on input voltage change + if (inVolt != inVoltBase) { + valueNext = inVolt; + // Detach when target value has been reached + if (valuePrevious == inVolt) inVoltBase = inVolt; + } + break; } - break; } } - } - else { - // INC/DEC-ports - incdecTarget = clamp(incdecTarget, 0.f, 1.f); - valueNext = incdecTarget; - } + else { + // INC/DEC-ports + incdecTarget = clamp(incdecTarget, 0.f, 1.f); + valueNext = incdecTarget; + } - // Apply slew limiting - float slew = inputs[INPUT_SLEW].isConnected() ? clamp(inputs[INPUT_SLEW].getVoltage(), 0.f, 5.f) : params[PARAM_SLEW].getValue(); - if (slew > 0.f) { - slew = (1.f / slew) * 10.f; - slewLimiter.setRiseFall(slew, slew); - valueNext = slewLimiter.process(args.sampleTime * processDivider.getDivision(), valueNext); - } + // Apply slew limiting + float slew = inputs[INPUT_SLEW].isConnected() ? clamp(inputs[INPUT_SLEW].getVoltage(), 0.f, 5.f) : params[PARAM_SLEW].getValue(); + if (slew > 0.f) { + slew = (1.f / slew) * 10.f; + slewLimiter.setRiseFall(slew, slew); + valueNext = slewLimiter.process(args.sampleTime * processDivider.getDivision(), valueNext); + } - // Determine the relative change - float delta = valueNext - valuePrevious; - if (delta != 0.f) { - paramQuantity->moveScaledValue(delta); - valueBaseOut = paramQuantity->getScaledValue(); - if (overlayEnabled && overlayQueue.capacity() > 0) overlayQueue.push(overlayMessageId); - } + // Determine the relative change + float delta = valueNext - valuePrevious; + if (delta != 0.f) { + paramQuantity->moveScaledValue(delta); + valueBaseOut = paramQuantity->getScaledValue(); + if (overlayEnabled && overlayQueue.capacity() > 0) overlayQueue.push(overlayMessageId); + } - valuePrevious = valueNext; + valuePrevious = valueNext; - if (outputs[OUTPUT].isConnected()) { - switch (outMode) { - case OUT_MODE::REDUCED: { - float v = paramQuantity->getScaledValue(); - if (v != valueBaseOut) { - outputs[OUTPUT].setVoltage(v * 10.f); + if (outputs[OUTPUT].isConnected()) { + switch (outMode) { + case OUT_MODE::REDUCED: { + float v = paramQuantity->getScaledValue(); + if (v != valueBaseOut) { + outputs[OUTPUT].setVoltage(v * 10.f); + } + break; + } + case OUT_MODE::FULL: { + outputs[OUTPUT].setVoltage(paramQuantity->getScaledValue() * 10.f); + break; } - break; - } - case OUT_MODE::FULL: { - outputs[OUTPUT].setVoltage(paramQuantity->getScaledValue() * 10.f); - break; } } } @@ -201,6 +203,13 @@ struct SailModule : Module { } if (lightDivider.process()) { + ParamQuantity* paramQuantity = NULL; + ParamWidget* _hoveredWidget = hoveredWidget.get(); + if (_hoveredWidget != nullptr) { + paramQuantity = _hoveredWidget->getParamQuantity(); + } + // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample + bool active = paramQuantity && paramQuantity->isBounded() && paramQuantity->module != this; lights[LIGHT_ACTIVE].setSmoothBrightness(active ? 1.f : 0.f, args.sampleTime * lightDivider.getDivision()); } @@ -209,7 +218,7 @@ struct SailModule : Module { void setHoveredWidget(ParamWidget* pw) { if (pw) { if (hoveredModuleId != pw->module->id || hoveredParamId != pw->paramId) { - hoveredWidget = pw; + hoveredWidget.set(pw); } } else { From d40348a91c944734bc338466e42804f5fe1fbf99 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sun, 29 Jan 2023 10:44:01 +0100 Subject: [PATCH 15/55] Sail - revert f1e57f98bca2c359d7a832906da05c0aa6997407 --- src/Sail.cpp | 168 +++++++++++++++++++++++---------------------------- 1 file changed, 74 insertions(+), 94 deletions(-) diff --git a/src/Sail.cpp b/src/Sail.cpp index 66b6ddf..a831169 100644 --- a/src/Sail.cpp +++ b/src/Sail.cpp @@ -53,6 +53,7 @@ struct SailModule : Module { uint16_t overlayMessageId = 0; bool fineMod; + bool isSwitch; float inVoltBase; float inVoltTarget; @@ -61,9 +62,8 @@ struct SailModule : Module { float valueBaseOut; float valuePrevious; - WeakPtr hoveredWidget; - int64_t hoveredModuleId = -1; - int hoveredParamId = -1; + ParamQuantity* paramQuantity; + ParamQuantity* paramQuantityPriv; dsp::SchmittTrigger incTrigger; dsp::SchmittTrigger decTrigger; @@ -92,6 +92,7 @@ struct SailModule : Module { void onReset() override { Module::onReset(); + paramQuantity = NULL; inMode = IN_MODE::DIFF; outMode = OUT_MODE::REDUCED; slewLimiter.reset(); @@ -111,60 +112,53 @@ struct SailModule : Module { } if (processDivider.process()) { - ParamQuantity* paramQuantity = NULL; - ParamWidget* _hoveredWidget = hoveredWidget.get(); - if (_hoveredWidget != nullptr) { - paramQuantity = _hoveredWidget->getParamQuantity(); + // Copy to second variable as paramQuantity might become NULL through the app thread + if (paramQuantity != paramQuantityPriv) { + paramQuantityPriv = paramQuantity; + overlayMessageId++; + // Current parameter value + valuePrevious = paramQuantityPriv ? paramQuantityPriv->getScaledValue() : 0.f; + inVoltTarget = incdecTarget = slewLimiter.out = valuePrevious; + inVoltBase = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); } - // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample - - if (paramQuantity && paramQuantity->module != this) { - if (paramQuantity->module->id != hoveredModuleId || paramQuantity->paramId != hoveredParamId) { - hoveredModuleId = paramQuantity->module->id; - hoveredParamId = paramQuantity->paramId; - overlayMessageId++; - // Current parameter value - valuePrevious = paramQuantity->getScaledValue(); - inVoltTarget = incdecTarget = slewLimiter.out = valuePrevious; - inVoltBase = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); - } - if (paramQuantity->isBounded()) { - float valueNext = valuePrevious; - - if (inputs[INPUT_VALUE].isConnected()) { - // IN-port - float inVolt = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); - switch (inMode) { - case IN_MODE::DIFF: { - // Change since last time - float d1 = inVolt - inVoltBase; - inVoltBase = inVolt; - if (fineMod || inputs[INPUT_FINE].getVoltage() >= 1.f) d1 *= FINE; - // Actual change of parameter after slew limiting - float d2 = inVoltTarget - valuePrevious; - // Reapply the sum of both - valueNext = clamp(valuePrevious + d1 + d2, 0.f, 1.f); - inVoltTarget = valueNext; - break; - } - case IN_MODE::ABSOLUTE: { - // Only move on input voltage change - if (inVolt != inVoltBase) { - valueNext = inVolt; - // Detach when target value has been reached - if (valuePrevious == inVolt) inVoltBase = inVolt; - } - break; + if (paramQuantityPriv && paramQuantityPriv->isBounded() && paramQuantityPriv->module != this) { + float valueNext = valuePrevious; + + if (inputs[INPUT_VALUE].isConnected()) { + // IN-port + float inVolt = clamp(inputs[INPUT_VALUE].getVoltage() / 10.f, 0.f, 1.f); + switch (inMode) { + case IN_MODE::DIFF: { + // Change since last time + float d1 = inVolt - inVoltBase; + inVoltBase = inVolt; + if (fineMod || inputs[INPUT_FINE].getVoltage() >= 1.f) d1 *= FINE; + // Actual change of parameter after slew limiting + float d2 = inVoltTarget - valuePrevious; + // Reapply the sum of both + valueNext = clamp(valuePrevious + d1 + d2, 0.f, 1.f); + inVoltTarget = valueNext; + break; + } + case IN_MODE::ABSOLUTE: { + // Only move on input voltage change + if (inVolt != inVoltBase) { + valueNext = inVolt; + // Detach when target value has been reached + if (valuePrevious == inVolt) inVoltBase = inVolt; } + break; } } - else { - // INC/DEC-ports - incdecTarget = clamp(incdecTarget, 0.f, 1.f); - valueNext = incdecTarget; - } + } + else { + // INC/DEC-ports + incdecTarget = clamp(incdecTarget, 0.f, 1.f); + valueNext = incdecTarget; + } + if (!isSwitch) { // Apply slew limiting float slew = inputs[INPUT_SLEW].isConnected() ? clamp(inputs[INPUT_SLEW].getVoltage(), 0.f, 5.f) : params[PARAM_SLEW].getValue(); if (slew > 0.f) { @@ -176,26 +170,26 @@ struct SailModule : Module { // Determine the relative change float delta = valueNext - valuePrevious; if (delta != 0.f) { - paramQuantity->moveScaledValue(delta); - valueBaseOut = paramQuantity->getScaledValue(); + paramQuantityPriv->moveScaledValue(delta); + valueBaseOut = paramQuantityPriv->getScaledValue(); if (overlayEnabled && overlayQueue.capacity() > 0) overlayQueue.push(overlayMessageId); } + } - valuePrevious = valueNext; + valuePrevious = valueNext; - if (outputs[OUTPUT].isConnected()) { - switch (outMode) { - case OUT_MODE::REDUCED: { - float v = paramQuantity->getScaledValue(); - if (v != valueBaseOut) { - outputs[OUTPUT].setVoltage(v * 10.f); - } - break; - } - case OUT_MODE::FULL: { - outputs[OUTPUT].setVoltage(paramQuantity->getScaledValue() * 10.f); - break; + if (outputs[OUTPUT].isConnected()) { + switch (outMode) { + case OUT_MODE::REDUCED: { + float v = paramQuantityPriv->getScaledValue(); + if (v != valueBaseOut) { + outputs[OUTPUT].setVoltage(v * 10.f); } + break; + } + case OUT_MODE::FULL: { + outputs[OUTPUT].setVoltage(paramQuantityPriv->getScaledValue() * 10.f); + break; } } } @@ -203,31 +197,11 @@ struct SailModule : Module { } if (lightDivider.process()) { - ParamQuantity* paramQuantity = NULL; - ParamWidget* _hoveredWidget = hoveredWidget.get(); - if (_hoveredWidget != nullptr) { - paramQuantity = _hoveredWidget->getParamQuantity(); - } - // paramQuantity is guaranteed to be existing after this point as we are in the middle of a sample - - bool active = paramQuantity && paramQuantity->isBounded() && paramQuantity->module != this; + bool active = paramQuantityPriv && paramQuantityPriv->isBounded() && paramQuantityPriv->module != this; lights[LIGHT_ACTIVE].setSmoothBrightness(active ? 1.f : 0.f, args.sampleTime * lightDivider.getDivision()); } } - void setHoveredWidget(ParamWidget* pw) { - if (pw) { - if (hoveredModuleId != pw->module->id || hoveredParamId != pw->paramId) { - hoveredWidget.set(pw); - } - } - else { - hoveredWidget.set(nullptr); - hoveredModuleId = -1; - hoveredParamId = -1; - } - } - json_t* dataToJson() override { json_t *rootJ = json_object(); json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); @@ -284,11 +258,19 @@ struct SailWidget : ThemedModuleWidget, OverlayMessageProvider { void step() override { ThemedModuleWidget::step(); if (!module) return; - module->fineMod = APP->window->getMods() & GLFW_MOD_SHIFT; Widget* w = APP->event->getHoveredWidget(); - ParamWidget* pw = dynamic_cast(w); - module->setHoveredWidget(pw); + if (!w) { module->paramQuantity = NULL; return; } + ParamWidget* p = dynamic_cast(w); + if (!p) { module->paramQuantity = NULL; return; } + ParamQuantity* q = p->getParamQuantity(); + if (!q) { module->paramQuantity = NULL; return; } + + Switch* sw = dynamic_cast(p); + + module->paramQuantity = q; + module->fineMod = APP->window->getMods() & GLFW_MOD_SHIFT; + module->isSwitch = sw != NULL; } int nextOverlayMessageId() override { @@ -298,10 +280,8 @@ struct SailWidget : ThemedModuleWidget, OverlayMessageProvider { } void getOverlayMessage(int id, Message& m) override { - if (module->hoveredWidget.get() == nullptr || module->overlayMessageId != id) return; - ParamWidget* pw = module->hoveredWidget.get(); - if (pw == nullptr) return; - ParamQuantity* paramQuantity = pw->getParamQuantity(); + if (module->overlayMessageId != id) return; + ParamQuantity* paramQuantity = module->paramQuantityPriv; if (!paramQuantity) return; m.title = paramQuantity->getDisplayValueString() + paramQuantity->getUnit(); From fb73676b10a8f6a1f634c774cf82a24ccb9f9b1c Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 12:47:02 +0200 Subject: [PATCH 16/55] Spin - fixed middle mouse button handling #372 --- CHANGELOG.md | 2 ++ src/Spin.cpp | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 21c6276..06f4032 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,8 @@ - Allow disabling of "long-press" for changing the number of active snapshots (#354) - Module [SAIL](./docs/Sail.md) - Fixed occasional crash (#358) +- Module [SPIN](./docs/Spin.md) + - Fixed middle mouse button handling in Rack v2 (#372) ## 2.0.beta3 diff --git a/src/Spin.cpp b/src/Spin.cpp index 6285d34..6763419 100644 --- a/src/Spin.cpp +++ b/src/Spin.cpp @@ -192,13 +192,13 @@ struct SpinWidget : ThemedModuleWidget { mwContainer = new SpinContainer; mwContainer->module = module; // This is where the magic happens: add a new widget on top-level to Rack - APP->scene->rack->addChild(mwContainer); + APP->scene->addChild(mwContainer); } } ~SpinWidget() { if (module) { - APP->scene->rack->removeChild(mwContainer); + APP->scene->removeChild(mwContainer); delete mwContainer; } } From 215316e4c31f3406402bdfd1b933400dc143a497 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 13:03:05 +0200 Subject: [PATCH 17/55] Mb - added missing template loading on module add #369 --- CHANGELOG.md | 1 + src/mb/Mb_v06.hpp | 3 +++ src/mb/Mb_v1.cpp | 3 +++ 3 files changed, 7 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 06f4032..0f757f9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ - Added HSL color picker - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) + - Added missing template loading after adding a module (#369) - Module [TRANSIT](./docs/Transit.md) - Allow disabling of "long-press" for changing the number of active snapshots (#354) - Module [SAIL](./docs/Sail.md) diff --git a/src/mb/Mb_v06.hpp b/src/mb/Mb_v06.hpp index 337f85b..9aacdb2 100644 --- a/src/mb/Mb_v06.hpp +++ b/src/mb/Mb_v06.hpp @@ -174,6 +174,9 @@ struct ModelItem : BrowserListItem { if (!moduleWidget) return; APP->scene->rack->addModuleAtMouse(moduleWidget); + // Load template preset + moduleWidget->loadTemplate(); + // Push ModuleAdd history action history::ModuleAdd* h = new history::ModuleAdd; h->name = "create module"; diff --git a/src/mb/Mb_v1.cpp b/src/mb/Mb_v1.cpp index 742cbed..674b9cb 100644 --- a/src/mb/Mb_v1.cpp +++ b/src/mb/Mb_v1.cpp @@ -135,6 +135,9 @@ static ModuleWidget* chooseModel(plugin::Model* model) { assert(moduleWidget); APP->scene->rack->addModuleAtMouse(moduleWidget); + // Load template preset + moduleWidget->loadTemplate(); + // Push ModuleAdd history action history::ModuleAdd* h = new history::ModuleAdd; h->name = "create module"; From 11c8806907f6ddd818078571f5cddbc61a29f3de Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 13:20:39 +0200 Subject: [PATCH 18/55] Grip - fixed broken parameter locking #360 --- CHANGELOG.md | 2 ++ src/Grip.cpp | 10 ++++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f757f9..97b8dc9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,6 +23,8 @@ - Added HSL color picker for bound modules' box - Module [GLUE](./docs/Glue.md) - Added HSL color picker +- Module [GRIP](./docs/Grip.md) + - Fixed broken parameter locking (#360) - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) - Added missing template loading after adding a module (#369) diff --git a/src/Grip.cpp b/src/Grip.cpp index c333278..ac168ad 100644 --- a/src/Grip.cpp +++ b/src/Grip.cpp @@ -57,16 +57,18 @@ struct GripModule : CVMapModuleBase { ParamQuantity* paramQuantity = getParamQuantity(i); if (paramQuantity == NULL) continue; - // Set ParamQuantity - //paramQuantity->setScaledValue(lastValue[i]); - float vScaled = math::rescale(lastValue[i], 0.f, 1.f, paramQuantity->getMinValue(), paramQuantity->getMaxValue()); - paramQuantity->getParam()->setValue(vScaled); + if (paramQuantity->getScaledValue() != lastValue[i]) { + // Set ParamQuantity + paramQuantity->setScaledValue(lastValue[i]); + } } } if (lightDivider.process()) { lights[LIGHT_BIND].setBrightness(learningId >= 0 ? 1.f : 0.f); } + + CVMapModuleBase::process(args); } void commitLearn() override { From b1b51ef1a8a6b0140c6a467ba2c8c63187fa4101 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 13:31:39 +0200 Subject: [PATCH 19/55] updated to Rack Sdk 2.4.1 --- README.md | 2 +- azure-pipelines.yml | 6 +++--- scripts/plugin-builder.sh | 8 ++++---- scripts/release-notes.sh | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 201a087..57e9a30 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ![Version](https://img.shields.io/badge/version-2.0.beta2-green.svg?style=flat-square) -![Rack SDK](https://img.shields.io/badge/Rack--SDK-2.1.0-red.svg?style=flat-square) +![Rack SDK](https://img.shields.io/badge/Rack--SDK-2.4.1-red.svg?style=flat-square) ![License](https://img.shields.io/badge/license-GPLv3+-blue.svg?style=flat-square) ![Language](https://img.shields.io/badge/language-C++-yellow.svg?style=flat-square) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8bf0c9e..7d24535 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -35,7 +35,7 @@ jobs: uname -a git submodule update --init --recursive pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.1.0-win.zip + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-win-x64.zip unzip Rack-SDK.zip displayName: Get Windows Rack-SDK condition: variables.isWindows @@ -44,7 +44,7 @@ jobs: uname -a git submodule update --init --recursive pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.1.0-mac.zip + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-mac-x64.zip unzip Rack-SDK.zip displayName: Get Mac Rack-SDK condition: variables.isMac @@ -53,7 +53,7 @@ jobs: uname -a git submodule update --init --recursive pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.1.0-lin.zip + curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-lin-x64.zip unzip Rack-SDK.zip displayName: Get Linux Rack-SDK condition: variables.isLinux diff --git a/scripts/plugin-builder.sh b/scripts/plugin-builder.sh index 81f94f7..4d3b6a2 100644 --- a/scripts/plugin-builder.sh +++ b/scripts/plugin-builder.sh @@ -27,21 +27,21 @@ EOF } un=`uname` -sdkversion=2.0.6 +sdkversion=2.4.1 sdk="https://vcvrack.com/downloads/Rack-SDK-${sdkversion}.zip" slug=`jq -r '{slug} | .[]' plugin.json ` if [ $un = "Darwin" ]; then - runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-mac.zip" + runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-mac-x64.zip" plugin=plugin.dylib mac=true fi if [ $un = "Linux" ]; then - runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-lin.zip" + runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-lin-x64.zip" plugin=plugin.so fi if [ -z "$runtime" ]; then - runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-win.zip" + runtime="https://vcvrack.com/downloads/Rack-${sdkversion}-win-x64.zip" plugin=plugin.dll fi diff --git a/scripts/release-notes.sh b/scripts/release-notes.sh index 44cca26..bec98f9 100644 --- a/scripts/release-notes.sh +++ b/scripts/release-notes.sh @@ -8,9 +8,9 @@ This build is automatically generated every time I push my changes. As such it i The latest stable build can be found at the [VCV Library](https://vcvrack.com/plugins.html#packone). These assets were built against -https://vcvrack.com/downloads/Rack-SDK-2.1.0-win.zip -https://vcvrack.com/downloads/Rack-SDK-2.1.0-mac.zip -https://vcvrack.com/downloads/Rack-SDK-2.1.0-lin.zip +https://vcvrack.com/downloads/Rack-SDK-2.4.1-win-x64.zip +https://vcvrack.com/downloads/Rack-SDK-2.4.1-mac-x64.zip +https://vcvrack.com/downloads/Rack-SDK-2.4.1-lin-x64.zip Used build environments: macos-11 From 586b7958a7a7c4c534cb058118348abd0ce3c64c Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 13:49:10 +0200 Subject: [PATCH 20/55] fixed filename for automatic Windows build --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index df0d805..f5e099e 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ RACK_DIR ?= ../.. -SOURCES += $(wildcard src/*.cpp) $(wildcard src/mb/*.cpp) $(wildcard src/drivers/*.cpp) +SOURCES += $(wildcard src/*.cpp) $(wildcard src/mb/*.cpp) $(wildcard src/drivers/*.cpp) src/elk/elk.c DISTRIBUTABLES += $(wildcard LICENSE*) res presets @@ -20,4 +20,4 @@ endif @# Copy distributables cp -R $(DISTRIBUTABLES) dist/$(SLUG)/ @# Create vcvplugin package - cd dist && tar -c $(SLUG) | zstd -$(ZSTD_COMPRESSION_LEVEL) -o "$(SLUG)"-"$(VERSION)"-$(ARCH_OS_NAME).vcvplugin \ No newline at end of file + cd dist && tar -c $(SLUG) | zstd -$(ZSTD_COMPRESSION_LEVEL) -o "$(SLUG)"-"$(VERSION)"-$(ARCH_NAME).vcvplugin \ No newline at end of file From 296796f346c5e733e77c02660813e89cf481e2b4 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 14:01:53 +0200 Subject: [PATCH 21/55] fixed Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index f5e099e..6b94b53 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,6 @@ RACK_DIR ?= ../.. -SOURCES += $(wildcard src/*.cpp) $(wildcard src/mb/*.cpp) $(wildcard src/drivers/*.cpp) src/elk/elk.c +SOURCES += $(wildcard src/*.cpp) $(wildcard src/mb/*.cpp) $(wildcard src/drivers/*.cpp) DISTRIBUTABLES += $(wildcard LICENSE*) res presets From a4281a7c0dcee81ab71ed2f6327e27adfdd4a656 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 15:27:39 +0200 Subject: [PATCH 22/55] Rotor - possible fix for #365 --- src/RotorA.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/RotorA.cpp b/src/RotorA.cpp index d479437..14d26cf 100644 --- a/src/RotorA.cpp +++ b/src/RotorA.cpp @@ -80,7 +80,7 @@ struct RotorAModule : Module { float mod = clamp(inputs[MOD_INPUT].getVoltage(), 0.f, 10.f); float mod_p = mod / channelsSplit; - int mod_c = floor(mod_p); + int mod_c = std::min(std::max((int)floor(mod_p), 0), 14); float mod_p2 = mod_p - (float)mod_c; float mod_p1 = 1.f - mod_p2; From d6990352c03a33891445bdd16d5d7565d5622a14 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 16:27:32 +0200 Subject: [PATCH 23/55] Flower - fixed deprecation warnings on Rack Sdk --- src/FlowerSeq.hpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/FlowerSeq.hpp b/src/FlowerSeq.hpp index 4367042..d07b578 100644 --- a/src/FlowerSeq.hpp +++ b/src/FlowerSeq.hpp @@ -26,26 +26,26 @@ struct SeqStepParamQuantity : ParamQuantity { switch (module->seq.outCvMode) { case OUT_CV_MODE::BI_10V: case OUT_CV_MODE::BI_5V: - case OUT_CV_MODE::BI_1V: return getSmoothValue() * 2.f - 1.f; + case OUT_CV_MODE::BI_1V: return getValue() * 2.f - 1.f; case OUT_CV_MODE::UNI_10V: case OUT_CV_MODE::UNI_5V: case OUT_CV_MODE::UNI_3V: case OUT_CV_MODE::UNI_2V: case OUT_CV_MODE::UNI_1V: - default: return getSmoothValue(); + default: return getValue(); } } else { switch (module->seq.outCvMode) { - case OUT_CV_MODE::BI_10V: return getSmoothValue() * 20.f - 10.f; - case OUT_CV_MODE::BI_5V: return getSmoothValue() * 10.f - 5.f; - case OUT_CV_MODE::BI_1V: return getSmoothValue() * 2.f - 1.f; - case OUT_CV_MODE::UNI_10V: return getSmoothValue() * 10.f; - case OUT_CV_MODE::UNI_5V: return getSmoothValue() * 5.f; - case OUT_CV_MODE::UNI_3V: return getSmoothValue() * 3.f; - case OUT_CV_MODE::UNI_2V: return getSmoothValue() * 2.f; + case OUT_CV_MODE::BI_10V: return getValue() * 20.f - 10.f; + case OUT_CV_MODE::BI_5V: return getValue() * 10.f - 5.f; + case OUT_CV_MODE::BI_1V: return getValue() * 2.f - 1.f; + case OUT_CV_MODE::UNI_10V: return getValue() * 10.f; + case OUT_CV_MODE::UNI_5V: return getValue() * 5.f; + case OUT_CV_MODE::UNI_3V: return getValue() * 3.f; + case OUT_CV_MODE::UNI_2V: return getValue() * 2.f; case OUT_CV_MODE::UNI_1V: - default: return getSmoothValue(); + default: return getValue(); } } } From d00e315be022ce8acb6a3bddace27057ee0f4566 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 3 Oct 2023 18:13:25 +0200 Subject: [PATCH 24/55] 8Face mk2 - fixed module-mapping when using Strip/Strip++ --- src/EightFaceMk2.cpp | 1 - src/EightFaceMk2Base.hpp | 9 ++++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index 1ecf2ac..7429225 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -761,7 +761,6 @@ struct EightFaceMk2Module : EightFaceMk2Base { } inChange = false; - BASE::idFixClearMap(); BASE::dataFromJson(rootJ); Module::params[PARAM_RW].setValue(0.f); diff --git a/src/EightFaceMk2Base.hpp b/src/EightFaceMk2Base.hpp index f6374f5..9f1e699 100644 --- a/src/EightFaceMk2Base.hpp +++ b/src/EightFaceMk2Base.hpp @@ -96,10 +96,17 @@ struct EightFaceMk2Base : Module, StripIdFixModule { json_t* vJ; size_t j; json_array_foreach(slotJ, j, vJ) { - preset[presetIndex].push_back(json_deep_copy(vJ)); + vJ = json_deep_copy(vJ); + json_t* idJ = json_object_get(vJ, "id"); + int64_t moduleId = json_integer_value(idJ); + moduleId = idFix(moduleId); + json_object_set(vJ, "id", json_integer(moduleId)); + preset[presetIndex].push_back(vJ); } } } + + idFixClearMap(); } }; From 45f8c8b596703f34eef00377a306907c3b831966 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Wed, 4 Oct 2023 13:38:50 +0200 Subject: [PATCH 25/55] Strip - added null-checks for esoteric modules #366 --- CHANGELOG.md | 3 +++ src/Strip.cpp | 27 +++++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 97b8dc9..96e6751 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ - Module [8FACE mk2](./docs/EightFaceMk2.md) - Allow disabling of "long-press" for changing the number of active slots (#354) - Added HSL color picker for bound modules' box + - Fixed broken module-id mapping when adding using STRIP or STRIP++ - Module [GLUE](./docs/Glue.md) - Added HSL color picker - Module [GRIP](./docs/Grip.md) @@ -32,6 +33,8 @@ - Allow disabling of "long-press" for changing the number of active snapshots (#354) - Module [SAIL](./docs/Sail.md) - Fixed occasional crash (#358) +- Module [STRIP](./docs/Strip.md) + - Fixed crash in rare cases (Surge-modules) (#366) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) diff --git a/src/Strip.cpp b/src/Strip.cpp index b627948..0cc95c4 100644 --- a/src/Strip.cpp +++ b/src/Strip.cpp @@ -242,7 +242,7 @@ struct StripModule : StripModuleBase { if (!mw) return; for (ParamWidget* param : mw->getParams()) { ParamQuantity* paramQuantity = param->getParamQuantity(); - if (!paramQuantity->randomizeEnabled) continue; + if (!paramQuantity || !paramQuantity->randomizeEnabled) continue; switch (randomExcl) { case RANDOMEXCL::NONE: @@ -288,7 +288,7 @@ struct StripModule : StripModuleBase { if (!mw) return; for (ParamWidget* param : mw->getParams()) { ParamQuantity* paramQuantity = param->getParamQuantity(); - if (!paramQuantity->randomizeEnabled) continue; + if (!paramQuantity || !paramQuantity->randomizeEnabled) continue; switch (randomExcl) { case RANDOMEXCL::NONE: @@ -430,10 +430,13 @@ struct ExcludeButton : TL1105 { // Check if a ParamWidget was touched // NB: unstable API ParamWidget* touchedParam = APP->scene->rack->touchedParam; - if (touchedParam && touchedParam->getParamQuantity() && touchedParam->getParamQuantity()->module != module) { - int64_t moduleId = touchedParam->getParamQuantity()->module->id; - int paramId = touchedParam->getParamQuantity()->paramId; - groupExcludeParam(moduleId, paramId); + if (touchedParam) { + ParamQuantity* paramQuantity = touchedParam->getParamQuantity(); + if (paramQuantity && paramQuantity->module != module) { + int64_t moduleId = paramQuantity->module->id; + int paramId = paramQuantity->paramId; + groupExcludeParam(moduleId, paramId); + } } } @@ -483,7 +486,8 @@ struct ExcludeButton : TL1105 { if (m->rightExpander.moduleId == moduleId) { ModuleWidget* mw = APP->scene->rack->getModule(m->rightExpander.moduleId); for (ParamWidget* param : mw->getParams()) { - if (param->getParamQuantity() && param->getParamQuantity()->paramId == paramId) { + ParamQuantity* paramQuantity = param->getParamQuantity(); + if (paramQuantity && paramQuantity->paramId == paramId) { // Aquire excludeMutex to get exclusive access to excludedParams std::lock_guard lockGuard(module->excludeMutex); module->excludedParams.insert(std::make_tuple(moduleId, paramId)); @@ -503,7 +507,8 @@ struct ExcludeButton : TL1105 { if (m->leftExpander.moduleId == moduleId) { ModuleWidget* mw = APP->scene->rack->getModule(m->leftExpander.moduleId); for (ParamWidget* param : mw->getParams()) { - if (param->getParamQuantity() && param->getParamQuantity()->paramId == paramId) { + ParamQuantity* paramQuantity = param->getParamQuantity(); + if (paramQuantity && paramQuantity->paramId == paramId) { // Aquire excludeMutex to get exclusive access to excludedParams std::lock_guard lockGuard(module->excludeMutex); module->excludedParams.insert(std::make_tuple(moduleId, paramId)); @@ -602,11 +607,13 @@ struct ExcludeButton : TL1105 { if (!moduleWidget) continue; ParamWidget* paramWidget = moduleWidget->getParam(paramId); if (!paramWidget) continue; - + ParamQuantity* paramQuantity = paramWidget->getParamQuantity(); + if (!paramQuantity) continue; + std::string text = "Parameter \""; text += moduleWidget->model->name; text += " "; - text += paramWidget->getParamQuantity()->getLabel(); + text += paramQuantity->getLabel(); text += "\""; ui::MenuLabel* modelLabel = new ui::MenuLabel; From 94d4c3455a63e33cf5b229dc24d74c361b9f36c2 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Wed, 4 Oct 2023 14:19:17 +0200 Subject: [PATCH 26/55] Strip - don't use history for bypass, possible fix #355 #364 --- src/Strip.cpp | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/Strip.cpp b/src/Strip.cpp index 0cc95c4..c8acb34 100644 --- a/src/Strip.cpp +++ b/src/Strip.cpp @@ -136,7 +136,8 @@ struct StripModule : StripModuleBase { } void groupDisable(bool val, bool useHistory) { - taskWorker.work([=]() { groupDisableWorker(val, useHistory); }); + //taskWorker.work([=]() { groupDisableWorker(val, useHistory); }); + taskWorker.work([=]() { groupDisableWorker(val, false); }); } /** @@ -162,11 +163,6 @@ struct StripModule : StripModuleBase { // This is what "Module.hpp" says about bypass: // "Module subclasses should not read/write this variable." APP->engine->bypassModule(m->rightExpander.module, val); - // Clear outputs and set to 1 channel - for (Output& output : m->rightExpander.module->outputs) { - // This zeros all voltages, but the channel is set to 1 if connected - output.setChannels(0); - } if (useHistory) { // history::ModuleBypass @@ -188,11 +184,6 @@ struct StripModule : StripModuleBase { // This is what "Module.hpp" says about bypass: // "Module subclasses should not read/write this variable." APP->engine->bypassModule(m->leftExpander.module, val); - // Clear outputs and set to 1 channel - for (Output& output : m->leftExpander.module->outputs) { - // This zeros all voltages, but the channel is set to 1 if connected - output.setChannels(0); - } if (useHistory) { // history::ModuleBypass From e1403f623eae3bf6b91e204851ad7026bfe5b339 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Wed, 4 Oct 2023 19:13:29 +0200 Subject: [PATCH 27/55] added panel option to follow Rack's dark panel setting --- CHANGELOG.md | 1 + src/pluginsettings.hpp | 2 +- src/ui/ThemedModuleWidget.hpp | 41 ++++++++++++++++++++--------------- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 96e6751..d1fc98a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -37,6 +37,7 @@ - Fixed crash in rare cases (Surge-modules) (#366) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) +- Added panel option to follow Rack's dark panel setting ## 2.0.beta3 diff --git a/src/pluginsettings.hpp b/src/pluginsettings.hpp index 2fe37d7..453774b 100644 --- a/src/pluginsettings.hpp +++ b/src/pluginsettings.hpp @@ -2,7 +2,7 @@ struct StoermelderSettings { - int panelThemeDefault = 0; + int panelThemeDefault = -1; json_t* mbModelsJ; float mbV1zoom = 0.85f; diff --git a/src/ui/ThemedModuleWidget.hpp b/src/ui/ThemedModuleWidget.hpp index 245b833..e74c0e5 100644 --- a/src/ui/ThemedModuleWidget.hpp +++ b/src/ui/ThemedModuleWidget.hpp @@ -60,18 +60,6 @@ struct ThemedModuleWidget : BASE { } Menu* createChildMenu() override { - struct PanelThemeItem : MenuItem { - MODULE* module; - int theme; - void onAction(const event::Action& e) override { - module->panelTheme = theme; - } - void step() override { - rightText = module->panelTheme == theme ? "✔" : ""; - MenuItem::step(); - } - }; - struct PanelThemeDefaultItem : MenuItem { int theme; void onAction(const event::Action& e) override { @@ -85,11 +73,22 @@ struct ThemedModuleWidget : BASE { }; Menu* menu = new Menu; - menu->addChild(construct(&MenuItem::text, "Blue", &PanelThemeItem::module, module, &PanelThemeItem::theme, 0)); - menu->addChild(construct(&MenuItem::text, "Dark", &PanelThemeItem::module, module, &PanelThemeItem::theme, 1)); + menu->addChild(StoermelderPackOne::Rack::createValuePtrMenuItem("Blue", &module->panelTheme, 0)); + menu->addChild(StoermelderPackOne::Rack::createValuePtrMenuItem("Dark", &module->panelTheme, 1)); menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Blue as default", &PanelThemeDefaultItem::theme, 0)); menu->addChild(construct(&MenuItem::text, "Dark as default", &PanelThemeDefaultItem::theme, 1)); + menu->addChild(new MenuSeparator); + menu->addChild(createBoolMenuItem("Use Rack setting", "", + [=]() { + return module->panelTheme == -1; + }, + [=](bool b) { + pluginSettings.panelThemeDefault = -1; + pluginSettings.saveToJson(); + module->panelTheme = -1; + } + )); return menu; } }; @@ -100,9 +99,17 @@ struct ThemedModuleWidget : BASE { } void step() override { - if (module && module->panelTheme != panelTheme) { - panelTheme = module->panelTheme; - BASE::setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, panel()))); + if (module) { + if (module->panelTheme == -1) { + if ((int)settings::preferDarkPanels != panelTheme) { + panelTheme = (int)settings::preferDarkPanels; + BASE::setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, panel()))); + } + } + else if (module->panelTheme != panelTheme) { + panelTheme = module->panelTheme; + BASE::setPanel(APP->window->loadSvg(asset::plugin(pluginInstance, panel()))); + } } BASE::step(); } From 6cfac3808238367d35984ecd7fefcbbec9e21095 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Wed, 4 Oct 2023 20:29:54 +0200 Subject: [PATCH 28/55] Stroke - added cmds for zooming to a specific module #357 --- CHANGELOG.md | 2 + docs/Stroke.md | 7 +++- src/Stroke.cpp | 103 +++++++++++++++++++++++++++++++++++++++++++++++-- 3 files changed, 107 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d1fc98a..92fdf2e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,8 @@ - Fixed occasional crash (#358) - Module [STRIP](./docs/Strip.md) - Fixed crash in rare cases (Surge-modules) (#366) +- Module [STROKE](./docs/Stroke.md) + - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) - Added panel option to follow Rack's dark panel setting diff --git a/docs/Stroke.md b/docs/Stroke.md index 3d0a8e5..681ef07 100644 --- a/docs/Stroke.md +++ b/docs/Stroke.md @@ -35,6 +35,10 @@ The module also supports mouse-button events: If your mouse has more than three Centers the module on the screen which is currently hovered by the mouse pointer. The zoom level can be user-defined in the context menu. - **Zoom level to module (smooth)** (added in v1.9.0) Same as "Zoom level to module" but changes the view smoothly. +- **Zoom to specific module** (added in v2.0.0) + Centers a specific module of the patch on the screen. Before this command can be used a module has to be "learned" by the option in the context sub-menu and pointing to a module. While learning a module is active the slot display turns red temporarily. +- **Zoom to specific module (smooth)** (added in v2.0.0) + Same as "Zoom to specific module" but changes the view smoothly. - **Zoom out** Zooms out the current view so that everything fits on the screen. - **Zoom out (smooth)** (added in v1.9.0) @@ -122,4 +126,5 @@ The module also supports mouse-button events: If your mouse has more than three - v1.10.0 - Improved behavior of parameter copy/paste commands (#273) - v2.0.0 - - Added commands "Add random module", "Save module preset" and "Save module default preset" (#345) \ No newline at end of file + - Added commands "Add random module", "Save module preset" and "Save module default preset" (#345) + - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) \ No newline at end of file diff --git a/src/Stroke.cpp b/src/Stroke.cpp index 8c704dd..e11e8b8 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -22,6 +22,8 @@ enum class KEY_MODE { S_ZOOM_MODULE_30_SMOOTH = 141, S_ZOOM_MODULE_CUSTOM = 16, S_ZOOM_MODULE_CUSTOM_SMOOTH = 161, + S_ZOOM_MODULE_ID = 17, + S_ZOOM_MODULE_ID_SMOOTH = 171, S_ZOOM_OUT = 13, S_ZOOM_OUT_SMOOTH = 131, S_ZOOM_TOGGLE = 15, @@ -332,6 +334,38 @@ struct CmdZoomModuleCustomSmooth : CmdBase { }; // struct CmdZoomModuleCustomSmooth +struct CmdZoomModuleId : CmdBase { + std::string* data; + float scale; + void initialCmd(KEY_MODE keyMode) override { + if (*data == "") return; + int64_t moduleId = std::stoll(*data); + ModuleWidget* mw = APP->scene->rack->getModule(moduleId); + if (!mw) return; + StoermelderPackOne::Rack::ViewportCenter{mw, scale}; + } +}; // struct CmdZoomModuleId + + +struct CmdZoomModuleIdSmooth : CmdBase { + std::string* data; + float scale; + StoermelderPackOne::Rack::ViewportCenterSmooth viewportCenterSmooth; + void initialCmd(KEY_MODE keyMode) override { + if (*data == "") return; + int64_t moduleId = std::stoll(*data); + ModuleWidget* mw = APP->scene->rack->getModule(moduleId); + if (!mw) return; + Vec p = mw->box.size.mult(Vec(1.f - scale, 1.f - scale)); + viewportCenterSmooth.trigger(mw->box.grow(p), 1.f / APP->window->getLastFrameDuration(), 0.6f); + } + void step() override { + viewportCenterSmooth.process(); + } +}; // struct CmdZoomModuleIdSmooth + + + struct CmdZoomOut : CmdBase { void initialCmd(KEY_MODE keyMode) override { zoomOut(); @@ -907,6 +941,10 @@ struct KeyContainer : Widget { processCmd(&CmdZoomModuleCustom::data, &module->keyTemp->data); break; case KEY_MODE::S_ZOOM_MODULE_CUSTOM_SMOOTH: processCmd(&CmdZoomModuleCustomSmooth::data, &module->keyTemp->data); break; + case KEY_MODE::S_ZOOM_MODULE_ID: + processCmd(&CmdZoomModuleId::data, &module->keyTemp->data, &CmdZoomModuleId::scale, 0.9f); break; + case KEY_MODE::S_ZOOM_MODULE_ID_SMOOTH: + processCmd(&CmdZoomModuleIdSmooth::data, &module->keyTemp->data, &CmdZoomModuleIdSmooth::scale, 0.95f); break; case KEY_MODE::S_ZOOM_OUT: processCmd(); break; case KEY_MODE::S_ZOOM_OUT_SMOOTH: @@ -1169,6 +1207,7 @@ struct KeyDisplay : StoermelderLedDisplay { struct ViewMenuItem : MenuItem { StrokeModule* module; + KeyContainer* keyContainer; int idx; void step() override { rightText = @@ -1182,6 +1221,8 @@ struct KeyDisplay : StoermelderLedDisplay { module->keys[idx].mode == KEY_MODE::S_ZOOM_OUT_SMOOTH || module->keys[idx].mode == KEY_MODE::S_ZOOM_TOGGLE || module->keys[idx].mode == KEY_MODE::S_ZOOM_TOGGLE_SMOOTH || + module->keys[idx].mode == KEY_MODE::S_ZOOM_MODULE_ID || + module->keys[idx].mode == KEY_MODE::S_ZOOM_MODULE_ID_SMOOTH || module->keys[idx].mode == KEY_MODE::S_SCROLL_LEFT || module->keys[idx].mode == KEY_MODE::S_SCROLL_RIGHT || module->keys[idx].mode == KEY_MODE::S_SCROLL_UP || @@ -1191,7 +1232,7 @@ struct KeyDisplay : StoermelderLedDisplay { } Menu* createChildMenu() override { - struct ModeZoomModuleCustomItem : MenuItem { + struct ZoomModuleCustomItem : MenuItem { StrokeModule* module; KEY_MODE mode; int idx; @@ -1261,13 +1302,63 @@ struct KeyDisplay : StoermelderLedDisplay { } }; + struct ZoomModuleIdItem : ModeMenuItem { + KeyContainer* keyContainer; + void onAction(const event::Action& e) override { + ModeMenuItem::module->keys[ModeMenuItem::idx].mode = ModeMenuItem::mode; + ModeMenuItem::module->keys[ModeMenuItem::idx].high = false; + ModeMenuItem::module->keys[ModeMenuItem::idx].data = ""; + } + + Menu* createChildMenu() override { + struct LearnItem : MenuItem { + KeyContainer* keyContainer; + int idx; + void onAction(const event::Action& e) override { + keyContainer->learnIdx = keyContainer->learnIdxEx = idx; + keyContainer->module->keys[idx].data = ""; + KeyContainer* _keyContainer = keyContainer; + std::string* _data = &keyContainer->module->keys[idx].data; + auto callback = [_keyContainer,_data](ModuleWidget* mw, Vec pos) { + *_data = string::f("%lli", mw->module->id); + _keyContainer->learnIdx = _keyContainer->learnIdxEx = -1; + }; + keyContainer->moduleSelectProcessor.startLearn(callback); + } + }; + + if (ModeMenuItem::module->keys[ModeMenuItem::idx].mode == ModeMenuItem::mode) { + Menu* menu = new Menu; + LearnItem* learnItem = construct(&MenuItem::text, "Learn module", &LearnItem::keyContainer, keyContainer, &LearnItem::idx, ModeMenuItem::idx); + menu->addChild(learnItem); + + if (ModeMenuItem::module->keys[ModeMenuItem::idx].data != "") { + int64_t moduleId = std::stoll(ModeMenuItem::module->keys[ModeMenuItem::idx].data); + ModuleWidget* mw = APP->scene->rack->getModule(moduleId); + if (mw) { + std::string name = mw->model->plugin->brand + " " + mw->module->model->name; + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuLabel::text, name)); + menu->addChild(construct(&MenuLabel::text, string::f("ID %lli", mw->module->id))); + } + } + + return menu; + } + return NULL; + } + }; + Menu* menu = new Menu; menu->addChild(construct(&MenuItem::text, "Zoom to module", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_90)); menu->addChild(construct(&MenuItem::text, "Zoom to module (smooth)", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_90_SMOOTH)); menu->addChild(construct(&MenuItem::text, "Zoom to module 1/3", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_30)); menu->addChild(construct(&MenuItem::text, "Zoom to module 1/3 (smooth)", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_30_SMOOTH)); - menu->addChild(construct(&MenuItem::text, "Zoom level to module", &ModeZoomModuleCustomItem::module, module, &ModeZoomModuleCustomItem::idx, idx, &ModeZoomModuleCustomItem::mode, KEY_MODE::S_ZOOM_MODULE_CUSTOM)); - menu->addChild(construct(&MenuItem::text, "Zoom level to module (smooth)", &ModeZoomModuleCustomItem::module, module, &ModeZoomModuleCustomItem::idx, idx, &ModeZoomModuleCustomItem::mode, KEY_MODE::S_ZOOM_MODULE_CUSTOM_SMOOTH)); + menu->addChild(construct(&MenuItem::text, "Zoom level to module", &ZoomModuleCustomItem::module, module, &ZoomModuleCustomItem::idx, idx, &ZoomModuleCustomItem::mode, KEY_MODE::S_ZOOM_MODULE_CUSTOM)); + menu->addChild(construct(&MenuItem::text, "Zoom level to module (smooth)", &ZoomModuleCustomItem::module, module, &ZoomModuleCustomItem::idx, idx, &ZoomModuleCustomItem::mode, KEY_MODE::S_ZOOM_MODULE_CUSTOM_SMOOTH)); + menu->addChild(construct(&MenuItem::text, "Zoom to specific module", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_ID, &ZoomModuleIdItem::keyContainer, keyContainer)); + menu->addChild(construct(&MenuItem::text, "Zoom to specific module (smooth)", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_MODULE_ID_SMOOTH, &ZoomModuleIdItem::keyContainer, keyContainer)); + menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuItem::text, "Zoom out", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_OUT)); menu->addChild(construct(&MenuItem::text, "Zoom out (smooth)", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_OUT_SMOOTH)); menu->addChild(construct(&MenuItem::text, "Zoom toggle", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::S_ZOOM_TOGGLE)); @@ -1564,7 +1655,7 @@ struct KeyDisplay : StoermelderLedDisplay { menu->addChild(construct(&MenuItem::text, "Toggle", &ModeMenuItem::module, module, &ModeMenuItem::idx, idx, &ModeMenuItem::mode, KEY_MODE::CV_TOGGLE)); menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuLabel::text, "Commands")); - menu->addChild(construct(&MenuItem::text, "View", &ViewMenuItem::module, module, &ViewMenuItem::idx, idx)); + menu->addChild(construct(&MenuItem::text, "View", &ViewMenuItem::module, module, &ViewMenuItem::idx, idx, &ViewMenuItem::keyContainer, keyContainer)); menu->addChild(construct(&MenuItem::text, "Parameters", &ParamMenuItem::module, module, &ParamMenuItem::idx, idx)); menu->addChild(construct(&MenuItem::text, "Modules", &ModuleMenuItem::module, module, &ModuleMenuItem::idx, idx, &ModuleMenuItem::keyContainer, keyContainer)); menu->addChild(construct(&MenuItem::text, "Cables", &CableMenuItem::module, module, &CableMenuItem::idx, idx)); @@ -1613,6 +1704,10 @@ struct KeyDisplay : StoermelderLedDisplay { text = "View: Zoom level to module"; break; case KEY_MODE::S_ZOOM_MODULE_CUSTOM_SMOOTH: text = "View: Zoom level to module (smooth)"; break; + case KEY_MODE::S_ZOOM_MODULE_ID: + text = "View: Zoom to specific module"; break; + case KEY_MODE::S_ZOOM_MODULE_ID_SMOOTH: + text = "View: Zoom to specific module (smooth)"; break; case KEY_MODE::S_ZOOM_OUT: text = "View: Zoom out"; break; case KEY_MODE::S_ZOOM_OUT_SMOOTH: From c73e8cd32b811c3749e0c992910abad4a351bd29 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Thu, 5 Oct 2023 07:45:58 +0200 Subject: [PATCH 29/55] updated docs --- CHANGELOG.md | 6 ++++-- docs/EightFaceMk2.md | 3 ++- docs/Strip.md | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 92fdf2e..5146a8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,8 +29,8 @@ - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) - Added missing template loading after adding a module (#369) -- Module [TRANSIT](./docs/Transit.md) - - Allow disabling of "long-press" for changing the number of active snapshots (#354) +- Module [ROTOR mod A](./docs/RotorA.md) + - Fixed occasional crashes (#365) - Module [SAIL](./docs/Sail.md) - Fixed occasional crash (#358) - Module [STRIP](./docs/Strip.md) @@ -39,6 +39,8 @@ - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) +- Module [TRANSIT](./docs/Transit.md) + - Allow disabling of "long-press" for changing the number of active snapshots (#354) - Added panel option to follow Rack's dark panel setting ## 2.0.beta3 diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 4284e5a..518bad4 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -122,4 +122,5 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" - Allow disabling of "long press" for changing the number of active slots (#354) - - Added HSL color picker for bound modules' box \ No newline at end of file + - Added HSL color picker for bound modules' box + - Fixed broken module-id mapping when adding using STRIP or STRIP++ \ No newline at end of file diff --git a/docs/Strip.md b/docs/Strip.md index ca96d02..4531724 100644 --- a/docs/Strip.md +++ b/docs/Strip.md @@ -82,6 +82,7 @@ The file-format "vcvss" for storing strips is very close to Rack's own format fo - Fixed high CPU usage in High/Low-mode for bypass - Remember last used folder for strips and selections on dialogs (#307) - "randomizeEnabled" of parameters is respected when randomizing (#349) + - Fixed crash in rare cases (Surge-modules) (#366) # stoermelder STRIP-BAY From 65b42ef9e8501b93ac513d368eda1c3d666915db Mon Sep 17 00:00:00 2001 From: stoermelder Date: Thu, 5 Oct 2023 07:46:42 +0200 Subject: [PATCH 30/55] Strip++ - fixed wrong hotkey modifier on Mac --- CHANGELOG.md | 2 ++ src/StripPp.cpp | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5146a8d..9c97650 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -35,6 +35,8 @@ - Fixed occasional crash (#358) - Module [STRIP](./docs/Strip.md) - Fixed crash in rare cases (Surge-modules) (#366) +- Module [STRIP++](./docs/StripPp.md) + - fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) - Module [STROKE](./docs/Stroke.md) - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) - Module [SPIN](./docs/Spin.md) diff --git a/src/StripPp.cpp b/src/StripPp.cpp index 5b5f40e..0cdf668 100644 --- a/src/StripPp.cpp +++ b/src/StripPp.cpp @@ -77,7 +77,7 @@ struct StripPpWidget : StripWidgetBase { } void onHoverKey(const event::HoverKey& e) override { - if (e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | GLFW_MOD_CONTROL)) { + if (e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | RACK_MOD_CTRL) { switch (e.key) { case GLFW_KEY_V: mw->groupSelectionPasteClipboard(); From 94541ca12c49de21183db2bc2b16ac759cc9d407 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Thu, 5 Oct 2023 08:01:59 +0200 Subject: [PATCH 31/55] Strip++ - fixed typo --- src/StripPp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/StripPp.cpp b/src/StripPp.cpp index 0cdf668..3695d66 100644 --- a/src/StripPp.cpp +++ b/src/StripPp.cpp @@ -77,7 +77,7 @@ struct StripPpWidget : StripWidgetBase { } void onHoverKey(const event::HoverKey& e) override { - if (e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | RACK_MOD_CTRL) { + if (e.action == GLFW_PRESS && (e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | RACK_MOD_CTRL)) { switch (e.key) { case GLFW_KEY_V: mw->groupSelectionPasteClipboard(); From 64251099715b0dbc1a877c4371bed8634633b030 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Thu, 5 Oct 2023 08:11:35 +0200 Subject: [PATCH 32/55] StripBay - fixed compiler warning --- src/StripBay.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/StripBay.cpp b/src/StripBay.cpp index 4b49737..c162796 100644 --- a/src/StripBay.cpp +++ b/src/StripBay.cpp @@ -30,8 +30,8 @@ struct StripBayModule : Strip::StripBayBase { panelTheme = pluginSettings.panelThemeDefault; config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); for (size_t i = 0; i < PORTS; i++) { - configInput(INPUT + i, string::f("Patchbay %lli", i + 1)); - configOutput(OUTPUT + i, string::f("Patchbay %lli", i + 1)); + configInput(INPUT + i, string::f("Patchbay %llu", i + 1)); + configOutput(OUTPUT + i, string::f("Patchbay %llu", i + 1)); } onReset(); } From 2b53ef70a7ea4194540a457eb0eb61339391dd27 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Thu, 5 Oct 2023 08:36:18 +0200 Subject: [PATCH 33/55] compiler warnings --- src/StripBay.cpp | 10 +++++----- src/Stroke.cpp | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/StripBay.cpp b/src/StripBay.cpp index c162796..235963b 100644 --- a/src/StripBay.cpp +++ b/src/StripBay.cpp @@ -4,7 +4,7 @@ namespace StoermelderPackOne { namespace StripBay { -template +template struct StripBayModule : Strip::StripBayBase { enum ParamIds { NUM_PARAMS @@ -29,15 +29,15 @@ struct StripBayModule : Strip::StripBayBase { StripBayModule() { panelTheme = pluginSettings.panelThemeDefault; config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - for (size_t i = 0; i < PORTS; i++) { - configInput(INPUT + i, string::f("Patchbay %llu", i + 1)); - configOutput(OUTPUT + i, string::f("Patchbay %llu", i + 1)); + for (int i = 0; i < PORTS; i++) { + configInput(INPUT + i, string::f("Patchbay %i", i + 1)); + configOutput(OUTPUT + i, string::f("Patchbay %i", i + 1)); } onReset(); } void process(const ProcessArgs& args) override { - for (size_t i = 0; i < PORTS; i++) { + for (int i = 0; i < PORTS; i++) { outputs[OUTPUT + i].writeVoltages(inputs[INPUT + i].getVoltages()); outputs[OUTPUT + i].setChannels(inputs[INPUT + i].getChannels()); } diff --git a/src/Stroke.cpp b/src/Stroke.cpp index e11e8b8..ce85825 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -1320,7 +1320,7 @@ struct KeyDisplay : StoermelderLedDisplay { KeyContainer* _keyContainer = keyContainer; std::string* _data = &keyContainer->module->keys[idx].data; auto callback = [_keyContainer,_data](ModuleWidget* mw, Vec pos) { - *_data = string::f("%lli", mw->module->id); + *_data = string::f("%lld", (long long)mw->module->getId()); _keyContainer->learnIdx = _keyContainer->learnIdxEx = -1; }; keyContainer->moduleSelectProcessor.startLearn(callback); @@ -1339,7 +1339,7 @@ struct KeyDisplay : StoermelderLedDisplay { std::string name = mw->model->plugin->brand + " " + mw->module->model->name; menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuLabel::text, name)); - menu->addChild(construct(&MenuLabel::text, string::f("ID %lli", mw->module->id))); + menu->addChild(construct(&MenuLabel::text, string::f("ID %lld", (long long)mw->module->getId()))); } } From b28882bfe895627cd5567a87d865dec956e8555f Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 10:12:45 +0200 Subject: [PATCH 34/55] moved Viewport-stuff to ViewportHelper.hpp --- src/EightFaceMk2.cpp | 1 + src/Goto.cpp | 1 + src/MidiKey.cpp | 1 + src/Stroke.cpp | 1 + src/components/ParamHandleIndicator.hpp | 1 + src/helpers.hpp | 115 ---------------------- src/ui/ViewportHelper.hpp | 122 ++++++++++++++++++++++++ 7 files changed, 127 insertions(+), 115 deletions(-) create mode 100644 src/ui/ViewportHelper.hpp diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index 7429225..c95cbfe 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -5,6 +5,7 @@ #include "components/MenuColorField.hpp" #include "components/MenuColorPicker.hpp" #include "ui/ModuleSelectProcessor.hpp" +#include "ui/ViewportHelper.hpp" #include "EightFace.hpp" #include "EightFaceMk2Base.hpp" #include diff --git a/src/Goto.cpp b/src/Goto.cpp index 6e71165..7b07a4d 100644 --- a/src/Goto.cpp +++ b/src/Goto.cpp @@ -1,4 +1,5 @@ #include "plugin.hpp" +#include "ui/ViewportHelper.hpp" namespace StoermelderPackOne { namespace Goto { diff --git a/src/MidiKey.cpp b/src/MidiKey.cpp index 16a05b0..7efbea9 100644 --- a/src/MidiKey.cpp +++ b/src/MidiKey.cpp @@ -2,6 +2,7 @@ #include "components/MidiWidget.hpp" #include "ui/keyboard.hpp" #include "ui/ModuleSelectProcessor.hpp" +#include "ui/ViewportHelper.hpp" namespace StoermelderPackOne { namespace MidiKey { diff --git a/src/Stroke.cpp b/src/Stroke.cpp index ce85825..364c05b 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -4,6 +4,7 @@ #include "components/MenuColorPicker.hpp" #include "ui/ModuleSelectProcessor.hpp" #include "ui/keyboard.hpp" +#include "ui/ViewportHelper.hpp" namespace StoermelderPackOne { namespace Stroke { diff --git a/src/components/ParamHandleIndicator.hpp b/src/components/ParamHandleIndicator.hpp index fbdcc42..3069028 100644 --- a/src/components/ParamHandleIndicator.hpp +++ b/src/components/ParamHandleIndicator.hpp @@ -1,5 +1,6 @@ #pragma once #include "plugin.hpp" +#include "../ui/ViewportHelper.hpp" namespace StoermelderPackOne { diff --git a/src/helpers.hpp b/src/helpers.hpp index 20b18d7..6e037d3 100644 --- a/src/helpers.hpp +++ b/src/helpers.hpp @@ -5,121 +5,6 @@ namespace StoermelderPackOne { namespace Rack { -/** Move the view-port smoothly and center a Widget - */ -struct ViewportCenterSmooth { - Vec source, target; - float sourceZoom, targetZoom; - int framecount = 0; - int frame = 0; - - void trigger(Widget* w, float zoom, float framerate, float transitionTime = 1.f) { - Vec target = w->getBox().getCenter(); - zoom = std::pow(2.f, zoom); - trigger(target, zoom, framerate, transitionTime); - } - - void trigger(Rect rect, float framerate, float transitionTime = 1.f) { - float zx = APP->scene->rackScroll->box.size.x / rect.size.x * 0.9f; - float zy = APP->scene->rackScroll->box.size.y / rect.size.y * 0.9f; - float zoom = std::min(zx, zy); - trigger(rect.getCenter(), zoom, framerate, transitionTime); - } - - void trigger(Vec target, float zoom, float framerate, float transitionTime = 1.f) { - // source is at top-left, translate to center of screen - Vec source = APP->scene->rackScroll->offset / APP->scene->rackScroll->getZoom(); - Vec center = APP->scene->rackScroll->getSize() * (1.f / APP->scene->rackScroll->getZoom()) * 0.5f; - - this->source = source + center; - this->target = target; - this->sourceZoom = APP->scene->rackScroll->getZoom(); - this->targetZoom = zoom; - this->framecount = int(transitionTime * framerate); - this->frame = 0; - } - - void reset() { - frame = framecount = 0; - } - - void process() { - if (framecount == frame) return; - - float t = float(frame) / float(framecount - 1); - // Sigmoid - t = t * 8.f - 4.f; - t = 1.f / (1.f + std::exp(-t)); - t = rescale(t, 0.0179f, 0.98201f, 0.f, 1.f); - - // Calculate interpolated view-point and zoom - Vec p1 = source.mult(1.f - t); - Vec p2 = target.mult(t); - Vec p = p1.plus(p2); - - // Ignore tiny changes in zoom as they will cause graphical artifacts - if (std::abs(sourceZoom - targetZoom) > 0.01f) { - float z = sourceZoom * (1.f - t) + targetZoom * t; - APP->scene->rackScroll->setZoom(z); - } - - // Move the view - Vec center = APP->scene->rackScroll->getSize() * (1.f / APP->scene->rackScroll->getZoom()) * 0.5f; - APP->scene->rackScroll->setGridOffset((p - center - RACK_OFFSET) / RACK_GRID_SIZE); - - frame++; - } -}; - -struct ViewportCenter { - ViewportCenter(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { - float z; - if (zoomToWidget > 0.f) - z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; - else if (zoom > 0.f) - z = std::pow(2.f, zoom); - else - z = 2.0f; - Vec target = w->getBox().getCenter(); - Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); - APP->scene->rackScroll->setZoom(z); - APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); - } - - ViewportCenter(Vec target) { - float z = APP->scene->rackScroll->getZoom(); - Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); - APP->scene->rackScroll->setZoom(z); - APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); - } - - ViewportCenter(Rect rect) { - Vec target = rect.getCenter(); - float zx = APP->scene->rackScroll->getSize().x / rect.size.x * 0.9f; - float zy = APP->scene->rackScroll->getSize().y / rect.size.y * 0.9f; - float z = std::min(zx, zy); - Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); - APP->scene->rackScroll->setZoom(z); - APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); - } -}; - -struct ViewportTopLeft { - ViewportTopLeft(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { - float z; - if (zoomToWidget > 0.f) - z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; - else if (zoom > 0.f) - z = std::pow(2.f, zoom); - else - z = 2.0f; - Vec target = w->getBox().getTopLeft(); - APP->scene->rackScroll->setZoom(z); - APP->scene->rackScroll->setGridOffset((target - RACK_OFFSET) / RACK_GRID_SIZE); - } -}; - - /** Creates a MenuItem that when hovered, opens a submenu with several MenuItems identified by a map. Example: menu->addChild(createMapSubmenuItem("Mode", diff --git a/src/ui/ViewportHelper.hpp b/src/ui/ViewportHelper.hpp new file mode 100644 index 0000000..4e01df6 --- /dev/null +++ b/src/ui/ViewportHelper.hpp @@ -0,0 +1,122 @@ +#pragma once +#include "plugin.hpp" + +namespace StoermelderPackOne { +namespace Rack { + +/** Move the view-port smoothly and center a Widget + */ +struct ViewportCenterSmooth { + Vec source, target; + float sourceZoom, targetZoom; + int framecount = 0; + int frame = 0; + + void trigger(Widget* w, float zoom, float framerate, float transitionTime = 1.f) { + Vec target = w->getBox().getCenter(); + zoom = std::pow(2.f, zoom); + trigger(target, zoom, framerate, transitionTime); + } + + void trigger(Rect rect, float framerate, float transitionTime = 1.f) { + float zx = APP->scene->rackScroll->box.size.x / rect.size.x * 0.9f; + float zy = APP->scene->rackScroll->box.size.y / rect.size.y * 0.9f; + float zoom = std::min(zx, zy); + trigger(rect.getCenter(), zoom, framerate, transitionTime); + } + + void trigger(Vec target, float zoom, float framerate, float transitionTime = 1.f) { + // source is at top-left, translate to center of screen + Vec source = APP->scene->rackScroll->offset / APP->scene->rackScroll->getZoom(); + Vec center = APP->scene->rackScroll->getSize() * (1.f / APP->scene->rackScroll->getZoom()) * 0.5f; + + this->source = source + center; + this->target = target; + this->sourceZoom = APP->scene->rackScroll->getZoom(); + this->targetZoom = zoom; + this->framecount = int(transitionTime * framerate); + this->frame = 0; + } + + void reset() { + frame = framecount = 0; + } + + void process() { + if (framecount == frame) return; + + float t = float(frame) / float(framecount - 1); + // Sigmoid + t = t * 8.f - 4.f; + t = 1.f / (1.f + std::exp(-t)); + t = rescale(t, 0.0179f, 0.98201f, 0.f, 1.f); + + // Calculate interpolated view-point and zoom + Vec p1 = source.mult(1.f - t); + Vec p2 = target.mult(t); + Vec p = p1.plus(p2); + + // Ignore tiny changes in zoom as they will cause graphical artifacts + if (std::abs(sourceZoom - targetZoom) > 0.01f) { + float z = sourceZoom * (1.f - t) + targetZoom * t; + APP->scene->rackScroll->setZoom(z); + } + + // Move the view + Vec center = APP->scene->rackScroll->getSize() * (1.f / APP->scene->rackScroll->getZoom()) * 0.5f; + APP->scene->rackScroll->setGridOffset((p - center - RACK_OFFSET) / RACK_GRID_SIZE); + + frame++; + } +}; + +struct ViewportCenter { + ViewportCenter(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { + float z; + if (zoomToWidget > 0.f) + z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; + else if (zoom > 0.f) + z = std::pow(2.f, zoom); + else + z = 2.0f; + Vec target = w->getBox().getCenter(); + Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); + APP->scene->rackScroll->setZoom(z); + APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); + } + + ViewportCenter(Vec target) { + float z = APP->scene->rackScroll->getZoom(); + Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); + APP->scene->rackScroll->setZoom(z); + APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); + } + + ViewportCenter(Rect rect) { + Vec target = rect.getCenter(); + float zx = APP->scene->rackScroll->getSize().x / rect.size.x * 0.9f; + float zy = APP->scene->rackScroll->getSize().y / rect.size.y * 0.9f; + float z = std::min(zx, zy); + Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); + APP->scene->rackScroll->setZoom(z); + APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); + } +}; + +struct ViewportTopLeft { + ViewportTopLeft(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { + float z; + if (zoomToWidget > 0.f) + z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; + else if (zoom > 0.f) + z = std::pow(2.f, zoom); + else + z = 2.0f; + Vec target = w->getBox().getTopLeft(); + APP->scene->rackScroll->setZoom(z); + APP->scene->rackScroll->setGridOffset((target - RACK_OFFSET) / RACK_GRID_SIZE); + } +}; + +} // namespace Rack +} // namespace StoermelderPackOne \ No newline at end of file From c4fa9e20047e085ad556a6ddab1eac3e26180cc8 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 10:41:40 +0200 Subject: [PATCH 35/55] fixed partially broken zoom on Viewport-navigation --- src/ui/ViewportHelper.hpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/ui/ViewportHelper.hpp b/src/ui/ViewportHelper.hpp index 4e01df6..7615085 100644 --- a/src/ui/ViewportHelper.hpp +++ b/src/ui/ViewportHelper.hpp @@ -71,18 +71,23 @@ struct ViewportCenterSmooth { }; struct ViewportCenter { - ViewportCenter(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { + ViewportCenter(Widget* w, float zoomToWidget = -1.f, float zoom = std::numeric_limits::infinity()) { float z; if (zoomToWidget > 0.f) z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; - else if (zoom > 0.f) + else if (zoom != std::numeric_limits::infinity()) z = std::pow(2.f, zoom); else z = 2.0f; Vec target = w->getBox().getCenter(); Vec viewport = APP->scene->rackScroll->getSize() * (1.f / z); + + float oldZoom = APP->scene->rackScroll->getZoom(); APP->scene->rackScroll->setZoom(z); APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); + if (zoom == std::numeric_limits::infinity()) { + APP->scene->rackScroll->setZoom(oldZoom); + } } ViewportCenter(Vec target) { @@ -104,17 +109,22 @@ struct ViewportCenter { }; struct ViewportTopLeft { - ViewportTopLeft(Widget* w, float zoomToWidget = -1.f, float zoom = -1.f) { + ViewportTopLeft(Widget* w, float zoomToWidget = -1.f, float zoom = std::numeric_limits::infinity()) { float z; if (zoomToWidget > 0.f) z = APP->scene->rackScroll->getSize().y / w->getSize().y * zoomToWidget; - else if (zoom > 0.f) + else if (zoom != std::numeric_limits::infinity()) z = std::pow(2.f, zoom); else z = 2.0f; Vec target = w->getBox().getTopLeft(); + + float oldZoom = APP->scene->rackScroll->getZoom(); APP->scene->rackScroll->setZoom(z); APP->scene->rackScroll->setGridOffset((target - RACK_OFFSET) / RACK_GRID_SIZE); + if (zoom == std::numeric_limits::infinity()) { + APP->scene->rackScroll->setZoom(oldZoom); + } } }; From c051b87c9039d88ae8eedce2d4be8a5cbd7f120c Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 10:45:16 +0200 Subject: [PATCH 36/55] Goto - fixed broken zoom behavior when jumping by button --- CHANGELOG.md | 4 +++- docs/Goto.md | 3 ++- src/Goto.cpp | 16 +++++++++------- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c97650..19a194d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - Module [PRISMA](./docs/Prisma.md) - A wave multiplier/phase shifter inspired by A-137-2 -## 2.0.0 (in development) +## 2.0.beta4 (in development) ### Fixes and Changes @@ -26,6 +26,8 @@ - Added HSL color picker - Module [GRIP](./docs/Grip.md) - Fixed broken parameter locking (#360) +- Module [GOTO](./docs/Goto.md) + - Fixed broken zoom behavior when jumping by buttons on the panel - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) - Added missing template loading after adding a module (#369) diff --git a/docs/Goto.md b/docs/Goto.md index 49b44a3..b0c58d3 100644 --- a/docs/Goto.md +++ b/docs/Goto.md @@ -35,4 +35,5 @@ It is possible to trigger a view-port change by CV which is especially useful wi - v2.0.0 - Added "top left" as a modules reference point for jump destination - Removed setting "Center module" as the disabled state did not work correctly - - Fixed crash on patch-loading inside Rack VST (#342) \ No newline at end of file + - Fixed crash on patch-loading inside Rack VST (#342) + - Fixed broken zoom behavior when jumping by buttons on the panel \ No newline at end of file diff --git a/src/Goto.cpp b/src/Goto.cpp index 7b07a4d..1a653a8 100644 --- a/src/Goto.cpp +++ b/src/Goto.cpp @@ -233,12 +233,16 @@ struct GotoContainer : widget::Widget { } } + void triggerJump(int i) { + module->jumpTrigger = i; + } + void executeJump(int i) { if (module->jumpPoints[i].moduleId >= 0) { ModuleWidget* mw = APP->scene->rack->getModule(module->jumpPoints[i].moduleId); if (mw) { + float zoom = !module->ignoreZoom ? module->jumpPoints[i].zoom : std::log2(APP->scene->rackScroll->getZoom()); if (module->smoothTransition) { - float zoom = !module->ignoreZoom ? module->jumpPoints[i].zoom : std::log2(APP->scene->rackScroll->getZoom()); switch (module->jumpPos) { case JUMPPOS::ABSOLUTE: viewportCenterSmooth.trigger(Vec(module->jumpPoints[i].x, module->jumpPoints[i].y), zoom, 1.f / APP->window->getLastFrameDuration()); @@ -247,6 +251,7 @@ struct GotoContainer : widget::Widget { viewportCenterSmooth.trigger(mw, zoom, 1.f / APP->window->getLastFrameDuration()); break; case JUMPPOS::MODULE_TOPLEFT: + // not implemented break; } } @@ -256,15 +261,12 @@ struct GotoContainer : widget::Widget { StoermelderPackOne::Rack::ViewportCenter{Vec(module->jumpPoints[i].x, module->jumpPoints[i].y)}; break; case JUMPPOS::MODULE_CENTER: - StoermelderPackOne::Rack::ViewportCenter{mw}; + StoermelderPackOne::Rack::ViewportCenter{mw, -1.f, zoom}; break; case JUMPPOS::MODULE_TOPLEFT: - StoermelderPackOne::Rack::ViewportTopLeft{mw}; + StoermelderPackOne::Rack::ViewportTopLeft{mw, -1.f, zoom}; break; } - if (!module->ignoreZoom) { - APP->scene->rackScroll->setZoom(std::pow(2.f, module->jumpPoints[i].zoom)); - } } } } @@ -302,7 +304,7 @@ struct GotoButton : LEDButton { case LongPressButton::NO_PRESS: break; case LongPressButton::SHORT_PRESS: - gotoContainer->executeJump(id); + gotoContainer->triggerJump(id); break; case LongPressButton::LONG_PRESS: gotoContainer->learnJump(id); From 64e8bb21073611ca88872b297fa14655e61c4fd5 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 10:50:42 +0200 Subject: [PATCH 37/55] increased number of shown lines in LogDisplay --- src/components/LogDisplay.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/LogDisplay.hpp b/src/components/LogDisplay.hpp index 49e2422..fed9e5d 100644 --- a/src/components/LogDisplay.hpp +++ b/src/components/LogDisplay.hpp @@ -18,7 +18,7 @@ struct LogDisplay : LedTextDisplay { LedTextDisplay::step(); if (dirty) { text = ""; - size_t size = std::min(buffer->size(), (size_t)(box.size.x / fontSize - 1)); + size_t size = std::min(buffer->size(), (size_t)(box.size.x / fontSize) + 1); size_t i = 0; for (std::tuple s : *buffer) { if (i >= size) break; From 746af85b6ddb0ca6f7eb9ed2096c2c205786d58f Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 10:58:39 +0200 Subject: [PATCH 38/55] Transit - fixed shuffle reset, possible fix #359 --- src/Transit.cpp | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/src/Transit.cpp b/src/Transit.cpp index 6d8b772..31c647b 100644 --- a/src/Transit.cpp +++ b/src/Transit.cpp @@ -280,26 +280,39 @@ struct TransitModule : TransitBase { if (resetTrigger.process(Module::inputs[INPUT_RESET].getVoltage())) { resetTimer.reset(); switch (slotCvMode) { - case SLOTCVMODE::TRIG_FWD: + case SLOTCVMODE::TRIG_FWD: { presetLoad(0); break; - case SLOTCVMODE::TRIG_REV: + } + case SLOTCVMODE::TRIG_REV: { presetLoad(presetCount - 1); break; - case SLOTCVMODE::TRIG_PINGPONG: + } + case SLOTCVMODE::TRIG_PINGPONG: { slotCvModeDir = 1; presetLoad(0); break; - case SLOTCVMODE::TRIG_ALT: + } + case SLOTCVMODE::TRIG_ALT: { slotCvModeDir = 1; slotCvModeAlt = 0; presetLoad(0); break; - case SLOTCVMODE::TRIG_SHUFFLE: + } + case SLOTCVMODE::TRIG_SHUFFLE: { slotCvModeShuffle.clear(); + for (int i = 0; i < presetCount; i++) { + slotCvModeShuffle.push_back(i); + } + std::random_shuffle(std::begin(slotCvModeShuffle), std::end(slotCvModeShuffle)); + int p = std::min(std::max(0, slotCvModeShuffle.back()), presetCount - 1); + slotCvModeShuffle.pop_back(); + presetLoad(p); break; - default: + } + default: { break; + } } } else { From c567bcf1fe79546294e0db49bc1921e7f7e209ad Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 11:47:36 +0200 Subject: [PATCH 39/55] Stroke - added useful context menu items --- src/Stroke.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Stroke.cpp b/src/Stroke.cpp index 364c05b..6175b93 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -1341,6 +1341,7 @@ struct KeyDisplay : StoermelderLedDisplay { menu->addChild(new MenuSeparator); menu->addChild(construct(&MenuLabel::text, name)); menu->addChild(construct(&MenuLabel::text, string::f("ID %lld", (long long)mw->module->getId()))); + menu->addChild(createMenuItem("Center module", "", [mw]() { StoermelderPackOne::Rack::ViewportCenter{mw}; })); } } @@ -1505,8 +1506,15 @@ struct KeyDisplay : StoermelderLedDisplay { json_error_t error; json_t* oJ = json_loads(ModeMenuItem::module->keys[ModeMenuItem::idx].data.c_str(), 0, &error); std::string name = json_string_value(json_object_get(oJ, "name")); + int64_t moduleId = json_integer_value(json_object_get(oJ, "moduleId")); + ModuleWidget* mw = APP->scene->rack->getModule(moduleId); + menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuLabel::text, name)); + if (mw) { + menu->addChild(construct(&MenuLabel::text, name)); + menu->addChild(construct(&MenuLabel::text, string::f("ID %lld", (long long)mw->module->getId()))); + menu->addChild(createMenuItem("Center module", "", [mw]() { StoermelderPackOne::Rack::ViewportCenter{mw}; })); + } json_t* keyJ = json_object_get(oJ, "key"); json_t* modsJ = json_object_get(oJ, "mods"); From a33c87e0ce739d80ebf2880bb70c7547eec9adaa Mon Sep 17 00:00:00 2001 From: stoermelder Date: Fri, 6 Oct 2023 11:48:53 +0200 Subject: [PATCH 40/55] Midi-Key - fixed crash on unassigned hotkey --- src/MidiKey.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/src/MidiKey.cpp b/src/MidiKey.cpp index 7efbea9..464608b 100644 --- a/src/MidiKey.cpp +++ b/src/MidiKey.cpp @@ -294,19 +294,21 @@ struct MidiKeyModule : Module { // Skip duplicate events if ((value > 0 && slot[id].active) || (value == 0 && !slot[id].active)) return; - event::HoverKey e; - e.key = slot[id].key; - e.scancode = glfwGetKeyScancode(e.key); - e.keyName = glfwGetKeyName(e.key, e.scancode); - e.action = value > 0 ? GLFW_PRESS : GLFW_RELEASE; - e.mods = 0; - if (slot[ID_CTRL].active || (slot[id].mods & RACK_MOD_CTRL)) - e.mods = e.mods | RACK_MOD_CTRL; - if (slot[ID_ALT].active || (slot[id].mods & GLFW_MOD_ALT)) - e.mods = e.mods | GLFW_MOD_ALT; - if (slot[ID_SHIFT].active || (slot[id].mods & GLFW_MOD_SHIFT)) - e.mods = e.mods | GLFW_MOD_SHIFT; - keyEventQueue.push(std::make_tuple(e, slot[id].moduleId)); + if (slot[id].key != -1) { + event::HoverKey e; + e.key = slot[id].key; + e.scancode = glfwGetKeyScancode(e.key); + e.keyName = glfwGetKeyName(e.key, e.scancode); + e.action = value > 0 ? GLFW_PRESS : GLFW_RELEASE; + e.mods = 0; + if (slot[ID_CTRL].active || (slot[id].mods & RACK_MOD_CTRL)) + e.mods = e.mods | RACK_MOD_CTRL; + if (slot[ID_ALT].active || (slot[id].mods & GLFW_MOD_ALT)) + e.mods = e.mods | GLFW_MOD_ALT; + if (slot[ID_SHIFT].active || (slot[id].mods & GLFW_MOD_SHIFT)) + e.mods = e.mods | GLFW_MOD_SHIFT; + keyEventQueue.push(std::make_tuple(e, slot[id].moduleId)); + } slot[id].active = value > 0; return; } From fcc46e94f934d51624ccc0cdd1d2413447138647 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 7 Oct 2023 07:51:30 +0200 Subject: [PATCH 41/55] Stroke - fixed wrong hotkey modifier on Mac --- CHANGELOG.md | 3 ++- docs/Stroke.md | 3 ++- src/Stroke.cpp | 12 ++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 19a194d..63bc3ee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,9 +38,10 @@ - Module [STRIP](./docs/Strip.md) - Fixed crash in rare cases (Surge-modules) (#366) - Module [STRIP++](./docs/StripPp.md) - - fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) - Module [STROKE](./docs/Stroke.md) - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) - Module [TRANSIT](./docs/Transit.md) diff --git a/docs/Stroke.md b/docs/Stroke.md index 681ef07..e88b03e 100644 --- a/docs/Stroke.md +++ b/docs/Stroke.md @@ -127,4 +127,5 @@ The module also supports mouse-button events: If your mouse has more than three - Improved behavior of parameter copy/paste commands (#273) - v2.0.0 - Added commands "Add random module", "Save module preset" and "Save module default preset" (#345) - - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) \ No newline at end of file + - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) \ No newline at end of file diff --git a/src/Stroke.cpp b/src/Stroke.cpp index 6175b93..5e597f0 100644 --- a/src/Stroke.cpp +++ b/src/Stroke.cpp @@ -201,7 +201,7 @@ struct StrokeModule : Module { json_t* keyJ = json_array_get(keysJ, i); keys[i].button = json_integer_value(json_object_get(keyJ, "button")); keys[i].key = keyFix(json_integer_value(json_object_get(keyJ, "key"))); - keys[i].mods = json_integer_value(json_object_get(keyJ, "mods")) & (GLFW_MOD_ALT | GLFW_MOD_CONTROL | GLFW_MOD_SHIFT); + keys[i].mods = json_integer_value(json_object_get(keyJ, "mods")) & (GLFW_MOD_ALT | RACK_MOD_CTRL | GLFW_MOD_SHIFT); keys[i].mode = (KEY_MODE)json_integer_value(json_object_get(keyJ, "mode")); keys[i].high = json_boolean_value(json_object_get(keyJ, "high")); json_t* dataJ = json_object_get(keyJ, "data"); @@ -1028,8 +1028,8 @@ struct KeyContainer : Widget { } void onButton(const event::Button& e) override { - if (module && !module->isBypassed() && (e.button > 2 || (e.mods & (GLFW_MOD_ALT | GLFW_MOD_CONTROL | GLFW_MOD_SHIFT))) != 0) { - int e_mods = e.mods & (GLFW_MOD_ALT | GLFW_MOD_CONTROL | GLFW_MOD_SHIFT); + if (module && !module->isBypassed() && (e.button > 2 || (e.mods & (GLFW_MOD_ALT | RACK_MOD_CTRL | GLFW_MOD_SHIFT))) != 0) { + int e_mods = e.mods & (GLFW_MOD_ALT | RACK_MOD_CTRL | GLFW_MOD_SHIFT); if (e.action == GLFW_PRESS) { if (learnIdx >= 0) { @@ -1072,7 +1072,7 @@ struct KeyContainer : Widget { void onHoverKey(const event::HoverKey& e) override { if (module && !module->isBypassed()) { - int e_mods = e.mods & (GLFW_MOD_ALT | GLFW_MOD_CONTROL | GLFW_MOD_SHIFT); + int e_mods = e.mods & (GLFW_MOD_ALT | RACK_MOD_CTRL | GLFW_MOD_SHIFT); int e_key = keyFix(e.key); if (e.action == GLFW_PRESS) { @@ -1156,7 +1156,7 @@ struct KeyDisplay : StoermelderLedDisplay { color = nvgRGBA(0xef, 0xef, 0xef, 0xff); text = module->keys[idx].key >= 0 ? keyName(module->keys[idx].key) : module->keys[idx].button >= 0 ? string::f("MB %i", module->keys[idx].button + 1) : ""; module->lights[StrokeModule::LIGHT_ALT + idx].setBrightness(module->keys[idx].mods & GLFW_MOD_ALT ? 0.7f : 0.f); - module->lights[StrokeModule::LIGHT_CTRL + idx].setBrightness(module->keys[idx].mods & GLFW_MOD_CONTROL ? 0.7f : 0.f); + module->lights[StrokeModule::LIGHT_CTRL + idx].setBrightness(module->keys[idx].mods & RACK_MOD_CTRL ? 0.7f : 0.f); module->lights[StrokeModule::LIGHT_SHIFT + idx].setBrightness(module->keys[idx].mods & GLFW_MOD_SHIFT ? 0.7f : 0.f); } StoermelderLedDisplay::step(); @@ -1522,7 +1522,7 @@ struct KeyDisplay : StoermelderLedDisplay { std::string key = keyName(json_integer_value(keyJ)); int mods = json_integer_value(modsJ); std::string alt = mods & GLFW_MOD_ALT ? RACK_MOD_ALT_NAME "+" : ""; - std::string ctrl = mods & GLFW_MOD_CONTROL ? RACK_MOD_CTRL_NAME "+" : ""; + std::string ctrl = mods & RACK_MOD_CTRL ? RACK_MOD_CTRL_NAME "+" : ""; std::string shift = mods & GLFW_MOD_SHIFT ? RACK_MOD_SHIFT_NAME "+" : ""; std::string s = string::f("Hotkey: %s%s%s%s", alt.c_str(), ctrl.c_str(), shift.c_str(), key.c_str()); menu->addChild(construct(&MenuLabel::text, s)); From 9b610b624c6740eca9e6b30da787ec84399c00f4 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 7 Oct 2023 07:59:54 +0200 Subject: [PATCH 42/55] Mb - fixed wrong hotkey modifier on Mac on Space-key --- CHANGELOG.md | 1 + src/mb/Mb_v1.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 63bc3ee..7e35b7e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -30,6 +30,7 @@ - Fixed broken zoom behavior when jumping by buttons on the panel - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) on Space-key - Added missing template loading after adding a module (#369) - Module [ROTOR mod A](./docs/RotorA.md) - Fixed occasional crashes (#365) diff --git a/src/mb/Mb_v1.cpp b/src/mb/Mb_v1.cpp index 674b9cb..8b5cc85 100644 --- a/src/mb/Mb_v1.cpp +++ b/src/mb/Mb_v1.cpp @@ -586,7 +586,7 @@ struct BrowserSearchField : ui::TextField { browser->favorites ^= true; e.consume(this); } - if ((e.mods & RACK_MOD_MASK) == GLFW_MOD_CONTROL) { + if ((e.mods & RACK_MOD_MASK) == RACK_MOD_CTRL) { ModuleBrowser* browser = getAncestorOfType(); browser->hidden ^= true; setText(string::trim(text)); From 24223ebc5b218fa513f33f6d37ed4a69d84a98f7 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sat, 7 Oct 2023 08:04:41 +0200 Subject: [PATCH 43/55] Strip - fixed wrong hotkey modifier on Mac (Cmd+Shift+L) --- CHANGELOG.md | 1 + docs/Strip.md | 1 + src/Strip.hpp | 2 +- 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e35b7e..4040c7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -38,6 +38,7 @@ - Fixed occasional crash (#358) - Module [STRIP](./docs/Strip.md) - Fixed crash in rare cases (Surge-modules) (#366) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) on Cmd+Shift+L - Module [STRIP++](./docs/StripPp.md) - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) - Module [STROKE](./docs/Stroke.md) diff --git a/docs/Strip.md b/docs/Strip.md index 4531724..febe4fa 100644 --- a/docs/Strip.md +++ b/docs/Strip.md @@ -83,6 +83,7 @@ The file-format "vcvss" for storing strips is very close to Rack's own format fo - Remember last used folder for strips and selections on dialogs (#307) - "randomizeEnabled" of parameters is respected when randomizing (#349) - Fixed crash in rare cases (Surge-modules) (#366) + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) on Cmd+Shift+L # stoermelder STRIP-BAY diff --git a/src/Strip.hpp b/src/Strip.hpp index 3b9620d..be56ebf 100644 --- a/src/Strip.hpp +++ b/src/Strip.hpp @@ -1118,7 +1118,7 @@ struct StripWidgetBase : ThemedModuleWidget { groupLoadFileDialog(false); e.consume(this); } - if ((e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | GLFW_MOD_CONTROL)) { + if ((e.mods & RACK_MOD_MASK) == (GLFW_MOD_SHIFT | RACK_MOD_CTRL)) { groupLoadFileDialog(true); e.consume(this); } From a9470b9752c60a316ed303aa43268a61397e2d52 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Mon, 22 Jan 2024 21:37:19 +0100 Subject: [PATCH 44/55] Goto - more consistent transition speed --- CHANGELOG.md | 1 + src/Goto.cpp | 26 +++++++++++++++++++------- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4040c7b..b0910dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,7 @@ - Fixed broken parameter locking (#360) - Module [GOTO](./docs/Goto.md) - Fixed broken zoom behavior when jumping by buttons on the panel + - Improved smooth transition speed on long distances (#376) - Module [MB](./docs/Mb.md) - Fixed crash on exiting Rack's after adding MB (#352) - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) on Space-key diff --git a/src/Goto.cpp b/src/Goto.cpp index 1a653a8..9058142 100644 --- a/src/Goto.cpp +++ b/src/Goto.cpp @@ -244,28 +244,40 @@ struct GotoContainer : widget::Widget { float zoom = !module->ignoreZoom ? module->jumpPoints[i].zoom : std::log2(APP->scene->rackScroll->getZoom()); if (module->smoothTransition) { switch (module->jumpPos) { - case JUMPPOS::ABSOLUTE: + case JUMPPOS::ABSOLUTE: { viewportCenterSmooth.trigger(Vec(module->jumpPoints[i].x, module->jumpPoints[i].y), zoom, 1.f / APP->window->getLastFrameDuration()); break; - case JUMPPOS::MODULE_CENTER: - viewportCenterSmooth.trigger(mw, zoom, 1.f / APP->window->getLastFrameDuration()); + } + case JUMPPOS::MODULE_CENTER: { + //viewportCenterSmooth.trigger(mw, zoom, 1.f / APP->window->getLastFrameDuration()); + Vec source = APP->scene->rackScroll->offset / APP->scene->rackScroll->getZoom(); + Vec center = APP->scene->rackScroll->getSize() * (1.f / APP->scene->rackScroll->getZoom()) * 0.5f; + Vec p1 = source + center; + Vec p2 = mw->getBox().getCenter(); + float f = sqrt((p1.x - p2.x) * (p1.x - p2.x) + (p1.y - p2.y) * (p1.y - p2.y)); + viewportCenterSmooth.trigger(mw, zoom, 1.f / APP->window->getLastFrameDuration(), f / 1000.f); break; - case JUMPPOS::MODULE_TOPLEFT: + } + case JUMPPOS::MODULE_TOPLEFT: { // not implemented break; + } } } else { switch (module->jumpPos) { - case JUMPPOS::ABSOLUTE: + case JUMPPOS::ABSOLUTE: { StoermelderPackOne::Rack::ViewportCenter{Vec(module->jumpPoints[i].x, module->jumpPoints[i].y)}; break; - case JUMPPOS::MODULE_CENTER: + } + case JUMPPOS::MODULE_CENTER: { StoermelderPackOne::Rack::ViewportCenter{mw, -1.f, zoom}; break; - case JUMPPOS::MODULE_TOPLEFT: + } + case JUMPPOS::MODULE_TOPLEFT: { StoermelderPackOne::Rack::ViewportTopLeft{mw, -1.f, zoom}; break; + } } } } From d3001fbc67acaa78a1be1ac14de8dd5c34bcb638 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Mon, 22 Jan 2024 22:50:08 +0100 Subject: [PATCH 45/55] 8Face mk2 - fixed crash while exceding 0..10V in Volt-mode #377 --- CHANGELOG.md | 3 ++- docs/EightFaceMk2.md | 3 ++- src/EightFaceMk2.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0910dd..739cae9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,12 +16,14 @@ ### Fixes and Changes +- Added panel option to follow Rack's dark panel setting - Modules [8FACE, 8FACEx2](./docs/EightFace.md) - Allow disabling of "long-press" for changing the number of active slots (#354) - Module [8FACE mk2](./docs/EightFaceMk2.md) - Allow disabling of "long-press" for changing the number of active slots (#354) - Added HSL color picker for bound modules' box - Fixed broken module-id mapping when adding using STRIP or STRIP++ + - Fixed crash while exceding 0..10V in Volt-mode (#377) - Module [GLUE](./docs/Glue.md) - Added HSL color picker - Module [GRIP](./docs/Grip.md) @@ -49,7 +51,6 @@ - Fixed middle mouse button handling in Rack v2 (#372) - Module [TRANSIT](./docs/Transit.md) - Allow disabling of "long-press" for changing the number of active snapshots (#354) -- Added panel option to follow Rack's dark panel setting ## 2.0.beta3 diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 518bad4..49d8f54 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -123,4 +123,5 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" - Allow disabling of "long press" for changing the number of active slots (#354) - Added HSL color picker for bound modules' box - - Fixed broken module-id mapping when adding using STRIP or STRIP++ \ No newline at end of file + - Fixed broken module-id mapping when adding using STRIP or STRIP++ + - Fixed crash while exceding 0..10V in Volt-mode (#377) \ No newline at end of file diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index c95cbfe..ac7fcdd 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -291,7 +291,7 @@ struct EightFaceMk2Module : EightFaceMk2Base { if (Module::inputs[INPUT_CV].isConnected()) { switch (slotCvMode) { case SLOTCVMODE::VOLT: - presetLoad(std::floor(rescale(Module::inputs[INPUT_CV].getVoltage(), 0.f, 10.f, 0, presetCount))); + presetLoad(std::floor(rescale(clamp(Module::inputs[INPUT_CV].getVoltage(), 0.f, 10.f - 1e-6f), 0.f, 10.f, 0, presetCount))); break; case SLOTCVMODE::C4: presetLoad(std::round(clamp(Module::inputs[INPUT_CV].getVoltage() * 12.f, 0.f, presetTotal - 1.f))); From dc9b325a12501dd4ac84a9563737fba48386e2ff Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 6 Feb 2024 22:38:40 +0100 Subject: [PATCH 46/55] Transit - increased number of expanders to 15 #381 --- CHANGELOG.md | 1 + docs/Transit.md | 5 +++-- src/Transit.cpp | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 739cae9..9680623 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -51,6 +51,7 @@ - Fixed middle mouse button handling in Rack v2 (#372) - Module [TRANSIT](./docs/Transit.md) - Allow disabling of "long-press" for changing the number of active snapshots (#354) + - Increased maximum number of expanders to 15 (#381) ## 2.0.beta3 diff --git a/docs/Transit.md b/docs/Transit.md index 1cafcbd..d548927 100644 --- a/docs/Transit.md +++ b/docs/Transit.md @@ -128,7 +128,7 @@ Note: These modes are unavailable if _SEL_-port operates in Phase-mode. ## +T expander -TRANSIT provides 12 snapshot-slots and supports extending this number with +T expanders: The expander must be placed on the right side of TRANSIT. Up to seven instances of +T can be added to one instance of TRANSIT, providing 12 * 8 = 96 snapshot-slots in total. +TRANSIT provides 12 snapshot-slots and supports extending this number with +T expanders: The expander must be placed on the right side of TRANSIT. Up to fiveteen instances of +T can be added to one instance of TRANSIT, providing 12 * 16 = 192 snapshot-slots in total. Once placed next to TRANSIT the expander works and behaves the same way TRANSIT does and the setup is done analogously. +T itself provides no further options. ![+T expander](./Transit-t.gif) @@ -166,4 +166,5 @@ Once placed next to TRANSIT the expander works and behaves the same way TRANSIT - Fixed broken Auto/Write-modes if CV-port is set to "Phase" (#282) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" - - Allow disabling of "long press" for changing the number of active slots (#354) \ No newline at end of file + - Allow disabling of "long press" for changing the number of active slots (#354) + - Increased maximum number of expanders to 15 (#381) \ No newline at end of file diff --git a/src/Transit.cpp b/src/Transit.cpp index 31c647b..1456702 100644 --- a/src/Transit.cpp +++ b/src/Transit.cpp @@ -10,7 +10,7 @@ namespace StoermelderPackOne { namespace Transit { -const int MAX_EXPANDERS = 7; +const int MAX_EXPANDERS = 15; enum class SLOTCVMODE { OFF = -1, From 211c82e185b4912afc2c13aa9000d097c61e1570 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 6 Feb 2024 22:43:59 +0100 Subject: [PATCH 47/55] 8Face mk2 - increased number of expanders to 15 --- CHANGELOG.md | 1 + docs/EightFaceMk2.md | 5 +++-- docs/Transit.md | 2 +- src/EightFaceMk2.cpp | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9680623..5ba94ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - Added HSL color picker for bound modules' box - Fixed broken module-id mapping when adding using STRIP or STRIP++ - Fixed crash while exceding 0..10V in Volt-mode (#377) + - Increased maximum number of expanders to 15 - Module [GLUE](./docs/Glue.md) - Added HSL color picker - Module [GRIP](./docs/Grip.md) diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 49d8f54..2457af4 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -97,7 +97,7 @@ Modes for _CV_ on the contextual menu: ## +8 expander -8FACE mk2 provides 8 snapshot-slots and supports extending this number with +8 expanders: The expander must be placed on the right side of 8FACE mk2. Up to seven instances of +8 can be added to one instance of 8FACE mk2, providing 8 * 8 = 64 snapshot-slots in total. +8FACE mk2 provides 8 snapshot-slots and supports extending this number with +8 expanders: The expander must be placed on the right side of 8FACE mk2. Up to fifeteen instances of +8 can be added to one instance of 8FACE mk2, providing 8 * 16 = 128 snapshot-slots in total. Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE mk2 does and the setup is done analogously. +8 itself provides no further options. ![+8 expander](./EightFaceMk2-8.gif) @@ -124,4 +124,5 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Allow disabling of "long press" for changing the number of active slots (#354) - Added HSL color picker for bound modules' box - Fixed broken module-id mapping when adding using STRIP or STRIP++ - - Fixed crash while exceding 0..10V in Volt-mode (#377) \ No newline at end of file + - Fixed crash while exceding 0..10V in Volt-mode (#377) + - Increased maximum number of expanders to 15 \ No newline at end of file diff --git a/docs/Transit.md b/docs/Transit.md index d548927..a9f6df0 100644 --- a/docs/Transit.md +++ b/docs/Transit.md @@ -128,7 +128,7 @@ Note: These modes are unavailable if _SEL_-port operates in Phase-mode. ## +T expander -TRANSIT provides 12 snapshot-slots and supports extending this number with +T expanders: The expander must be placed on the right side of TRANSIT. Up to fiveteen instances of +T can be added to one instance of TRANSIT, providing 12 * 16 = 192 snapshot-slots in total. +TRANSIT provides 12 snapshot-slots and supports extending this number with +T expanders: The expander must be placed on the right side of TRANSIT. Up to fifeteen instances of +T can be added to one instance of TRANSIT, providing 12 * 16 = 192 snapshot-slots in total. Once placed next to TRANSIT the expander works and behaves the same way TRANSIT does and the setup is done analogously. +T itself provides no further options. ![+T expander](./Transit-t.gif) diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index ac7fcdd..eabd67d 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -29,7 +29,7 @@ std::string trim(const std::string& s) { return rtrim(ltrim(s)); } -const int MAX_EXPANDERS = 7; +const int MAX_EXPANDERS = 15; enum class SLOTCVMODE { OFF = -1, From 9b33bc255bc2cf0c1ddef0c8f82c38f75b9563b0 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 6 Feb 2024 23:38:59 +0100 Subject: [PATCH 48/55] 8Face mk2 - added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" --- CHANGELOG.md | 1 + docs/EightFaceMk2.md | 1 + src/EightFaceMk2.cpp | 3 +++ 3 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5ba94ae..46fe9bd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ - Fixed broken module-id mapping when adding using STRIP or STRIP++ - Fixed crash while exceding 0..10V in Volt-mode (#377) - Increased maximum number of expanders to 15 + - Added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" - Module [GLUE](./docs/Glue.md) - Added HSL color picker - Module [GRIP](./docs/Grip.md) diff --git a/docs/EightFaceMk2.md b/docs/EightFaceMk2.md index 2457af4..7763bd9 100644 --- a/docs/EightFaceMk2.md +++ b/docs/EightFaceMk2.md @@ -121,6 +121,7 @@ Once placed next to 8FACE mk2 the expander works and behaves the same way 8FACE - Added "Bind module (select multiple)" option (#291) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" + - Added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" - Allow disabling of "long press" for changing the number of active slots (#354) - Added HSL color picker for bound modules' box - Fixed broken module-id mapping when adding using STRIP or STRIP++ diff --git a/src/EightFaceMk2.cpp b/src/EightFaceMk2.cpp index eabd67d..02b2d2a 100644 --- a/src/EightFaceMk2.cpp +++ b/src/EightFaceMk2.cpp @@ -262,6 +262,9 @@ struct EightFaceMk2Module : EightFaceMk2Base { resetTimer.reset(); switch (slotCvMode) { case SLOTCVMODE::TRIG_FWD: + case SLOTCVMODE::TRIG_RANDOM: + case SLOTCVMODE::TRIG_RANDOM_WALK: + case SLOTCVMODE::TRIG_RANDOM_WO_REPEAT: presetLoad(0); break; case SLOTCVMODE::TRIG_REV: From e0660808e0b42c5e2594c9835b89bc95db7de908 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 6 Feb 2024 23:41:46 +0100 Subject: [PATCH 49/55] Transit - added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" --- CHANGELOG.md | 1 + docs/Transit.md | 1 + src/Transit.cpp | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 46fe9bd..c7f8a48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,7 @@ - Module [TRANSIT](./docs/Transit.md) - Allow disabling of "long-press" for changing the number of active snapshots (#354) - Increased maximum number of expanders to 15 (#381) + - Added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" ## 2.0.beta3 diff --git a/docs/Transit.md b/docs/Transit.md index a9f6df0..5076464 100644 --- a/docs/Transit.md +++ b/docs/Transit.md @@ -166,5 +166,6 @@ Once placed next to TRANSIT the expander works and behaves the same way TRANSIT - Fixed broken Auto/Write-modes if CV-port is set to "Phase" (#282) - Fixed broken reset-behavior for "Trigger forward", "Trigger reverse" and "Trigger pingpong" (#347) - Added missing reset-handling for "Trigger alternating" and "Trigger shuffle" + - Added missing reset-handling for "Trigger random", "Trigger pseudo-random" and "Trigger random walk" - Allow disabling of "long press" for changing the number of active slots (#354) - Increased maximum number of expanders to 15 (#381) \ No newline at end of file diff --git a/src/Transit.cpp b/src/Transit.cpp index 1456702..bb608a8 100644 --- a/src/Transit.cpp +++ b/src/Transit.cpp @@ -280,7 +280,10 @@ struct TransitModule : TransitBase { if (resetTrigger.process(Module::inputs[INPUT_RESET].getVoltage())) { resetTimer.reset(); switch (slotCvMode) { - case SLOTCVMODE::TRIG_FWD: { + case SLOTCVMODE::TRIG_FWD: + case SLOTCVMODE::TRIG_RANDOM: + case SLOTCVMODE::TRIG_RANDOM_WALK: + case SLOTCVMODE::TRIG_RANDOM_WO_REPEAT: { presetLoad(0); break; } From 3406b2caa9f3548992f9685cd053121c92ac6a9a Mon Sep 17 00:00:00 2001 From: stoermelder Date: Sun, 11 Feb 2024 23:36:29 +0100 Subject: [PATCH 50/55] Stroke - fixed "zoom to module" #382 --- CHANGELOG.md | 1 + docs/Stroke.md | 3 ++- src/ui/ViewportHelper.hpp | 2 +- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c7f8a48..6d58bd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -49,6 +49,7 @@ - Module [STROKE](./docs/Stroke.md) - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) + - Fixed broken "Zoom to module" and "Zoom toggle" commands (#382) - Module [SPIN](./docs/Spin.md) - Fixed middle mouse button handling in Rack v2 (#372) - Module [TRANSIT](./docs/Transit.md) diff --git a/docs/Stroke.md b/docs/Stroke.md index e88b03e..e3756cc 100644 --- a/docs/Stroke.md +++ b/docs/Stroke.md @@ -128,4 +128,5 @@ The module also supports mouse-button events: If your mouse has more than three - v2.0.0 - Added commands "Add random module", "Save module preset" and "Save module default preset" (#345) - Added commands "Zoom to specific module" and "Zoom to specific module (smooth)" (#357) - - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) \ No newline at end of file + - Fixed wrong hotkey modifier on Mac (Ctrl instead of Cmd) + - Fixed broken "Zoom to module" and "Zoom toggle" commands (#382) \ No newline at end of file diff --git a/src/ui/ViewportHelper.hpp b/src/ui/ViewportHelper.hpp index 7615085..b680551 100644 --- a/src/ui/ViewportHelper.hpp +++ b/src/ui/ViewportHelper.hpp @@ -85,7 +85,7 @@ struct ViewportCenter { float oldZoom = APP->scene->rackScroll->getZoom(); APP->scene->rackScroll->setZoom(z); APP->scene->rackScroll->setGridOffset((target - viewport * 0.5f - RACK_OFFSET) / RACK_GRID_SIZE); - if (zoom == std::numeric_limits::infinity()) { + if (zoom == std::numeric_limits::infinity() && zoomToWidget == -1.f) { APP->scene->rackScroll->setZoom(oldZoom); } } From 2754bad932a60e88715ad071bb61b98f28e23c9c Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 9 Apr 2024 15:12:55 +0200 Subject: [PATCH 51/55] added GitHub workflow --- .github/workflows/build-plugin.yml | 158 +++++++++++++++++++++++++++++ 1 file changed, 158 insertions(+) create mode 100644 .github/workflows/build-plugin.yml diff --git a/.github/workflows/build-plugin.yml b/.github/workflows/build-plugin.yml new file mode 100644 index 0000000..971de05 --- /dev/null +++ b/.github/workflows/build-plugin.yml @@ -0,0 +1,158 @@ +name: Build VCV Rack Plugin +on: [push, pull_request] + +env: + rack-sdk-version: latest + rack-plugin-toolchain-dir: /home/build/rack-plugin-toolchain + +defaults: + run: + shell: bash + +jobs: + + modify-plugin-version: + name: Modify plugin version + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: actions/cache@v3 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - run: | + gitrev=`git rev-parse --short HEAD` + pluginversion=`jq -r '.version' plugin.json` + echo "Set plugin version from $pluginversion to $pluginversion-$gitrev" + cat <<< `jq --arg VERSION "$pluginversion-$gitrev" '.version=$VERSION' plugin.json` > plugin.json + # only modify plugin version if no tag was created + if: "! startsWith(github.ref, 'refs/tags/v')" + + build: + name: ${{ matrix.platform }} + needs: modify-plugin-version + runs-on: ubuntu-latest + container: + image: ghcr.io/qno/rack-plugin-toolchain-win-linux + options: --user root + strategy: + matrix: + platform: [win-x64, lin-x64] + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions/cache@v3 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - name: Build plugin + run: | + export PLUGIN_DIR=$GITHUB_WORKSPACE + pushd ${{ env.rack-plugin-toolchain-dir }} + make plugin-build-${{ matrix.platform }} + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + path: ${{ env.rack-plugin-toolchain-dir }}/plugin-build + name: ${{ matrix.platform }} + + build-mac: + name: mac + needs: modify-plugin-version + runs-on: macos-latest + strategy: + fail-fast: false + matrix: + platform: [x64, arm64] + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + - uses: actions/cache@v3 + id: plugin-version-cache + with: + path: plugin.json + key: ${{ github.sha }}-${{ github.run_id }} + - name: Get Rack-SDK + run: | + pushd $HOME + wget -O Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-${{ env.rack-sdk-version }}-mac-${{ matrix.platform }}.zip + unzip Rack-SDK.zip + - name: Build plugin + run: | + CROSS_COMPILE_TARGET_x64=x86_64-apple-darwin + CROSS_COMPILE_TARGET_arm64=arm64-apple-darwin + export RACK_DIR=$HOME/Rack-SDK + export CROSS_COMPILE=$CROSS_COMPILE_TARGET_${{ matrix.platform }} + make dep + make dist + - name: Upload artifact + uses: actions/upload-artifact@v3 + with: + path: dist/*.vcvplugin + name: mac-${{ matrix.platform }} + + publish: + name: Publish plugin + # only create a release if a tag was created that is called e.g. v1.2.3 + # see also https://vcvrack.com/manual/Manifest#version + if: startsWith(github.ref, 'refs/tags/v') + runs-on: ubuntu-latest + needs: [build, build-mac] + steps: + - uses: actions/checkout@v3 + - uses: FranzDiebold/github-env-vars-action@v2 + - name: Check if plugin version matches tag + run: | + pluginversion=`jq -r '.version' plugin.json` + if [ "v$pluginversion" != "${{ env.CI_REF_NAME }}" ]; then + echo "Plugin version from plugin.json 'v$pluginversion' doesn't match with tag version '${{ env.CI_REF_NAME }}'" + exit 1 + fi + - name: Create Release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{ github.ref }} + name: Release ${{ env.CI_REF_NAME }} + body: | + ${{ env.CI_REPOSITORY_NAME }} VCV Rack Plugin ${{ env.CI_REF_NAME }} + draft: false + prerelease: false + - uses: actions/download-artifact@v3 + with: + path: _artifacts + - name: Upload release assets + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: _artifacts/**/*.vcvplugin + tag: ${{ github.ref }} + file_glob: true + + publish-nightly: + name: Publish Nightly + # only create a release if a tag was created that is called e.g. v1.2.3 + # see also https://vcvrack.com/manual/Manifest#version + if: ${{ github.ref == 'refs/heads/v2-dev' && github.repository_owner == 'stoermelder' }} + runs-on: ubuntu-latest + needs: [build, build-mac] + steps: + - uses: actions/download-artifact@v3 + with: + path: _artifacts + - name: Delete old release assets + uses: mknejp/delete-release-assets@v1 + with: + token: ${{ github.token }} + tag: Nightly # This may also be of the form 'refs/tags/staging' + assets: '*' + - name: Upload release assets + uses: svenstaro/upload-release-action@v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: _artifacts/**/*.vcvplugin + tag: Nightly + file_glob: true \ No newline at end of file From 04e319c5f4a6f1f2e0c64e8ea234282e409b1928 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 9 Apr 2024 15:19:09 +0200 Subject: [PATCH 52/55] updated readme --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 57e9a30..6542c6c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,7 @@ # stoermelder PackOne -![Version](https://img.shields.io/badge/version-2.0.beta2-green.svg?style=flat-square) -![Rack SDK](https://img.shields.io/badge/Rack--SDK-2.4.1-red.svg?style=flat-square) +![Version](https://img.shields.io/badge/version-2.0.beta4-green.svg?style=flat-square) ![License](https://img.shields.io/badge/license-GPLv3+-blue.svg?style=flat-square) ![Language](https://img.shields.io/badge/language-C++-yellow.svg?style=flat-square) From 5a49fb815c9774eaf72fe7c693fa586f3673f0bd Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 9 Apr 2024 15:28:58 +0200 Subject: [PATCH 53/55] updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d58bd9..9536f06 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - Module [PRISMA](./docs/Prisma.md) - A wave multiplier/phase shifter inspired by A-137-2 -## 2.0.beta4 (in development) +## 2.0.beta4 ### Fixes and Changes From 6775a188661a99f974e547c75e2c5e2636c896c7 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 9 Apr 2024 15:45:55 +0200 Subject: [PATCH 54/55] removed Azure CI pipeline and auxiliary scripts --- azure-pipelines.yml | 160 ------------------------------- scripts/plugin-builder.sh | 195 -------------------------------------- scripts/release-notes.sh | 26 ----- scripts/resetversion.sh | 8 -- 4 files changed, 389 deletions(-) delete mode 100644 azure-pipelines.yml delete mode 100644 scripts/plugin-builder.sh delete mode 100644 scripts/release-notes.sh delete mode 100644 scripts/resetversion.sh diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index 7d24535..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,160 +0,0 @@ -# Starter pipeline -# Start with a minimal pipeline that you can customize to build and deploy your code. -# Add steps that build, run tests, deploy, and more: -# https://aka.ms/yaml - -trigger: -- v2-dev - -pr: -- v2-dev - -jobs: -- job: Build - strategy: - matrix: - mac: - imageName: 'macos-11' - isMac: true - windows: - imageName: 'windows-2019' - isWindows: true - linux: - imageName: 'ubuntu-20.04' - isLinux: true - - pool: - vmImage: $(imageName) - - steps: - - checkout: self - fetchDepth: 1 - # submodules: recursive # can't do submodules here b'cuz depth=1 fails with Github - - - bash: | - uname -a - git submodule update --init --recursive - pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-win-x64.zip - unzip Rack-SDK.zip - displayName: Get Windows Rack-SDK - condition: variables.isWindows - - - bash: | - uname -a - git submodule update --init --recursive - pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-mac-x64.zip - unzip Rack-SDK.zip - displayName: Get Mac Rack-SDK - condition: variables.isMac - - - bash: | - uname -a - git submodule update --init --recursive - pushd $AGENT_TEMPDIRECTORY - curl -o Rack-SDK.zip https://vcvrack.com/downloads/Rack-SDK-2.4.1-lin-x64.zip - unzip Rack-SDK.zip - displayName: Get Linux Rack-SDK - condition: variables.isLinux - - - bash: | - chmod +x scripts/resetversion.sh - ./scripts/resetversion.sh - displayName: Update Version in plugins.json - - - bash: | - export RACK_DIR=$AGENT_TEMPDIRECTORY/Rack-SDK - export CC=gcc - make win-dist - mkdir products_win/ - cp dist/*vcvplugin products_win/ - displayName: Build Windows Plugins - condition: variables.isWindows - - - bash: | - export RACK_DIR=$AGENT_TEMPDIRECTORY/Rack-SDK - make dist - mkdir products_mac/ - cp dist/*vcvplugin products_mac/ - displayName: Build Mac Plugins - condition: variables.isMac - - - bash: | - export RACK_DIR=$AGENT_TEMPDIRECTORY/Rack-SDK - sudo apt-get update - sudo apt-get install libglu-dev --fix-missing - make dist - mkdir products_lin/ - cp dist/*vcvplugin products_lin/ - displayName: Build Linux Plugins - condition: variables.isLinux - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_LINUX' - targetPath: 'products_lin/' - displayName: Publish Linux vcvplugin - condition: variables.isLinux - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_MACOS' - targetPath: 'products_mac/' - displayName: Publish macOS vcvplugin - condition: variables.isMac - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_WIN' - targetPath: 'products_win/' - displayName: Publish Windows vcvplugin - condition: variables.isWindows - -- job: UpdateGithubRelease - dependsOn: Build - condition: and(succeeded(), or(eq(variables['Build.SourceBranch'], 'refs/heads/v2-dev'), eq(variables['Build.SourceBranch'], 'refs/heads/azure-test'))) - - pool: - vmImage: 'ubuntu-latest' - - steps: - - task: DownloadPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_LINUX' - targetPath: $(Build.ArtifactStagingDirectory) - - - task: DownloadPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_MACOS' - targetPath: $(Build.ArtifactStagingDirectory) - - - task: DownloadPipelineArtifact@0 - inputs: - artifactName: 'PACKONE_ZIP_WIN' - targetPath: $(Build.ArtifactStagingDirectory) - - - bash: | - ls -l $(Build.ArtifactStagingDirectory) - export EXTEND_TAG=`date "+%Y%m%d"` - for file in $(Build.ArtifactStagingDirectory)/*.vcvplugin; do mv "$file" "${file/.vcvplugin/-${EXTEND_TAG}.vcvplugin}"; done - ls -l $(Build.ArtifactStagingDirectory) - displayName: Tag asset names with Date - - - bash: | - chmod +x scripts/release-notes.sh - scripts/release-notes.sh > $(Build.ArtifactStagingDirectory)/ReleaseNotes.md - displayName: Fake up release notes - - - task: GitHubRelease@0 - displayName: "Update Github Release" - inputs: - gitHubConnection: stoermelder - repositoryName: stoermelder/vcvrack-packone - action: edit - tag: Nightly - target: '$(Build.SourceVersion)' - addChangeLog: false - releaseNotesFile: $(Build.ArtifactStagingDirectory)/ReleaseNotes.md - isPreRelease: true - assets: $(Build.ArtifactStagingDirectory)/*.vcvplugin \ No newline at end of file diff --git a/scripts/plugin-builder.sh b/scripts/plugin-builder.sh deleted file mode 100644 index 4d3b6a2..0000000 --- a/scripts/plugin-builder.sh +++ /dev/null @@ -1,195 +0,0 @@ -#!/bin/bash - -set -e -set -o xtrace -RACK_FROM_SOURCE=1 - -help_message() -{ - cat < $tf -mv $tf plugin.json \ No newline at end of file From 5904207df50e0ddde52d007b4fda594729bf5bc3 Mon Sep 17 00:00:00 2001 From: stoermelder Date: Tue, 9 Apr 2024 17:35:19 +0200 Subject: [PATCH 55/55] prepare release --- CHANGELOG.md | 14 - README.md | 1 + plugin.json | 39 +- res-src/FlowerSeq.afdesign | Bin 115650 -> 0 bytes res-src/FlowerSeqEx.afdesign | Bin 104104 -> 0 bytes res-src/FlowerTrig.afdesign | Bin 100306 -> 0 bytes res-src/Prisma.afdesign | Bin 45948 -> 0 bytes res-src/StripBlock.afdesign | Bin 8162 -> 0 bytes res-src/dark/FlowerSeq.afdesign | Bin 92031 -> 0 bytes res-src/dark/FlowerSeqEx.afdesign | Bin 82746 -> 0 bytes res-src/dark/FlowerTrig.afdesign | Bin 77527 -> 0 bytes res-src/dark/Prisma.afdesign | Bin 42691 -> 0 bytes res-src/dark/StripBlock.afdesign | Bin 8362 -> 0 bytes res/FlowerSeq.svg | 543 ------------- res/FlowerSeqEx.svg | 350 -------- res/FlowerTrig.svg | 364 --------- res/Prisma.svg | 368 --------- res/StripBlock.svg | 35 - res/dark/FlowerSeq.svg | 543 ------------- res/dark/FlowerSeqEx.svg | 350 -------- res/dark/FlowerTrig.svg | 367 --------- res/dark/Prisma.svg | 368 --------- res/dark/StripBlock.svg | 35 - src/Flower.hpp | 223 ----- src/FlowerSeq.cpp | 1259 ----------------------------- src/FlowerSeq.hpp | 692 ---------------- src/FlowerSeqEx.cpp | 397 --------- src/FlowerTrig.cpp | 289 ------- src/FlowerTrig.hpp | 518 ------------ src/Prisma.cpp | 207 ----- src/Strip.cpp | 16 +- src/Strip.hpp | 16 +- src/StripBlock.cpp | 42 - src/plugin.cpp | 5 - src/plugin.hpp | 5 - 35 files changed, 19 insertions(+), 7027 deletions(-) delete mode 100644 res-src/FlowerSeq.afdesign delete mode 100644 res-src/FlowerSeqEx.afdesign delete mode 100644 res-src/FlowerTrig.afdesign delete mode 100644 res-src/Prisma.afdesign delete mode 100644 res-src/StripBlock.afdesign delete mode 100644 res-src/dark/FlowerSeq.afdesign delete mode 100644 res-src/dark/FlowerSeqEx.afdesign delete mode 100644 res-src/dark/FlowerTrig.afdesign delete mode 100644 res-src/dark/Prisma.afdesign delete mode 100644 res-src/dark/StripBlock.afdesign delete mode 100644 res/FlowerSeq.svg delete mode 100644 res/FlowerSeqEx.svg delete mode 100644 res/FlowerTrig.svg delete mode 100644 res/Prisma.svg delete mode 100644 res/StripBlock.svg delete mode 100644 res/dark/FlowerSeq.svg delete mode 100644 res/dark/FlowerSeqEx.svg delete mode 100644 res/dark/FlowerTrig.svg delete mode 100644 res/dark/Prisma.svg delete mode 100644 res/dark/StripBlock.svg delete mode 100644 src/Flower.hpp delete mode 100644 src/FlowerSeq.cpp delete mode 100644 src/FlowerSeq.hpp delete mode 100644 src/FlowerSeqEx.cpp delete mode 100644 src/FlowerTrig.cpp delete mode 100644 src/FlowerTrig.hpp delete mode 100644 src/Prisma.cpp delete mode 100644 src/StripBlock.cpp diff --git a/CHANGELOG.md b/CHANGELOG.md index 9536f06..5ac015b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,3 @@ -## 2.x.x (in development) - -- Modules [FLOWER, SEEDS, OFFSPRING](./docs/Flower.md) - - New modules, pattern-driven 16-step sequencer -- Module [STRIP-BLOCK](./docs/Strip.md) - - New module, a companion module for STRIP for blocking STRIP's expander-mechanism - -## 2.1.0 (in development) - -### New modules - -- Module [PRISMA](./docs/Prisma.md) - - A wave multiplier/phase shifter inspired by A-137-2 - ## 2.0.beta4 ### Fixes and Changes diff --git a/README.md b/README.md index 6542c6c..da6b2c0 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ If you like my modules consider donating to https://paypal.me/stoermelder. Thank ## Latest additions to PackOne - new for v2.0 - [DIRT](./docs/Dirt.md): noise, crackles and crosstalk for polyphonic cables +- [MIDI-CAT CLK](./docs/MidiCat.md#clk-expander): expander for MIDI-CAT, allows trigger-quantization for mapped parameters (#299) - [MIDI-KEY](./docs/MidiKey.md): utility for generating keyboard events from MIDI CC or Note messages - [STRIP++](./docs/StripPp.md): utility for pasting and importing Rack selections while preserving parameter mappings and [GLUE](./docs/Glue.md) labels diff --git a/plugin.json b/plugin.json index a8d869a..33fc9e6 100644 --- a/plugin.json +++ b/plugin.json @@ -1,6 +1,6 @@ { "slug": "Stoermelder-P1", - "version": "2.0.0", + "version": "2.0.beta4", "license": "GPL-3.0-or-later", "author": "Benjamin Dill", "name": "PackOne", @@ -90,13 +90,6 @@ "tags": ["Utility"], "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Strip.md#stoermelder-strip-bay" }, - { - "slug": "StripBlock", - "name": "STRIP-BLOCK", - "description": "Utility module for blocking STRIP's expander mechanism (preview)", - "tags": ["Utility"], - "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Strip.md" - }, { "slug": "StripPp", "name": "STRIP++", @@ -293,27 +286,6 @@ "tags": ["Utility"], "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Spin.md" }, - { - "slug": "FlowerSeq", - "name": "FLOWER", - "description": "Pattern-based sequencer (preview)", - "tags": ["Sequencer"], - "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Flower.md" - }, - { - "slug": "FlowerSeqEx", - "name": "OFFSPRING", - "description": "Sequencer-expander for FLOWER (preview)", - "tags": ["Sequencer"], - "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Flower.md" - }, - { - "slug": "FlowerTrig", - "name": "SEEDS", - "description": "Sequencer-expander for FLOWER (preview)", - "tags": ["Sequencer"], - "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Flower.md" - }, { "slug": "Transit", "name": "TRANSIT", @@ -335,13 +307,6 @@ "tags": ["Utility"], "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/X4.md" }, - { - "slug": "Prisma", - "name": "PRISMA", - "description": "Wave multiplier/phase shifter inspired by A-137-2 (preview)", - "tags": ["Waveshaper", "Distortion"], - "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Prisma.md" - }, { "slug": "Macro", "name": "MACRO", @@ -394,7 +359,7 @@ { "slug": "Dirt", "name": "DIRT", - "description": "Crosstalk and noise for polyphonic cables (preview)", + "description": "Crosstalk and noise for polyphonic cables", "tags": ["Polyphonic"], "manualUrl": "https://github.com/stoermelder/vcvrack-packone/blob/v2/docs/Dirt.md" }, diff --git a/res-src/FlowerSeq.afdesign b/res-src/FlowerSeq.afdesign deleted file mode 100644 index 990c354ac5bcf0aaa7033f6b174dabcc39494805..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 115650 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

uWrc+iuCx4&UxV)>>q*^*ag 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 diff --git a/res-src/FlowerSeqEx.afdesign b/res-src/FlowerSeqEx.afdesign deleted file mode 100644 index 312554a01a461d75f0faf553724b80cd3b39d051..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104104 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 GE9ReU5mCwj diff --git a/res-src/FlowerTrig.afdesign b/res-src/FlowerTrig.afdesign deleted file mode 100644 index 00549660deb7bfc47a307612f92323c770999e38..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100306 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 z 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

lA|wH+UK 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

CoH+co`V>C4DrPkT+nKO_QW5CMv6&+CPGKPYG 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 bi7n1MnZJY>j2s>k@SmEpmQuEYNx=UB!FOzA diff --git a/res-src/dark/FlowerSeqEx.afdesign b/res-src/dark/FlowerSeqEx.afdesign deleted file mode 100644 index 51a34e32833db2f7ed17f969bad5107a49ac5938..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 82746 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 IO}wf91A*gVWB>pF diff --git a/res-src/dark/Prisma.afdesign b/res-src/dark/Prisma.afdesign deleted file mode 100644 index 8e6176d589cebf9328fcadf97c90a92d2934932d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42691 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 uay$a9iDV}IjPrVY900VAKUsq#RYy%7Z|HXL! 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 diff --git a/res/FlowerSeq.svg b/res/FlowerSeq.svg deleted file mode 100644 index d7e2ab7..0000000 --- a/res/FlowerSeq.svg +++ /dev/null @@ -1,543 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/FlowerSeqEx.svg b/res/FlowerSeqEx.svg deleted file mode 100644 index 3364e7d..0000000 --- a/res/FlowerSeqEx.svg +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/FlowerTrig.svg b/res/FlowerTrig.svg deleted file mode 100644 index 41a882e..0000000 --- a/res/FlowerTrig.svg +++ /dev/null @@ -1,364 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/Prisma.svg b/res/Prisma.svg deleted file mode 100644 index 861914e..0000000 --- a/res/Prisma.svg +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/StripBlock.svg b/res/StripBlock.svg deleted file mode 100644 index f58bde1..0000000 --- a/res/StripBlock.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/dark/FlowerSeq.svg b/res/dark/FlowerSeq.svg deleted file mode 100644 index 2756e36..0000000 --- a/res/dark/FlowerSeq.svg +++ /dev/null @@ -1,543 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/dark/FlowerSeqEx.svg b/res/dark/FlowerSeqEx.svg deleted file mode 100644 index f476c21..0000000 --- a/res/dark/FlowerSeqEx.svg +++ /dev/null @@ -1,350 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/dark/FlowerTrig.svg b/res/dark/FlowerTrig.svg deleted file mode 100644 index db180d0..0000000 --- a/res/dark/FlowerTrig.svg +++ /dev/null @@ -1,367 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/dark/Prisma.svg b/res/dark/Prisma.svg deleted file mode 100644 index 86d15be..0000000 --- a/res/dark/Prisma.svg +++ /dev/null @@ -1,368 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/dark/StripBlock.svg b/res/dark/StripBlock.svg deleted file mode 100644 index 52b6982..0000000 --- a/res/dark/StripBlock.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Flower.hpp b/src/Flower.hpp deleted file mode 100644 index cd812ad..0000000 --- a/src/Flower.hpp +++ /dev/null @@ -1,223 +0,0 @@ -#pragma once -#include "plugin.hpp" -#include "digital.hpp" -#include -#include - -namespace StoermelderPackOne { -namespace Flower { - -enum class OUT_CV_MODE { - BI_1V = 0, - BI_5V = 1, - BI_10V = 2, - UNI_10V = 3, - UNI_5V = 4, - UNI_3V = 5, - UNI_2V = 6, - UNI_1V = 7 -}; - -enum class OUT_AUX_MODE { - TRIG = 0, - TRIG_SLEW = 3, - CLOCK = 1, - AUXILIARY = 2 -}; - -enum class SEQ_CV_MODE { - ATTENUATE = 0, - SUM = 1 -}; - -enum class PATTERN_TYPE { - SEQ_FWD = 0, - SEQ_REV = 1, - SEQ_ADD_1V = 2, - SEQ_INV = 3, - ADD_2STEPS = 4, - AUX_ADD = 5, - SEQ_PROB_05 = 6, - AUX_SUB = 7, - SEQ_RAND = 8, - SEQ_OOD = 9, - SEQ_EVEN = 10, - SEQ_TRANSPOSE = 11, - AUX_RAND = 12, - NUM = 13 -}; - - -struct FlowerProcessArgs { - const static int STEP_VALUE = 0; - const static int STEP_DISABLED = 1; - const static int STEP_AUX = 2; - const static int STEP_PROB = 3; - const static int STEP_RATCHETS = 4; - const static int STEP_SLEW = 5; - const static int STEP_ATTACK = 6; - const static int STEP_DECAY = 7; - const static int SEQ_START = 12; - const static int SEQ_LENGTH = 13; - const static int PATTERN_CNT = 16; - const static int PATTERN_RPT = 17; - typedef std::bitset<24> RandomizeFlags; - RandomizeFlags randomizeFlagsMaster; - RandomizeFlags randomizeFlagsSlave; - - float sampleTime; - float sampleRate; - - bool running; - bool clockTick = false; - float clock; - bool stepTick = false; - bool randTick = false; - - int stepIndex; - int stepStart; - int stepLength; - - bool patternTick = false; - PATTERN_TYPE patternType; - int patternMult; - - void reset() { - clockTick = false; - stepTick = false; - randTick = false; - patternTick = false; - } -}; - - -struct PatternList { - static const int SIZE = (int)PATTERN_TYPE::NUM; - int map[SIZE]; - PATTERN_TYPE slot[SIZE]; - std::string name[SIZE]; - - int last = 0; - int pos = 0; - - void reset(int s = SIZE) { - for (int i = 0; i < SIZE; i++) { - slot[i] = (PATTERN_TYPE)i; - map[i] = i; - } - last = s; - pos = 0; - } - void setName(int i, std::string s) { - name[i] = s; - } - std::string getNameAt(int idx) { - return name[(int)at(idx)]; - } - bool active(PATTERN_TYPE i) { - return map[(int)i] < last; - } - void enable(PATTERN_TYPE i) { - int p = map[(int)i]; - if (p < last) return; - for (int j = p; j > last; j--) { slot[j] = slot[j - 1]; map[(int)slot[j]] = j; } - slot[last] = (PATTERN_TYPE)i; - map[(int)i] = last; - last++; - } - void disable(PATTERN_TYPE i) { - int p = map[(int)i]; - if (p >= last) return; - if (last == 1) return; - for (int j = p; j < last - 1; j++) { slot[j] = slot[j + 1]; map[(int)slot[j]] = j; } - slot[last - 1] = (PATTERN_TYPE)i; - map[(int)i] = last - 1; - last--; - } - void toggle(PATTERN_TYPE i) { - if (active(i)) disable(i); else enable(i); - } - void moveFwd(PATTERN_TYPE i) { - int p = map[(int)i]; - if (p == 0) return; - slot[p] = slot[p - 1]; - slot[p - 1] = i; - map[(int)slot[p]] = p; - map[(int)slot[p - 1]] = p - 1; - } - void moveBwd(PATTERN_TYPE i) { - int p = map[(int)i]; - if (p == last - 1) return; - slot[p] = slot[p + 1]; - slot[p + 1] = i; - map[(int)slot[p]] = p; - map[(int)slot[p + 1]] = p + 1; - } - PATTERN_TYPE at(int idx) { - return slot[idx]; - } - bool isFirst(PATTERN_TYPE i) { - return map[(int)i] == 0; - } - bool isLast(PATTERN_TYPE i) { - return map[(int)i] == last - 1; - } - void setPos(int idx) { - pos = idx; - } - void next() { - pos = (pos + 1) % last; - } - void prev() { - pos = (pos - 1 + SIZE) % last; - } - PATTERN_TYPE current() { - return slot[pos]; - } - void toJson(json_t* rootJ) { - std::string s(SIZE, '0'); - for (int i = 0; i < SIZE; i++) s[i] = 97 + (int)slot[i]; - json_object_set_new(rootJ, "last", json_integer(last)); - json_object_set_new(rootJ, "data", json_string(s.c_str())); - } - void fromJson(json_t* rootJ) { - last = json_integer_value(json_object_get(rootJ, "last")); - std::string s = json_string_value(json_object_get(rootJ, "data")); - for (int i = 0; i < SIZE; i++) { slot[i] = (PATTERN_TYPE)(s[i] - 97); map[(int)slot[i]] = i; } - } -}; - - -// Widgets - -struct FlowerLight : RedGreenBlueLight { - FlowerLight() { - this->box.size = mm2px(math::Vec(4.6f, 4.6f)); - } - void drawHalo(const DrawArgs& args) override { - float radius = std::min(box.size.x, box.size.y) / 2.0; - float oradius = 2.4 * radius; - - nvgBeginPath(args.vg); - nvgRect(args.vg, radius - oradius, radius - oradius, 2 * oradius, 2 * oradius); - - NVGpaint paint; - NVGcolor icol = color::mult(color, 0.10); - NVGcolor ocol = nvgRGB(0, 0, 0); - paint = nvgRadialGradient(args.vg, radius, radius, radius, oradius, icol, ocol); - nvgFillPaint(args.vg, paint); - nvgGlobalCompositeOperation(args.vg, NVG_LIGHTER); - nvgFill(args.vg); - } -}; - -struct FlowerKnob : app::SvgKnob { - FlowerKnob() { - setSvg(APP->window->loadSvg(asset::plugin(pluginInstance, "res/components/FlowerKnob.svg"))); - fb->removeChild(shadow); - delete shadow; - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne \ No newline at end of file diff --git a/src/FlowerSeq.cpp b/src/FlowerSeq.cpp deleted file mode 100644 index 8ec8e5d..0000000 --- a/src/FlowerSeq.cpp +++ /dev/null @@ -1,1259 +0,0 @@ -#include "plugin.hpp" -#include "FlowerSeq.hpp" -#include "components/Knobs.hpp" -#include - -namespace StoermelderPackOne { -namespace Flower { - -enum class PHRASE_CV_MODE { - OFF = -1, - TRIG_FWD = 0, - VOLT = 8, - C4 = 9, - ARM = 10 -}; - -enum class MUTATE_DISTRIBUTION { - UNIFORM_FIXED_0 = 0, - UNIFORM = 1, - BINOMIAL_FIXED_0 = 2, - BINOMIAL = 3 -}; - - -template < int STEPS, int PATTERNS, int PHRASES > -struct FlowerSeqModule : Module { - enum ParamIds { - PARAM_RUN, - PARAM_RESET, - PARAM_STEPLENGTH, - PARAM_START, - PARAM_RAND, - PARAM_STEPMODE, - ENUMS(PARAM_STEP, STEPS), - ENUMS(PARAM_STEP_BUTTON, STEPS), - ENUMS(PARAM_PHRASE_SELECT, PHRASES), - ENUMS(PARAM_PATTERN_SELECT, PATTERNS), - PARAM_STEP_CENTER, - NUM_PARAMS - }; - enum InputIds { - INPUT_CLOCK, - INPUT_RAND, - INPUT_RUN, - INPUT_RESET, - INPUT_STEPCNT, - INPUT_START, - INPUT_PHRASE, - INPUT_MUTATE, - ENUMS(INPUT_STEP, STEPS), - NUM_INPUTS - }; - enum OutputIds { - OUTPUT_CV, - OUTPUT_AUX, - NUM_OUTPUTS - }; - enum LightIds { - LIGHT_CLOCK, - LIGHT_RAND, - ENUMS(LIGHT_STEP, STEPS * 3), - ENUMS(LIGHT_PATTERN_SELECT, PATTERNS * 3), - ENUMS(LIGHT_PATTERN, PATTERNS * 4), - ENUMS(LIGHT_PHRASE_SELECT, PHRASES * 3), - ENUMS(LIGHT_EDIT, STEPS * 3), - NUM_LIGHTS - }; - - typedef FlowerSeqModule MODULE; - - struct PatternParamQuantity : ParamQuantity { - int i; - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - std::string s = ""; - switch (module->phrases[module->phraseIndex].patterns[i].type) { - case PATTERN_TYPE::SEQ_FWD: s = "Forward"; break; - case PATTERN_TYPE::SEQ_REV: s = "Reverse"; break; - case PATTERN_TYPE::SEQ_ADD_1V: s = "Add 1V"; break; - case PATTERN_TYPE::SEQ_INV: s = "Inverse"; break; - case PATTERN_TYPE::ADD_2STEPS: s = "Add 2 steps"; break; - case PATTERN_TYPE::AUX_ADD: s = "Add auxiliary sequence"; break; - case PATTERN_TYPE::SEQ_PROB_05: s = "Step probability 0.5"; break; - case PATTERN_TYPE::AUX_SUB: s = "Subtract auxiliary sequence"; break; - case PATTERN_TYPE::SEQ_RAND: s = "Random"; break; - case PATTERN_TYPE::SEQ_OOD: s = "Odd steps"; break; - case PATTERN_TYPE::SEQ_EVEN: s = "Even steps"; break; - case PATTERN_TYPE::SEQ_TRANSPOSE: s = "Transpose"; break; - case PATTERN_TYPE::AUX_RAND: s = "Random auxiliary sequence"; break; - default: break; - } - if (module->phrases[module->phraseIndex].patterns[i].mult > 1) { - s += string::f(" (%i times)", module->phrases[module->phraseIndex].patterns[i].mult); - } - s += "\nShort press: next pattern\nLong press: toggle number of repeats 1 -> 2 -> 3 -> 4"; - return s; - } - }; // PatternParamQuantity - - - struct FlowerPattern { - PATTERN_TYPE type; - int mult; - }; - - struct FlowerPhrase { - FlowerPattern patterns[PATTERNS]; - }; - - /** [Stored to JSON] */ - int panelTheme = 0; - - /** [Stored to JSON] */ - typedef FlowerSeq SEQ; - SEQ seq{this}; - - /** [Stored to JSON] flags which targets should be randomized */ - FlowerProcessArgs::RandomizeFlags randomizeFlags; - /** [Stored to JSON] indicates if the sequencer is running */ - bool running = true; - - /** [Stored to JSON] currently active step before pattern-transform */ - int stepIndex; - - /** [Stored to JSON] currently selected pattern */ - int patternIndex = 0; - /** [Stored to JSON] number of currently active patterns */ - int patternCount; - /** remaining repeats of the currently active pattern */ - int patternMultCount; - /** [Stored to JSON] type of the used random distribution for mutating patterns */ - MUTATE_DISTRIBUTION patternMutateDist; - /** random distributions of mutating the pattern types */ - std::binomial_distribution patternBinomialDist[PATTERNS - 1]; - - /** [Stored to JSON] set of currently used pattern types */ - //std::set patternTypeSet; - /** trivial locking-variable for thread-safe access on unsafe collections */ - bool patternSetInChange = false; - - /** [Stored to JSON] mode for PHRASE input */ - PHRASE_CV_MODE phraseCvMode = PHRASE_CV_MODE::TRIG_FWD; - /** [Stored to JSON] currently selected phrase */ - int phraseIndex = 0; - /** [Stored to JSON] number of currently active phrases */ - int phraseCount; - /** holds the next phrase if in PHRASE_CV_MODE::ARM */ - int phraseNext; - /** [Stored to JSON] the phrases */ - FlowerPhrase phrases[PHRASES]; - - PatternList patternList; - - dsp::SchmittTrigger seqRandTrigger; - dsp::SchmittTrigger runningTrigger; - dsp::SchmittTrigger resetTrigger; - dsp::SchmittTrigger clockTrigger; - dsp::Timer resetTimer; - - dsp::SchmittTrigger patternParamTrigger[PATTERNS]; - LongPressButton patternButtons[PATTERNS]; - dsp::SchmittTrigger patternMutateTrigger; - - dsp::SchmittTrigger phraseParamTrigger[PHRASES]; - dsp::SchmittTrigger phraseTrigger; - - dsp::ClockDivider paramDivider; - dsp::ClockDivider lightDivider; - - std::default_random_engine randGen{(uint16_t)std::chrono::system_clock::now().time_since_epoch().count()}; - - FlowerProcessArgs argsProducer; - FlowerProcessArgs argsConsumer; - - FlowerSeqModule() { - leftExpander.consumerMessage = &argsConsumer; - leftExpander.producerMessage = &argsProducer; - rightExpander.consumerMessage = &argsConsumer; - rightExpander.producerMessage = &argsProducer; - - panelTheme = pluginSettings.panelThemeDefault; - config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam(PARAM_RUN, 0.f, 1.f, 0.f, "Run"); - configParam(PARAM_RESET, 0.f, 1.f, 0.f, "Reset"); - configParam(PARAM_RAND, 0.f, 1.f, 0.f, "Randomize sequence"); - configParam(PARAM_STEPLENGTH, 1.f, STEPS, STEPS, "Sequence length"); - configParam(PARAM_START, 0.f, STEPS - 1, 0.f, "Sequence start", "", 0.f, 1.f, 1.f); - - configParam>(PARAM_STEPMODE, 0.f, 1.f, 0.f, "Mode"); - configParam>(PARAM_STEP_CENTER, -std::numeric_limits::infinity(), std::numeric_limits::infinity(), 0.f); - - for (int i = 0; i < STEPS; i++) { - auto pq1 = configParam>(PARAM_STEP + i, 0.f, 1.f, 0.5f, string::f("Step %i", i + 1), "V"); - pq1->i = i; - - auto pq2 = configParam>(PARAM_STEP_BUTTON + i, 0.f, 1.f, 0.f); - pq2->i = i; - } - - for (int i = 0; i < PHRASES; i++) { - configParam(PARAM_PHRASE_SELECT + i, 0.f, 1.f, 0.f, string::f("Phrase %i", i + 1)); - } - - for (int i = 0; i < PATTERNS; i++) { - PatternParamQuantity* pq = configParam(PARAM_PATTERN_SELECT + i, 0.f, 1.f, 0.f, string::f("Pattern %i", i + 1)); - pq->i = i; - patternButtons[i].param = ¶ms[PARAM_PATTERN_SELECT + i]; - } - - for (int i = 0; i < PATTERNS; i++) { - if (i > 0) patternBinomialDist[i - 1] = std::binomial_distribution(i + 1, 0.5); - } - - paramDivider.setDivision(32); - lightDivider.setDivision(512); - - patternList.setName((int)PATTERN_TYPE::SEQ_FWD, "[oxxx] Forward"); - patternList.setName((int)PATTERN_TYPE::SEQ_REV, "[xoxx] Reverse"); - patternList.setName((int)PATTERN_TYPE::SEQ_ADD_1V, "[ooxx] Add 1V"); - patternList.setName((int)PATTERN_TYPE::SEQ_INV, "[xxox] Inverse"); - patternList.setName((int)PATTERN_TYPE::ADD_2STEPS, "[oxox] Add 2 steps"); - patternList.setName((int)PATTERN_TYPE::AUX_ADD, "[xoox] Add auxiliary sequence"); - patternList.setName((int)PATTERN_TYPE::SEQ_PROB_05, "[ooox] Step probability 0.5"); - patternList.setName((int)PATTERN_TYPE::AUX_SUB, "[xxxo] Subtract auxiliary sequence"); - patternList.setName((int)PATTERN_TYPE::SEQ_RAND, "[oxxo] Random"); - patternList.setName((int)PATTERN_TYPE::SEQ_OOD, "[xoxo] Odd steps only"); - patternList.setName((int)PATTERN_TYPE::SEQ_EVEN, "[ooxo] Even steps only"); - patternList.setName((int)PATTERN_TYPE::SEQ_TRANSPOSE,"[xxoo] Transpose"); - patternList.setName((int)PATTERN_TYPE::AUX_RAND, "[oxoo] Random auxiliary sequence"); - - onReset(); - } - - void onReset() override { - Module::onReset(); - randomizeFlags.reset(); - randomizeFlags.set(0); - seq.reset(); - running = true; - - // Steps - stepIndex = 0; - - // Patterns - patternIndex = 0; - patternCount = PATTERNS / 2; - patternMultCount = 1; - patternMutateDist = MUTATE_DISTRIBUTION::UNIFORM_FIXED_0; - for (int i = 0; i < PHRASES; i++) { - for (int j = 0; j < PATTERNS; j++) { - phrases[i].patterns[j].type = (PATTERN_TYPE)(j % (int)PATTERN_TYPE::NUM); - phrases[i].patterns[j].mult = 1; - } - } - patternList.reset(); - //patternTypeSet.clear(); - //for (int i = 0; i < (int)PATTERN_TYPE::NUM; i++) { - // patternTypeSet.insert((PATTERN_TYPE)i); - //} - - // Phrases - phraseCvMode = PHRASE_CV_MODE::TRIG_FWD; - phraseIndex = 0; - phraseCount = PHRASES / 2; - } - - void process(const ProcessArgs& args) override { - if (paramDivider.process()) { - // Pattern-buttons - for (int i = 0; i < PATTERNS; i++) { - switch (patternButtons[i].process(args.sampleTime, 0.8f / float(paramDivider.getDivision()))) { - default: - case LongPressButton::NO_PRESS: - break; - case LongPressButton::SHORT_PRESS: - patternNext(i, 1); - break; - case LongPressButton::LONG_PRESS: - phrases[phraseIndex].patterns[i].mult = (phrases[phraseIndex].patterns[i].mult) % 4 + 1; - break; - } - } - - // Phrase-buttons - for (int i = 0; i < PHRASES; i++) { - if (phraseParamTrigger[i].process(params[PARAM_PHRASE_SELECT + i].getValue())) { - if (phraseCvMode != PHRASE_CV_MODE::ARM) - phraseSetIndex(i); - else - phraseNext = i; - } - } - } - - // PHRASE-input - if (inputs[INPUT_PHRASE].isConnected()) { - switch (phraseCvMode) { - case PHRASE_CV_MODE::OFF: { - break; - } - case PHRASE_CV_MODE::TRIG_FWD: { - if (phraseTrigger.process(inputs[INPUT_PHRASE].getVoltage())) { - int s = (phraseIndex + 1) % phraseCount; - phraseSetIndex(s); - } - break; - } - case PHRASE_CV_MODE::C4: { - int s = std::round(clamp(inputs[INPUT_PHRASE].getVoltage() * 12.f, 0.f, phraseCount - 1.f)); - phraseSetIndex(s); - break; - } - case PHRASE_CV_MODE::VOLT: { - int s = std::floor(rescale(inputs[INPUT_PHRASE].getVoltage(), 0.f, 10.f, 0, phraseCount - 1e-3f)); - phraseSetIndex(s); - break; - } - case PHRASE_CV_MODE::ARM: { - if (phraseTrigger.process(inputs[INPUT_PHRASE].getVoltage())) { - phraseSetIndex(phraseNext); - } - break; - } - } - } - - // MUTATE-input - if (patternMutateTrigger.process(inputs[INPUT_MUTATE].getVoltage())) { - patternMutate(); - } - - auto seqArgs = reinterpret_cast(rightExpander.producerMessage); - seqArgs->reset(); - - // RUN-input / RUN-button - if (runningTrigger.process(inputs[INPUT_RUN].getVoltage() + params[PARAM_RUN].getValue())) { - running = !running; - } - - // RESET-input / RESET-button - if (resetTrigger.process(inputs[INPUT_RESET].getVoltage() + params[PARAM_RESET].getValue())) { - patternIndex = 0; - seqArgs->patternTick = stepSetIndex(0); - seqArgs->stepTick = true; - resetTimer.reset(); - } - - // CLOCK-input - if (running) { - seqArgs->clock = inputs[INPUT_CLOCK].getVoltage(); - if (clockTrigger.process(seqArgs->clock) && resetTimer.process(args.sampleTime) >= 1e-3f) { - seqArgs->patternTick = stepSetIndex(stepIndex + 1); - seqArgs->stepTick = true; - seqArgs->clockTick = true; - } - } - - // SEQ_RAND-input / SEQ_RAND-button - if (seqRandTrigger.process(inputs[INPUT_RAND].getVoltage() + params[PARAM_RAND].getValue())) { - doRandomize(); - seqArgs->randTick = true; - } - - seqArgs->randomizeFlagsMaster = randomizeFlags; - seqArgs->sampleTime = args.sampleTime; - seqArgs->sampleRate = args.sampleRate; - - seqArgs->stepIndex = stepIndex; - seqArgs->stepStart = stepGetSeqStart(); - seqArgs->stepLength = stepGetSeqLength(); - seqArgs->running = running; - seqArgs->patternType = phrases[phraseIndex].patterns[patternIndex].type; - seqArgs->patternMult = phrases[phraseIndex].patterns[patternIndex].mult; - - seq.process(*seqArgs); - if (lightDivider.process()) processLights(args); - - leftExpander.messageFlipRequested = true; - rightExpander.messageFlipRequested = true; - } - - void processLights(const ProcessArgs& args) { - float st = args.sampleTime * lightDivider.getDivision(); - - // Pattern lights - for (int i = 0; i < PATTERNS; i++) { - float r = i == patternIndex ? 1.f : (i < patternCount && phrases[phraseIndex].patterns[i].mult >= 2 ? 1.0f : 0.f); - float g = i == patternIndex ? 1.f : (i < patternCount && phrases[phraseIndex].patterns[i].mult >= 2 ? (-1.0f + phrases[phraseIndex].patterns[i].mult * 0.5f) : 0.f); - float b = i == patternIndex ? 1.f : (i < patternCount && phrases[phraseIndex].patterns[i].mult == 1 ? 0.7f : 0.f); - lights[LIGHT_PATTERN_SELECT + i * 3 + 0].setSmoothBrightness(r, st); - lights[LIGHT_PATTERN_SELECT + i * 3 + 1].setSmoothBrightness(g, st); - lights[LIGHT_PATTERN_SELECT + i * 3 + 2].setSmoothBrightness(b, st); - lights[LIGHT_PATTERN + i * 4 + 0].setBrightness(i < patternCount && ((int)phrases[phraseIndex].patterns[i].type + 1) & 1); - lights[LIGHT_PATTERN + i * 4 + 1].setBrightness(i < patternCount && ((int)phrases[phraseIndex].patterns[i].type + 1) & 2); - lights[LIGHT_PATTERN + i * 4 + 2].setBrightness(i < patternCount && ((int)phrases[phraseIndex].patterns[i].type + 1) & 4); - lights[LIGHT_PATTERN + i * 4 + 3].setBrightness(i < patternCount && ((int)phrases[phraseIndex].patterns[i].type + 1) & 8); - } - - // Phrase lights - for (int i = 0; i < PHRASES; i++) { - float r = i == phraseIndex ? 1.f : (phraseCvMode == PHRASE_CV_MODE::ARM && i == phraseNext ? 1.f : 0.f); - float g = i == phraseIndex ? 1.f : 0.f; - float b = i == phraseIndex ? 1.f : (i < phraseCount && (phraseCvMode != PHRASE_CV_MODE::ARM || i != phraseNext) ? 0.7f : 0.f); - lights[LIGHT_PHRASE_SELECT + i * 3 + 0].setSmoothBrightness(r, st); - lights[LIGHT_PHRASE_SELECT + i * 3 + 1].setSmoothBrightness(g, st); - lights[LIGHT_PHRASE_SELECT + i * 3 + 2].setSmoothBrightness(b, st); - } - } - - void doRandomize() { - if (randomizeFlags.test(FlowerProcessArgs::SEQ_START)) - params[PARAM_START].setValue(random::u32() % STEPS); - if (randomizeFlags.test(FlowerProcessArgs::SEQ_LENGTH)) - params[PARAM_STEPLENGTH].setValue((random::u32() % STEPS) + 1); - if (randomizeFlags.test(FlowerProcessArgs::PATTERN_CNT)) - patternCount = (random::u32() % PATTERNS) + 1; - for (int i = 0; i < PATTERNS; i++) { - if (randomizeFlags.test(FlowerProcessArgs::PATTERN_RPT)) - phrases[phraseIndex].patterns[i].mult = (random::u32() % 4) + 1; - } - } - - void seqSetLength(int length) { - params[PARAM_STEPLENGTH].setValue(length); - } - - bool stepSetIndex(int index) { - bool ret = false; - int numSteps = stepGetSeqLength(); - - if (index >= numSteps) { - if (patternMultCount > 1) { - patternMultCount--; - } - else { - patternIndex = (patternIndex + 1) % patternCount; - patternMultCount = phrases[phraseIndex].patterns[patternIndex].mult; - ret = true; - } - stepIndex = 0; - } - else { - stepIndex = index; - } - return ret; - } - - inline int stepGetSeqStart() { - return (int)clamp(std::round(params[PARAM_START].getValue() + inputs[INPUT_START].getVoltage()), 0.f, float(STEPS - 1)); - } - - inline int stepGetSeqLength() { - return (int)clamp(std::round(params[PARAM_STEPLENGTH].getValue() + inputs[INPUT_STEPCNT].getVoltage()), 1.f, float(STEPS)); - } - - void patternNext(int p, int n) { - /* - if (patternSetInChange) return; - auto it = patternTypeSet.find(phrases[phraseIndex].patterns[p].type); - std::advance(it, n); - if (it == patternTypeSet.end()) it = patternTypeSet.begin(); - else if (it == patternTypeSet.begin()) it = patternTypeSet.end()--; - phrases[phraseIndex].patterns[p].type = *it; - */ - if (n == 1) patternList.next(); - if (n == -1) patternList.prev(); - phrases[phraseIndex].patterns[p].type = (PATTERN_TYPE)patternList.current(); - } - - void patternCheck() { - for (int i = 0; i < PHRASES; i++) { - for (int j = 0; j < PATTERNS; j++) { - while (!patternList.active(phrases[i].patterns[j].type)) - phrases[i].patterns[j].type = (PATTERN_TYPE)((int)phrases[i].patterns[j].type + 1); - } - } - } - - void patternSetCount(int count) { - patternCount = count; - patternIndex = std::min(patternIndex, patternCount - 1); - } - - void patternMutate() { - switch (patternMutateDist) { - case MUTATE_DISTRIBUTION::UNIFORM_FIXED_0: { - if (patternCount == 1) break; - int p = 1 + random::u32() % (patternCount - 1); - patternNext(p, random::uniform() < 0.5f ? -1 : 1); - break; - } - case MUTATE_DISTRIBUTION::UNIFORM: { - int p = random::u32() % patternCount; - patternNext(p, random::uniform() < 0.5f ? -1 : 1); - break; - } - case MUTATE_DISTRIBUTION::BINOMIAL_FIXED_0: { - switch (patternCount) { - case 1: - break; - case 2: - patternNext(1, random::uniform() < 0.5f ? -1 : 1); - break; - default: - int p = 1 + patternBinomialDist[patternCount - 3](randGen); - patternNext(p, random::uniform() < 0.5f ? -1 : 1); - break; - } - break; - } - case MUTATE_DISTRIBUTION::BINOMIAL: { - switch (patternCount) { - case 1: - patternNext(0, random::uniform() < 0.5f ? -1 : 1); - break; - default: - int p = patternBinomialDist[patternCount - 2](randGen); - patternNext(p, random::uniform() < 0.5f ? -1 : 1); - break; - } - break; - } - } - } - - void phraseSetIndex(int phrase) { - if (phraseIndex == phrase) return; - if (phrase < 0) return; - phraseIndex = phraseNext = std::min(phrase, phraseCount - 1); - } - - void phraseSetCount(int count) { - phraseCount = count; - phraseIndex = std::min(phraseIndex, phraseCount - 1); - } - - json_t* dataToJson() override { - json_t* rootJ = json_object(); - json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); - seq.dataToJson(rootJ); - json_object_set_new(rootJ, "randomizeFlags", json_string(randomizeFlags.to_string().c_str())); - - json_object_set_new(rootJ, "running", json_boolean(running)); - - // Steps - json_object_set_new(rootJ, "stepIndex", json_integer(stepIndex)); - - // Patterns - json_object_set_new(rootJ, "patternIndex", json_integer(patternIndex)); - json_object_set_new(rootJ, "patternCount", json_integer(patternCount)); - json_object_set_new(rootJ, "patternMutateDist", json_integer((int)patternMutateDist)); - json_t* patternListJ = json_object(); - patternList.toJson(patternListJ); - json_object_set_new(rootJ, "patternList", patternListJ); - - /* - json_t* patternTypeSetJ = json_array(); - for (PATTERN_TYPE p : patternTypeSet) { - json_array_append_new(patternTypeSetJ, json_integer((int)p)); - } - json_object_set_new(rootJ, "patternTypeSet", patternTypeSetJ); - */ - - // Phrases - json_object_set_new(rootJ, "phraseIndex", json_integer(phraseIndex)); - json_object_set_new(rootJ, "phraseCvMode", json_integer((int)phraseCvMode)); - json_object_set_new(rootJ, "phraseCount", json_integer(phraseCount)); - - json_t* phrasesJ = json_array(); - for (int i = 0; i < PHRASES; i++) { - json_t* phraseJ = json_object(); - json_t* patternsJ = json_array(); - for (int j = 0; j < PATTERNS; j++) { - json_t* patternJ = json_object(); - json_object_set_new(patternJ, "type", json_integer((int)phrases[i].patterns[j].type)); - json_object_set_new(patternJ, "mult", json_integer(phrases[i].patterns[j].mult)); - json_array_append_new(patternsJ, patternJ); - } - json_object_set_new(phraseJ, "patterns", patternsJ); - json_array_append_new(phrasesJ, phraseJ); - } - json_object_set_new(rootJ, "phrases", phrasesJ); - - return rootJ; - } - - void dataFromJson(json_t* rootJ) override { - panelTheme = json_integer_value(json_object_get(rootJ, "panelTheme")); - seq.dataFromJson(rootJ); - randomizeFlags = FlowerProcessArgs::RandomizeFlags(json_string_value(json_object_get(rootJ, "randomizeFlags"))); - - running = json_is_true(json_object_get(rootJ, "running")); - - // Steps - stepIndex = json_integer_value(json_object_get(rootJ, "stepIndex")); - - // Patterns - patternIndex = json_integer_value(json_object_get(rootJ, "patternIndex")); - patternCount = json_integer_value(json_object_get(rootJ, "patternCount")); - patternMutateDist = (MUTATE_DISTRIBUTION)json_integer_value(json_object_get(rootJ, "patternMutateDist")); - json_t* patternListJ = json_object_get(rootJ, "patternList"); - patternList.fromJson(patternListJ); - - /* - patternTypeSet.clear(); - json_t* patternTypeSetJ = json_object_get(rootJ, "patternTypeSet"); - json_t* patternTypeJ; - size_t patternTypeSetIndex; - json_array_foreach(patternTypeSetJ, patternTypeSetIndex, patternTypeJ) { - patternTypeSet.insert((PATTERN_TYPE)json_integer_value(patternTypeJ)); - } - */ - - // Phrases - phraseIndex = json_integer_value(json_object_get(rootJ, "phraseIndex")); - phraseCvMode = (PHRASE_CV_MODE)json_integer_value(json_object_get(rootJ, "phraseCvMode")); - phraseCount = json_integer_value(json_object_get(rootJ, "phraseCount")); - - json_t* phrasesJ = json_object_get(rootJ, "phrases"); - for (int i = 0; i < PHRASES; i++) { - json_t* phraseJ = json_array_get(phrasesJ, i); - json_t* patternsJ = json_object_get(phraseJ, "patterns"); - for (int j = 0; j < PATTERNS; j++) { - json_t* patternJ = json_array_get(patternsJ, j); - phrases[i].patterns[j].type = (PATTERN_TYPE)json_integer_value(json_object_get(patternJ, "type")); - phrases[i].patterns[j].mult = json_integer_value(json_object_get(patternJ, "mult")); - } - } - } -}; - - - -struct FlowerSeqWidget : ThemedModuleWidget> { - typedef FlowerSeqModule<16, 8, 8> MODULE; - - FlowerSeqWidget(MODULE* module) - : ThemedModuleWidget(module, "FlowerSeq") { - setModule(module); - - 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(createParamCentered(Vec(195.0f, 190.0f), module, MODULE::PARAM_STEP_CENTER)); - - addParam(createParamCentered(Vec(116.2, 53.4f), module, MODULE::PARAM_RUN)); - addInput(createInputCentered(Vec(93.1f, 66.4f), module, MODULE::INPUT_RUN)); - addParam(createParamCentered(Vec(58.5f, 111.2f), module, MODULE::PARAM_RESET)); - addInput(createInputCentered(Vec(71.4f, 88.1f), module, MODULE::INPUT_RESET)); - - addParam(createParamCentered(Vec(274.0f, 53.4f), module, MODULE::PARAM_STEPLENGTH)); - addInput(createInputCentered(Vec(297.0f, 66.3f), module, MODULE::INPUT_STEPCNT)); - addInput(createInputCentered(Vec(318.7f, 88.0f), module, MODULE::INPUT_START)); - addParam(createParamCentered(Vec(331.7f, 112.2f), module, MODULE::PARAM_START)); - - addParam(createParamCentered(Vec(116.2f, 326.7f), module, MODULE::PARAM_RAND)); - addInput(createInputCentered(Vec(93.2f, 313.7f), module, MODULE::INPUT_RAND)); - addInput(createInputCentered(Vec(71.5f, 292.0f), module, MODULE::INPUT_CLOCK)); - - addOutput(createOutputCentered(Vec(318.9f, 291.9f), module, MODULE::OUTPUT_CV)); - addOutput(createOutputCentered(Vec(297.1f, 313.6f), module, MODULE::OUTPUT_AUX)); - addParam(createParamCentered(Vec(274.f, 326.7f), module, MODULE::PARAM_STEPMODE)); - - // Edit leds - addChild(createLightCentered>(Vec(219.2f, 68.5f), module, MODULE::LIGHT_EDIT + 0 * 3)); - addChild(createLightCentered>(Vec(262.9f, 86.4f), module, MODULE::LIGHT_EDIT + 1 * 3)); - addChild(createLightCentered>(Vec(298.1f, 121.1f), module, MODULE::LIGHT_EDIT + 2 * 3)); - addChild(createLightCentered>(Vec(316.6f, 165.8f), module, MODULE::LIGHT_EDIT + 3 * 3)); - addChild(createLightCentered>(Vec(316.6f, 214.1f), module, MODULE::LIGHT_EDIT + 4 * 3)); - addChild(createLightCentered>(Vec(298.1f, 257.9f), module, MODULE::LIGHT_EDIT + 5 * 3)); - addChild(createLightCentered>(Vec(262.9f, 293.0f), module, MODULE::LIGHT_EDIT + 6 * 3)); - addChild(createLightCentered>(Vec(219.2f, 311.5f), module, MODULE::LIGHT_EDIT + 7 * 3)); - addChild(createLightCentered>(Vec(171.0f, 311.5f), module, MODULE::LIGHT_EDIT + 8 * 3)); - addChild(createLightCentered>(Vec(126.4f, 293.0f), module, MODULE::LIGHT_EDIT + 9 * 3)); - addChild(createLightCentered>(Vec(92.2f, 257.9f), module, MODULE::LIGHT_EDIT + 10 * 3)); - addChild(createLightCentered>(Vec(73.6f, 214.1f), module, MODULE::LIGHT_EDIT + 11 * 3)); - addChild(createLightCentered>(Vec(73.6f, 165.8f), module, MODULE::LIGHT_EDIT + 12 * 3)); - addChild(createLightCentered>(Vec(92.2f, 121.1f), module, MODULE::LIGHT_EDIT + 13 * 3)); - addChild(createLightCentered>(Vec(126.4f, 86.4f), module, MODULE::LIGHT_EDIT + 14 * 3)); - addChild(createLightCentered>(Vec(171.0f, 68.5f), module, MODULE::LIGHT_EDIT + 15 * 3)); - - // Steps - addParam(createParamCentered(Vec(195.0f, 137.9f), module, MODULE::PARAM_STEP_BUTTON + 0)); - addParam(createParamCentered(Vec(214.9f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 1)); - addParam(createParamCentered(Vec(231.8f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 2)); - addParam(createParamCentered(Vec(243.0f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 3)); - addParam(createParamCentered(Vec(247.1f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 4)); - addParam(createParamCentered(Vec(243.1f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 5)); - addParam(createParamCentered(Vec(231.8f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 6)); - addParam(createParamCentered(Vec(214.9f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 7)); - addParam(createParamCentered(Vec(195.0f, 242.1f), module, MODULE::PARAM_STEP_BUTTON + 8)); - addParam(createParamCentered(Vec(175.1f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 9)); - addParam(createParamCentered(Vec(158.2f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 10)); - addParam(createParamCentered(Vec(146.9f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 11)); - addParam(createParamCentered(Vec(142.9f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 12)); - addParam(createParamCentered(Vec(146.9f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 13)); - addParam(createParamCentered(Vec(158.2f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 14)); - addParam(createParamCentered(Vec(175.1f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 15)); - - addChild(createLightCentered(Vec(195.0f, 137.9f), module, MODULE::LIGHT_STEP + 0 * 3)); - addChild(createLightCentered(Vec(214.9f, 141.9f), module, MODULE::LIGHT_STEP + 1 * 3)); - addChild(createLightCentered(Vec(231.8f, 153.2f), module, MODULE::LIGHT_STEP + 2 * 3)); - addChild(createLightCentered(Vec(243.0f, 169.7f), module, MODULE::LIGHT_STEP + 3 * 3)); - addChild(createLightCentered(Vec(247.1f, 190.0f), module, MODULE::LIGHT_STEP + 4 * 3)); - addChild(createLightCentered(Vec(243.1f, 209.9f), module, MODULE::LIGHT_STEP + 5 * 3)); - addChild(createLightCentered(Vec(231.8f, 226.8f), module, MODULE::LIGHT_STEP + 6 * 3)); - addChild(createLightCentered(Vec(214.9f, 238.1f), module, MODULE::LIGHT_STEP + 7 * 3)); - addChild(createLightCentered(Vec(195.0f, 242.1f), module, MODULE::LIGHT_STEP + 8 * 3)); - addChild(createLightCentered(Vec(175.1f, 238.1f), module, MODULE::LIGHT_STEP + 9 * 3)); - addChild(createLightCentered(Vec(158.2f, 226.8f), module, MODULE::LIGHT_STEP + 10 * 3)); - addChild(createLightCentered(Vec(146.9f, 209.9f), module, MODULE::LIGHT_STEP + 11 * 3)); - addChild(createLightCentered(Vec(142.9f, 190.0f), module, MODULE::LIGHT_STEP + 12 * 3)); - addChild(createLightCentered(Vec(146.9f, 169.7f), module, MODULE::LIGHT_STEP + 13 * 3)); - addChild(createLightCentered(Vec(158.2f, 153.2f), module, MODULE::LIGHT_STEP + 14 * 3)); - addChild(createLightCentered(Vec(175.1f, 141.9f), module, MODULE::LIGHT_STEP + 15 * 3)); - - addParam(createParamCentered(Vec(195.0f, 107.2f), module, MODULE::PARAM_STEP + 0)); - addParam(createParamCentered(Vec(230.2f, 104.9f), module, MODULE::PARAM_STEP + 1)); - addParam(createParamCentered(Vec(253.6f, 131.4f), module, MODULE::PARAM_STEP + 2)); - addParam(createParamCentered(Vec(280.1f, 154.9f), module, MODULE::PARAM_STEP + 3)); - addParam(createParamCentered(Vec(277.8f, 190.0f), module, MODULE::PARAM_STEP + 4)); - addParam(createParamCentered(Vec(280.1f, 225.2f), module, MODULE::PARAM_STEP + 5)); - addParam(createParamCentered(Vec(253.6f, 248.6f), module, MODULE::PARAM_STEP + 6)); - addParam(createParamCentered(Vec(230.2f, 275.1f), module, MODULE::PARAM_STEP + 7)); - addParam(createParamCentered(Vec(195.0f, 272.8f), module, MODULE::PARAM_STEP + 8)); - addParam(createParamCentered(Vec(159.8f, 275.1f), module, MODULE::PARAM_STEP + 9)); - addParam(createParamCentered(Vec(136.4f, 248.6f), module, MODULE::PARAM_STEP + 10)); - addParam(createParamCentered(Vec(109.9f, 225.2f), module, MODULE::PARAM_STEP + 11)); - addParam(createParamCentered(Vec(112.2f, 190.0f), module, MODULE::PARAM_STEP + 12)); - addParam(createParamCentered(Vec(109.9f, 154.9f), module, MODULE::PARAM_STEP + 13)); - addParam(createParamCentered(Vec(136.4f, 131.4f), module, MODULE::PARAM_STEP + 14)); - addParam(createParamCentered(Vec(159.8f, 104.9f), module, MODULE::PARAM_STEP + 15)); - - addInput(createInputCentered(Vec(195.0f, 66.2f), module, MODULE::INPUT_STEP + 0)); - addInput(createInputCentered(Vec(242.2f, 75.6f), module, MODULE::INPUT_STEP + 1)); - addInput(createInputCentered(Vec(282.6f, 102.4f), module, MODULE::INPUT_STEP + 2)); - addInput(createInputCentered(Vec(309.4f, 142.6f), module, MODULE::INPUT_STEP + 3)); - addInput(createInputCentered(Vec(318.8f, 190.0f), module, MODULE::INPUT_STEP + 4)); - addInput(createInputCentered(Vec(309.4f, 237.4f), module, MODULE::INPUT_STEP + 5)); - addInput(createInputCentered(Vec(282.6f, 277.6f), module, MODULE::INPUT_STEP + 6)); - addInput(createInputCentered(Vec(242.2f, 304.4f), module, MODULE::INPUT_STEP + 7)); - addInput(createInputCentered(Vec(195.0f, 313.8f), module, MODULE::INPUT_STEP + 8)); - addInput(createInputCentered(Vec(147.6f, 304.4f), module, MODULE::INPUT_STEP + 9)); - addInput(createInputCentered(Vec(107.4f, 277.6f), module, MODULE::INPUT_STEP + 10)); - addInput(createInputCentered(Vec(80.6f, 237.4f), module, MODULE::INPUT_STEP + 11)); - addInput(createInputCentered(Vec(71.2f, 190.0f), module, MODULE::INPUT_STEP + 12)); - addInput(createInputCentered(Vec(80.6f, 142.6f), module, MODULE::INPUT_STEP + 13)); - addInput(createInputCentered(Vec(107.4f, 102.4f), module, MODULE::INPUT_STEP + 14)); - addInput(createInputCentered(Vec(147.6f, 75.6f), module, MODULE::INPUT_STEP + 15)); - - // Phrases - for (int i = 0; i < 8; i++) { - addParam(createParamCentered(Vec(23.8f, 73.3f + i * 30.f), module, MODULE::PARAM_PHRASE_SELECT + i)); - addChild(createLightCentered(Vec(23.8f, 73.3f + i * 30.f), module, MODULE::LIGHT_PHRASE_SELECT + i * 3)); - } - addInput(createInputCentered(Vec(23.8f, 325.8f), module, MODULE::INPUT_PHRASE)); - - // Patterns - for (int i = 0; i < 8; i++) { - addParam(createParamCentered(Vec(366.3f, 73.3f + i * 30.f), module, MODULE::PARAM_PATTERN_SELECT + i)); - addChild(createLightCentered(Vec(366.3f, 73.3f + i * 30.f), module, MODULE::LIGHT_PATTERN_SELECT + i * 3)); - - addChild(createLightCentered>(Vec(357.1f, 63.7f + i * 30.f), module, MODULE::LIGHT_PATTERN + i * 4 + 0)); - addChild(createLightCentered>(Vec(363.2f, 60.5f + i * 30.f), module, MODULE::LIGHT_PATTERN + i * 4 + 1)); - addChild(createLightCentered>(Vec(369.3f, 60.5f + i * 30.f), module, MODULE::LIGHT_PATTERN + i * 4 + 2)); - addChild(createLightCentered>(Vec(375.4f, 63.7f + i * 30.f), module, MODULE::LIGHT_PATTERN + i * 4 + 3)); - } - addInput(createInputCentered(Vec(366.3f, 325.8f), module, MODULE::INPUT_MUTATE)); - } - - void appendContextMenu(Menu* menu) override { - ThemedModuleWidget::appendContextMenu(menu); - MODULE* module = dynamic_cast(this->module); - assert(module); - - struct PortableSequenceMenuItem : MenuItem { - FlowerSeqWidget* mw; - PortableSequenceMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct CopyItem : MenuItem { - FlowerSeqWidget* mw; - void onAction(const event::Action& e) override { - mw->copyPortableSequence(); - } - }; - struct PasteItem : MenuItem { - FlowerSeqWidget* mw; - void onAction(const event::Action& e) override { - mw->pastePortableSequence(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Copy sequence", &CopyItem::mw, mw)); - menu->addChild(construct(&MenuItem::text, "Paste sequence", &PasteItem::mw, mw)); - return menu; - } - }; // PortableSequenceMenuItem - - struct PhraseCvModeMenuItem : MenuItem { - PhraseCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - struct PhraseCvModeItem : MenuItem { - MODULE* module; - PHRASE_CV_MODE phraseCvMode; - void onAction(const event::Action& e) override { - module->phraseCvMode = phraseCvMode; - } - void step() override { - rightText = module->phraseCvMode == phraseCvMode ? "✔" : ""; - MenuItem::step(); - } - }; - - MODULE* module; - Menu* createChildMenu() override { - Menu* menu = new Menu; - menu->addChild(construct(&MenuItem::text, "Off", &PhraseCvModeItem::module, module, &PhraseCvModeItem::phraseCvMode, PHRASE_CV_MODE::OFF)); - menu->addChild(construct(&MenuItem::text, "Trigger", &PhraseCvModeItem::module, module, &PhraseCvModeItem::phraseCvMode, PHRASE_CV_MODE::TRIG_FWD)); - menu->addChild(construct(&MenuItem::text, "0..10V", &PhraseCvModeItem::module, module, &PhraseCvModeItem::phraseCvMode, PHRASE_CV_MODE::VOLT)); - menu->addChild(construct(&MenuItem::text, "C4-G4", &PhraseCvModeItem::module, module, &PhraseCvModeItem::phraseCvMode, PHRASE_CV_MODE::C4)); - menu->addChild(construct(&MenuItem::text, "Arm", &PhraseCvModeItem::module, module, &PhraseCvModeItem::phraseCvMode, PHRASE_CV_MODE::ARM)); - return menu; - } - }; // PhraseCvModeMenuItem - - struct PhraseCountMenuItem : MenuItem { - MODULE* module; - PhraseCountMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct PhraseCountItem : MenuItem { - MODULE* module; - int count; - void onAction(const event::Action& e) override { - module->phraseSetCount(count); - } - void step() override { - rightText = module->phraseCount == count ? "✔" : ""; - MenuItem::step(); - } - }; - - for (int i = 0; i < 8; i++) { - menu->addChild(construct(&MenuItem::text, string::f("%2u", i + 1), &PhraseCountItem::module, module, &PhraseCountItem::count, i + 1)); - } - - return menu; - } - }; // PhraseCountMenuItem - - struct PatternCountMenuItem : MenuItem { - MODULE* module; - PatternCountMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct PatternCountItem : MenuItem { - MODULE* module; - int count; - void onAction(const event::Action& e) override { - module->patternSetCount(count); - } - void step() override { - rightText = module->patternCount == count ? "✔" : ""; - MenuItem::step(); - } - }; - - for (int i = 0; i < 8; i++) { - menu->addChild(construct(&MenuItem::text, string::f("%2u", i + 1), &PatternCountItem::module, module, &PatternCountItem::count, i + 1)); - } - - return menu; - } - }; // PatternCountMenuItem - - struct PatternModeMenuItem : MenuItem { - MODULE* module; - PatternModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct PatternModeItem : MenuItem { - MODULE* module; - PATTERN_TYPE pm; - void onAction(const event::Action& e) override { - module->patternList.toggle(pm); - if (!module->patternList.active(pm)) module->patternCheck(); - } - void step() override { - //rightText = module->patternTypeSet.find(pm) != module->patternTypeSet.end() ? "✔" : ""; - rightText = module->patternList.active(pm) ? "✔" : ""; - MenuItem::step(); - } - Menu* createChildMenu() override { - if (!module->patternList.active(pm)) return NULL; - Menu* menu = new Menu; - - struct UpItem : MenuItem { - MODULE* module; - PATTERN_TYPE pm; - void onAction(const event::Action& e) override { - module->patternList.moveFwd(pm); - } - }; - struct DownItem : MenuItem { - MODULE* module; - PATTERN_TYPE pm; - void onAction(const event::Action& e) override { - module->patternList.moveBwd(pm); - } - }; - - if (!module->patternList.isFirst(pm)) - menu->addChild(construct(&MenuItem::text, "Move up", &UpItem::module, module, &UpItem::pm, pm)); - if (!module->patternList.isLast(pm)) - menu->addChild(construct(&MenuItem::text, "Move down", &DownItem::module, module, &DownItem::pm, pm)); - return menu; - } - }; - - struct PatternResetItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->patternList.reset(); - } - }; - - for (int i = 0; i < (int)PATTERN_TYPE::NUM; i++) { - menu->addChild(construct(&MenuItem::text, module->patternList.getNameAt(i), &PatternModeItem::module, module, &PatternModeItem::pm, module->patternList.at(i))); - } - menu->addChild(new MenuSeparator); - menu->addChild(construct(&MenuItem::text, "Reset patterns", &PatternResetItem::module, module)); - - /* - menu->addChild(construct(&MenuItem::text, "[oxxx] Forward", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_FWD)); - menu->addChild(construct(&MenuItem::text, "[xoxx] Reverse", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_REV)); - menu->addChild(construct(&MenuItem::text, "[ooxx] Add 1V", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_ADD_1V)); - menu->addChild(construct(&MenuItem::text, "[xxox] Inverse", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_INV)); - menu->addChild(construct(&MenuItem::text, "[oxox] Add 2 steps", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::ADD_2STEPS)); - menu->addChild(construct(&MenuItem::text, "[xoox] Add auxiliary sequence", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::AUX_ADD)); - menu->addChild(construct(&MenuItem::text, "[ooox] Step probability 0.5", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_PROB_05)); - menu->addChild(construct(&MenuItem::text, "[xxxo] Subtract auxiliary sequence", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::AUX_SUB)); - menu->addChild(construct(&MenuItem::text, "[oxxo] Random", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_RAND)); - menu->addChild(construct(&MenuItem::text, "[xoxo] Odd steps only", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_OOD)); - menu->addChild(construct(&MenuItem::text, "[ooxo] Even steps only", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_EVEN)); - menu->addChild(construct(&MenuItem::text, "[xxoo] Transpose", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::SEQ_TRANSPOSE)); - menu->addChild(construct(&MenuItem::text, "[oxoo] Random auxiliary sequence", &PatternModeItem::module, module, &PatternModeItem::pm, PATTERN_TYPE::AUX_RAND)); - */ - return menu; - } - }; // PatternModeMenuItem - - struct PatternMutateMenuItem : MenuItem { - MODULE* module; - PatternMutateMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct PatternMutateItem : MenuItem { - MODULE* module; - MUTATE_DISTRIBUTION d; - void onAction(const event::Action& e) override { - module->patternMutateDist = d; - } - void step() override { - rightText = d == module->patternMutateDist ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Uniform distribution (fixed pattern 1)", &PatternMutateItem::module, module, &PatternMutateItem::d, MUTATE_DISTRIBUTION::UNIFORM_FIXED_0)); - menu->addChild(construct(&MenuItem::text, "Uniform distribution", &PatternMutateItem::module, module, &PatternMutateItem::d, MUTATE_DISTRIBUTION::UNIFORM)); - menu->addChild(construct(&MenuItem::text, "Binomial distribution (fixed pattern 1)", &PatternMutateItem::module, module, &PatternMutateItem::d, MUTATE_DISTRIBUTION::BINOMIAL_FIXED_0)); - menu->addChild(construct(&MenuItem::text, "Binomial distribution", &PatternMutateItem::module, module, &PatternMutateItem::d, MUTATE_DISTRIBUTION::BINOMIAL)); - return menu; - } - }; // PatternMutateMenuItem - - struct StepCvModeMenuItem : MenuItem { - MODULE* module; - StepCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct StepCvModeItem : MenuItem { - MODULE* module; - SEQ_CV_MODE stepCvMode; - void onAction(const event::Action& e) override { - module->seq.stepCvMode = stepCvMode; - } - void step() override { - rightText = module->seq.stepCvMode == stepCvMode ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Attenuate", &StepCvModeItem::module, module, &StepCvModeItem::stepCvMode, SEQ_CV_MODE::ATTENUATE)); - menu->addChild(construct(&MenuItem::text, "Sum", &StepCvModeItem::module, module, &StepCvModeItem::stepCvMode, SEQ_CV_MODE::SUM)); - return menu; - } - }; // StepCvModeMenuItem - - struct StepRandomizeMenuItem : MenuItem { - MODULE* module; - StepRandomizeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct StepRandomizeItem : MenuItem { - MODULE* module; - int idx; - void onAction(const event::Action& e) override { - module->randomizeFlags.flip(idx); - } - void step() override { - rightText = module->randomizeFlags.test(idx) ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuLabel::text, "Steps")); - menu->addChild(construct(&MenuItem::text, "Value", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_VALUE)); - menu->addChild(construct(&MenuItem::text, "Disabled", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_DISABLED)); - menu->addChild(construct(&MenuItem::text, "Auxiliary value", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_AUX)); - menu->addChild(construct(&MenuItem::text, "Probability", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_PROB)); - menu->addChild(construct(&MenuItem::text, "Ratchets", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_RATCHETS)); - menu->addChild(construct(&MenuItem::text, "Slew", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_SLEW)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuLabel::text, "Sequence")); - menu->addChild(construct(&MenuItem::text, "Start", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::SEQ_START)); - menu->addChild(construct(&MenuItem::text, "Length", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::SEQ_LENGTH)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuLabel::text, "Pattern")); - menu->addChild(construct(&MenuItem::text, "Count", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::PATTERN_CNT)); - menu->addChild(construct(&MenuItem::text, "Repeats", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::PATTERN_RPT)); - return menu; - } - }; // StepRandomizeMenuItem - - struct OutCvModeMenuItem : MenuItem { - MODULE* module; - OutCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct OutCvModeItem : MenuItem { - MODULE* module; - OUT_CV_MODE outCvMode; - void onAction(const event::Action& e) override { - module->seq.outCvMode = outCvMode; - } - void step() override { - rightText = module->seq.outCvMode == outCvMode ? "✔" : ""; - MenuItem::step(); - } - }; - - struct OutCvClampItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->seq.outCvClamp ^= true; - } - void step() override { - rightText = module->seq.outCvClamp ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "-10..10V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_10V)); - menu->addChild(construct(&MenuItem::text, "-5..5V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_5V)); - menu->addChild(construct(&MenuItem::text, "-1..1V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_1V)); - menu->addChild(construct(&MenuItem::text, "0..10V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_10V)); - menu->addChild(construct(&MenuItem::text, "0..5V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_5V)); - menu->addChild(construct(&MenuItem::text, "0..3V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_3V)); - menu->addChild(construct(&MenuItem::text, "0..2V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_2V)); - menu->addChild(construct(&MenuItem::text, "0..1V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_1V)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Clamp output", &OutCvClampItem::module, module)); - return menu; - } - }; // OutCvModeMenuItem - - struct OutAuxModeMenuItem : MenuItem { - MODULE* module; - OutAuxModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct OutAuxModeItem : MenuItem { - MODULE* module; - OUT_AUX_MODE outAuxMode; - void onAction(const event::Action& e) override { - module->seq.outAuxMode = outAuxMode; - } - void step() override { - rightText = module->seq.outAuxMode == outAuxMode ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Trigger", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::TRIG)); - menu->addChild(construct(&MenuItem::text, "Slewed trigger", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::TRIG_SLEW)); - menu->addChild(construct(&MenuItem::text, "Clock", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::CLOCK)); - menu->addChild(construct(&MenuItem::text, "Auxiliary sequence", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::AUXILIARY)); - return menu; - } - }; // OutAuxModeMenuItem - - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Portable sequence", &PortableSequenceMenuItem::mw, this)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Phrase CV mode", &PhraseCvModeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Phrase count", &PhraseCountMenuItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Patterns", &PatternModeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Pattern count", &PatternCountMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "Pattern mutate", &PatternMutateMenuItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Step CV knob mode", &StepCvModeMenuItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "RAND-port targets", &StepRandomizeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "CV-port range", &OutCvModeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "OUT-port mode", &OutAuxModeMenuItem::module, module)); - } - - void copyPortableSequence() { - int start = module->stepGetSeqStart(); - int length = module->stepGetSeqLength(); - - json_t* sequenceJ = json_object(); - json_object_set_new(sequenceJ, "length", json_real((float)length)); - - json_t* notesJ = json_array(); - for (int i = 0; i < length; i++) { - int i_ = (start + i) % 16; - if (!module->seq.stepGet(i_)->disabled) { - json_t* noteJ = json_object(); - json_object_set_new(noteJ, "type", json_string("note")); - json_object_set_new(noteJ, "start", json_real((float)i)); - json_object_set_new(noteJ, "length", json_real(0.5f)); - json_object_set_new(noteJ, "pitch", json_real(module->seq.stepGetValueScaled(i_, false))); - json_object_set_new(noteJ, "playProbability", json_real(module->seq.stepGet(i_)->probability)); - json_array_append_new(notesJ, noteJ); - } - } - json_object_set_new(sequenceJ, "notes", notesJ); - - // Copy to clipboard - json_t* clipboardJ = json_object(); - json_object_set_new(clipboardJ, "vcvrack-sequence", sequenceJ); - DEFER({ - json_decref(clipboardJ); - }); - char* clipboard = json_dumps(clipboardJ, JSON_INDENT(2) | JSON_REAL_PRECISION(9)); - DEFER({ - free(clipboard); - }); - glfwSetClipboardString(APP->window->win, clipboard); - } - - void pastePortableSequence() { - const char* clipboard = glfwGetClipboardString(APP->window->win); - if (!clipboard) { - osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, "Could not get text from clipboard."); - return; - } - - json_error_t error; - json_t* clipboardJ = json_loads(clipboard, 0, &error); - if (!clipboardJ) { - std::string message = string::f("JSON parsing error at %s %d:%d %s", error.source, error.line, error.column, error.text); - osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, message.c_str()); - return; - } - DEFER({ - json_decref(clipboardJ); - }); - - json_t* sequenceJ = json_object_get(clipboardJ, "vcvrack-sequence"); - if (!sequenceJ) { - osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, "Could not get sequence from clipboard."); - return; - } - - json_t* lengthJ = json_object_get(sequenceJ, "length"); - if (!lengthJ) { - osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, "Wrong format of sequence in clipboard."); - return; - } - - json_t* notesJ = json_object_get(sequenceJ, "notes"); - if (!notesJ || !json_is_array(notesJ)) { - osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, "Wrong format of sequence in clipboard."); - return; - } - - int start = module->stepGetSeqStart(); - int length = std::min((int)json_array_size(notesJ), 16); - - for (int i = 0; i < length; i++) { - int i_ = (start + i) % 16; - - json_t* noteJ = json_array_get(notesJ, i); - if (!noteJ) continue; - - json_t* pitchJ = json_object_get(noteJ, "pitch"); - if (!pitchJ) continue; - module->seq.stepSetValue(i_, json_real_value(pitchJ)); - - json_t* probJ = json_object_get(noteJ, "playProbability"); - module->seq.stepGet(i_)->probability = probJ ? json_real_value(probJ) : 1.0f; - - module->seq.stepGet(i_)->ratchets = 1; - module->seq.stepGet(i_)->disabled = false; - } - - module->seqSetLength(length); - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne - -Model* modelFlowerSeq = createModel, StoermelderPackOne::Flower::FlowerSeqWidget>("FlowerSeq"); \ No newline at end of file diff --git a/src/FlowerSeq.hpp b/src/FlowerSeq.hpp deleted file mode 100644 index d07b578..0000000 --- a/src/FlowerSeq.hpp +++ /dev/null @@ -1,692 +0,0 @@ -#include "plugin.hpp" -#include "digital.hpp" -#include "Flower.hpp" -#include -#include - -namespace StoermelderPackOne { -namespace Flower { - -enum class SEQ_UI_STATE { - DEFAULT, - PROBABILITY, - RATCHETS, - SLEW, - AUXILIARY, - NUM_MODES -}; - - -template< typename MODULE > -struct SeqStepParamQuantity : ParamQuantity { - int i; - float getDisplayValue() override { - auto module = reinterpret_cast(this->module); - if (module->seq.stepCvMode == SEQ_CV_MODE::ATTENUATE && module->inputs[module->INPUT_STEP + i].isConnected()) { - switch (module->seq.outCvMode) { - case OUT_CV_MODE::BI_10V: - case OUT_CV_MODE::BI_5V: - case OUT_CV_MODE::BI_1V: return getValue() * 2.f - 1.f; - case OUT_CV_MODE::UNI_10V: - case OUT_CV_MODE::UNI_5V: - case OUT_CV_MODE::UNI_3V: - case OUT_CV_MODE::UNI_2V: - case OUT_CV_MODE::UNI_1V: - default: return getValue(); - } - } - else { - switch (module->seq.outCvMode) { - case OUT_CV_MODE::BI_10V: return getValue() * 20.f - 10.f; - case OUT_CV_MODE::BI_5V: return getValue() * 10.f - 5.f; - case OUT_CV_MODE::BI_1V: return getValue() * 2.f - 1.f; - case OUT_CV_MODE::UNI_10V: return getValue() * 10.f; - case OUT_CV_MODE::UNI_5V: return getValue() * 5.f; - case OUT_CV_MODE::UNI_3V: return getValue() * 3.f; - case OUT_CV_MODE::UNI_2V: return getValue() * 2.f; - case OUT_CV_MODE::UNI_1V: - default: return getValue(); - } - } - } - void setDisplayValue(float displayValue) override { - auto module = reinterpret_cast(this->module); - switch (module->seq.outCvMode) { - case OUT_CV_MODE::BI_10V: setValue((displayValue + 10.f) / 20.f); break; - case OUT_CV_MODE::BI_5V: setValue((displayValue + 5.f) / 10.f); break; - case OUT_CV_MODE::BI_1V: setValue((displayValue + 1.f) / 2.f); break; - case OUT_CV_MODE::UNI_10V: setValue(displayValue / 10.f); break; - case OUT_CV_MODE::UNI_5V: setValue(displayValue / 5.f); break; - case OUT_CV_MODE::UNI_3V: setValue(displayValue / 3.f); break; - case OUT_CV_MODE::UNI_2V: setValue(displayValue / 2.f); break; - case OUT_CV_MODE::UNI_1V: setValue(displayValue); break; - } - } - std::string getUnit() override { - auto module = reinterpret_cast(this->module); - return module->inputs[module->INPUT_STEP + i].isConnected() && module->seq.stepCvMode == SEQ_CV_MODE::ATTENUATE ? "x attenuate" : "V"; - } -}; // SeqStepParamQuantity - -template< typename MODULE, int STEPS > -struct SeqStepButtonParamQuantity : ParamQuantity { - int i; - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - std::string s; - switch (module->seq.stepState) { - default: - case SEQ_UI_STATE::DEFAULT: - return string::f("Step %i: %s\nAuxiliary voltage: %4.3fV\nProbability: %4.3f\nRatchets: %i\nSlew: %4.3f", - i + 1, module->seq.stepGet(i)->disabled ? "Off" : "On", module->seq.stepGet(i)->auxiliary, module->seq.stepGet(i)->probability, module->seq.stepGet(i)->ratchets, module->seq.stepGet(i)->slew); - case SEQ_UI_STATE::AUXILIARY: - return string::f("Step %i auxiliary voltage: %4.3fV\nShort press: select step %i\nLong press: set auxiliary voltage %4.3fV", - i + 1, module->seq.stepGet(i)->auxiliary, i + 1, float(i) / (STEPS - 1)); - case SEQ_UI_STATE::PROBABILITY: - return string::f("Step %i probability: %4.3f\nShort press: select step %i\nLong press: set probability value %4.3f", - i + 1, module->seq.stepGet(i)->probability, i + 1, float(i) / (STEPS - 1)); - case SEQ_UI_STATE::RATCHETS: - s = string::f("\nLong press: set ratchets %i", i + 1); - return string::f("Step %i ratchets: %i\nShort press: select step %i", - i + 1, module->seq.stepGet(i)->ratchets, i + 1) + (i < 8 ? s : ""); - case SEQ_UI_STATE::SLEW: - return string::f("Step %i slew: %4.3f\nShort press: select step %i\nLong press: set slew value %4.3f", - i + 1, module->seq.stepGet(i)->slew, i + 1, float(i) / (STEPS - 1)); - } - return ""; - } - std::string getLabel() override { - return ""; - } -}; // SeqStepButtonParamQuantity - -template< typename MODULE > -struct SeqStepModeParamQuantity : ParamQuantity { - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - switch (module->seq.stepState) { - default: - case SEQ_UI_STATE::DEFAULT: return "Edit step on/off"; - case SEQ_UI_STATE::AUXILIARY: return "Edit step auxiliary sequence"; - case SEQ_UI_STATE::PROBABILITY: return "Edit step probability value"; - case SEQ_UI_STATE::RATCHETS: return "Edit step ratchets"; - case SEQ_UI_STATE::SLEW: return "Edit step slew"; - } - return ""; - } -}; // SeqStepModeParamQuantity - -template< typename MODULE > -struct SeqFlowerKnobParamQuantity : ParamQuantity { - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - int i = module->seq.stepEditSelected; - switch (module->seq.stepState) { - default: - case SEQ_UI_STATE::DEFAULT: - return "FLOWER control (use EDIT-button)"; - case SEQ_UI_STATE::AUXILIARY: - return string::f("%4.3fV", module->seq.stepGet(i)->auxiliary); - case SEQ_UI_STATE::PROBABILITY: - return string::f("%4.3f", module->seq.stepGet(i)->probability); - case SEQ_UI_STATE::RATCHETS: - return string::f("%i", module->seq.stepGet(i)->ratchets); - case SEQ_UI_STATE::SLEW: - return string::f("%4.3f", module->seq.stepGet(i)->slew); - } - return ""; - } - std::string getLabel() override { - auto module = reinterpret_cast(this->module); - int i = module->seq.stepEditSelected; - switch (module->seq.stepState) { - default: - case SEQ_UI_STATE::DEFAULT: - return ""; - case SEQ_UI_STATE::AUXILIARY: - return string::f("Step %i auxiliary voltage", i + 1); - case SEQ_UI_STATE::PROBABILITY: - return string::f("Step %i probability", i + 1); - case SEQ_UI_STATE::RATCHETS: - return string::f("Step %i ratchets", i + 1); - case SEQ_UI_STATE::SLEW: - return string::f("Step %i slew", i + 1); - } - } -}; // SeqFlowerKnobParamQuantity - - -template < typename MODULE, int STEPS > -struct FlowerSeq { - MODULE* m; - - struct FlowerSeqStep { - bool disabled; - float auxiliary; - float probability; - int ratchets; - float slew; - }; - - /** [Stored to Json] */ - OUT_CV_MODE outCvMode; - /** [Stored to Json] */ - OUT_AUX_MODE outAuxMode; - /** [Stored to Json] indicated if the CV-port should be clamped to the selected output range */ - bool outCvClamp; - - - /** currently acitve step after pattern-transform */ - int stepOutIndex; - /** [Stored to JSON] the steps */ - FlowerSeqStep steps[STEPS]; - /** [Stored to JSON] */ - SEQ_CV_MODE stepCvMode; - - /** currently selected ui-state for step-buttons/leds */ - SEQ_UI_STATE stepState; - /** currently selected step if one of the edit-modes is active */ - int stepEditSelected; - /** helper-variable for led-blinking */ - bool stepBlink = false; - /** currently selected random step */ - uint32_t stepRandomIndex; - /** random transpose of the sequence with range -1V..+1V */ - float stepRandomSeqTranpose; - /** random probability for the currently selected step */ - float stepRandomProbability; - /** */ - uint32_t stepRandomSeqAuxiliary; - /** helper-variable for center-param delta-calculation */ - float stepCenterValue; - /** random distribution used for randomization */ - std::geometric_distribution stepGeoDist{0.65}; - - - float editLightBrightness = 0.f; - int editLightAdd = 1; - - dsp::SchmittTrigger randTrigger; - ClockMultiplier clockMultiplier; - - LongPressButton stepButtons[STEPS]; - dsp::BooleanTrigger stepModeTrigger; - StoermelderSlewLimiter stepSlew; - StoermelderSlewLimiter stepSlewTrigger; - - dsp::PulseGenerator trigPulseGenerator; - - dsp::ClockDivider paramDivider; - dsp::ClockDivider lightDivider; - dsp::ClockDivider lightBlinkDivider; - - std::default_random_engine randGen{(uint16_t)std::chrono::system_clock::now().time_since_epoch().count()}; - - FlowerSeq(MODULE* module) { - m = module; - paramDivider.setDivision(32); - lightDivider.setDivision(512); - reset(); - } - - void reset() { - outCvMode = OUT_CV_MODE::UNI_3V; - outAuxMode = OUT_AUX_MODE::TRIG; - outCvClamp = false; - clockMultiplier.reset(); - - // Steps - stepState = SEQ_UI_STATE::DEFAULT; - stepEditSelected = -1; - stepCenterValue = 0.f; - stepCvMode = SEQ_CV_MODE::ATTENUATE; - stepRandomIndex = 0; - stepRandomSeqTranpose = 0.f; - stepRandomSeqAuxiliary = 0; - stepRandomProbability = 0.5f; - stepSlew.setShape(0.975f); - stepSlewTrigger.setShape(0.975f); - - for (int i = 0; i < STEPS; i++) { - stepGet(i)->disabled = false; - stepGet(i)->auxiliary = random::uniform(); - stepGet(i)->probability = 1.f; - stepGet(i)->ratchets = 1; - stepGet(i)->slew = 0.f; - } - - for (int i = 0; i < STEPS; i++) { - stepButtons[i].param = &m->params[MODULE::PARAM_STEP_BUTTON + i]; - } - } - - - void process(const FlowerProcessArgs& args) { - bool clockPulse = false; - - // CLOCK-input - if (args.running && args.clockTick) { - clockPulse = true; - clockMultiplier.tick(); - } - - // SEQ_RAND-input / SEQ_RAND-button - if (randTrigger.process(m->inputs[MODULE::INPUT_RAND].getVoltage() + m->params[MODULE::PARAM_RAND].getValue())) { - doRandomize(args.randomizeFlagsSlave); - } - // SEQ_RAND-input / SEQ_RAND-button from master-module - if (args.randTick) { - doRandomize(args.randomizeFlagsMaster); - } - - if (args.stepTick) { - // Random variables for the next step - stepRandomIndex = random::u32(); - stepRandomProbability = random::uniform(); - } - - if (args.patternTick) { - // Random variables for the next pattern - stepRandomSeqTranpose = random::uniform() * 2.f - 1.f; - stepRandomSeqAuxiliary = random::u32(); - } - - if (paramDivider.process()) { - // StepMode-button - if (stepModeTrigger.process(m->params[MODULE::PARAM_STEPMODE].getValue())) { - stepState = (SEQ_UI_STATE)(((int)stepState + 1) % (int)SEQ_UI_STATE::NUM_MODES); - stepEditSelected = 0; - } - - // Step-buttons - for (int i = 0; i < STEPS; i++) { - switch (stepButtons[i].process(args.sampleTime, 0.8f / float(paramDivider.getDivision()))) { - default: - case LongPressButton::NO_PRESS: - break; - case LongPressButton::SHORT_PRESS: - stepEditSelected = i; - stepBlink = true; - lightBlinkDivider.reset(); - break; - case LongPressButton::LONG_PRESS: - if (stepState == SEQ_UI_STATE::DEFAULT) { - stepGet(i)->disabled ^= true; - } - if (stepState == SEQ_UI_STATE::AUXILIARY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->auxiliary = float(i) / float(STEPS - 1); - } - if (stepState == SEQ_UI_STATE::PROBABILITY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->probability = float(i) / float(STEPS - 1); - } - if (stepState == SEQ_UI_STATE::RATCHETS) { - if (stepEditSelected >= 0 && i < 8) stepGet(stepEditSelected)->ratchets = i + 1; - } - if (stepState == SEQ_UI_STATE::SLEW) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->slew = float(i) / float(STEPS - 1); - } - break; - } - } - - // FlowerKnob-param - if (m->params[MODULE::PARAM_STEP_CENTER].getValue() != stepCenterValue) { - float v = m->params[MODULE::PARAM_STEP_CENTER].getValue(); - float delta = v - stepCenterValue; - - if (stepState == SEQ_UI_STATE::AUXILIARY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->auxiliary = clamp(stepGet(stepEditSelected)->auxiliary + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - if (stepState == SEQ_UI_STATE::PROBABILITY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->probability = clamp(stepGet(stepEditSelected)->probability + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - if (stepState == SEQ_UI_STATE::RATCHETS && std::abs(delta) > 0.5f) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->ratchets = (int)clamp(std::round(stepGet(stepEditSelected)->ratchets + delta * 2.f), 0.f, 8.f); - stepCenterValue = v; - } - if (stepState == SEQ_UI_STATE::SLEW) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->slew = clamp(stepGet(stepEditSelected)->slew + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - } - } - - processOutput(args, clockPulse); - if (lightDivider.process()) processLights(args); - } - - void processOutput(const FlowerProcessArgs& args, bool clockPulse) { - auto _clamp = [&](float v) { - switch (outCvMode) { - case OUT_CV_MODE::BI_10V: - return clamp(v, -10.f, 10.f); - case OUT_CV_MODE::BI_5V: - return clamp(v, -5.f, 5.f); - case OUT_CV_MODE::BI_1V: - return clamp(v, -1.f, 1.f); - case OUT_CV_MODE::UNI_10V: - return clamp(v, 0.f, 10.f); - case OUT_CV_MODE::UNI_5V: - return clamp(v, 0.f, 5.f); - case OUT_CV_MODE::UNI_3V: - return clamp(v, 0.f, 3.f); - case OUT_CV_MODE::UNI_2V: - return clamp(v, 0.f, 2.f); - case OUT_CV_MODE::UNI_1V: - return clamp(v, 0.f, 1.f); - } - return v; - }; - - float v = 0.f; - float stepProbability = 1.f; - bool stepEnabled = true; - - switch (args.patternType) { - default: - case PATTERN_TYPE::SEQ_FWD: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_REV: { - stepOutIndex = (args.stepStart + args.stepLength - args.stepIndex - 1) % STEPS; - v = stepGetValueScaled(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_ADD_1V: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - v += 1.f; - break; - } - case PATTERN_TYPE::SEQ_INV: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - float w = std::floor(v); - float r = 1.f - (v - w); - v = w + r; - break; - } - case PATTERN_TYPE::ADD_2STEPS: { - stepOutIndex = (args.stepStart + ((args.stepIndex + 2) % args.stepLength)) % STEPS; - v = stepGetValueScaled(stepOutIndex); - break; - } - case PATTERN_TYPE::AUX_ADD: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - v += stepGet(args.stepIndex)->auxiliary; - break; - } - case PATTERN_TYPE::SEQ_PROB_05: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - stepProbability = 0.5f; - break; - } - case PATTERN_TYPE::AUX_SUB: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - v -= stepGet(args.stepIndex)->auxiliary; - break; - } - case PATTERN_TYPE::SEQ_RAND: { - stepOutIndex = (args.stepStart + (stepRandomIndex % args.stepLength)) % STEPS; - v = stepGetValueScaled(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_OOD: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - if (stepOutIndex % 2 == 0) - v = stepGetValueScaled(stepOutIndex); - else - stepEnabled = false; - break; - } - case PATTERN_TYPE::SEQ_EVEN: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - if (stepOutIndex % 2 == 1) - v = stepGetValueScaled(stepOutIndex); - else - stepEnabled = false; - break; - } - case PATTERN_TYPE::SEQ_TRANSPOSE: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValueScaled(stepOutIndex); - v += stepRandomSeqTranpose; - break; - } - case PATTERN_TYPE::AUX_RAND: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - int sign = ((stepRandomSeqAuxiliary & (1 << stepOutIndex)) > 0) * 1 + ((stepRandomSeqAuxiliary & (1 << (stepRandomIndex + 16))) > 0) * -1; - v = stepGetValueScaled(stepOutIndex); - v += sign * stepGet(stepOutIndex)->auxiliary; - break; - } - } - - stepEnabled = stepEnabled && !stepGet(stepOutIndex)->disabled; - stepProbability *= stepGet(stepOutIndex)->probability; - if (stepEnabled && stepProbability < 1.f) { - stepEnabled = stepRandomProbability <= stepProbability; - } - - if (stepEnabled && clockPulse) { - clockMultiplier.trigger(stepGet(stepOutIndex)->ratchets); - } - if (clockMultiplier.process()) { - trigPulseGenerator.trigger(2e-2f); - } - if (stepEnabled && args.running) { - stepSlew.setRiseFall(stepGet(stepOutIndex)->slew, stepGet(stepOutIndex)->slew); - v = stepSlew.process(v, args.sampleTime); - if (outCvClamp) v = _clamp(v); - m->outputs[MODULE::OUTPUT_CV].setVoltage(v); - - switch (outAuxMode) { - case OUT_AUX_MODE::TRIG: - m->outputs[MODULE::OUTPUT_AUX].setVoltage(trigPulseGenerator.process(args.sampleTime) ? 10.f : 0.f); - break; - case OUT_AUX_MODE::TRIG_SLEW: - stepSlewTrigger.setRiseFall(-1.f, stepGet(stepOutIndex)->slew); - m->outputs[MODULE::OUTPUT_AUX].setVoltage(stepSlewTrigger.process(trigPulseGenerator.process(args.sampleTime) ? 10.f : 0.f, args.sampleTime)); - break; - case OUT_AUX_MODE::CLOCK: - m->outputs[MODULE::OUTPUT_AUX].setVoltage(args.clock); - break; - case OUT_AUX_MODE::AUXILIARY: - m->outputs[MODULE::OUTPUT_AUX].setVoltage(stepGet(stepOutIndex)->auxiliary); - break; - } - } else { - switch (outAuxMode) { - default: - m->outputs[MODULE::OUTPUT_AUX].setVoltage(0.f); - break; - case OUT_AUX_MODE::CLOCK: - m->outputs[MODULE::OUTPUT_AUX].setVoltage(args.clock); - break; - } - } - } - - inline float stepGetValueScaled(int index, bool useCvInput = true) { - float v = m->params[MODULE::PARAM_STEP + index].getValue(); - if (outCvMode == OUT_CV_MODE::BI_10V || outCvMode == OUT_CV_MODE::BI_5V || outCvMode == OUT_CV_MODE::BI_1V) { - v -= 0.5f; - } - - useCvInput = useCvInput && m->inputs[MODULE::INPUT_STEP + index].isConnected(); - if (useCvInput && stepCvMode == SEQ_CV_MODE::ATTENUATE) { - v = (m->inputs[MODULE::INPUT_STEP + index].getVoltage() / 10.f) * v; - } - - switch (outCvMode) { - case OUT_CV_MODE::BI_10V: - v = rescale(v, -0.5f, 0.5f, -10.f, 10.f); break; - case OUT_CV_MODE::BI_5V: - v = rescale(v, -0.5f, 0.5f, -5.f, 5.f); break; - case OUT_CV_MODE::BI_1V: - v = rescale(v, -0.5f, 0.5f, -1.f, 1.f); break; - case OUT_CV_MODE::UNI_10V: - v = rescale(v, 0.f, 1.f, 0.f, 10.f); break; - case OUT_CV_MODE::UNI_5V: - v = rescale(v, 0.f, 1.f, 0.f, 5.f); break; - case OUT_CV_MODE::UNI_3V: - v = rescale(v, 0.f, 1.f, 0.f, 3.f); break; - case OUT_CV_MODE::UNI_2V: - v = rescale(v, 0.f, 1.f, 0.f, 2.f); break; - case OUT_CV_MODE::UNI_1V: - default: - break; - } - - if (useCvInput && stepCvMode == SEQ_CV_MODE::SUM) { - v += m->inputs[MODULE::INPUT_STEP + index].getVoltage(); - } - - return v; - } - - inline FlowerSeqStep* stepGet(int idx) { - return &steps[idx]; - } - - inline void stepSetValue(int index, float value) { - m->params[MODULE::PARAM_STEP + index].setValue(value); - } - - void doRandomize(const FlowerProcessArgs::RandomizeFlags& flags) { - for (int i = 0; i < STEPS; i++) { - if (flags.test(FlowerProcessArgs::STEP_VALUE)) - stepSetValue(i, random::uniform()); - if (flags.test(FlowerProcessArgs::STEP_DISABLED)) - stepGet(i)->disabled = random::uniform() > 0.5f; - if (flags.test(FlowerProcessArgs::STEP_AUX)) - stepGet(i)->auxiliary = random::uniform(); - if (flags.test(FlowerProcessArgs::STEP_PROB)) - stepGet(i)->probability = random::uniform(); - if (flags.test(FlowerProcessArgs::STEP_RATCHETS)) - stepGet(i)->ratchets = 1 + std::min(7, stepGeoDist(randGen)); - if (flags.test(FlowerProcessArgs::STEP_SLEW)) - stepGet(i)->slew = stepGeoDist(randGen) / ((stepGeoDist(randGen) + 1) * (7.f + 3.f * random::uniform())); - } - } - - void processLights(const FlowerProcessArgs& args) { - float st = args.sampleTime * lightDivider.getDivision(); - - lightBlinkDivider.setDivision(args.sampleRate / lightDivider.getDivision() / 6); - if (lightBlinkDivider.process()) { - stepBlink ^= true; - if (editLightBrightness == 0.9f) editLightAdd = -1; - if (editLightBrightness == 0.f) editLightAdd = 1; - editLightBrightness = clamp(editLightBrightness + editLightAdd * 0.02f, 0.f, 0.9f); - } - - for (int i = 0; i < STEPS; i++) { - float r = (stepState == SEQ_UI_STATE::PROBABILITY) + (stepState == SEQ_UI_STATE::RATCHETS) + (stepState == SEQ_UI_STATE::SLEW); - float g = (stepState == SEQ_UI_STATE::AUXILIARY) + (stepState == SEQ_UI_STATE::PROBABILITY) + (stepState == SEQ_UI_STATE::SLEW ? 0.55f : 0.f); - float b = (stepState == SEQ_UI_STATE::DEFAULT ? editLightBrightness : 0.f); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 0].setBrightness(r); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 1].setBrightness(g); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 2].setSmoothBrightness(b, st); - } - - // Step lights - if (stepState == SEQ_UI_STATE::DEFAULT) { - int start = args.stepStart; - int length = args.stepLength; - for (int i = 0; i < STEPS; i++) { - bool a = (i >= start && i < start + length) || (i + STEPS >= start && i + STEPS < start + length); - float r = stepOutIndex == i ? 1.f : 0.f + stepGet(i)->disabled; - float g = stepOutIndex == i ? 1.f : 0.f; - float b = stepOutIndex == i ? 1.f : ((a && !stepGet(i)->disabled) ? 0.7f : 0.f); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setSmoothBrightness(r, st); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setSmoothBrightness(g, st); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setSmoothBrightness(b, st); - } - } - if (stepState == SEQ_UI_STATE::AUXILIARY) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->auxiliary >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == SEQ_UI_STATE::PROBABILITY) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->probability >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == SEQ_UI_STATE::RATCHETS) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->ratchets > i; - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == SEQ_UI_STATE::SLEW) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->slew >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + (b ? 0.55f : 0.f)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - } - - - void dataToJson(json_t* rootJ) { - // Common - json_object_set_new(rootJ, "outCvMode", json_integer((int)outCvMode)); - json_object_set_new(rootJ, "outAuxMode", json_integer((int)outAuxMode)); - json_object_set_new(rootJ, "outCvClamp", json_boolean(outCvClamp)); - - // Steps - json_object_set_new(rootJ, "stepCvMode", json_integer((int)stepCvMode)); - json_t* stepsJ = json_array(); - for (int i = 0; i < STEPS; i++) { - json_t* stepJ = json_object(); - json_object_set_new(stepJ, "disabled", json_boolean(stepGet(i)->disabled)); - json_object_set_new(stepJ, "auxiliary", json_real(stepGet(i)->auxiliary)); - json_object_set_new(stepJ, "probability", json_real(stepGet(i)->probability)); - json_object_set_new(stepJ, "ratchets", json_integer(stepGet(i)->ratchets)); - json_object_set_new(stepJ, "slew", json_real(stepGet(i)->slew)); - json_array_append_new(stepsJ, stepJ); - } - json_object_set_new(rootJ, "step", stepsJ); - } - - void dataFromJson(json_t* rootJ) { - // Common - outCvMode = (OUT_CV_MODE)json_integer_value(json_object_get(rootJ, "outCvMode")); - outAuxMode = (OUT_AUX_MODE)json_integer_value(json_object_get(rootJ, "outAuxMode")); - outCvClamp = json_is_true(json_object_get(rootJ, "outCvClamp")); - - // Steps - stepState = SEQ_UI_STATE::DEFAULT; - stepCvMode = (SEQ_CV_MODE)json_integer_value(json_object_get(rootJ, "stepCvMode")); - json_t* stepsJ = json_object_get(rootJ, "step"); - for (int i = 0; i < STEPS; i++) { - json_t* stepJ = json_array_get(stepsJ, i); - stepGet(i)->disabled = json_boolean_value(json_object_get(stepJ, "disabled")); - stepGet(i)->auxiliary = json_real_value(json_object_get(stepJ, "auxiliary")); - stepGet(i)->probability = json_real_value(json_object_get(stepJ, "probability")); - stepGet(i)->ratchets = json_integer_value(json_object_get(stepJ, "ratchets")); - stepGet(i)->slew = json_real_value(json_object_get(stepJ, "slew")); - } - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne \ No newline at end of file diff --git a/src/FlowerSeqEx.cpp b/src/FlowerSeqEx.cpp deleted file mode 100644 index e5b746b..0000000 --- a/src/FlowerSeqEx.cpp +++ /dev/null @@ -1,397 +0,0 @@ -#include "plugin.hpp" -#include "FlowerSeq.hpp" -#include "components/Knobs.hpp" - -namespace StoermelderPackOne { -namespace Flower { - -template < int STEPS, int PATTERNS, int PHRASES > -struct FlowerSeqExModule : Module { - enum ParamIds { - PARAM_RAND, - PARAM_STEPMODE, - ENUMS(PARAM_STEP, STEPS), - ENUMS(PARAM_STEP_BUTTON, STEPS), - PARAM_STEP_CENTER, - NUM_PARAMS - }; - enum InputIds { - INPUT_RAND, - ENUMS(INPUT_STEP, STEPS), - NUM_INPUTS - }; - enum OutputIds { - OUTPUT_CV, - OUTPUT_AUX, - NUM_OUTPUTS - }; - enum LightIds { - LIGHT_RAND, - ENUMS(LIGHT_STEP, STEPS * 3), - ENUMS(LIGHT_EDIT, STEPS * 3), - NUM_LIGHTS - }; - - typedef FlowerSeqExModule MODULE; - - /** [Stored to JSON] */ - int panelTheme = 0; - - typedef FlowerSeq SEQ; - SEQ seq{this}; - - /** [Stored to JSON] */ - bool randomizeInherit; - /** [Stored to JSON] flags which targets should be randomized */ - FlowerProcessArgs::RandomizeFlags randomizeFlags; - - - dsp::SchmittTrigger seqRandTrigger; - dsp::ClockDivider lightDivider; - - FlowerProcessArgs argsProducer; - FlowerProcessArgs argsConsumer; - - FlowerSeqExModule() { - rightExpander.consumerMessage = &argsConsumer; - rightExpander.producerMessage = &argsProducer; - - panelTheme = pluginSettings.panelThemeDefault; - config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam(PARAM_RAND, 0.f, 1.f, 0.f, "Randomize sequence"); - - configParam>(PARAM_STEPMODE, 0.f, 1.f, 0.f, "Mode"); - configParam>(PARAM_STEP_CENTER, -std::numeric_limits::infinity(), std::numeric_limits::infinity(), 0.f); - - for (int i = 0; i < STEPS; i++) { - auto pq1 = configParam>(PARAM_STEP + i, 0.f, 1.f, 0.5f, string::f("Step %i", i + 1), "V"); - pq1->i = i; - - auto pq2 = configParam>(PARAM_STEP_BUTTON + i, 0.f, 1.f, 0.f); - pq2->i = i; - } - - lightDivider.setDivision(512); - onReset(); - } - - void onReset() override { - Module::onReset(); - randomizeInherit = true; - randomizeFlags.reset(); - randomizeFlags.set(0); - seq.reset(); - } - - void process(const ProcessArgs& args) override { - Module* mr = leftExpander.module; - if (!mr || !(mr->model->plugin->slug == "Stoermelder-P1") || !(mr->model->slug == "FlowerSeq" || mr->model->slug == "FlowerSeqEx")) return; - - auto seqArgs = reinterpret_cast(mr->rightExpander.consumerMessage); - - if (rightExpander.module) { - auto seqArgs1 = reinterpret_cast(rightExpander.producerMessage); - *seqArgs1 = *seqArgs; - rightExpander.messageFlipRequested = true; - } - - seqArgs->randomizeFlagsSlave = randomizeFlags; - if (!randomizeInherit) seqArgs->randTick = false; - seq.process(*seqArgs); - } - - json_t* dataToJson() override { - json_t* rootJ = json_object(); - json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); - seq.dataToJson(rootJ); - json_object_set_new(rootJ, "randomizeFlags", json_string(randomizeFlags.to_string().c_str())); - json_object_set_new(rootJ, "randomizeInherit", json_boolean(randomizeInherit)); - return rootJ; - } - - void dataFromJson(json_t* rootJ) override { - panelTheme = json_integer_value(json_object_get(rootJ, "panelTheme")); - seq.dataFromJson(rootJ); - randomizeFlags = FlowerProcessArgs::RandomizeFlags(json_string_value(json_object_get(rootJ, "randomizeFlags"))); - randomizeInherit = json_is_true(json_object_get(rootJ, "randomizeInherit")); - } -}; - - - -struct FlowerSeqExWidget : ThemedModuleWidget> { - typedef FlowerSeqExModule<16, 8, 8> MODULE; - - FlowerSeqExWidget(MODULE* module) - : ThemedModuleWidget(module, "FlowerSeqEx") { - setModule(module); - - 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))); - - float o = -37.5f; - - addParam(createParamCentered(Vec(o + 195.0f, 190.0f), module, MODULE::PARAM_STEP_CENTER)); - - addParam(createParamCentered(Vec(o + 116.2f, 326.7f), module, MODULE::PARAM_RAND)); - addInput(createInputCentered(Vec(o + 93.2f, 313.7f), module, MODULE::INPUT_RAND)); - - addOutput(createOutputCentered(Vec(o + 318.9f, 291.9f), module, MODULE::OUTPUT_CV)); - addOutput(createOutputCentered(Vec(o + 297.1f, 313.6f), module, MODULE::OUTPUT_AUX)); - addParam(createParamCentered(Vec(o + 274.f, 326.7f), module, MODULE::PARAM_STEPMODE)); - - // Edit leds - addChild(createLightCentered>(Vec(o + 219.2f, 68.5f), module, MODULE::LIGHT_EDIT + 0 * 3)); - addChild(createLightCentered>(Vec(o + 262.9f, 86.4f), module, MODULE::LIGHT_EDIT + 1 * 3)); - addChild(createLightCentered>(Vec(o + 298.1f, 121.1f), module, MODULE::LIGHT_EDIT + 2 * 3)); - addChild(createLightCentered>(Vec(o + 316.6f, 165.8f), module, MODULE::LIGHT_EDIT + 3 * 3)); - addChild(createLightCentered>(Vec(o + 316.6f, 214.1f), module, MODULE::LIGHT_EDIT + 4 * 3)); - addChild(createLightCentered>(Vec(o + 298.1f, 257.9f), module, MODULE::LIGHT_EDIT + 5 * 3)); - addChild(createLightCentered>(Vec(o + 262.9f, 293.0f), module, MODULE::LIGHT_EDIT + 6 * 3)); - addChild(createLightCentered>(Vec(o + 219.2f, 311.5f), module, MODULE::LIGHT_EDIT + 7 * 3)); - addChild(createLightCentered>(Vec(o + 171.0f, 311.5f), module, MODULE::LIGHT_EDIT + 8 * 3)); - addChild(createLightCentered>(Vec(o + 126.4f, 293.0f), module, MODULE::LIGHT_EDIT + 9 * 3)); - addChild(createLightCentered>(Vec(o + 92.2f, 257.9f), module, MODULE::LIGHT_EDIT + 10 * 3)); - addChild(createLightCentered>(Vec(o + 73.6f, 214.1f), module, MODULE::LIGHT_EDIT + 11 * 3)); - addChild(createLightCentered>(Vec(o + 73.6f, 165.8f), module, MODULE::LIGHT_EDIT + 12 * 3)); - addChild(createLightCentered>(Vec(o + 92.2f, 121.1f), module, MODULE::LIGHT_EDIT + 13 * 3)); - addChild(createLightCentered>(Vec(o + 126.4f, 86.4f), module, MODULE::LIGHT_EDIT + 14 * 3)); - addChild(createLightCentered>(Vec(o + 171.0f, 68.5f), module, MODULE::LIGHT_EDIT + 15 * 3)); - - // Steps - addParam(createParamCentered(Vec(o + 195.0f, 137.9f), module, MODULE::PARAM_STEP_BUTTON + 0)); - addParam(createParamCentered(Vec(o + 214.9f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 1)); - addParam(createParamCentered(Vec(o + 231.8f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 2)); - addParam(createParamCentered(Vec(o + 243.0f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 3)); - addParam(createParamCentered(Vec(o + 247.1f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 4)); - addParam(createParamCentered(Vec(o + 243.1f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 5)); - addParam(createParamCentered(Vec(o + 231.8f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 6)); - addParam(createParamCentered(Vec(o + 214.9f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 7)); - addParam(createParamCentered(Vec(o + 195.0f, 242.1f), module, MODULE::PARAM_STEP_BUTTON + 8)); - addParam(createParamCentered(Vec(o + 175.1f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 9)); - addParam(createParamCentered(Vec(o + 158.2f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 10)); - addParam(createParamCentered(Vec(o + 146.9f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 11)); - addParam(createParamCentered(Vec(o + 142.9f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 12)); - addParam(createParamCentered(Vec(o + 146.9f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 13)); - addParam(createParamCentered(Vec(o + 158.2f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 14)); - addParam(createParamCentered(Vec(o + 175.1f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 15)); - - addChild(createLightCentered(Vec(o + 195.0f, 137.9f), module, MODULE::LIGHT_STEP + 0 * 3)); - addChild(createLightCentered(Vec(o + 214.9f, 141.9f), module, MODULE::LIGHT_STEP + 1 * 3)); - addChild(createLightCentered(Vec(o + 231.8f, 153.2f), module, MODULE::LIGHT_STEP + 2 * 3)); - addChild(createLightCentered(Vec(o + 243.0f, 169.7f), module, MODULE::LIGHT_STEP + 3 * 3)); - addChild(createLightCentered(Vec(o + 247.1f, 190.0f), module, MODULE::LIGHT_STEP + 4 * 3)); - addChild(createLightCentered(Vec(o + 243.1f, 209.9f), module, MODULE::LIGHT_STEP + 5 * 3)); - addChild(createLightCentered(Vec(o + 231.8f, 226.8f), module, MODULE::LIGHT_STEP + 6 * 3)); - addChild(createLightCentered(Vec(o + 214.9f, 238.1f), module, MODULE::LIGHT_STEP + 7 * 3)); - addChild(createLightCentered(Vec(o + 195.0f, 242.1f), module, MODULE::LIGHT_STEP + 8 * 3)); - addChild(createLightCentered(Vec(o + 175.1f, 238.1f), module, MODULE::LIGHT_STEP + 9 * 3)); - addChild(createLightCentered(Vec(o + 158.2f, 226.8f), module, MODULE::LIGHT_STEP + 10 * 3)); - addChild(createLightCentered(Vec(o + 146.9f, 209.9f), module, MODULE::LIGHT_STEP + 11 * 3)); - addChild(createLightCentered(Vec(o + 142.9f, 190.0f), module, MODULE::LIGHT_STEP + 12 * 3)); - addChild(createLightCentered(Vec(o + 146.9f, 169.7f), module, MODULE::LIGHT_STEP + 13 * 3)); - addChild(createLightCentered(Vec(o + 158.2f, 153.2f), module, MODULE::LIGHT_STEP + 14 * 3)); - addChild(createLightCentered(Vec(o + 175.1f, 141.9f), module, MODULE::LIGHT_STEP + 15 * 3)); - - addParam(createParamCentered(Vec(o + 195.0f, 107.2f), module, MODULE::PARAM_STEP + 0)); - addParam(createParamCentered(Vec(o + 230.2f, 104.9f), module, MODULE::PARAM_STEP + 1)); - addParam(createParamCentered(Vec(o + 253.6f, 131.4f), module, MODULE::PARAM_STEP + 2)); - addParam(createParamCentered(Vec(o + 280.1f, 154.9f), module, MODULE::PARAM_STEP + 3)); - addParam(createParamCentered(Vec(o + 277.8f, 190.0f), module, MODULE::PARAM_STEP + 4)); - addParam(createParamCentered(Vec(o + 280.1f, 225.2f), module, MODULE::PARAM_STEP + 5)); - addParam(createParamCentered(Vec(o + 253.6f, 248.6f), module, MODULE::PARAM_STEP + 6)); - addParam(createParamCentered(Vec(o + 230.2f, 275.1f), module, MODULE::PARAM_STEP + 7)); - addParam(createParamCentered(Vec(o + 195.0f, 272.8f), module, MODULE::PARAM_STEP + 8)); - addParam(createParamCentered(Vec(o + 159.8f, 275.1f), module, MODULE::PARAM_STEP + 9)); - addParam(createParamCentered(Vec(o + 136.4f, 248.6f), module, MODULE::PARAM_STEP + 10)); - addParam(createParamCentered(Vec(o + 109.9f, 225.2f), module, MODULE::PARAM_STEP + 11)); - addParam(createParamCentered(Vec(o + 112.2f, 190.0f), module, MODULE::PARAM_STEP + 12)); - addParam(createParamCentered(Vec(o + 109.9f, 154.9f), module, MODULE::PARAM_STEP + 13)); - addParam(createParamCentered(Vec(o + 136.4f, 131.4f), module, MODULE::PARAM_STEP + 14)); - addParam(createParamCentered(Vec(o + 159.8f, 104.9f), module, MODULE::PARAM_STEP + 15)); - - addInput(createInputCentered(Vec(o + 195.0f, 66.2f), module, MODULE::INPUT_STEP + 0)); - addInput(createInputCentered(Vec(o + 242.2f, 75.6f), module, MODULE::INPUT_STEP + 1)); - addInput(createInputCentered(Vec(o + 282.6f, 102.4f), module, MODULE::INPUT_STEP + 2)); - addInput(createInputCentered(Vec(o + 309.4f, 142.6f), module, MODULE::INPUT_STEP + 3)); - addInput(createInputCentered(Vec(o + 318.8f, 190.0f), module, MODULE::INPUT_STEP + 4)); - addInput(createInputCentered(Vec(o + 309.4f, 237.4f), module, MODULE::INPUT_STEP + 5)); - addInput(createInputCentered(Vec(o + 282.6f, 277.6f), module, MODULE::INPUT_STEP + 6)); - addInput(createInputCentered(Vec(o + 242.2f, 304.4f), module, MODULE::INPUT_STEP + 7)); - addInput(createInputCentered(Vec(o + 195.0f, 313.8f), module, MODULE::INPUT_STEP + 8)); - addInput(createInputCentered(Vec(o + 147.6f, 304.4f), module, MODULE::INPUT_STEP + 9)); - addInput(createInputCentered(Vec(o + 107.4f, 277.6f), module, MODULE::INPUT_STEP + 10)); - addInput(createInputCentered(Vec(o + 80.6f, 237.4f), module, MODULE::INPUT_STEP + 11)); - addInput(createInputCentered(Vec(o + 71.2f, 190.0f), module, MODULE::INPUT_STEP + 12)); - addInput(createInputCentered(Vec(o + 80.6f, 142.6f), module, MODULE::INPUT_STEP + 13)); - addInput(createInputCentered(Vec(o + 107.4f, 102.4f), module, MODULE::INPUT_STEP + 14)); - addInput(createInputCentered(Vec(o + 147.6f, 75.6f), module, MODULE::INPUT_STEP + 15)); - } - - void appendContextMenu(Menu* menu) override { - ThemedModuleWidget::appendContextMenu(menu); - MODULE* module = dynamic_cast(this->module); - assert(module); - - struct StepCvModeMenuItem : MenuItem { - MODULE* module; - StepCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct StepCvModeItem : MenuItem { - MODULE* module; - SEQ_CV_MODE stepCvMode; - void onAction(const event::Action& e) override { - module->seq.stepCvMode = stepCvMode; - } - void step() override { - rightText = module->seq.stepCvMode == stepCvMode ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Attenuate", &StepCvModeItem::module, module, &StepCvModeItem::stepCvMode, SEQ_CV_MODE::ATTENUATE)); - menu->addChild(construct(&MenuItem::text, "Sum", &StepCvModeItem::module, module, &StepCvModeItem::stepCvMode, SEQ_CV_MODE::SUM)); - return menu; - } - }; // StepCvModeMenuItem - - struct StepRandomizeMenuItem : MenuItem { - MODULE* module; - StepRandomizeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct InheritRandomizeItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->randomizeInherit ^= true; - } - void step() override { - rightText = module->randomizeInherit ? "✔" : ""; - MenuItem::step(); - } - }; - - struct StepRandomizeItem : MenuItem { - MODULE* module; - int idx; - void onAction(const event::Action& e) override { - module->randomizeFlags.flip(idx); - } - void step() override { - rightText = module->randomizeFlags.test(idx) ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Trigger from master", &InheritRandomizeItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuLabel::text, "Steps")); - menu->addChild(construct(&MenuItem::text, "Value", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_VALUE)); - menu->addChild(construct(&MenuItem::text, "Disabled", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_DISABLED)); - menu->addChild(construct(&MenuItem::text, "Auxiliary value", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_AUX)); - menu->addChild(construct(&MenuItem::text, "Probability", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_PROB)); - menu->addChild(construct(&MenuItem::text, "Ratchets", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_RATCHETS)); - menu->addChild(construct(&MenuItem::text, "Slew", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_SLEW)); - return menu; - } - }; // StepRandomizeMenuItem - - struct OutCvModeMenuItem : MenuItem { - MODULE* module; - OutCvModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct OutCvModeItem : MenuItem { - MODULE* module; - OUT_CV_MODE outCvMode; - void onAction(const event::Action& e) override { - module->seq.outCvMode = outCvMode; - } - void step() override { - rightText = module->seq.outCvMode == outCvMode ? "✔" : ""; - MenuItem::step(); - } - }; - - struct OutCvClampItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->seq.outCvClamp ^= true; - } - void step() override { - rightText = module->seq.outCvClamp ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "-10..10V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_10V)); - menu->addChild(construct(&MenuItem::text, "-5..5V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_5V)); - menu->addChild(construct(&MenuItem::text, "-1..1V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::BI_1V)); - menu->addChild(construct(&MenuItem::text, "0..10V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_10V)); - menu->addChild(construct(&MenuItem::text, "0..5V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_5V)); - menu->addChild(construct(&MenuItem::text, "0..3V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_3V)); - menu->addChild(construct(&MenuItem::text, "0..2V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_2V)); - menu->addChild(construct(&MenuItem::text, "0..1V", &OutCvModeItem::module, module, &OutCvModeItem::outCvMode, OUT_CV_MODE::UNI_1V)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Clamp output", &OutCvClampItem::module, module)); - return menu; - } - }; // OutCvModeMenuItem - - struct OutAuxModeMenuItem : MenuItem { - MODULE* module; - OutAuxModeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct OutAuxModeItem : MenuItem { - MODULE* module; - OUT_AUX_MODE outAuxMode; - void onAction(const event::Action& e) override { - module->seq.outAuxMode = outAuxMode; - } - void step() override { - rightText = module->seq.outAuxMode == outAuxMode ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Trigger", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::TRIG)); - menu->addChild(construct(&MenuItem::text, "Slewed trigger", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::TRIG_SLEW)); - menu->addChild(construct(&MenuItem::text, "Clock", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::CLOCK)); - menu->addChild(construct(&MenuItem::text, "Auxiliary sequence", &OutAuxModeItem::module, module, &OutAuxModeItem::outAuxMode, OUT_AUX_MODE::AUXILIARY)); - return menu; - } - }; // OutAuxModeMenuItem - - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "Step CV knob mode", &StepCvModeMenuItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "RAND-port targets", &StepRandomizeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "CV-port range", &OutCvModeMenuItem::module, module)); - menu->addChild(construct(&MenuItem::text, "OUT-port mode", &OutAuxModeMenuItem::module, module)); - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne - -Model* modelFlowerSeqEx = createModel, StoermelderPackOne::Flower::FlowerSeqExWidget>("FlowerSeqEx"); \ No newline at end of file diff --git a/src/FlowerTrig.cpp b/src/FlowerTrig.cpp deleted file mode 100644 index d26fc92..0000000 --- a/src/FlowerTrig.cpp +++ /dev/null @@ -1,289 +0,0 @@ -#include "plugin.hpp" -#include "FlowerTrig.hpp" -#include "components/Knobs.hpp" - -namespace StoermelderPackOne { -namespace Flower { - -template < int STEPS, int PATTERNS, int PHRASES > -struct FlowerTrigModule : Module { - enum ParamIds { - PARAM_RAND, - PARAM_STEPMODE, - ENUMS(PARAM_STEP, STEPS), - ENUMS(PARAM_STEP_BUTTON, STEPS), - PARAM_STEP_CENTER, - NUM_PARAMS - }; - enum InputIds { - INPUT_RAND, - NUM_INPUTS - }; - enum OutputIds { - OUTPUT_GATE, - OUTPUT_TRIG, - ENUMS(OUTPUT_STEP, STEPS), - NUM_OUTPUTS - }; - enum LightIds { - ENUMS(LIGHT_STEP, STEPS * 3), - ENUMS(LIGHT_EDIT, STEPS * 3), - NUM_LIGHTS - }; - - typedef FlowerTrigModule MODULE; - - /** [Stored to JSON] */ - int panelTheme = 0; - - /** [Stored to JSON] */ - typedef FlowerTrig SEQ; - SEQ seq{this}; - - /** [Stored to JSON] */ - bool randomizeInherit; - /** [Stored to JSON] flags which targets should be randomized */ - FlowerProcessArgs::RandomizeFlags randomizeFlags; - - - dsp::SchmittTrigger seqRandTrigger; - dsp::ClockDivider lightDivider; - - FlowerProcessArgs argsProducer; - FlowerProcessArgs argsConsumer; - - FlowerTrigModule() { - leftExpander.consumerMessage = &argsConsumer; - leftExpander.producerMessage = &argsProducer; - - panelTheme = pluginSettings.panelThemeDefault; - config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam(PARAM_RAND, 0.f, 1.f, 0.f, "Randomize sequence"); - - configParam>(PARAM_STEPMODE, 0.f, 1.f, 0.f, "Mode"); - configParam>(PARAM_STEP_CENTER, -std::numeric_limits::infinity(), std::numeric_limits::infinity(), 0.f); - - for (int i = 0; i < STEPS; i++) { - configParam(PARAM_STEP + i, 0.f, 1.f, 0.1f, string::f("Step %i length", i + 1), "", 0.f); - - auto pq2 = configParam>(PARAM_STEP_BUTTON + i, 0.f, 1.f, 0.f); - pq2->i = i; - } - - lightDivider.setDivision(512); - onReset(); - } - - void onReset() override { - Module::onReset(); - randomizeInherit = true; - randomizeFlags.reset(); - randomizeFlags.set(0); - seq.reset(); - } - - void process(const ProcessArgs& args) override { - Module* mr = rightExpander.module; - if (!mr || !(mr->model->plugin->slug == "Stoermelder-P1") || !(mr->model->slug == "FlowerSeq" || mr->model->slug == "FlowerTrig")) return; - - auto seqArgs = reinterpret_cast(mr->leftExpander.consumerMessage); - - if (leftExpander.module) { - auto seqArgs1 = reinterpret_cast(leftExpander.producerMessage); - *seqArgs1 = *seqArgs; - leftExpander.messageFlipRequested = true; - } - - seqArgs->randomizeFlagsSlave = randomizeFlags; - if (!randomizeInherit) seqArgs->randTick = false; - seq.process(*seqArgs); - } - - json_t* dataToJson() override { - json_t* rootJ = json_object(); - json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); - seq.dataToJson(rootJ); - json_object_set_new(rootJ, "randomizeFlags", json_string(randomizeFlags.to_string().c_str())); - json_object_set_new(rootJ, "randomizeInherit", json_boolean(randomizeInherit)); - return rootJ; - } - - void dataFromJson(json_t* rootJ) override { - panelTheme = json_integer_value(json_object_get(rootJ, "panelTheme")); - seq.dataFromJson(rootJ); - randomizeFlags = FlowerProcessArgs::RandomizeFlags(json_string_value(json_object_get(rootJ, "randomizeFlags"))); - randomizeInherit = json_is_true(json_object_get(rootJ, "randomizeInherit")); - } -}; - - -struct FlowerTrigWidget : ThemedModuleWidget> { - typedef FlowerTrigModule<16, 8, 8> MODULE; - - FlowerTrigWidget(MODULE* module) - : ThemedModuleWidget(module, "FlowerTrig") { - setModule(module); - - 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))); - - float o = -37.5f; - - addParam(createParamCentered(Vec(o + 195.0f, 190.0f), module, MODULE::PARAM_STEP_CENTER)); - - addParam(createParamCentered(Vec(o + 116.2f, 326.7f), module, MODULE::PARAM_RAND)); - addInput(createInputCentered(Vec(o + 93.2f, 313.7f), module, MODULE::INPUT_RAND)); - - addOutput(createOutputCentered(Vec(o + 318.9f, 291.9f), module, MODULE::OUTPUT_GATE)); - addOutput(createOutputCentered(Vec(o + 297.1f, 313.6f), module, MODULE::OUTPUT_TRIG)); - addParam(createParamCentered(Vec(o + 274.f, 326.7f), module, MODULE::PARAM_STEPMODE)); - - // Edit leds - addChild(createLightCentered>(Vec(o + 219.2f, 68.5f), module, MODULE::LIGHT_EDIT + 0 * 3)); - addChild(createLightCentered>(Vec(o + 262.9f, 86.4f), module, MODULE::LIGHT_EDIT + 1 * 3)); - addChild(createLightCentered>(Vec(o + 298.1f, 121.1f), module, MODULE::LIGHT_EDIT + 2 * 3)); - addChild(createLightCentered>(Vec(o + 316.6f, 165.8f), module, MODULE::LIGHT_EDIT + 3 * 3)); - addChild(createLightCentered>(Vec(o + 316.6f, 214.1f), module, MODULE::LIGHT_EDIT + 4 * 3)); - addChild(createLightCentered>(Vec(o + 298.1f, 257.9f), module, MODULE::LIGHT_EDIT + 5 * 3)); - addChild(createLightCentered>(Vec(o + 262.9f, 293.0f), module, MODULE::LIGHT_EDIT + 6 * 3)); - addChild(createLightCentered>(Vec(o + 219.2f, 311.5f), module, MODULE::LIGHT_EDIT + 7 * 3)); - addChild(createLightCentered>(Vec(o + 171.0f, 311.5f), module, MODULE::LIGHT_EDIT + 8 * 3)); - addChild(createLightCentered>(Vec(o + 126.4f, 293.0f), module, MODULE::LIGHT_EDIT + 9 * 3)); - addChild(createLightCentered>(Vec(o + 92.2f, 257.9f), module, MODULE::LIGHT_EDIT + 10 * 3)); - addChild(createLightCentered>(Vec(o + 73.6f, 214.1f), module, MODULE::LIGHT_EDIT + 11 * 3)); - addChild(createLightCentered>(Vec(o + 73.6f, 165.8f), module, MODULE::LIGHT_EDIT + 12 * 3)); - addChild(createLightCentered>(Vec(o + 92.2f, 121.1f), module, MODULE::LIGHT_EDIT + 13 * 3)); - addChild(createLightCentered>(Vec(o + 126.4f, 86.4f), module, MODULE::LIGHT_EDIT + 14 * 3)); - addChild(createLightCentered>(Vec(o + 171.0f, 68.5f), module, MODULE::LIGHT_EDIT + 15 * 3)); - - // Steps - addParam(createParamCentered(Vec(o + 195.0f, 137.9f), module, MODULE::PARAM_STEP_BUTTON + 0)); - addParam(createParamCentered(Vec(o + 214.9f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 1)); - addParam(createParamCentered(Vec(o + 231.8f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 2)); - addParam(createParamCentered(Vec(o + 243.0f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 3)); - addParam(createParamCentered(Vec(o + 247.1f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 4)); - addParam(createParamCentered(Vec(o + 243.1f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 5)); - addParam(createParamCentered(Vec(o + 231.8f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 6)); - addParam(createParamCentered(Vec(o + 214.9f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 7)); - addParam(createParamCentered(Vec(o + 195.0f, 242.1f), module, MODULE::PARAM_STEP_BUTTON + 8)); - addParam(createParamCentered(Vec(o + 175.1f, 238.1f), module, MODULE::PARAM_STEP_BUTTON + 9)); - addParam(createParamCentered(Vec(o + 158.2f, 226.8f), module, MODULE::PARAM_STEP_BUTTON + 10)); - addParam(createParamCentered(Vec(o + 146.9f, 209.9f), module, MODULE::PARAM_STEP_BUTTON + 11)); - addParam(createParamCentered(Vec(o + 142.9f, 190.0f), module, MODULE::PARAM_STEP_BUTTON + 12)); - addParam(createParamCentered(Vec(o + 146.9f, 169.7f), module, MODULE::PARAM_STEP_BUTTON + 13)); - addParam(createParamCentered(Vec(o + 158.2f, 153.2f), module, MODULE::PARAM_STEP_BUTTON + 14)); - addParam(createParamCentered(Vec(o + 175.1f, 141.9f), module, MODULE::PARAM_STEP_BUTTON + 15)); - - addChild(createLightCentered(Vec(o + 195.0f, 137.9f), module, MODULE::LIGHT_STEP + 0 * 3)); - addChild(createLightCentered(Vec(o + 214.9f, 141.9f), module, MODULE::LIGHT_STEP + 1 * 3)); - addChild(createLightCentered(Vec(o + 231.8f, 153.2f), module, MODULE::LIGHT_STEP + 2 * 3)); - addChild(createLightCentered(Vec(o + 243.0f, 169.7f), module, MODULE::LIGHT_STEP + 3 * 3)); - addChild(createLightCentered(Vec(o + 247.1f, 190.0f), module, MODULE::LIGHT_STEP + 4 * 3)); - addChild(createLightCentered(Vec(o + 243.1f, 209.9f), module, MODULE::LIGHT_STEP + 5 * 3)); - addChild(createLightCentered(Vec(o + 231.8f, 226.8f), module, MODULE::LIGHT_STEP + 6 * 3)); - addChild(createLightCentered(Vec(o + 214.9f, 238.1f), module, MODULE::LIGHT_STEP + 7 * 3)); - addChild(createLightCentered(Vec(o + 195.0f, 242.1f), module, MODULE::LIGHT_STEP + 8 * 3)); - addChild(createLightCentered(Vec(o + 175.1f, 238.1f), module, MODULE::LIGHT_STEP + 9 * 3)); - addChild(createLightCentered(Vec(o + 158.2f, 226.8f), module, MODULE::LIGHT_STEP + 10 * 3)); - addChild(createLightCentered(Vec(o + 146.9f, 209.9f), module, MODULE::LIGHT_STEP + 11 * 3)); - addChild(createLightCentered(Vec(o + 142.9f, 190.0f), module, MODULE::LIGHT_STEP + 12 * 3)); - addChild(createLightCentered(Vec(o + 146.9f, 169.7f), module, MODULE::LIGHT_STEP + 13 * 3)); - addChild(createLightCentered(Vec(o + 158.2f, 153.2f), module, MODULE::LIGHT_STEP + 14 * 3)); - addChild(createLightCentered(Vec(o + 175.1f, 141.9f), module, MODULE::LIGHT_STEP + 15 * 3)); - - addParam(createParamCentered(Vec(o + 195.0f, 107.2f), module, MODULE::PARAM_STEP + 0)); - addParam(createParamCentered(Vec(o + 230.2f, 104.9f), module, MODULE::PARAM_STEP + 1)); - addParam(createParamCentered(Vec(o + 253.6f, 131.4f), module, MODULE::PARAM_STEP + 2)); - addParam(createParamCentered(Vec(o + 280.1f, 154.9f), module, MODULE::PARAM_STEP + 3)); - addParam(createParamCentered(Vec(o + 277.8f, 190.0f), module, MODULE::PARAM_STEP + 4)); - addParam(createParamCentered(Vec(o + 280.1f, 225.2f), module, MODULE::PARAM_STEP + 5)); - addParam(createParamCentered(Vec(o + 253.6f, 248.6f), module, MODULE::PARAM_STEP + 6)); - addParam(createParamCentered(Vec(o + 230.2f, 275.1f), module, MODULE::PARAM_STEP + 7)); - addParam(createParamCentered(Vec(o + 195.0f, 272.8f), module, MODULE::PARAM_STEP + 8)); - addParam(createParamCentered(Vec(o + 159.8f, 275.1f), module, MODULE::PARAM_STEP + 9)); - addParam(createParamCentered(Vec(o + 136.4f, 248.6f), module, MODULE::PARAM_STEP + 10)); - addParam(createParamCentered(Vec(o + 109.9f, 225.2f), module, MODULE::PARAM_STEP + 11)); - addParam(createParamCentered(Vec(o + 112.2f, 190.0f), module, MODULE::PARAM_STEP + 12)); - addParam(createParamCentered(Vec(o + 109.9f, 154.9f), module, MODULE::PARAM_STEP + 13)); - addParam(createParamCentered(Vec(o + 136.4f, 131.4f), module, MODULE::PARAM_STEP + 14)); - addParam(createParamCentered(Vec(o + 159.8f, 104.9f), module, MODULE::PARAM_STEP + 15)); - - addOutput(createOutputCentered(Vec(o + 195.0f, 66.2f), module, MODULE::OUTPUT_STEP + 0)); - addOutput(createOutputCentered(Vec(o + 242.2f, 75.6f), module, MODULE::OUTPUT_STEP + 1)); - addOutput(createOutputCentered(Vec(o + 282.6f, 102.4f), module, MODULE::OUTPUT_STEP + 2)); - addOutput(createOutputCentered(Vec(o + 309.4f, 142.6f), module, MODULE::OUTPUT_STEP + 3)); - addOutput(createOutputCentered(Vec(o + 318.8f, 190.0f), module, MODULE::OUTPUT_STEP + 4)); - addOutput(createOutputCentered(Vec(o + 309.4f, 237.4f), module, MODULE::OUTPUT_STEP + 5)); - addOutput(createOutputCentered(Vec(o + 282.6f, 277.6f), module, MODULE::OUTPUT_STEP + 6)); - addOutput(createOutputCentered(Vec(o + 242.2f, 304.4f), module, MODULE::OUTPUT_STEP + 7)); - addOutput(createOutputCentered(Vec(o + 195.0f, 313.8f), module, MODULE::OUTPUT_STEP + 8)); - addOutput(createOutputCentered(Vec(o + 147.6f, 304.4f), module, MODULE::OUTPUT_STEP + 9)); - addOutput(createOutputCentered(Vec(o + 107.4f, 277.6f), module, MODULE::OUTPUT_STEP + 10)); - addOutput(createOutputCentered(Vec(o + 80.6f, 237.4f), module, MODULE::OUTPUT_STEP + 11)); - addOutput(createOutputCentered(Vec(o + 71.2f, 190.0f), module, MODULE::OUTPUT_STEP + 12)); - addOutput(createOutputCentered(Vec(o + 80.6f, 142.6f), module, MODULE::OUTPUT_STEP + 13)); - addOutput(createOutputCentered(Vec(o + 107.4f, 102.4f), module, MODULE::OUTPUT_STEP + 14)); - addOutput(createOutputCentered(Vec(o + 147.6f, 75.6f), module, MODULE::OUTPUT_STEP + 15)); - } - - void appendContextMenu(Menu* menu) override { - ThemedModuleWidget::appendContextMenu(menu); - MODULE* module = dynamic_cast(this->module); - assert(module); - - struct StepRandomizeMenuItem : MenuItem { - MODULE* module; - StepRandomizeMenuItem() { - rightText = RIGHT_ARROW; - } - - Menu* createChildMenu() override { - Menu* menu = new Menu; - - struct InheritRandomizeItem : MenuItem { - MODULE* module; - void onAction(const event::Action& e) override { - module->randomizeInherit ^= true; - } - void step() override { - rightText = module->randomizeInherit ? "✔" : ""; - MenuItem::step(); - } - }; - - struct StepRandomizeItem : MenuItem { - MODULE* module; - int idx; - void onAction(const event::Action& e) override { - module->randomizeFlags.flip(idx); - } - void step() override { - rightText = module->randomizeFlags.test(idx) ? "✔" : ""; - MenuItem::step(); - } - }; - - menu->addChild(construct(&MenuItem::text, "Trigger from master", &InheritRandomizeItem::module, module)); - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuLabel::text, "Steps")); - menu->addChild(construct(&MenuItem::text, "Value", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_VALUE)); - menu->addChild(construct(&MenuItem::text, "Disabled", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_DISABLED)); - menu->addChild(construct(&MenuItem::text, "Probability", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_PROB)); - menu->addChild(construct(&MenuItem::text, "Ratchets", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_RATCHETS)); - menu->addChild(construct(&MenuItem::text, "Attack", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_ATTACK)); - menu->addChild(construct(&MenuItem::text, "Decay", &StepRandomizeItem::module, module, &StepRandomizeItem::idx, FlowerProcessArgs::STEP_DECAY)); - return menu; - } - }; // StepRandomizeMenuItem - - menu->addChild(new MenuSeparator()); - menu->addChild(construct(&MenuItem::text, "RAND-port targets", &StepRandomizeMenuItem::module, module)); - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne - -Model* modelFlowerTrig = createModel, StoermelderPackOne::Flower::FlowerTrigWidget>("FlowerTrig"); \ No newline at end of file diff --git a/src/FlowerTrig.hpp b/src/FlowerTrig.hpp deleted file mode 100644 index 1758f39..0000000 --- a/src/FlowerTrig.hpp +++ /dev/null @@ -1,518 +0,0 @@ -#include "plugin.hpp" -#include "digital.hpp" -#include "Flower.hpp" -#include -#include - -namespace StoermelderPackOne { -namespace Flower { - -enum class TRIG_UI_STATE { - DEFAULT, - PROBABILITY, - RATCHETS, - ATTACK, - DECAY, - NUM_MODES -}; - - -template< typename MODULE, int STEPS > -struct TrigStepButtonParamQuantity : ParamQuantity { - int i; - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - std::string s; - switch (module->seq.stepState) { - default: - case TRIG_UI_STATE::DEFAULT: - return string::f("Step %i: %s\nProbability: %4.3f\nRatchets: %i\nAttack: %4.3f\nDecay: %4.3f", - i + 1, module->seq.stepGet(i)->disabled ? "Off" : "On", module->seq.stepGet(i)->probability, module->seq.stepGet(i)->ratchets, module->seq.stepGet(i)->attack, module->seq.stepGet(i)->decay); - case TRIG_UI_STATE::PROBABILITY: - return string::f("Step %i probability: %4.3f\nShort press: select step %i\nLong press: set probability value %4.3f", - i + 1, module->seq.stepGet(i)->probability, i + 1, float(i) / (STEPS - 1)); - case TRIG_UI_STATE::RATCHETS: - s = string::f("\nLong press: set ratchets %i", i + 1); - return string::f("Step %i ratchets: %i\nShort press: select step %i", - i + 1, module->seq.stepGet(i)->ratchets, i + 1) + (i < 8 ? s : ""); - case TRIG_UI_STATE::ATTACK: - return string::f("Step %i attack: %4.3f\nShort press: select step %i\nLong press: set attack value %4.3f", - i + 1, module->seq.stepGet(i)->attack, i + 1, float(i) / (STEPS - 1)); - case TRIG_UI_STATE::DECAY: - return string::f("Step %i decay: %4.3f\nShort press: select step %i\nLong press: set decay value %4.3f", - i + 1, module->seq.stepGet(i)->decay, i + 1, float(i) / (STEPS - 1)); - } - return ""; - } - std::string getLabel() override { - return ""; - } -}; // SeqStepButtonParamQuantity - - -template< typename MODULE > -struct TrigStepModeParamQuantity : ParamQuantity { - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - switch (module->seq.stepState) { - default: - case TRIG_UI_STATE::DEFAULT: return "Edit step on/off"; - case TRIG_UI_STATE::PROBABILITY: return "Edit step probability value"; - case TRIG_UI_STATE::RATCHETS: return "Edit step ratchets"; - case TRIG_UI_STATE::ATTACK: return "Edit step attack"; - case TRIG_UI_STATE::DECAY: return "Edit step decay"; - } - return ""; - } -}; // SeqStepModeParamQuantity - - -template< typename MODULE > -struct TrigFlowerKnobParamQuantity : ParamQuantity { - std::string getDisplayValueString() override { - auto module = reinterpret_cast(this->module); - int i = module->seq.stepEditSelected; - switch (module->seq.stepState) { - default: - case TRIG_UI_STATE::DEFAULT: - return "SEEDS control (use EDIT-button)"; - case TRIG_UI_STATE::PROBABILITY: - return string::f("%4.3f", module->seq.stepGet(i)->probability); - case TRIG_UI_STATE::RATCHETS: - return string::f("%i", module->seq.stepGet(i)->ratchets); - case TRIG_UI_STATE::ATTACK: - return string::f("%4.3f", module->seq.stepGet(i)->attack); - case TRIG_UI_STATE::DECAY: - return string::f("%4.3f", module->seq.stepGet(i)->decay); - } - return ""; - } - std::string getLabel() override { - auto module = reinterpret_cast(this->module); - int i = module->seq.stepEditSelected; - switch (module->seq.stepState) { - default: - case TRIG_UI_STATE::DEFAULT: - return ""; - case TRIG_UI_STATE::PROBABILITY: - return string::f("Step %i probability", i + 1); - case TRIG_UI_STATE::RATCHETS: - return string::f("Step %i ratchets", i + 1); - case TRIG_UI_STATE::ATTACK: - return string::f("Step %i attack", i + 1); - case TRIG_UI_STATE::DECAY: - return string::f("Step %i decay", i + 1); - } - } -}; // SeqFlowerKnobParamQuantity - - -template < typename MODULE, int STEPS > -struct FlowerTrig { - MODULE* m; - - struct FlowerTrigStep { - bool disabled; - float probability; - int ratchets; - float attack; - float decay; - }; - - /** currently acitve step after pattern-transform */ - int stepOutIndex; - /** [Stored to JSON] the steps */ - FlowerTrigStep steps[STEPS]; - - /** currently selected ui-state for step-buttons/leds */ - TRIG_UI_STATE stepState; - /** currently selected step if one of the edit-modes is active */ - int stepEditSelected; - /** helper-variable for led-blinking */ - bool stepBlink = false; - /** currently selected random step */ - uint32_t stepRandomIndex; - /** random probability for the currently selected step */ - float stepRandomProbability; - /** helper-variable for center-param delta-calculation */ - float stepCenterValue; - /** random distribution used for randomization */ - std::geometric_distribution stepGeoDist{0.65}; - - - float editLightBrightness = 0.f; - int editLightAdd = 1; - - dsp::SchmittTrigger randTrigger; - ClockMultiplier clockMultiplier; - - LongPressButton stepButtons[STEPS]; - dsp::BooleanTrigger stepModeTrigger; - StoermelderSlewLimiter stepGateEnv; - StoermelderSlewLimiter stepGateDecay; - StoermelderSlewLimiter stepEnv[STEPS]; - StoermelderSlewLimiter stepDecay[STEPS]; - - dsp::PulseGenerator gatePulseGenerator; - dsp::PulseGenerator trigPulseGenerator; - - dsp::ClockDivider paramDivider; - dsp::ClockDivider lightDivider; - dsp::ClockDivider lightBlinkDivider; - - std::default_random_engine randGen{(uint16_t)std::chrono::system_clock::now().time_since_epoch().count()}; - - FlowerTrig(MODULE* module) { - m = module; - paramDivider.setDivision(32); - lightDivider.setDivision(512); - reset(); - } - - void reset() { - clockMultiplier.reset(); - - // Steps - stepState = TRIG_UI_STATE::DEFAULT; - stepEditSelected = -1; - stepCenterValue = 0.f; - stepRandomIndex = 0; - stepGateDecay.setShape(0.975f); - - for (int i = 0; i < STEPS; i++) { - stepGet(i)->disabled = false; - stepGet(i)->probability = 1.f; - stepGet(i)->ratchets = 1; - stepGet(i)->attack = 0.f; - stepGet(i)->decay = 0.f; - stepDecay[i].setShape(0.975f); - } - - for (int i = 0; i < STEPS; i++) { - stepButtons[i].param = &m->params[MODULE::PARAM_STEP_BUTTON + i]; - } - } - - void process(const FlowerProcessArgs& args) { - bool clockPulse = false; - - // CLOCK-input - if (args.running && args.clockTick) { - clockPulse = true; - clockMultiplier.tick(); - } - - // SEQ_RAND-input / SEQ_RAND-button - if (randTrigger.process(m->inputs[MODULE::INPUT_RAND].getVoltage() + m->params[MODULE::PARAM_RAND].getValue())) { - doRandomize(args.randomizeFlagsSlave); - } - // SEQ_RAND-input / SEQ_RAND-button from master-module - if (args.randTick) { - doRandomize(args.randomizeFlagsMaster); - } - - if (args.stepTick) { - // Random variables for the next step - stepRandomIndex = random::u32(); - stepRandomProbability = random::uniform(); - } - - if (args.patternTick) { - - } - - if (paramDivider.process()) { - // StepMode-button - if (stepModeTrigger.process(m->params[MODULE::PARAM_STEPMODE].getValue())) { - stepState = (TRIG_UI_STATE)(((int)stepState + 1) % (int)TRIG_UI_STATE::NUM_MODES); - stepEditSelected = 0; - } - - // Step-buttons - for (int i = 0; i < STEPS; i++) { - switch (stepButtons[i].process(args.sampleTime, 0.8f / float(paramDivider.getDivision()))) { - default: - case LongPressButton::NO_PRESS: - break; - case LongPressButton::SHORT_PRESS: - stepEditSelected = i; - stepBlink = true; - lightBlinkDivider.reset(); - break; - case LongPressButton::LONG_PRESS: - if (stepState == TRIG_UI_STATE::DEFAULT) { - stepGet(i)->disabled ^= true; - } - if (stepState == TRIG_UI_STATE::PROBABILITY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->probability = float(i) / float(STEPS - 1); - } - if (stepState == TRIG_UI_STATE::RATCHETS) { - if (stepEditSelected >= 0 && i < 8) stepGet(stepEditSelected)->ratchets = i + 1; - } - if (stepState == TRIG_UI_STATE::ATTACK) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->attack = float(i) / float(STEPS - 1); - } - if (stepState == TRIG_UI_STATE::DECAY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->decay = float(i) / float(STEPS - 1); - } - break; - } - } - - // FlowerKnob-param - if (m->params[MODULE::PARAM_STEP_CENTER].getValue() != stepCenterValue) { - float v = m->params[MODULE::PARAM_STEP_CENTER].getValue(); - float delta = v - stepCenterValue; - - if (stepState == TRIG_UI_STATE::PROBABILITY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->probability = clamp(stepGet(stepEditSelected)->probability + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - if (stepState == TRIG_UI_STATE::RATCHETS && std::abs(delta) > 0.5f) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->ratchets = (int)clamp(std::round(stepGet(stepEditSelected)->ratchets + delta * 2.f), 0.f, 8.f); - stepCenterValue = v; - } - if (stepState == TRIG_UI_STATE::ATTACK) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->attack = clamp(stepGet(stepEditSelected)->attack + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - if (stepState == TRIG_UI_STATE::DECAY) { - if (stepEditSelected >= 0) stepGet(stepEditSelected)->decay = clamp(stepGet(stepEditSelected)->decay + delta / 10.f, 0.f, 1.f); - stepCenterValue = v; - } - } - } - - processOutput(args, clockPulse); - if (lightDivider.process()) processLights(args); - } - - void processOutput(const FlowerProcessArgs& args, bool clockPulse) { - float v = 0.f; - float stepProbability = 1.f; - bool stepEnabled = true; - - switch (args.patternType) { - default: - case PATTERN_TYPE::SEQ_FWD: - case PATTERN_TYPE::SEQ_ADD_1V: - case PATTERN_TYPE::SEQ_INV: - case PATTERN_TYPE::AUX_ADD: - case PATTERN_TYPE::AUX_SUB: - case PATTERN_TYPE::SEQ_TRANSPOSE: - case PATTERN_TYPE::AUX_RAND: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValue(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_REV: { - stepOutIndex = (args.stepStart + args.stepLength - args.stepIndex - 1) % STEPS; - v = stepGetValue(stepOutIndex); - break; - } - case PATTERN_TYPE::ADD_2STEPS: { - stepOutIndex = (args.stepStart + ((args.stepIndex + 2) % args.stepLength)) % STEPS; - v = stepGetValue(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_PROB_05: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - v = stepGetValue(stepOutIndex); - stepProbability = 0.5f; - break; - } - case PATTERN_TYPE::SEQ_RAND: { - stepOutIndex = (args.stepStart + (stepRandomIndex % args.stepLength)) % STEPS; - v = stepGetValue(stepOutIndex); - break; - } - case PATTERN_TYPE::SEQ_OOD: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - if (stepOutIndex % 2 == 0) - v = stepGetValue(stepOutIndex); - else - stepEnabled = false; - break; - } - case PATTERN_TYPE::SEQ_EVEN: { - stepOutIndex = (args.stepStart + args.stepIndex) % STEPS; - if (stepOutIndex % 2 == 1) - v = stepGetValue(stepOutIndex); - else - stepEnabled = false; - break; - } - } - - stepEnabled = stepEnabled && !stepGet(stepOutIndex)->disabled; - stepProbability *= stepGet(stepOutIndex)->probability; - if (stepEnabled && stepProbability < 1.f) { - stepEnabled = stepRandomProbability <= stepProbability; - } - - if (stepEnabled && clockPulse) { - clockMultiplier.trigger(stepGet(stepOutIndex)->ratchets); - } - if (clockMultiplier.process()) { - gatePulseGenerator.trigger(v); - trigPulseGenerator.trigger(2e-2f); - } - - if (args.running) { - float t = 0.f; - if (stepEnabled) { - stepGateEnv.setRise(stepGet(stepOutIndex)->attack); - stepGateEnv.setFall(stepGet(stepOutIndex)->decay); - stepEnv[stepOutIndex].setRise(stepGet(stepOutIndex)->attack); - stepEnv[stepOutIndex].setFall(stepGet(stepOutIndex)->decay); - t = gatePulseGenerator.process(args.sampleTime) ? 10.f : 0.f; - } - - float d; - d = stepGateEnv.process(t, args.sampleTime); - m->outputs[MODULE::OUTPUT_GATE].setVoltage(d); - - for (int i = 0; i < STEPS; i++) { - d = i == stepOutIndex ? t : 0.f; - d = stepEnv[i].process(d, args.sampleTime); - m->outputs[MODULE::OUTPUT_STEP + i].setVoltage(d); - } - } - if (stepEnabled && args.running) { - m->outputs[MODULE::OUTPUT_TRIG].setVoltage(trigPulseGenerator.process(args.sampleTime) ? 10.f : 0.f); - } - else { - m->outputs[MODULE::OUTPUT_TRIG].setVoltage(0.f); - } - } - - inline float stepGetValue(int index) { - float v = m->params[MODULE::PARAM_STEP + index].getValue(); - return v; - } - - inline FlowerTrigStep* stepGet(int idx) { - return &steps[idx]; - } - - inline void stepSetValue(int index, float value) { - m->params[MODULE::PARAM_STEP + index].setValue(value); - } - - void doRandomize(const FlowerProcessArgs::RandomizeFlags& flags) { - for (int i = 0; i < STEPS; i++) { - if (flags.test(FlowerProcessArgs::STEP_VALUE)) - stepSetValue(i, random::uniform()); - if (flags.test(FlowerProcessArgs::STEP_DISABLED)) - stepGet(i)->disabled = random::uniform() > 0.5f; - if (flags.test(FlowerProcessArgs::STEP_PROB)) - stepGet(i)->probability = random::uniform(); - if (flags.test(FlowerProcessArgs::STEP_RATCHETS)) - stepGet(i)->ratchets = 1 + std::min(7, stepGeoDist(randGen)); - if (flags.test(FlowerProcessArgs::STEP_ATTACK)) - stepGet(i)->attack = stepGeoDist(randGen) / ((stepGeoDist(randGen) + 1) * (7.f + 3.f * random::uniform())); - if (flags.test(FlowerProcessArgs::STEP_DECAY)) - stepGet(i)->decay = stepGeoDist(randGen) / ((stepGeoDist(randGen) + 1) * (7.f + 3.f * random::uniform())); - } - } - - void processLights(const FlowerProcessArgs& args) { - float st = args.sampleTime * lightDivider.getDivision(); - - lightBlinkDivider.setDivision(args.sampleRate / lightDivider.getDivision() / 6); - if (lightBlinkDivider.process()) { - stepBlink ^= true; - if (editLightBrightness == 0.9f) editLightAdd = -1; - if (editLightBrightness == 0.f) editLightAdd = 1; - editLightBrightness = clamp(editLightBrightness + editLightAdd * 0.02f, 0.f, 0.9f); - } - - for (int i = 0; i < STEPS; i++) { - float r = (stepState == TRIG_UI_STATE::PROBABILITY) + (stepState == TRIG_UI_STATE::RATCHETS) + (stepState == TRIG_UI_STATE::DECAY); - float g = (stepState == TRIG_UI_STATE::PROBABILITY) + (stepState == TRIG_UI_STATE::DECAY ? 0.55f : 0.f); - float b = (stepState == TRIG_UI_STATE::DEFAULT ? editLightBrightness : 0.f); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 0].setBrightness(r); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 1].setBrightness(g); - m->lights[MODULE::LIGHT_EDIT + i * 3 + 2].setSmoothBrightness(b, st); - } - - // Step lights - if (stepState == TRIG_UI_STATE::DEFAULT) { - int start = args.stepStart; - int length = args.stepLength; - for (int i = 0; i < STEPS; i++) { - bool a = (i >= start && i < start + length) || (i + STEPS >= start && i + STEPS < start + length); - float r = stepOutIndex == i ? 1.f : 0.f + stepGet(i)->disabled; - float g = stepOutIndex == i ? 1.f : 0.f; - float b = stepOutIndex == i ? 1.f : ((a && !stepGet(i)->disabled) ? 0.7f : 0.f); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setSmoothBrightness(r, st); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setSmoothBrightness(g, st); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setSmoothBrightness(b, st); - } - } - if (stepState == TRIG_UI_STATE::PROBABILITY) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->probability >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == TRIG_UI_STATE::RATCHETS) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->ratchets > i; - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == TRIG_UI_STATE::ATTACK) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->attack >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + (b ? 0.55f : 0.f)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - if (stepState == TRIG_UI_STATE::DECAY) { - for (int i = 0; i < STEPS; i++) { - bool b = stepEditSelected >= 0 && stepGet(stepEditSelected)->decay >= float(i) / float(STEPS); - m->lights[MODULE::LIGHT_STEP + i * 3 + 0].setBrightness((stepBlink && stepEditSelected == i) + b); - m->lights[MODULE::LIGHT_STEP + i * 3 + 1].setBrightness((stepBlink && stepEditSelected == i) + (b ? 0.55f : 0.f)); - m->lights[MODULE::LIGHT_STEP + i * 3 + 2].setBrightness((stepBlink && stepEditSelected == i)); - } - } - } - - void dataToJson(json_t* rootJ) { - // Steps - json_t* stepsJ = json_array(); - for (int i = 0; i < STEPS; i++) { - json_t* stepJ = json_object(); - json_object_set_new(stepJ, "disabled", json_boolean(stepGet(i)->disabled)); - json_object_set_new(stepJ, "probability", json_real(stepGet(i)->probability)); - json_object_set_new(stepJ, "ratchets", json_integer(stepGet(i)->ratchets)); - json_object_set_new(stepJ, "attack", json_real(stepGet(i)->attack)); - json_object_set_new(stepJ, "decay", json_real(stepGet(i)->decay)); - json_array_append_new(stepsJ, stepJ); - } - json_object_set_new(rootJ, "step", stepsJ); - } - - void dataFromJson(json_t* rootJ) { - // Steps - stepState = TRIG_UI_STATE::DEFAULT; - json_t* stepsJ = json_object_get(rootJ, "step"); - for (int i = 0; i < STEPS; i++) { - json_t* stepJ = json_array_get(stepsJ, i); - stepGet(i)->disabled = json_boolean_value(json_object_get(stepJ, "disabled")); - stepGet(i)->probability = json_real_value(json_object_get(stepJ, "probability")); - stepGet(i)->ratchets = json_integer_value(json_object_get(stepJ, "ratchets")); - stepGet(i)->attack = json_real_value(json_object_get(stepJ, "attack")); - stepGet(i)->decay = json_real_value(json_object_get(stepJ, "decay")); - } - } -}; - -} // namespace Flower -} // namespace StoermelderPackOne \ No newline at end of file diff --git a/src/Prisma.cpp b/src/Prisma.cpp deleted file mode 100644 index 79fddcf..0000000 --- a/src/Prisma.cpp +++ /dev/null @@ -1,207 +0,0 @@ -#include "plugin.hpp" -#include "components/Knobs.hpp" - -namespace StoermelderPackOne { -namespace Prisma { - -template -struct PrismaModule : Module { - enum ParamIds { - PARAM_INPUT, - ENUMS(PARAM_SHIFT_CV, UNITS), - ENUMS(PARAM_SHIFT, UNITS), - ENUMS(PARAM_LEVEL, UNITS), - NUM_PARAMS - }; - enum InputIds { - INPUT, - ENUMS(INPUT_SHIFT_CV, UNITS), - ENUMS(INPUT_LEVEL, UNITS), - NUM_INPUTS - }; - enum OutputIds { - OUTPUT, - OUTPUT_POLY, - NUM_OUTPUTS - }; - enum LightIds { - NUM_LIGHTS - }; - - /** [Stored to JSON] */ - int panelTheme = 0; - - simd::float_4 input_cv[UNITS / 4]; - simd::float_4 param_cv[UNITS / 4]; - simd::float_4 param_shift[UNITS / 4]; - simd::float_4 input_level[UNITS / 4]; - simd::float_4 param_level[UNITS / 4]; - - dsp::RCFilter dcblock[UNITS]; - dsp::TBiquadFilter biquad[UNITS]; - - dsp::MinBlepGenerator<16, 32> minBlep[UNITS]; - - PrismaModule() { - panelTheme = pluginSettings.panelThemeDefault; - config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS, NUM_LIGHTS); - configParam(PARAM_INPUT, 0.f, 2.f, 1.f, "Input level", "x"); - - for (int i = 0; i < UNITS; i++) { - configParam(PARAM_SHIFT_CV + i, 0.f, 1.f, 0.f, string::f("Shift unit %i CV attenuator", i + 1), "x"); - configParam(PARAM_SHIFT + i, 0.f, 1.f, 1.f / (UNITS + 1) * (i + 1.f), string::f("Shift unit %i shift", i + 1)); - configParam(PARAM_LEVEL + i, 0.f, 1.f, 0.5f, string::f("Shift unit %i sum level", i + 1)); - } - for (int i = 0; i < UNITS; i++) { - biquad[i].setParameters(dsp::TBiquadFilter::Type::LOWPASS, 0.4f, 1.f, 0.f); - } - onSampleRateChange(); - onReset(); - } - - void onSampleRateChange() override { - for (int i = 0; i < UNITS; i++) { - dcblock[i].setCutoffFreq(40.f / APP->engine->getSampleRate()); - } - } - - float compPrev[UNITS] = {0.f}; - float inPrev = 0.f; - - void process(const ProcessArgs& args) override { - float in = inputs[INPUT].getVoltage(); - in *= params[PARAM_INPUT].getValue(); - - float out = 0.f; - float div = params[PARAM_INPUT].getValue(); - for (int i = 0; i < UNITS; i++) { - float cv = clamp(inputs[INPUT_SHIFT_CV + i].getVoltage() * params[PARAM_SHIFT_CV + i].getValue() + params[PARAM_SHIFT + i].getValue() * 10.f, 0.f, 10.f); - cv -= 5.f; - float comp = in > cv ? -5.f : 5.f; - - if (comp != compPrev[i]) { - // discontinuity - float m1 = in - cv; - float m2 = inPrev - cv; - float d = m1 / (m1 - m2); - minBlep[i].insertDiscontinuity(-d, comp - compPrev[i]); - } - - compPrev[i] = comp; - - float s = in + comp - cv; - s += minBlep[i].process(); - - // Filter at 0.4 * samplerate - s = biquad[i].process(s); - - // Block DC in the signal - dcblock[i].process(s); - s = dcblock[i].highpass(); - - outputs[OUTPUT_POLY].setVoltage(s, i); - float l = params[PARAM_LEVEL + i].getValue() * inputs[INPUT_LEVEL + i].getNormalVoltage(10.f) / 10.f; - out += (s * l); - div += l; - } - - inPrev = in; - - /* - float out = 0.f; - out += in * params[PARAM_INPUT].getValue(); - - for (int i = 0; i < UNITS; i++) { - input_cv[i / 4][i % 4] = inputs[INPUT_SHIFT_CV + i].getVoltage(); - param_cv[i / 4][i % 4] = params[PARAM_SHIFT_CV + i].getValue(); - param_shift[i / 4][i % 4] = params[PARAM_SHIFT + i].getValue(); - input_level[i / 4][i % 4] = inputs[INPUT_LEVEL + i].getNormalVoltage(10.f); - param_level[i / 4][i % 4] = params[PARAM_LEVEL + i].getValue(); - } - - for (int c = 0; c < UNITS; c += 4) { - simd::float_4 cv = input_cv[c / 4] * param_cv[c / 4] + param_shift[c / 4] * 10.f; - cv = simd::clamp(cv, 0.f, 10.f); - cv -= 5.f; - simd::float_4 comp = simd::ifelse(simd::float_4(in) >= cv, -5.f, 5.f); - simd::float_4 s = simd::float_4(in) + comp - cv; - - // Filter at 0.4 * samplerate - s = biquad[c / 4].process(s); - - outputs[OUTPUT_POLY].setVoltageSimd(s, c); - simd::float_4 l = param_level[c / 4] * input_level[c / 4] / 10.f; - s = s * l; - - __m128 _s = s.v; - _s = _mm_hadd_ps(_s, _s); - _s = _mm_hadd_ps(_s, _s); - out += _s[0]; - //__m128 _l = l.v; - //_l = _mm_hadd_ps(_l, _l); - //_l = _mm_hadd_ps(_l, _l); - //div += _l[0]; - } - */ - - outputs[OUTPUT_POLY].setChannels(UNITS); - outputs[OUTPUT].setVoltage(out); - } - - json_t* dataToJson() override { - json_t* rootJ = json_object(); - json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); - return rootJ; - } - - void dataFromJson(json_t* rootJ) override { - panelTheme = json_integer_value(json_object_get(rootJ, "panelTheme")); - } -}; - - -struct PrismaWidget : ThemedModuleWidget> { - PrismaWidget(PrismaModule<4>* module) - : ThemedModuleWidget>(module, "Prisma") { - setModule(module); - - 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))); - - addInput(createInputCentered(Vec(22.5f, 72.8f), module, PrismaModule<4>::INPUT_SHIFT_CV + 0)); - addParam(createParamCentered(Vec(33.6f, 47.9f), module, PrismaModule<4>::PARAM_SHIFT_CV + 0)); - addParam(createParamCentered(Vec(67.5f, 65.9f), module, PrismaModule<4>::PARAM_SHIFT + 0)); - addParam(createParamCentered(Vec(101.4f, 47.9f), module, PrismaModule<4>::PARAM_LEVEL + 0)); - addInput(createInputCentered(Vec(112.5f, 72.8f), module, PrismaModule<4>::INPUT_LEVEL + 0)); - - addInput(createInputCentered(Vec(22.5f, 129.f), module, PrismaModule<4>::INPUT_SHIFT_CV + 1)); - addParam(createParamCentered(Vec(33.6f, 104.1f), module, PrismaModule<4>::PARAM_SHIFT_CV + 1)); - addParam(createParamCentered(Vec(67.5f, 122.1f), module, PrismaModule<4>::PARAM_SHIFT + 1)); - addParam(createParamCentered(Vec(101.4f, 104.1f), module, PrismaModule<4>::PARAM_LEVEL + 1)); - addInput(createInputCentered(Vec(112.5f, 129.f), module, PrismaModule<4>::INPUT_LEVEL + 1)); - - addInput(createInputCentered(Vec(22.5f, 185.2f), module, PrismaModule<4>::INPUT_SHIFT_CV + 2)); - addParam(createParamCentered(Vec(33.6f, 160.3f), module, PrismaModule<4>::PARAM_SHIFT_CV + 2)); - addParam(createParamCentered(Vec(67.5f, 178.3f), module, PrismaModule<4>::PARAM_SHIFT + 2)); - addParam(createParamCentered(Vec(101.4f, 160.3f), module, PrismaModule<4>::PARAM_LEVEL + 2)); - addInput(createInputCentered(Vec(112.5f, 185.2f), module, PrismaModule<4>::INPUT_LEVEL + 2)); - - addInput(createInputCentered(Vec(22.5f, 241.4f), module, PrismaModule<4>::INPUT_SHIFT_CV + 3)); - addParam(createParamCentered(Vec(33.6f, 216.5f), module, PrismaModule<4>::PARAM_SHIFT_CV + 3)); - addParam(createParamCentered(Vec(67.5f, 234.5f), module, PrismaModule<4>::PARAM_SHIFT + 3)); - addParam(createParamCentered(Vec(101.4f, 216.5f), module, PrismaModule<4>::PARAM_LEVEL + 3)); - addInput(createInputCentered(Vec(112.5f, 241.4f), module, PrismaModule<4>::INPUT_LEVEL + 3)); - - addInput(createInputCentered(Vec(52.3f, 285.f), module, PrismaModule<4>::INPUT)); - addParam(createParamCentered(Vec(82.7f, 285.f), module, PrismaModule<4>::PARAM_INPUT)); - addOutput(createOutputCentered(Vec(52.3f, 327.9f), module, PrismaModule<4>::OUTPUT_POLY)); - addOutput(createOutputCentered(Vec(82.7f, 327.9f), module, PrismaModule<4>::OUTPUT)); - } -}; - -} // namespace Prisma -} // namespace StoermelderPackOne - -Model* modelPrisma = createModel, StoermelderPackOne::Prisma::PrismaWidget>("Prisma"); \ No newline at end of file diff --git a/src/Strip.cpp b/src/Strip.cpp index c8acb34..3f04691 100644 --- a/src/Strip.cpp +++ b/src/Strip.cpp @@ -158,7 +158,7 @@ struct StripModule : StripModuleBase { if (mode == MODE::LEFTRIGHT || mode == MODE::RIGHT) { Module* m = this; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; if (!m->rightExpander.module) break; // This is what "Module.hpp" says about bypass: // "Module subclasses should not read/write this variable." @@ -179,7 +179,7 @@ struct StripModule : StripModuleBase { if (mode == MODE::LEFTRIGHT || mode == MODE::LEFT) { Module* m = this; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; if (!m->leftExpander.module) break; // This is what "Module.hpp" says about bypass: // "Module subclasses should not read/write this variable." @@ -216,7 +216,7 @@ struct StripModule : StripModuleBase { if (mode == MODE::LEFTRIGHT || mode == MODE::RIGHT) { Module* m = this; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; // Be careful: this function is called from the dsp-thread, but widgets belong // to the app-world! @@ -262,7 +262,7 @@ struct StripModule : StripModuleBase { if (mode == MODE::LEFTRIGHT || mode == MODE::LEFT) { Module* m = this; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; // Be careful: this function is called from the dsp-thread, but widgets belong // to the app-world! @@ -473,7 +473,7 @@ struct ExcludeButton : TL1105 { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; if (m->rightExpander.moduleId == moduleId) { ModuleWidget* mw = APP->scene->rack->getModule(m->rightExpander.moduleId); for (ParamWidget* param : mw->getParams()) { @@ -494,7 +494,7 @@ struct ExcludeButton : TL1105 { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; if (m->leftExpander.moduleId == moduleId) { ModuleWidget* mw = APP->scene->rack->getModule(m->leftExpander.moduleId); for (ParamWidget* param : mw->getParams()) { @@ -527,7 +527,7 @@ struct ExcludeButton : TL1105 { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; modules[m->rightExpander.moduleId] = m; m = m->rightExpander.module; } @@ -535,7 +535,7 @@ struct ExcludeButton : TL1105 { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; modules[m->leftExpander.moduleId] = m; m = m->leftExpander.module; } diff --git a/src/Strip.hpp b/src/Strip.hpp index be56ebf..531341c 100644 --- a/src/Strip.hpp +++ b/src/Strip.hpp @@ -63,7 +63,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; toBeRemoved.push_back(m->rightExpander.moduleId); m = m->rightExpander.module; } @@ -71,7 +71,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; toBeRemoved.push_back(m->leftExpander.moduleId); m = m->leftExpander.module; } @@ -206,7 +206,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; m = m->rightExpander.module; StripBayBase* sc = dynamic_cast(m); if (sc) toDo.push_back(sc); @@ -216,7 +216,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; m = m->leftExpander.module; StripBayBase* sc = dynamic_cast(m); if (sc) toDo.push_back(sc); @@ -256,7 +256,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; m = m->rightExpander.module; StripBayBase* sc = dynamic_cast(m); if (sc) toDo[sc->getConnId()] = sc; @@ -266,7 +266,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; m = m->leftExpander.module; StripBayBase* sc = dynamic_cast(m); if (sc) toDo[sc->getConnId()] = sc; @@ -709,7 +709,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::RIGHT) { Module* m = module; while (true) { - if (!m || m->rightExpander.moduleId < 0 || m->rightExpander.module->model == modelStripBlock) break; + if (!m || m->rightExpander.moduleId < 0) break; ModuleWidget* mw = APP->scene->rack->getModule(m->rightExpander.moduleId); json_t* moduleJ = mw->toJson(); assert(moduleJ); @@ -725,7 +725,7 @@ struct StripWidgetBase : ThemedModuleWidget { if (module->mode == MODE::LEFTRIGHT || module->mode == MODE::LEFT) { Module* m = module; while (true) { - if (!m || m->leftExpander.moduleId < 0 || m->leftExpander.module->model == modelStripBlock) break; + if (!m || m->leftExpander.moduleId < 0) break; ModuleWidget* mw = APP->scene->rack->getModule(m->leftExpander.moduleId); json_t* moduleJ = mw->toJson(); assert(moduleJ); diff --git a/src/StripBlock.cpp b/src/StripBlock.cpp deleted file mode 100644 index 244cd17..0000000 --- a/src/StripBlock.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#include "plugin.hpp" - -namespace StoermelderPackOne { -namespace StripBlock { - -struct StripBlockModule : Module { - /** [Stored to JSON] */ - int panelTheme = 0; - - StripBlockModule() { - panelTheme = pluginSettings.panelThemeDefault; - config(0, 0, 0, 0); - onReset(); - } - - json_t* dataToJson() override { - json_t *rootJ = json_object(); - json_object_set_new(rootJ, "panelTheme", json_integer(panelTheme)); - return rootJ; - } - - void dataFromJson(json_t* rootJ) override { - panelTheme = json_integer_value(json_object_get(rootJ, "panelTheme")); - } -}; // struct StripBlockModule - - -struct StripBlockWidget : ThemedModuleWidget { - StripBlockWidget(StripBlockModule* module) - : ThemedModuleWidget(module, "StripBlock") { - setModule(module); - - addChild(createWidget(Vec(box.size.x - RACK_GRID_WIDTH, 0))); - addChild(createWidget(Vec(box.size.x - RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH))); - } -}; // struct StripBlock - - -} // namespace StripBlock -} // namespace StoermelderPackOne - -Model* modelStripBlock = createModel("StripBlock"); \ No newline at end of file diff --git a/src/plugin.cpp b/src/plugin.cpp index c66629e..ccc1054 100644 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -16,7 +16,6 @@ void init(rack::Plugin* p) { p->addModel(modelInfixMicro); p->addModel(modelStrip); p->addModel(modelStripBay4); - p->addModel(modelStripBlock); p->addModel(modelStripPp); p->addModel(modelEightFace); p->addModel(modelEightFaceX2); @@ -45,13 +44,9 @@ void init(rack::Plugin* p) { p->addModel(modelGoto); p->addModel(modelStroke); p->addModel(modelSpin); - p->addModel(modelFlowerSeq); - p->addModel(modelFlowerSeqEx); - p->addModel(modelFlowerTrig); p->addModel(modelTransit); p->addModel(modelTransitEx); p->addModel(modelX4); - p->addModel(modelPrisma); p->addModel(modelMacro); p->addModel(modelRaw); p->addModel(modelMidiMon); diff --git a/src/plugin.hpp b/src/plugin.hpp index 6ba67cf..4f91664 100644 --- a/src/plugin.hpp +++ b/src/plugin.hpp @@ -21,7 +21,6 @@ extern Model* modelInfix; extern Model* modelInfixMicro; extern Model* modelStrip; extern Model* modelStripBay4; -extern Model* modelStripBlock; extern Model* modelStripPp; extern Model* modelEightFace; extern Model* modelEightFaceX2; @@ -50,13 +49,9 @@ extern Model* modelGlue; extern Model* modelGoto; extern Model* modelStroke; extern Model* modelSpin; -extern Model* modelFlowerSeq; -extern Model* modelFlowerSeqEx; -extern Model* modelFlowerTrig; extern Model* modelTransit; extern Model* modelTransitEx; extern Model* modelX4; -extern Model* modelPrisma; extern Model* modelMacro; extern Model* modelRaw; extern Model* modelMidiMon;

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 Nry!#&T`6f2^grqWstW)B diff --git a/res-src/Prisma.afdesign b/res-src/Prisma.afdesign deleted file mode 100644 index d9f53ca37efc63b6af6aa910e199768b93d3a727..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45948 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 diff --git a/res-src/StripBlock.afdesign b/res-src/StripBlock.afdesign deleted file mode 100644 index ea5733d3ba6dd32f997c29ac49bb41d21c027139..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8162 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 diff --git a/res-src/dark/FlowerSeq.afdesign b/res-src/dark/FlowerSeq.afdesign deleted file mode 100644 index 5cf4e3b425d8d4b33cb4e1c424d32db291c7fb86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92031 zcmXte1ymiq6EE&^fr~pAcZ$2q#qC0|7I$|jE$;5_?yjY{7Ax))DNwXn3oWvb@BiML zvq?55Cp*dPWHR|p-~bhAOgJ<+XAgHx2-Mk{*$nP~l=1({HPioF|Nl97y!qXK@8H*j z@R~H;T|B8?ONfG+IGm4nmA~nC=pY}Qw@gvH_X~*P}DKRXDuwOZh}f5X*CvbnK!Ng`jrA#DP5Uf zW~wdDV1X895H1G{71fA#91Ky@9}<(g2%X{BHB3!)kAWViF6RJ%F?zwWTgozy&u$Ro zdToPB+SbSSJQ8pZ_}l}s>9v{Rj2UrHy-98r?*g2K2$O~pLp3p0;)ECP2yUMNqwVp- zq(>T_GHa!1a8Jl60tSwqK#Y=(Pn_ifqL`8wah19IJ&?_=l@fNFZ{V3~DQrF69kV~% zJ$4wK@Nk~rXeq!}1ULB{NYBJ7RfH11fjm+v9mjzez(6M*1wTY6V=pE1Bl2T8;);F_ zqIgStRA)n55UI8Rdb-- zt&CHI>TC>&Z&l3W5f%0IO*NgLP=m=Hd7c517vLkp6oxD&&fy-X-Uz3pL zAklZ+FcBP~Yo3ZAqcRA~x2&Ob;+EyytcE0xYKUrKkLxV}JfW5u{sX20r3xUF2%+fF zzHfuod&?qS!9xYQLiaE{~gj&%j~-pL;;#hq5$0 z$|PW-{h6%-05TDV_W?lm5`cXX0l(I(a8Pvr0o<(im{oUxl9slqL^*(4n%5Sj{N7-I z902%aX!TD!AHNnJd_1`U4klg#`Rv=|lCFRn`6SR^0C&N2Gkx`_A!_T z0HFKK&7^$)>+A5>FF990gBW`g0Q`PATcP3xfU^SccOnIfh(hQuzzA5=;mmd44t|_Y zGoh;YZ~zGW{Q^Lc_q^cK3!ZyUdBOpo=juKH_!Jo0+1bhbE-Q5bfXH7DmAOCFChY>l zEJZ6T*L#5A?~;cXKt!1TwfEm=U~?%JKf)UjIPvTT`sI6yEUW$SZx`YlOR%yxfx@5W z;@iw}_CD=*z^@VVGZv`)^|gB#uv*O)2LP4#z-f@F1SM#?lJTkkRbrHvFOnElwTx!A zOr8VpS4p?<)a*=^>@c;NRkOIwhN7S!;s{mGYtDxOjUFy{DfiD?31`j;h`|Tj?qQwC zuab4~d8g(11Sqz@AGikONFvOl%IKvY02O_$ATgYmBk%X7f}M{DM(Vw3B2b2*2)Uv2gUis2LcpVaDMOp0_32ZbY%IH7pK$fDxhD>{Joj|i@@)$O93|;*QZ4DWhU>hXtlM;7UiC6 z)BFW*S!uP{KE;@qm-$`-VPUWxT_X4XB|Lg$$eL&y`+-Y>f2kO(H zer5ppu?+7e#lkH00!WrHuFo`28_7fS##;}j+sAA_w`5tW-55{76dwv9Sgk_ANLK8o zgl$1eZV7iF)lZ1NK|Xm9hnm{zhQk%1#E%xO^!zKwdd(Xep9<Ut( z4wojH`dudZ-~mEm=x5?F&z}~u*ij}upNBZA)Tfn3t!WS{!(}ZNg36NM>)qWBgW|zZ zYoA}08-Mx|glgGhVDIb$YD`A0*cu>qHyYPMDfGcoezIH5!DnqZc`d03PWp{LfXn9chkrn2vefB*pqhzBf% zNto-0P&#Q)qzFNkous%B^LZ9tWDv6SQHYYE<+qho#%~K{@55y<==;dZDeJ@7-fs*& z0%$+G0yORcn=Kc9mKeiETNkbA3`mUM3Yi0uxSOJfz^2YeW@>JB0DH9%S<~7cyn_7_ zKAL_2e6AXJk9!gxrq!hyzuw$!jI_Xo@t*YamHYS{{35zz~(Dk06_kat?*O-1zE&z0N8&4E}S-B zb^KTTKUseSV=PyIn&m=eGE@}_ zI2y)%pAga3`x8{+?P;C@DKiuA1M>%(^0>wO7ocYUG{=8~e*@q5PrCwovCJ^~C@AU#C?$?-pdEY13_d3cwP_^m1zVhSuMqkPUIqI9rn=Ve9 zU#)1Dw*mBC^8P@)qRK>Xb>XbZUsF{`4gdhnKFXB^An?~m!pZCN)yo)`C!nKt`~`5@ zhz@@S3cG;BSNW<}t38DS{Xn3}69CI?8Tyu1@(${)`zVz0z-|C8{Ic{m*XY2hKrHv{ z1wf7QL^tr-0{V62J037QCtPA%UHxqOv#7qJVohn78uUH}diA|u0VEfmfm-+9E#F=M zSS4pQg`&tBb~QxA6o+y}ee73;TD;|3{a$7CPP<>=egNoSN(?-F0Eo3E zf2+JskEx0M)!GoOttTW6 zl5CP%h<~pYz76!>N5|Yxy>1C&lmO7ZgHv??NZun(E#SSpzbwUg#FQU>JOuRr z`0zIuKar4;5lZBdq*Wr?r$q}7t>+!hB^oF?4_C4rmPSsi68sC#{$q_BqMl}YAWxnC zP@H|vvir(i)px*R3T|5wh8kDlA2>I}XZBVOg-FrzUsxh1_p~OXN!4;fqfXE|4=);{VW>@Jp2K9+qPH>J%tqh;(O)Q*Hl6!3TczMjI#3^bT@J$$wJ zJp;9YM0$Ac8C(Z1%bx;jjtna_bpx#U(l>rT`eQXl6rjH87D!|pLF3KcB zH{Q}T*oz~bn$adv{COD8M%5vtf6w;Pie=8VL_}2W#!^rPKL~e5U+mpjr=AO2kU?=^Ymh?CJA@& zP7;)=k!KMO@zP>)Ko(nDI3$ez12{G}f7^|Ry z!N^AW(=&VX!9v-X%MaB*qbkb0{&Jh(A8F-!_Lmu}rhIax6Bwgom$g=X2*IqKJWAOv z-)R0?!Yt8Q-Q1PHw&EZ-zOYpo6MiB@x=X7vTEi@(eHc~m$;P3oXOx7l-B4=^uaLBk z0la)qn?hx#upQ82K<0eo(TY7l`?Pegpn^_;^Q~;4wWSdkqrJNjL5D{)>}wUY&=cz> zi+Ak_TM{{;yLd_gg1Erh$;1CfioF{UL@pr3(?PjQ_Wm+?Sd=0K{)BOtdUzH>s;>08 z@7;r0n{8#*ZAlbELzxNMm6?=dOx+gkw{*V#G&Xhrfy_5jcaV2c*(oaB-;y3cVW}Au zR3#&^F==dAgoM^6MrqR^ctb4dGGm>A3gfqfW~;*>!ZOuzV`4F_mW7^cqHRug-!kI? ztQ9O$+A{R@Fd4Fnw5eKLS`at$S$5G#8mqQ;1LGUdk*-@L$I)d_xzg9sP1ac@^xIsT z2m;(FZBBNuFUke_4McVb8H=RcSl=ziwwnM!7=s2=`>R*_NJJ~QjL6{--D4mT1BU07 zWBL0&$iKAfZBRwFDX&cUT_oFM7OkZ;2{ffFJEl2mKh7(eKw)3XvOGlhTq&I*KW_<2 z$3}}#4;}4VNJ@x_fTkDF;`2jCgT&b{A``B3c(&67ne9nv2sde_P&nnT-6RQhqz7n` zIFwoSkhM18A{GL&Vv^}6LlQQA1-0&GF`AZ{!@yo{0|+$tI*kg@0s8Erv>2FyCnS_n zIv~sWi*QIsFs4oQTS7Uvp`I=@$!!djy@4#;pRe6O*EC@<{e{lu9QI^<7SXzKUyBIT z1B4#9xBWvmVR^PmFVwTZ~=RjMn296=x>9hS&0rua78GDJtemdhs{tU72ULX zb|GLTmEG47wre$^RUMX@_bI+{^pm20@^sK5ehZ;o(dOZxM@esDoO@1Vn*=SuNVo}g z%uB)A!=bo3oTQ{#CtsyhM?GN#QAuSA4=kDB#88r`0YlF50_z4pFYA5sICzHeq^1cm1@WPdcBilxC z{F5g5MQE0D?!>=iDllHv?7*4E9@35_Vmh)ABk=}lg%-!ZXe8N;lItRuvq#j@FXXU9P%m<>lLvYC8 zOwb1c;5t^|Uj;%>J(ZDpTAjl1ZX9nEQp0~#8D*}00Wpd(k)fdvAPo*<&`sR zCgDmUO%pN?JbCcwahE-Nf^GDSc5UuO4L;rk z+#|vuNYS(V?~3gJZK-leP#Kj-R=K&DA|=>+Kq-C;tpzo-S&Bh!P&$fEPNt|Dk)HOw zfo9qz_Ar4=g}vu>$a&I|FRf)wEU{%IQWY{0%Aes=)*FE5rOB4XaC(5%i z0rg265&6f!BcS6Pg%}*4Ok2Y~a3qYD{7H;k2yS>n;M?x&=_j5$^p2;CSjk}h(~b9* zUn4zZ>w0sxR=hz9Uvte|hR+xOy%s~rqQEHD%m(mb4|4EbB{x%4XL@$cR|jUVJv}>- zbbT#ET>Qh5YF^Ko`YpUM(>=%1&2k&F;1DLp0T!PU7Pbo#_`Rqkh2`J2bpoxW_@tZDv zz(aLij^KvZN?o+tjws{rDmOoGqRum+0@6e41rB=~z~06~A*&^1c!eoamQ3~j;bk*v z5;AsPhfOM`=QQzf1xOPE_5#zh&bGQXm=q0x!VcCp9uZmjqqI7)vJt2u)ipwve)|)& zZR2W`0(MJ!)C#S($&k$^E^NLMq=PM}0c&4Jj*9B#Bib9qr@7liM3Qam*j#{Q z%{?nW85=5lR2b1puKhF)&1unw+#zD=z>Ettk|Z4Aq*fwl>hTh;qH$G~mCziRu|IQZ zJ8tR~Rw(#HFME5$dFxrEQ}8QH!YGB;L&JNQ{+iNqh4&VfH+Q`gXX@c1p;2>%FJU}4 z>=3WDw^2-(=_u{;&_4KNAHS(JeYnHMIW_Jl&aH6^~Yx$Y>?u% zw((gy2T*0@Pts!O|M{a3iJf_fLub6cNnXg%%Ip30R0F5AmEZ-1njD9`?&YeY#+Ifv zBLwA*p8&Sy5;&^{V<&0&oIL?YN6*a|>7=PWJDBEtecP> zw4_qxvzV!2rkaBt5G^y#`rW!&{srE9oh#`lnC4R!i>) z)cJz8K+^aXq+t745?Ub*MLSDGEQ; z>!)1pB6DlrFLF>*q#KCd3`ABFZUV3F>~ei^Rd5uZpqP>me@5;)#vXnQoTQ9RGg9DfRlyH#9M#3-W-@VVZ1YUQ;sqUY zd}sFkZazs|l`}@s3ieK#YJxEH2+f(3Ni5N*29NCE$!(5=lG55FUSTASmU$^`6l?aP zziS;O>%toiZ>O2Z4|m8s@HyN#6`Kk58wNNh7jT>;1RR8;&T7wrt3!}lobB<-^EPo6Hv+JQXd1_RF<~j;l4Ue>EgpOyg z4ZYhAwl_ITPP5GGklHY?CZYIYI?4XmZxF7cV`FJ@C>R*ZX|&Ze>J|Yu6R_Y(L6?%+ z*0-g7iJ2S6RjrY7XJPAAJ&O)UUV$lN_xh6i2rcZUaT2R8Ia&Hj4wV!3$zpIX|jbJ=#+;sE0XcgHcQqw(<*!AjeaFLt0DQVFOWU?ByBE;ue=O*<}tWK0zmh+VNq_IT5b13qw|ywLui)hou_Dfry-0^phahd5Q5 z$SavP%fwR;(zUf^C5Nu#4$A38B6L?>Gqn%N(2B}sNe|N&AJT;(?3|-9;?spuCsomJ z-LXZ}+rX53(_XFy?>0@B-c4jI;V~BQN5CT3Zs{vR7}$mL3@1KWg{SXrP%*a+Wn)5i z(ZWS`ao>6al5zX-&+i_9tBCuV%*Cou0d4AtK*=wxgLA%cq~*Aa`Pkg_P4E#&dzE@Y zd7j25#Xa8{gk%u#g4-mXXoLT297K-I`$tZ$Q)i4F=g!ZqY(V;6%Q8S3TA$V1^ZIDJ zjiVnW5RCjeUUq5g&tHA+?>2dS1SG-E%}q$Pa47g+CP>}1DEvRXk_7=AIYd_1AV>{O z-WV*W%lry9Yk_#=s-~dg&j7hQpXFBsJ*uxOxZb*(`%7q1GEP$+bvx#<=DeBAMEW`h zdA#G|r3S5*>evI-q~xF`LtUzkd21A8*<5q@hK3Nu z5cQLJX-V3kpe;Hs5k)bzd(rU%2jPti5 zTOK5mqWeJuIi{C^?91*>VWO)ga*JPL9cgG{NSMWdot+%-b!Zbh)|NoGbgH>yZC~<> zEK%~rg5jR8OJgVrCl|LIsN9au#@PJqr{~-c-gG)BtX@xHrV)eTw1UGO;lvbNRdn>E z;)zSDA_=L5lAw`cnpM@IZ^Z2g(8TK=27*=pAx@%eS_#?S`H}8z#JvUs!q6cRi3?U< zVysHei3MUG?^BNBTOd6=@1fvA>sq&L`2nu;VEG~_hH?mZGplXO?W z<)Jz~gV9Mus8!Z}8D(_yeO%x4K-pbYFNnUZB!&og;U_w$J5snVA{+bR5P2#+!Y!K3 zND9{JDpFiXe8#}OS$s|w^-}9`G8pQn>$ZLrzkIWlb(XN-mr=2E@gVpFwr>ndZKq>v z$5`%xmQ=uoM`J3E}}vJmttq|GcT0u&lV+7PMcdT6RZmo5@~%5*`S z9Xbjg@{9@*6Vh(ULsGHDSTT#QuS3blPFAK>yhggoYr7UQ7rmJ-uo|q^=08NmVoGK& z7NZzhNlp7TL=d~W5X*{Jrss_mEbXEA{kk|a3=@T^#d8$jJZ9Fi`dRRa-) zM{CCH!GkMESm?Yi_ki`FnKwLP!%_`)VrC+tx;-KsXHo>RjAEN>Bs0m<4`fak*U$%g zD`9R6XbnRfFY`F8h{hF0Ob#81j(Na(m#A=ukZA(qN$UP7t1y@M3qHjN1A(h&y5OVqrN>B=ijrL20bZa98 zUqF~5%At%I0dB%zNO}VqgGBB6$vwza*3#D`1d4|U5G~Ve`7T!I z8}uU3-pWvWY-BULv`}mWH+@h-K}I|(`#LBTx6?Kbh0T*>vy0SqLV6~}gbdf7)1W<; zEvAEY#rWdwQsvlwm$hn3PwmE!z+nv!N5vqDAPYtN(G1=ZdN_qkV5S5C-odkI$^Kg& z`PS0Jw-3pcu{jkyLNa^Vh)hJ+1M7QcNM|5n#*6)<2xjHC2B8XJs(u@CTA{bnNjVH; zy`R>CV{Hs#KIr<*`JTBQ5W)DJ$2s=JPEAhx{`-F$zEv~QW>FZgI%!6rg~3DL?w)%y zzj73{4A`(q@lj)=aC6AT`EQ{gG4(Dq%M!$7NGR z0>PnBz%tFL=RNpE$E`m&PxG&4iTlOQv1k1Bf5DcV!K)Dwy&KoGXNXcoz)Mo^0t91m zJtx|Fwb?qZlqg6{7woeJ?gkS`w*r2g3@!c4><{r*q6w8H)0Q>NSh9#s#17j{fZLaw zj)zi4=a{51x-EJ6B6CqLr_dteI zQ^yc;fOf4ouCXR848q3VgM)&q1;Qin++o!8->ZlVW07F1pei@EeSjMeqGXmZ{HY8c zg%YLH6p_hpk>cA-2Tz|{FK=f!R=epLB*6OYx4f#asdx=ja$a4$ndWX^`+q$AEkkH- zfC~|Yu-MlVZMIH$qMyx-*lt4m5sya|Xf&E|i1Jre$hcbEKUGuYMoC4?522JnC22@h zNt6LNrLQZ2lUkpc3mZL&lE>0=mnI%O-@fc8$G=nF-CUDHmP^LL^F2UJYw_uIAz;$M zXm$9}JA)LC8J#fBdWlVM@c7nhyrTBjTe1dv@@a31~EEB&m=Imvdt~}0!0JBksF|SI26LjBun^|vM+d^ATEzig+ z)_<893RwD(qrp#}ajgR_S<47^ONB&;!;U`{nhluI|& zoDGeiO!nzrP2T?5RVuY-@wvd#Vw`Za(wcvTVYB(`sk_aLA$NrRjGAX5N34pw zOP%Pdub6P`qkm2f6_m$xZAYZgDb`wRl-x-x?{Otde4U{2OD#uFOFxr}y3*H}EX%)d zzu232&%{*4z+m#%Ut`F8+9=(KV7$MyksrzQ@nE7XEj8==pE}6zTbFz<=%N+ztXg;K z^c!KLUSQal9J+A|6D{MGx-laUu#0Xcdyf{A+MDPWhuVhvS;}8;eDbF1uZ0pAj-Iwe zQq751Gu~!68O792Y9(m!mv&LMj~TK<#X3xuYn|JD745}NXrT>uO0o#s^(J|L)m^5F-a9*|CuVK2 z#?0^V>wU;}t5xebH?nH6tgR5rDHXE!94TAVinG?WNL{91aauVhf>9)CLQ^oDkBq?W zU)}M4N8~Ec+ynP3KrHzlP(V)?>HS;$#Z2jX|49 zH*3f7ScQb>(T|$uE+c~5nS`pf%SyTv9bz7m0j+&GdJ23D^w2OhCoUtM&Kw4Par1XI z6b=piME6SO3)6nLTKC2{P$X_0(^c`54GI-^u%N(rUvoArerCs@&N?CIBa->ybSx*G zs+MR^OqF55&+e&&nS3p=qlRXsBYX$lUmZUM#%qzW1+VUmH&d(> zIdZl~gbT?%+LnEPI7ZL#9y@oi&ce~q;skDiC!^m4*F>1+kyCuliqli#JH@%s93$!= zEgQ5~6#V0{EaXFs zQg~T5-jKC8anXR4#ZJ|bc zpd`oa!$3E~8z~N_ux8f!LSh_B;W2VULu!<#{g1(adk30c0;5CjWGiAJA><&jU8zld z^@a+ik{{9Q1c$!c#s^wrytDQ88II0Qe43%bRXH+0{ z!{jd?KP-ho7&A0WwDA4-yt-H2GwY)T*S%FwVHQpq>^o=H@@hFs6oa<&ur#!JT8OvG zWy@{vc<;6KWjK%#v z4S3jWR~X!+SpA*cPZbxn=B?rBvBs~3bg$Q`Q2T3=547t<&Qb_7MrY*cii+A37S=?Y zd*+fkv}O7pUsGr_jP1c^?qg(7?iy3N59~z<9#587uYAd69=DJXrBZ8fJI)!UqaJNo z3{m$yM;nMZt5Cz{Yr>myTiQ1M{Z9DO>d2Q~BmOTm!B=cudmAD=OlBOz_7;I=7&(Zn zjn^2f%)q%-Tq9W*rrL5o<|x5`xpkgZNV!~7)uI#%k0tbm&!%A=le2B$HEN-&RJw