diff --git a/.gitmodules b/.gitmodules index 33b61a8..577b352 100644 --- a/.gitmodules +++ b/.gitmodules @@ -245,3 +245,6 @@ [submodule "plugins/Biset"] path = plugins/Biset url = https://github.com/gibbonjoyeux/VCV-Biset.git +[submodule "plugins/PdArray"] + path = plugins/PdArray + url = https://github.com/mgunyho/PdArray.git diff --git a/README.md b/README.md index 1cef9ea..da1eb25 100644 --- a/README.md +++ b/README.md @@ -178,6 +178,7 @@ At the moment the following 3rd-party modules are provided: - [Orbits](https://github.com/RareBreeds/Orbits) - [Parable Instruments](https://github.com/adbrant/ArableInstruments) - [Path Set](https://github.com/patheros/PathSetModules) +- [PdArray](https://github.com/mgunyho/PdArray) - [PinkTrombone](https://github.com/VegaDeftwing/PinkTromboneVCV) - [Prism](https://github.com/SteveRussell33/Prism) - [rackwindows](https://github.com/n0jo/rackwindows) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 33e875f..01641de 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -73,6 +73,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Orbits | GPL-3.0-or-later | | | Parable Instruments | GPL-3.0-or-later | | | Path Set | GPL-3.0-or-later | | +| PdArray | EUPL-1.2 | | | PinkTrombone | GPL-3.0-or-later | | | Prism | BSD-3-Clause | | | Rackwindows | MIT | | @@ -232,6 +233,9 @@ Below is a list of artwork licenses from plugins | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | ParableInstruments/* | Custom | Copyright © Alex Brandt, [used and distributed with permission](https://github.com/adbrant/ArableInstruments/issues/21) | | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | +| PdArray/res/*svg | EUPL-1.2 | No artwork specific license provided | +| PdArray/res/fonts/Overpass-*.ttf | OFL-1.1-RFN | | +| PdArray/res/fonts/Roboto-*.ttf | Apache-2.0 | | | PinkTrombone/* | GPL-3.0-or-later | No artwork specific license provided | | Prism/* | CC-BY-SA-4.0 | | | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | diff --git a/plugins/Makefile b/plugins/Makefile index 6bfbfca..90a781c 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -971,6 +971,14 @@ PLUGIN_FILES += $(filter-out PathSet/src/plugin.cpp,$(wildcard PathSet/src/*.cpp # modules/types which are present in other plugins PATHSET_CUSTOM = PitchShifter +# -------------------------------------------------------------- +# PdArray + +PLUGIN_FILES += $(filter-out PdArray/src/plugin.cpp,$(wildcard PdArray/src/*.cpp)) + +# modules/types which are present in other plugins +PDARRAY_CUSTOM = $(DRWAV) CustomTrimpot MsDisplayWidget TextBox + # -------------------------------------------------------------- # PinkTrombone @@ -1445,11 +1453,11 @@ RESOURCE_FILES += MindMeldModular/res/ShapeMaster/MindMeldShapes RESOURCE_FILES += Mog/res RESOURCE_FILES += nonlinearcircuits/res RESOURCE_FILES += ParableInstruments/res/Neil.png -RESOURCE_FILES += $(wildcard StarlingVia/res/original.*) RESOURCE_FILES += surgext/build/surge-data/configuration.xml RESOURCE_FILES += surgext/build/surge-data/fx_presets RESOURCE_FILES += surgext/build/surge-data/wavetables RESOURCE_FILES += surgext/build/surge-data/windows.wt +RESOURCE_FILES += $(wildcard StarlingVia/res/original.*) RESOURCE_FILES += $(wildcard surgext/res/xt/fonts/quicksand/*.ttf) RESOURCE_FILES += $(wildcard unless_modules/art/*.art) RESOURCE_FILES += $(wildcard unless_modules/art/svg/*/*.svg) @@ -2628,6 +2636,13 @@ $(BUILD_DIR)/PathSet/%.cpp.o: PathSet/%.cpp $(foreach m,$(PATHSET_CUSTOM),$(call custom_module_names,$(m),PathSet)) \ -DpluginInstance=pluginInstance__PathSet +$(BUILD_DIR)/PdArray/%.cpp.o: PdArray/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(PDARRAY_CUSTOM),$(call custom_module_names,$(m),PdArray)) \ + -DpluginInstance=pluginInstance__PdArray + $(BUILD_DIR)/PinkTrombone/%.cpp.o: PinkTrombone/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/PdArray b/plugins/PdArray new file mode 160000 index 0000000..8e8e654 --- /dev/null +++ b/plugins/PdArray @@ -0,0 +1 @@ +Subproject commit 8e8e65490bf9d1708e586b1d759849bf2d76a4f0 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 899df1d..c4ce74e 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -776,6 +776,17 @@ extern Model* modelBlankPanel; // Path Set #include "PathSet/src/plugin.hpp" +// PdArray +#define TextBox PdArrayTextBox +#define CustomTrimpot PdArrayCustomTrimpot +#define MsDisplayWidget PdArrayMsDisplayWidget +#define MAX_POLY_CHANNELS PDARRAY_MAX_POLY_CHANNELS +#include "PdArray/src/plugin.hpp" +#undef Textbox +#undef CustomTrimpot +#undef MsDisplayWidget +#undef MAX_POLY_CHANNELS + // PinkTrombone #include "PinkTrombone/src/plugin.hpp" @@ -946,6 +957,7 @@ Plugin* pluginInstance__nonlinearcircuits; Plugin* pluginInstance__Orbits; Plugin* pluginInstance__ParableInstruments; Plugin* pluginInstance__PathSet; +Plugin* pluginInstance__PdArray; Plugin* pluginInstance__PinkTrombone; Plugin* pluginInstance__Prism; Plugin* pluginInstance__rackwindows; @@ -1961,11 +1973,11 @@ static void initStatic__CVfunk() p->addModel(modelSignals); p->addModel(modelRanges); p->addModel(modelHexMod); - p->addModel(modelCollatz); - p->addModel(modelStrings); - p->addModel(modelMagnets); - p->addModel(modelOuros); - p->addModel(modelPressedDuck); + p->addModel(modelCollatz); + p->addModel(modelStrings); + p->addModel(modelMagnets); + p->addModel(modelOuros); + p->addModel(modelPressedDuck); #undef modelSteps } } @@ -2913,6 +2925,20 @@ static void initStatic__PathSet() } } +static void initStatic__PdArray() +{ + Plugin* const p = new Plugin; + pluginInstance__PdArray = p; + + const StaticPluginLoader spl(p, "PdArray"); + if (spl.ok()) + { + p->addModel(modelArray); + p->addModel(modelMiniramp); + p->addModel(modelMinistep); + } +} + static void initStatic__PinkTrombone() { Plugin* const p = new Plugin; @@ -3427,6 +3453,7 @@ void initStaticPlugins() initStatic__Orbits(); initStatic__ParableInstruments(); initStatic__PathSet(); + initStatic__PdArray(); initStatic__PinkTrombone(); initStatic__Prism(); initStatic__rackwindows(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 14a1fc4..af32036 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -73,6 +73,7 @@ enum DarkMode { kModeMyth, kModeNonlinearcircuits, kModeParableInstruments, + kModePdArray, kModePathSet, kModeVoxglitch, kModeWhatTheRack, @@ -355,6 +356,10 @@ static const struct { { kModePathSet, "/PathSet/res/PlusPane.svg", {}, -1 }, { kModePathSet, "/PathSet/res/ShiftyExpander.svg", {}, -1 }, { kModePathSet, "/PathSet/res/ShiftyMod.svg", {}, -1 }, + // EUPL-1.2 + { kModePdArray, "/PdArray/res/Array.svg", {}, -1 }, + { kModePdArray, "/PdArray/res/Miniramp.svg", {}, -1 }, + { kModePdArray, "/PdArray/res/Ministep.svg", {}, -1 }, // BSD-3-Clause { kModeVoxglitch, "/voxglitch/res/autobreak_front_panel.svg", {}, -1 }, { kModeVoxglitch, "/voxglitch/res/bytebeat_front_panel.svg", {}, -1 },