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 },