From b5a001f0c466606642079d02ff09a2fa86bae404 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:20:47 -0500 Subject: [PATCH] Add SynthKit. --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 1 + plugins/Makefile | 14 ++++++++++++++ plugins/SynthKit | 1 + plugins/plugins.cpp | 29 +++++++++++++++++++++++++++++ 6 files changed, 49 insertions(+) create mode 160000 plugins/SynthKit diff --git a/.gitmodules b/.gitmodules index 4cb71d6..1957360 100644 --- a/.gitmodules +++ b/.gitmodules @@ -266,3 +266,6 @@ [submodule "plugins/eightfold"] path = plugins/eightfold url = https://github.com/scanner-darkly/eightfold.git +[submodule "plugins/SynthKit"] + path = plugins/SynthKit + url = https://github.com/SVModular/SynthKit.git diff --git a/README.md b/README.md index 95d091f..0198077 100644 --- a/README.md +++ b/README.md @@ -196,6 +196,7 @@ At the moment the following 3rd-party modules are provided: - [Starling Via](https://github.com/starlingcode/Via-for-Rack) - [Stoermelder Pack-One](https://github.com/stoermelder/vcvrack-packone) - [Surge XT](https://github.com/surge-synthesizer/surge-rack) +- [SynthKit](https://github.com/SVModular/SynthKit) - [unless_modules](https://gitlab.com/unlessgames/unless_modules) - [Valley](https://github.com/ValleyAudio/ValleyRackFree) - [Voxglitch](https://github.com/clone45/voxglitch) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index a7e0b8d..f658aac 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -90,6 +90,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | stocaudio | GPL-3.0-or-later | | | Stoermelder Pack-One | GPL-3.0-or-later | | | Surge XT | GPL-3.0-or-later | | +| SynthKit | CC0-1.0 | | | unless_modules | GPL-3.0-or-later | | | Valley | GPL-3.0-or-later | | | Voxglitch | GPL-3.0-or-later | | diff --git a/plugins/Makefile b/plugins/Makefile index e6b4ccb..f0136d5 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1185,6 +1185,13 @@ MINIPLUGIN_FILES += surgext/src/XTModuleWidget.cpp MINIPLUGIN_FILES += surgext/src/XTStyle.cpp MINIPLUGIN_FILES += surgext-helper/surgext-helper.cpp +# -------------------------------------------------------------- +# SynthKit + +PLUGIN_FILES += $(filter-out SynthKit/src/SynthKit.cpp,$(wildcard SynthKit/src/*.cpp)) +PLUGIN_FILES += $(wildcard SynthKit/src/controller/*.cpp) +PLUGIN_FILES += $(wildcard SynthKit/src/view/*.cpp) + # -------------------------------------------------------------- # unless_modules @@ -2824,6 +2831,13 @@ $(BUILD_DIR)/surgext%.cpp.o: surgext%.cpp $(foreach m,$(SURGEXT_CUSTOM),$(call custom_module_names,$(m),surgext)) \ -DpluginInstance=pluginInstance__surgext +$(BUILD_DIR)/SynthKit/src/%.cpp.o: SynthKit/src/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(SYNTHKIT_CUSTOM),$(call custom_module_names,$(m),SynthKit)) \ + -DpluginInstance=pluginInstance__SynthKit + $(BUILD_DIR)/unless_modules/%.cpp.o: unless_modules/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/SynthKit b/plugins/SynthKit new file mode 160000 index 0000000..0d4aba3 --- /dev/null +++ b/plugins/SynthKit @@ -0,0 +1 @@ +Subproject commit 0d4aba35a9a3b0988c3e66172ddfa964ada3dbbe diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 1dce69e..9133b7c 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -874,6 +874,9 @@ void StoermelderSettings::readFromJson() {} void surgext_rack_initialize(); void surgext_rack_update_theme(); +// SynthKit +#include "SynthKit/src/SynthKit.hpp" + // unless_modules #include "unless_modules/src/unless.hpp" @@ -995,6 +998,7 @@ Plugin* pluginInstance__StarlingVia; Plugin* pluginInstance__stocaudio; extern Plugin* pluginInstance__stoermelder_p1; Plugin* pluginInstance__surgext; +Plugin* pluginInstance__SynthKit; Plugin* pluginInstance__unless_modules; Plugin* pluginInstance__ValleyAudio; Plugin* pluginInstance__Voxglitch; @@ -3389,6 +3393,30 @@ static void initStatic__surgext() } } +static void initStatic__SynthKit() +{ + Plugin* const p = new Plugin; + pluginInstance__SynthKit = p; + + const StaticPluginLoader spl(p, "SynthKit"); + if (spl.ok()) + { + p->addModel(modelAddition); + p->addModel(modelSubtraction); + p->addModel(modelAnd); + p->addModel(modelOr); + p->addModel(modelM1x8); + p->addModel(modelM1x8CV); + p->addModel(modelClockDivider); + p->addModel(modelRotatingClockDivider); + p->addModel(modelRotatingClockDivider2); + p->addModel(modelPrimeClockDivider); + p->addModel(modelFibonacciClockDivider); + p->addModel(modelSeq4); + p->addModel(modelSeq8); + } +} + static void initStatic__unless_modules() { Plugin* const p = new Plugin; @@ -3607,6 +3635,7 @@ void initStaticPlugins() initStatic__stocaudio(); initStatic__stoermelder_p1(); initStatic__surgext(); + initStatic__SynthKit(); initStatic__unless_modules(); initStatic__ValleyAudio(); initStatic__Voxglitch();