From b6b9f66ccda77c3c1e18ae18e422417ae580f605 Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 25 Feb 2022 23:56:18 +0000 Subject: [PATCH 01/11] Add AlgoritmArte Signed-off-by: falkTX --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 3 +++ plugins/Algoritmarte | 1 + plugins/Makefile | 14 +++++++++++++- plugins/plugins.cpp | 23 +++++++++++++++++++++++ src/custom/dep.cpp | 8 ++++++++ 7 files changed, 52 insertions(+), 1 deletion(-) create mode 160000 plugins/Algoritmarte diff --git a/.gitmodules b/.gitmodules index 3d47beb..65161a7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -172,3 +172,6 @@ [submodule "plugins/Dintree"] path = plugins/Dintree url = https://github.com/hires/Dintree-Virtual.git +[submodule "plugins/Algoritmarte"] + path = plugins/Algoritmarte + url = https://github.com/algoritmarte/AlgoritmarteVCVPlugin.git diff --git a/README.md b/README.md index b977db0..2774c5d 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ At the moment the following 3rd-party modules are provided: - 21kHz - 8Mode +- AlgoritmArte - Amalgamated Harmonics - Animated Circuits - Aria Salvatrice diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 72d1f8c..204a41a 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -15,6 +15,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Rack | GPL-3.0-or-later | The actual Rack code, internal dependencies are compatible with GPLv3+ | | 21kHz | MIT | | | 8Mode | BSD-3-Clause | | +| AlgoritmArte | GPL-3.0-or-later | | | Amalgamated Harmonics | BSD-3-Clause | | | Animated Circuits | GPL-3.0-or-later | | | Aria Salvatrice | GPL-3.0-or-later | | @@ -83,6 +84,8 @@ Below is a list of artwork licenses from plugins |-----------------------------------------|------------------|------------------| | 21kHz | MIT | No artwork specific license provided | | 8Mode | BSD-3-Clause | No artwork specific license provided | +| Algoritmarte/* | GPL-3.0-or-later | No artwork specific license provided | +| Algoritmarte/LEDSliderGreenHandle.svg | CC-BY-NC-4.0 | | | AmalgamatedHarmonics/* | BSD-3-Clause | No artwork specific license provided | | AmalgamatedHarmonics/DSEG*.ttf | OFL-1.1-RFN | | | AmalgamatedHarmonics/Roboto*.ttf | Apache-2.0 | | diff --git a/plugins/Algoritmarte b/plugins/Algoritmarte new file mode 160000 index 0000000..9d41fe8 --- /dev/null +++ b/plugins/Algoritmarte @@ -0,0 +1 @@ +Subproject commit 9d41fe882ab5029100b55c98ba7f10172d452795 diff --git a/plugins/Makefile b/plugins/Makefile index 000ef62..0b22a39 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -231,7 +231,12 @@ PLUGIN_FILES += $(filter-out 21kHz/src/21kHz.cpp,$(wildcard 21kHz/src/*.cpp)) # -------------------------------------------------------------- # 8Mode -PLUGIN_FILES += $(wildcard 8Mode/src/*.cpp) +PLUGIN_FILES += $(filter-out 8Mode/src/plugin.cpp,$(wildcard 8Mode/src/*.cpp)) + +# -------------------------------------------------------------- +# AlgoritmArte + +PLUGIN_FILES += $(filter-out Algoritmarte/src/plugin.cpp,$(wildcard Algoritmarte/src/*.cpp)) # -------------------------------------------------------------- # AmalgamatedHarmonics @@ -1146,6 +1151,13 @@ $(BUILD_DIR)/8Mode/%.cpp.o: 8Mode/%.cpp $(foreach m,$(8MODE_CUSTOM),$(call custom_module_names,$(m),8Mode)) \ -DpluginInstance=pluginInstance__8Mode +$(BUILD_DIR)/Algoritmarte/%.cpp.o: Algoritmarte/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(ALGORITMARTE_CUSTOM),$(call custom_module_names,$(m),Algoritmarte)) \ + -DpluginInstance=pluginInstance__Algoritmarte + $(BUILD_DIR)/AmalgamatedHarmonics/%.cpp.o: AmalgamatedHarmonics/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 221ede4..9bf05d6 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -30,6 +30,9 @@ // 8Mode #include "8Mode/src/8mode.hpp" +// Algoritmarte +#include "Algoritmarte/src/plugin.hpp" + // AmalgamatedHarmonics #include "AmalgamatedHarmonics/src/AH.hpp" @@ -643,6 +646,7 @@ Plugin* pluginInstance__Cardinal; #ifndef NOPLUGINS Plugin* pluginInstance__21kHz; Plugin* pluginInstance__8Mode; +Plugin* pluginInstance__Algoritmarte; Plugin* pluginInstance__AmalgamatedHarmonics; Plugin* pluginInstance__AnimatedCircuits; Plugin* pluginInstance__Aria; @@ -863,6 +867,24 @@ static void initStatic__8Mode() } } +static void initStatic__Algoritmarte() +{ + Plugin* const p = new Plugin; + pluginInstance__Algoritmarte = p; + + const StaticPluginLoader spl(p, "Algoritmarte"); + if (spl.ok()) + { + p->addModel(modelClockkky); + p->addModel(modelPlanetz); + p->addModel(modelMusiFrog); + p->addModel(modelZefiro); + p->addModel(modelHoldMeTight); + p->addModel(modelCyclicCA); + p->addModel(modelMusiMath); + } +} + static void initStatic__AmalgamatedHarmonics() { Plugin* const p = new Plugin; @@ -2318,6 +2340,7 @@ void initStaticPlugins() #ifndef NOPLUGINS initStatic__21kHz(); initStatic__8Mode(); + initStatic__Algoritmarte(); initStatic__AmalgamatedHarmonics(); initStatic__AnimatedCircuits(); initStatic__Aria(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 4e89cc1..8b612ac 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -56,6 +56,14 @@ static const struct { { "/21kHz/res/Panels/D_Inf.svg", {}, -1 }, { "/21kHz/res/Panels/PalmLoop.svg", {}, -1 }, { "/21kHz/res/Panels/TachyonEntangler.svg", {}, -1 }, + // GPL3.0-or-later + { "/Algoritmarte/res/Clockkky.svg", {}, -1 }, + { "/Algoritmarte/res/CyclicCA.svg", {}, -1 }, + { "/Algoritmarte/res/HoldMeTight.svg", {}, -1 }, + { "/Algoritmarte/res/MusiFrog.svg", {}, -1 }, + { "/Algoritmarte/res/MusiMath.svg", {}, -1 }, + { "/Algoritmarte/res/Planetz.svg", {}, -1 }, + { "/Algoritmarte/res/Zefiro.svg", {}, -1 }, // Custom, runtime dark mode used with permission { "/AudibleInstruments/res/Blinds.svg", {}, -1 }, { "/AudibleInstruments/res/Braids.svg", {}, -1 }, From e42d689cd3be75147aed07f0f13f2cba961f5d1d Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 25 Feb 2022 23:58:09 +0000 Subject: [PATCH 02/11] Fix windows build again Signed-off-by: falkTX --- plugins/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index 0b22a39..25f1358 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1295,7 +1295,8 @@ $(BUILD_DIR)/Dintree/%.cpp.o: Dintree/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(DINTREE_CUSTOM),$(call custom_module_names,$(m),Dintree)) \ - -DpluginInstance=pluginInstance__Dintree + -DpluginInstance=pluginInstance__Dintree \ + -DSKIP_MINGW_FORMAT $(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" From 1c7e2f4386bfb177dbf928bf73ea9234bad269c2 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Sat, 26 Feb 2022 02:10:26 +0100 Subject: [PATCH 03/11] Feature/add aaron static (#179) * preliminary Aaron Static work * build fix (override, needs work); color invert * put color exception somewhere else --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 3 +++ plugins/AaronStatic | 1 + plugins/Makefile | 13 +++++++++++++ plugins/plugins.cpp | 24 ++++++++++++++++++++++++ src/custom/dep.cpp | 6 ++++++ 7 files changed, 51 insertions(+) create mode 160000 plugins/AaronStatic diff --git a/.gitmodules b/.gitmodules index 65161a7..8b62825 100644 --- a/.gitmodules +++ b/.gitmodules @@ -175,3 +175,6 @@ [submodule "plugins/Algoritmarte"] path = plugins/Algoritmarte url = https://github.com/algoritmarte/AlgoritmarteVCVPlugin.git +[submodule "plugins/AaronStatic"] + path = plugins/AaronStatic + url = https://github.com/aaronstatic/AaronStatic_modules.git diff --git a/README.md b/README.md index 2774c5d..279f6a6 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,7 @@ At the moment the following 3rd-party modules are provided: - 21kHz - 8Mode +- Aaron Static - AlgoritmArte - Amalgamated Harmonics - Animated Circuits diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 204a41a..18577b0 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -15,6 +15,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Rack | GPL-3.0-or-later | The actual Rack code, internal dependencies are compatible with GPLv3+ | | 21kHz | MIT | | | 8Mode | BSD-3-Clause | | +| Aaron Static | MIT | | | AlgoritmArte | GPL-3.0-or-later | | | Amalgamated Harmonics | BSD-3-Clause | | | Animated Circuits | GPL-3.0-or-later | | @@ -84,6 +85,8 @@ Below is a list of artwork licenses from plugins |-----------------------------------------|------------------|------------------| | 21kHz | MIT | No artwork specific license provided | | 8Mode | BSD-3-Clause | No artwork specific license provided | +| AaronStatic/* | MIT | No artwork specific license provided | +| AaronStatic/fonts/PixelOperator.ttf | CC0-1.0 | | | Algoritmarte/* | GPL-3.0-or-later | No artwork specific license provided | | Algoritmarte/LEDSliderGreenHandle.svg | CC-BY-NC-4.0 | | | AmalgamatedHarmonics/* | BSD-3-Clause | No artwork specific license provided | diff --git a/plugins/AaronStatic b/plugins/AaronStatic new file mode 160000 index 0000000..4ace0a1 --- /dev/null +++ b/plugins/AaronStatic @@ -0,0 +1 @@ +Subproject commit 4ace0a1789c577ee4eb12dc03da5271f80598d62 diff --git a/plugins/Makefile b/plugins/Makefile index 25f1358..4b6fe07 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -238,6 +238,11 @@ PLUGIN_FILES += $(filter-out 8Mode/src/plugin.cpp,$(wildcard 8Mode/src/*.cpp)) PLUGIN_FILES += $(filter-out Algoritmarte/src/plugin.cpp,$(wildcard Algoritmarte/src/*.cpp)) +# -------------------------------------------------------------- +# Aaron Static + +PLUGIN_FILES += $(wildcard AaronStatic/src/*.cpp) + # -------------------------------------------------------------- # AmalgamatedHarmonics @@ -1151,6 +1156,14 @@ $(BUILD_DIR)/8Mode/%.cpp.o: 8Mode/%.cpp $(foreach m,$(8MODE_CUSTOM),$(call custom_module_names,$(m),8Mode)) \ -DpluginInstance=pluginInstance__8Mode +$(BUILD_DIR)/AaronStatic/%.cpp.o: AaronStatic/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(AARONSTATIC_CUSTOM),$(call custom_module_names,$(m),AaronStatic)) \ + -DpluginInstance=pluginInstance__AaronStatic \ + -Dinit=init__AaronStatic + $(BUILD_DIR)/Algoritmarte/%.cpp.o: Algoritmarte/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 9bf05d6..ca70481 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -30,6 +30,13 @@ // 8Mode #include "8Mode/src/8mode.hpp" +// Aaron Static +#include "AaronStatic/src/plugin.hpp" +// Nasty override of this required function for now: +NVGcolor prepareDisplay(NVGcontext *vg, Rect *box, int fontSize) { + return nvgRGB(0xaf, 0xd2, 0x2c); +} + // Algoritmarte #include "Algoritmarte/src/plugin.hpp" @@ -646,6 +653,7 @@ Plugin* pluginInstance__Cardinal; #ifndef NOPLUGINS Plugin* pluginInstance__21kHz; Plugin* pluginInstance__8Mode; +Plugin* pluginInstance__AaronStatic; Plugin* pluginInstance__Algoritmarte; Plugin* pluginInstance__AmalgamatedHarmonics; Plugin* pluginInstance__AnimatedCircuits; @@ -867,6 +875,21 @@ static void initStatic__8Mode() } } +static void initStatic__AaronStatic() +{ + Plugin* const p = new Plugin; + pluginInstance__AaronStatic = p; + + const StaticPluginLoader spl(p, "AaronStatic"); + if (spl.ok()) + { + p->addModel(modelChordCV); + p->addModel(modelScaleCV); + p->addModel(modelRandomNoteCV); + p->addModel(modelDiatonicCV); + } +} + static void initStatic__Algoritmarte() { Plugin* const p = new Plugin; @@ -2340,6 +2363,7 @@ void initStaticPlugins() #ifndef NOPLUGINS initStatic__21kHz(); initStatic__8Mode(); + initStatic__AaronStatic(); initStatic__Algoritmarte(); initStatic__AmalgamatedHarmonics(); initStatic__AnimatedCircuits(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 8b612ac..5070a68 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -56,6 +56,11 @@ static const struct { { "/21kHz/res/Panels/D_Inf.svg", {}, -1 }, { "/21kHz/res/Panels/PalmLoop.svg", {}, -1 }, { "/21kHz/res/Panels/TachyonEntangler.svg", {}, -1 }, + // MIT + {"/AaronStatic/res/ChordCV.svg", {}, -1 }, + {"/AaronStatic/res/DiatonicCV.svg", {}, -1 }, + {"/AaronStatic/res/RandomNoteCV.svg", {}, -1 }, + {"/AaronStatic/res/ScaleCV.svg", {}, -1 }, // GPL3.0-or-later { "/Algoritmarte/res/Clockkky.svg", {}, -1 }, { "/Algoritmarte/res/CyclicCA.svg", {}, -1 }, @@ -442,6 +447,7 @@ static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const c case 0xff0095fe: case 0xff4d9a4d: case 0xff4d4d9a: + case 0xff0187fc: return false; // pure black (convert to not quite pure white) case 0xff000000: From 1e8f75c57befcac3b06b478b519aee502823bbff Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 01:10:46 +0000 Subject: [PATCH 04/11] Cleanup Signed-off-by: falkTX --- plugins/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index 4b6fe07..bca4c3c 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -388,7 +388,7 @@ AUTINN_CUSTOM = Chord Vibrato # -------------------------------------------------------------- # Axioma -PLUGIN_FILES += $(wildcard Axioma/src/*.cpp) +PLUGIN_FILES += $(filter-out Axioma/src/plugin.cpp,$(wildcard Axioma/src/*.cpp)) # -------------------------------------------------------------- # BaconPlugs From 8149c485a1b03515805722c1cd66d125c4499a68 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 01:14:58 +0000 Subject: [PATCH 05/11] Fixup for newly added AaronStatic modules Signed-off-by: falkTX --- plugins/plugins.cpp | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index ca70481..49a63f5 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -32,10 +32,6 @@ // Aaron Static #include "AaronStatic/src/plugin.hpp" -// Nasty override of this required function for now: -NVGcolor prepareDisplay(NVGcontext *vg, Rect *box, int fontSize) { - return nvgRGB(0xaf, 0xd2, 0x2c); -} // Algoritmarte #include "Algoritmarte/src/plugin.hpp" @@ -653,7 +649,7 @@ Plugin* pluginInstance__Cardinal; #ifndef NOPLUGINS Plugin* pluginInstance__21kHz; Plugin* pluginInstance__8Mode; -Plugin* pluginInstance__AaronStatic; +extern Plugin* pluginInstance__AaronStatic; Plugin* pluginInstance__Algoritmarte; Plugin* pluginInstance__AmalgamatedHarmonics; Plugin* pluginInstance__AnimatedCircuits; From 1be5c7954a4f4289c81c085d99f78586ba845350 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 01:51:56 +0000 Subject: [PATCH 06/11] Fix build Signed-off-by: falkTX --- plugins/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/plugins/Makefile b/plugins/Makefile index bca4c3c..8d51685 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -243,6 +243,9 @@ PLUGIN_FILES += $(filter-out Algoritmarte/src/plugin.cpp,$(wildcard Algoritmarte PLUGIN_FILES += $(wildcard AaronStatic/src/*.cpp) +# modules/types which are present in other plugins +AARONSTATIC_CUSTOM = RefreshCounter + # -------------------------------------------------------------- # AmalgamatedHarmonics From 7a3cdb9b0f33a31f3a7ada07fca0286fe28428fb Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 03:20:58 +0000 Subject: [PATCH 07/11] Add MSM Signed-off-by: falkTX --- .gitmodules | 3 ++ README.md | 1 + docs/LICENSES.md | 5 +++ plugins/MSM | 1 + plugins/Makefile | 16 ++++++++ plugins/plugins.cpp | 92 +++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 118 insertions(+) create mode 160000 plugins/MSM diff --git a/.gitmodules b/.gitmodules index 8b62825..7c70f73 100644 --- a/.gitmodules +++ b/.gitmodules @@ -178,3 +178,6 @@ [submodule "plugins/AaronStatic"] path = plugins/AaronStatic url = https://github.com/aaronstatic/AaronStatic_modules.git +[submodule "plugins/MSM"] + path = plugins/MSM + url = https://github.com/netboy3/MSM-vcvrack-plugin.git diff --git a/README.md b/README.md index 279f6a6..4cb1f0c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ At the moment the following 3rd-party modules are provided: - Mockba Modular - Mog - mscHack +- MSM - Orbits - Path Set - Prism diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 18577b0..11798c6 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -55,6 +55,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Mockba Modular | MIT | | | Mog | CC0-1.0 | | | mscHack | BSD-3-Clause | | +| MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | | Orbits | GPL-3.0-or-later | | | Path Set | GPL-3.0-or-later | | | Prism | BSD-3-Clause | | @@ -163,6 +164,10 @@ Below is a list of artwork licenses from plugins | Mog/components/* | CC-BY-NC-4.0 | | | Mog/Exo2-BoldItalic.ttf | OFL-1.1-RFN | | | mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) | +| MSM/* | MIT | No artwork specific license provided | +| MSM/Fonts/DejaVuSansMono.ttf | Bitstream-Vera | | +| MSM/Fonts/Segment7Standard.ttf | OFL-1.1-RFN | | +| MSM/Fonts/Sudo.ttf | OFL-1.1-no-RFN | | | Orbits/* | CC-BY-NC-ND-4.0 | | | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/MSM b/plugins/MSM new file mode 160000 index 0000000..80b4a5a --- /dev/null +++ b/plugins/MSM @@ -0,0 +1 @@ +Subproject commit 80b4a5aa06d9c4a58f62d90fe567b28b01f6312d diff --git a/plugins/Makefile b/plugins/Makefile index 8d51685..e9f3bc8 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -681,6 +681,14 @@ PLUGIN_FILES += $(wildcard mscHack/src/*.cpp) # modules/types which are present in other plugins MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_PARAM_STRUCT PHRASE_CHANGE_STRUCT +# -------------------------------------------------------------- +# MSM + +PLUGIN_FILES += $(filter-out MSM/src/MSM.cpp,$(wildcard MSM/src/*.cpp)) + +# modules/types which are present in other plugins +MSM_CUSTOM = ADSR BlankPanel Delay LFO Mult Noise VCA VCO sawTable triTable + # -------------------------------------------------------------- # Orbits @@ -1565,6 +1573,14 @@ $(BUILD_DIR)/mscHack/%.cpp.o: mscHack/%.cpp -Wno-non-c-typedef-for-linkage \ -Wno-unused-but-set-variable +$(BUILD_DIR)/MSM/%.cpp.o: MSM/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(MSM_CUSTOM),$(call custom_module_names,$(m),MSM)) \ + -DpluginInstance=pluginInstance__MSM \ + -DDARKTHEME + $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 49a63f5..2f155e9 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -568,6 +568,48 @@ extern Model* modelAlienz; extern Model* modelOSC_WaveMorph_3; extern Model* modelMaude_221; +// MSM +/* NOTE too much noise in original include, do this a different way +// #include "MSM/src/MSM.hpp" +*/ +#define modelADSR modelMSMADSR +#define modelBlankPanel modelMSMBlankPanel +#define modelDelay modelMSMDelay +#define modelLFO modelMSMLFO +#define modelMult modelMSMMult +#define modelNoise modelMSMNoise +#define modelVCA modelMSMVCA +#define modelVCO modelMSMVCO +extern Model* modelVCO; +extern Model* modelBVCO; +extern Model* modelExperimentalVCO; +extern Model* modelNoise; +extern Model* modelLFO; +extern Model* modelVCA; +extern Model* modelADSR; +extern Model* modelDelay; +extern Model* modelWaveShaper; +extern Model* modelWavefolder; +extern Model* modelBitcrusher; +extern Model* modelPhaserModule; +extern Model* modelMorpher; +extern Model* modelRingMod; +extern Model* modelRandomSource; +extern Model* modelMult; +extern Model* modelCrazyMult; +extern Model* modelFade; +extern Model* modelSimpleSlider; +extern Model* modelxseq; +extern Model* modelBlankPanel; +#undef modelADSR +#undef modelBlankPanel +#undef modelDelay +#undef modelLFO +#undef modelMult +#undef modelNoise +#undef modelVCA +#undef modelVCO + // Orbits #include "Orbits/src/plugin.hpp" @@ -692,6 +734,7 @@ Plugin* pluginInstance__ML; Plugin* pluginInstance__MockbaModular; Plugin* pluginInstance__Mog; extern Plugin* pluginInstance__mscHack; +Plugin* pluginInstance__MSM; Plugin* pluginInstance__Orbits; Plugin* pluginInstance__PathSet; Plugin* pluginInstance__Prism; @@ -2124,6 +2167,54 @@ static void initStatic__mscHack() } } +static void initStatic__MSM() +{ + Plugin* const p = new Plugin; + pluginInstance__MSM = p; + + const StaticPluginLoader spl(p, "MSM"); + if (spl.ok()) + { +#define modelADSR modelMSMADSR +#define modelBlankPanel modelMSMBlankPanel +#define modelDelay modelMSMDelay +#define modelLFO modelMSMLFO +#define modelMult modelMSMMult +#define modelNoise modelMSMNoise +#define modelVCA modelMSMVCA +#define modelVCO modelMSMVCO + p->addModel(modelVCO); + p->addModel(modelBVCO); + p->addModel(modelExperimentalVCO); + p->addModel(modelNoise); + p->addModel(modelLFO); + p->addModel(modelVCA); + p->addModel(modelADSR); + p->addModel(modelDelay); + p->addModel(modelWaveShaper); + p->addModel(modelWavefolder); + p->addModel(modelBitcrusher); + p->addModel(modelPhaserModule); + p->addModel(modelMorpher); + p->addModel(modelRingMod); + p->addModel(modelRandomSource); + p->addModel(modelMult); + p->addModel(modelCrazyMult); + p->addModel(modelFade); + p->addModel(modelSimpleSlider); + p->addModel(modelxseq); + p->addModel(modelBlankPanel); +#undef modelADSR +#undef modelBlankPanel +#undef modelDelay +#undef modelLFO +#undef modelMult +#undef modelNoise +#undef modelVCA +#undef modelVCO + } +} + static void initStatic__Orbits() { Plugin* const p = new Plugin; @@ -2402,6 +2493,7 @@ void initStaticPlugins() initStatic__MockbaModular(); initStatic__Mog(); initStatic__mscHack(); + initStatic__MSM(); initStatic__Orbits(); initStatic__PathSet(); initStatic__Prism(); From dc0c450c917cc7bd8235b5e915077133fbd65064 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 04:17:11 +0000 Subject: [PATCH 08/11] Fix build again --- plugins/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index e9f3bc8..fcbec11 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -687,7 +687,7 @@ MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_ PLUGIN_FILES += $(filter-out MSM/src/MSM.cpp,$(wildcard MSM/src/*.cpp)) # modules/types which are present in other plugins -MSM_CUSTOM = ADSR BlankPanel Delay LFO Mult Noise VCA VCO sawTable triTable +MSM_CUSTOM = ADSR BlankPanel Delay LFO LowFrequencyOscillator Mult Noise OP VCA VCO sawTable triTable # -------------------------------------------------------------- # Orbits From 3b9ecb114f7234e8874f6d839b05c0a8067878ae Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 12:08:53 +0000 Subject: [PATCH 09/11] Fix Orbits submodule URL --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 7c70f73..ad412c3 100644 --- a/.gitmodules +++ b/.gitmodules @@ -153,7 +153,7 @@ url = https://github.com/martin-lueders/ML_modules.git [submodule "plugins/Orbits"] path = plugins/Orbits - url = git@github.com:RareBreeds/Orbits.git + url = https://github.com/RareBreeds/Orbits.git [submodule "plugins/stocaudio"] path = plugins/stocaudio url = https://github.com/aptrn/stocaudio-modules.git From 991867b9cb31b04868b150b6c2efd345c42d93e6 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Sat, 26 Feb 2022 17:25:29 +0100 Subject: [PATCH 10/11] adding Nonlinear Circuits (#180) --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 3 +++ plugins/Makefile | 12 ++++++++++++ plugins/nonlinearcircuits | 1 + plugins/plugins.cpp | 29 +++++++++++++++++++++++++++++ src/custom/dep.cpp | 37 +++++++++++++++++++++++++++++++++++++ 7 files changed, 86 insertions(+) create mode 160000 plugins/nonlinearcircuits diff --git a/.gitmodules b/.gitmodules index ad412c3..0bb90f0 100644 --- a/.gitmodules +++ b/.gitmodules @@ -181,3 +181,6 @@ [submodule "plugins/MSM"] path = plugins/MSM url = https://github.com/netboy3/MSM-vcvrack-plugin.git +[submodule "plugins/nonlinearcircuits"] + path = plugins/nonlinearcircuits + url = https://github.com/mhetrick/nonlinearcircuits.git diff --git a/README.md b/README.md index 4cb1f0c..31b8c3d 100644 --- a/README.md +++ b/README.md @@ -145,6 +145,7 @@ At the moment the following 3rd-party modules are provided: - Mog - mscHack - MSM +- Nonlinear Circuits - Orbits - Path Set - Prism diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 11798c6..224480b 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -56,6 +56,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Mog | CC0-1.0 | | | mscHack | BSD-3-Clause | | | MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | +| Nonlinear Circuits | CC0-1.0 | | | Orbits | GPL-3.0-or-later | | | Path Set | GPL-3.0-or-later | | | Prism | BSD-3-Clause | | @@ -168,6 +169,8 @@ Below is a list of artwork licenses from plugins | MSM/Fonts/DejaVuSansMono.ttf | Bitstream-Vera | | | MSM/Fonts/Segment7Standard.ttf | OFL-1.1-RFN | | | MSM/Fonts/Sudo.ttf | OFL-1.1-no-RFN | | +| nonlinearcircuits/* | CC0-1.0 | No artwork specific license provided | +| nonlinearcircuits/Audiowide-Regular.ttf | OFL-1.1-RFN | | | Orbits/* | CC-BY-NC-ND-4.0 | | | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/Makefile b/plugins/Makefile index fcbec11..b41dd17 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -689,6 +689,11 @@ PLUGIN_FILES += $(filter-out MSM/src/MSM.cpp,$(wildcard MSM/src/*.cpp)) # modules/types which are present in other plugins MSM_CUSTOM = ADSR BlankPanel Delay LFO LowFrequencyOscillator Mult Noise OP VCA VCO sawTable triTable +# -------------------------------------------------------------- +# Nonlinear Circuits + +PLUGIN_FILES += $(filter-out nonlinearcircuits/src/NLC.cpp,$(wildcard nonlinearcircuits/src/*.cpp)) + # -------------------------------------------------------------- # Orbits @@ -1581,6 +1586,13 @@ $(BUILD_DIR)/MSM/%.cpp.o: MSM/%.cpp -DpluginInstance=pluginInstance__MSM \ -DDARKTHEME +$(BUILD_DIR)/nonlinearcircuits/%.cpp.o: nonlinearcircuits/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(NONLINEARCIRCUITS_CUSTOM),$(call custom_module_names,$(m),nonlinearcircuits)) \ + -DpluginInstance=pluginInstance__nonlinearcircuits + $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/nonlinearcircuits b/plugins/nonlinearcircuits new file mode 160000 index 0000000..d7c3763 --- /dev/null +++ b/plugins/nonlinearcircuits @@ -0,0 +1 @@ +Subproject commit d7c3763ba3f801a3cfe98c49dfb7419a1477fd46 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 2f155e9..20488ab 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -610,6 +610,9 @@ extern Model* modelBlankPanel; #undef modelVCA #undef modelVCO +// Nonlinear Circuits +#include "nonlinearcircuits/src/NLC.hpp" + // Orbits #include "Orbits/src/plugin.hpp" @@ -735,6 +738,7 @@ Plugin* pluginInstance__MockbaModular; Plugin* pluginInstance__Mog; extern Plugin* pluginInstance__mscHack; Plugin* pluginInstance__MSM; +Plugin* pluginInstance__nonlinearcircuits; Plugin* pluginInstance__Orbits; Plugin* pluginInstance__PathSet; Plugin* pluginInstance__Prism; @@ -2215,6 +2219,30 @@ static void initStatic__MSM() } } +static void initStatic__nonlinearcircuits() +{ + Plugin* const p = new Plugin; + pluginInstance__nonlinearcircuits = p; + + const StaticPluginLoader spl(p, "nonlinearcircuits"); + if (spl.ok()) + { + p->addModel(model4Seq); + p->addModel(modelCipher); + p->addModel(modelBOOLs); + p->addModel(modelDivideConquer); + p->addModel(modelDivineCMOS); + p->addModel(modelDoubleNeuron); + p->addModel(modelGenie); + p->addModel(modelLetsSplosh); + p->addModel(modelNeuron); + p->addModel(modelNumberwang); + p->addModel(modelSegue); + p->addModel(modelSquidAxon); + p->addModel(modelStatues); + } +} + static void initStatic__Orbits() { Plugin* const p = new Plugin; @@ -2494,6 +2522,7 @@ void initStaticPlugins() initStatic__Mog(); initStatic__mscHack(); initStatic__MSM(); + initStatic__nonlinearcircuits(); initStatic__Orbits(); initStatic__PathSet(); initStatic__Prism(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 5070a68..8154f7e 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -265,6 +265,20 @@ static const struct { { "/kocmoc/res/SKF.svg", {}, -1 }, { "/kocmoc/res/SVF.svg", {}, -1 }, { "/kocmoc/res/TRG.svg", {}, -1 }, + // CC0-1.0 + { "/nonlinearcircuits/res/NLC - 4seq.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - 8 BIT CIPHER.svg", {}, -1 }, + { "/nonlinearcircuits/res/BOOLs2.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - DIVIDE & CONQUER.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - DIVINE CMOS.svg", {}, -1 }, + { "/nonlinearcircuits/res/DoubleNeuronRef.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - GENiE.svg", {}, -1 }, + { "/nonlinearcircuits/res/LetsSplosh.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - NEURON.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - NUMBERWANG.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - SEGUE.svg", {}, -1 }, + { "/nonlinearcircuits/res/squid-axon-papernoise-panel2.svg", {}, -1 }, + { "/nonlinearcircuits/res/NLC - STATUES.svg", {}, -1 }, // GPL-3.0-or-later { "/PathSet/res/AstroVibe.svg", {}, -1 }, { "/PathSet/res/IceTray.svg", {}, -1 }, @@ -365,6 +379,29 @@ static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const c } } + // Special case for Nonlinear Circuits + if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/nonlinearcircuits/", 19) == 0) + { + switch (paint.color) + { + case 0xff9a7900: + case 0xff96782c: + case 0xff6a07ae: + case 0xffcf8044: + case 0xff2ac6ba: + case 0xff5ba85c: + case 0xffa97b00: + case 0xff9f7a00: + case 0xffff7300: + case 0xffa47b00: + case 0xffb09423: + return false; + case 0xffffffff: + paint.color = 0x00000000; + return true; + } + } + // Special case for PathSet colors if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) { From 6cb739b52ccc978f625fce0e4607fd631d5875f2 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Feb 2022 16:29:21 +0000 Subject: [PATCH 11/11] Workaround for nonlinearcircuits paths with spaces Signed-off-by: falkTX --- plugins/Makefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index b41dd17..f7085aa 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -962,7 +962,20 @@ else PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) endif -UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg +UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg +UNWANTED_FILES += nonlinearcircuits/res/NLC - 1050 MIXER SEQUENCER.svg +UNWANTED_FILES += 1050 MIXER SEQUENCER.svg +UNWANTED_FILES += 32to1.svg +UNWANTED_FILES += 4seq.svg +UNWANTED_FILES += 8 BIT CIPHER.svg +UNWANTED_FILES += DIVIDE & CONQUER.svg +UNWANTED_FILES += DIVINE CMOS.svg +UNWANTED_FILES += GENiE.svg +UNWANTED_FILES += NEURON.svg +UNWANTED_FILES += NUMBERWANG.svg +UNWANTED_FILES += ROUTER.svg +UNWANTED_FILES += SEGUE.svg +UNWANTED_FILES += STATUES.svg RESOURCE_FILES = \ $(filter-out $(UNWANTED_FILES), \ @@ -985,6 +998,7 @@ RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldPresets RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldShapes +RESOURCE_FILES += nonlinearcircuits/res # MOD builds only have LV2 FX variant for now ifeq ($(MOD_BUILD),true)