diff --git a/.gitmodules b/.gitmodules index fbbf66d..37549d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -203,3 +203,6 @@ [submodule "plugins/AS"] path = plugins/AS url = https://github.com/AScustomWorks/AS.git +[submodule "plugins/forsitan-modulare"] + path = plugins/forsitan-modulare + url = https://github.com/gosub/forsitan-modulare.git diff --git a/README.md b/README.md index 324c2df..61a1b4e 100644 --- a/README.md +++ b/README.md @@ -131,6 +131,7 @@ At the moment the following 3rd-party modules are provided: - ExpertSleepers Encoders - Extratone - Fehler Fabrik +- forsitan modulare - Fundamental - Glue the Giant - GoodSheperd diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 9bb6d93..9253946 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -37,6 +37,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | ExpertSleepers Encoders | MIT | | | Extratone | GPL-3.0-or-later | | | Fehler Fabrik | GPL-3.0-or-later | | +| forsitan modulare | GPL-3.0-or-later | | | Fundamental | GPL-3.0-or-later | | | Glue the Giant | GPL-3.0-or-later | | | GoodSheperd | GPL-3.0-or-later | | @@ -144,6 +145,7 @@ Below is a list of artwork licenses from plugins | ExpertSleepers-Encoders/* | MIT | [Same license as source code](https://github.com/expertsleepersltd/vcvrack-encoders/issues/3) | | Extratone/* | GPL-3.0-or-later | [Same license as source code](https://github.com/EaterOfSheep/Extratone/issues/7) | | FehlerFabrik/* | GPL-3.0-or-later | No artwork specific license provided, see [FehlerFabrik#17](https://github.com/RCameron93/FehlerFabrik/issues/17) | +| forsitan-modulare/* | GPL-3.0-or-later | No artwork specific license provided | | Fundamental/* | GPL-3.0-or-later | Same license as source code | | GlueTheGiant/* | GPL-3.0-or-later | Same license as source code | | GlueTheGiant/fonts/DSEG7-* | OFL-1.1-RFN | | diff --git a/plugins/Makefile b/plugins/Makefile index 3fb7747..24cfe7c 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -536,6 +536,11 @@ PLUGIN_FILES += $(filter-out FehlerFabrik/src/plugin.cpp,$(wildcard FehlerFabrik # modules/types which are present in other plugins FEHLERFABRIK_CUSTOM = Operator Sequencer SlewLimiter +# -------------------------------------------------------------- +# forsitan modulare + +PLUGIN_FILES += $(filter-out forsitan-modulare/src/forsitan.cpp,$(wildcard forsitan-modulare/src/*.cpp)) + # -------------------------------------------------------------- # GlueTheGiant @@ -1465,6 +1470,13 @@ $(BUILD_DIR)/Fundamental/%.c.o: Fundamental/%.c $(foreach m,$(FUNDAMENTAL_CUSTOM),$(call custom_module_names,$(m),Fundamental)) \ -DpluginInstance=pluginInstance__Fundamental +$(BUILD_DIR)/forsitan-modulare/%.cpp.o: forsitan-modulare/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(GLUETHEGIANT_CUSTOM),$(call custom_module_names,$(m),forsitan)) \ + -DpluginInstance=pluginInstance__forsitan + $(BUILD_DIR)/Fundamental/%.cpp.o: Fundamental/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/forsitan-modulare b/plugins/forsitan-modulare new file mode 160000 index 0000000..056cc2e --- /dev/null +++ b/plugins/forsitan-modulare @@ -0,0 +1 @@ +Subproject commit 056cc2ec9186a4175d9214eee91e4ff5cc2e5fb1 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index c49d27f..9e27b00 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -320,6 +320,9 @@ void setupSamples(); // FehlerFabrik #include "FehlerFabrik/src/plugin.hpp" +// forsitan modulare +#include "forsitan-modulare/src/forsitan.hpp" + // GlueTheGiant #include "GlueTheGiant/src/plugin.hpp" bool audition_mixer = false; @@ -732,6 +735,7 @@ Plugin* pluginInstance__ESeries; Plugin* pluginInstance__ExpertSleepersEncoders; Plugin* pluginInstance__Extratone; Plugin* pluginInstance__FehlerFabrik; +Plugin* pluginInstance__forsitan; Plugin* pluginInstance__GlueTheGiant; Plugin* pluginInstance__GoodSheperd; Plugin* pluginInstance__GrandeModular; @@ -1722,6 +1726,22 @@ static void initStatic__FehlerFabrik() } } +static void initStatic__forsitan() +{ + Plugin* const p = new Plugin; + pluginInstance__forsitan = p; + + const StaticPluginLoader spl(p, "forsitan-modulare"); + if (spl.ok()) + { + p->addModel(alea); + p->addModel(interea); + p->addModel(cumuli); + p->addModel(deinde); + p->addModel(pavo); + } +} + static void initStatic__GlueTheGiant() { Plugin* const p = new Plugin; @@ -2667,6 +2687,7 @@ void initStaticPlugins() initStatic__ExpertSleepersEncoders(); initStatic__Extratone(); initStatic__FehlerFabrik(); + initStatic__forsitan(); initStatic__GlueTheGiant(); initStatic__GoodSheperd(); initStatic__GrandeModular();