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/Makefile b/Makefile index c9f010f..6acfa09 100644 --- a/Makefile +++ b/Makefile @@ -223,6 +223,9 @@ lv2: carla deps dgl plugins resources vst2: carla deps dgl plugins resources $(MAKE) vst2 -C src $(CARLA_EXTRA_ARGS) +vst2fx: carla deps dgl plugins resources + $(MAKE) vst2fx -C src $(CARLA_EXTRA_ARGS) + vst3: carla deps dgl plugins resources $(MAKE) vst3 -C src $(CARLA_EXTRA_ARGS) 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 d929601..8719cc1 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 @@ -1023,7 +1031,7 @@ PLUGIN_FILES += $(filter-out sonusmodular/src/sonusmodular.cpp,$(wildcard sonusm # -------------------------------------------------------------- # Starling Via -PLUGIN_FILES += $(wildcard StarlingVia/src/*.cpp) +PLUGIN_FILES += $(filter-out StarlingVia/src/starling.cpp,$(wildcard StarlingVia/src/*.cpp)) PLUGIN_FILES += $(wildcard StarlingVia/Via/io/src/*.cpp) PLUGIN_FILES += $(wildcard StarlingVia/Via/ui/src/*.cpp) PLUGIN_FILES += $(wildcard StarlingVia/Via/modules/*/*.cpp) @@ -1449,6 +1457,7 @@ 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) @@ -2627,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 $<" @@ -2668,7 +2684,7 @@ $(BUILD_DIR)/repelzen/%.cpp.o: repelzen/%.cpp $(BUILD_DIR)/Sapphire/%.cpp.o: Sapphire/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" - $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ $(foreach m,$(SAPPHIRE_CUSTOM),$(call custom_module_names,$(m),Sapphire)) \ -DpluginInstance=pluginInstance__sapphire 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/Sapphire b/plugins/Sapphire index d26e157..0bcc1f4 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit d26e157140ef6283906a33675733ea35e4dd26ac +Subproject commit 0bcc1f4a48a7a7d59013f5f4a12574f7453a5edf diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 3bb4372..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" @@ -811,7 +822,6 @@ void addThemeMenuItems(Menu*, ModuleTheme*) {} // sonusmodular #include "sonusmodular/src/sonusmodular.hpp" - // Starling Via #define modelScanner modelStarlingViaScanner #define Scale starlingViaScale @@ -947,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; @@ -954,7 +965,7 @@ Plugin* pluginInstance__RebelTech; Plugin* pluginInstance__repelzen; Plugin* pluginInstance__sapphire; Plugin* pluginInstance__sonusmodular; -extern Plugin* pluginInstance__StarlingVia; +Plugin* pluginInstance__StarlingVia; Plugin* pluginInstance__stocaudio; extern Plugin* pluginInstance__stoermelder_p1; Plugin* pluginInstance__surgext; @@ -1962,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 } } @@ -2914,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; @@ -3070,7 +3095,6 @@ static void initStatic__sonusmodular() } } - static void initStatic__StarlingVia() { Plugin* const p = new Plugin; @@ -3429,6 +3453,7 @@ void initStaticPlugins() initStatic__Orbits(); initStatic__ParableInstruments(); initStatic__PathSet(); + initStatic__PdArray(); initStatic__PinkTrombone(); initStatic__Prism(); initStatic__rackwindows(); diff --git a/src/Makefile b/src/Makefile index 805cdfe..24038a8 100644 --- a/src/Makefile +++ b/src/Makefile @@ -152,6 +152,9 @@ vst2: $(TARGETS) $(MAKE) vst2 -C CardinalFX $(CARDINAL_FX_ARGS) $(MAKE) vst2 -C CardinalSynth $(CARDINAL_SYNTH_ARGS) +vst2fx: $(TARGETS) + $(MAKE) vst2 -C CardinalFX $(CARDINAL_FX_ARGS) + vst3: $(TARGETS) $(MAKE) vst3 -C Cardinal $(MAKE) vst3 -C CardinalFX $(CARDINAL_FX_ARGS) 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 },