diff --git a/.gitmodules b/.gitmodules index 8460a099..b054833a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -260,4 +260,7 @@ [submodule "plugins/admiral"] path = plugins/admiral url = https://github.com/wapiflapi/admiral.git +[submodule "plugins/eightfold"] + path = plugins/eightfold + url = https://github.com/scanner-darkly/eightfold.git diff --git a/README.md b/README.md index 3de00ba0..a216d0e6 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ At the moment the following 3rd-party modules are provided: - [dBiz](https://github.com/dBiz/dBiz) - [DHE Modules](https://github.com/dhemery/DHE-Modules) - [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html) +- [eightfold](https://github.com/scanner-darkly/eightfold) - [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack) - [E-Series](https://github.com/VCVRack/ESeries) - [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 7e171186..7e6318c8 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -40,6 +40,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | dBiz | GPL-3.0-or-later | | | DHE-Modules | MIT | | | DrumKit | CC0-1.0 | | +| eightfold | GPL-3.0-or-later | | | EnigmaCurry | GPL-3.0-or-later | | | E-Series | GPL-3.0-or-later | | | ExpertSleepers Encoders | MIT | | @@ -178,6 +179,7 @@ Below is a list of artwork licenses from plugins | DHE-Modules/* | MIT | Same license as source code | | DrumKit/* | CC0-1.0 | | | DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | | +| eightfold/* | GPL-3.0-or-later | No artwork specific license provided | | EnigmaCurry/res/fonts/dseg/* | OFL-1.1-RFN | | | EnigmaCurry/res/fonts/Fantasque/* | OFL-1.1 | | | EnigmaCurry/res/fonts/manrope/* | OFL-1.1 | | diff --git a/plugins/Makefile b/plugins/Makefile index 58bd3006..739ff156 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -707,6 +707,17 @@ PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp) # modules/types which are present in other plugins DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator +# -------------------------------------------------------------- +# eightfold + +PLUGIN_FILES += $(filter-out eightfold/src/plugin.cpp,$(wildcard eightfold/src/*.cpp)) +# modules/types which are present in other plugins +EIGHTFOLD_CUSTOM = Comparator comparator + + +EIGHTFOLD_FLAGS = $(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS)) +EIGHTFOLD_FLAGS += -std=gnu++17 + # -------------------------------------------------------------- # EnigmaCurry @@ -2347,6 +2358,13 @@ $(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp -Dinit=init__DrumKit \ -Wno-sign-compare +$(BUILD_DIR)/eightfold/src/%.cpp.o: eightfold/src/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(EIGHTFOLD_FLAGS) -c -o $@ \ + $(foreach m,$(EIGHTFOLD_CUSTOM),$(call custom_module_names,$(m),eightfold)) \ + -DpluginInstance=pluginInstance__eightfold + $(BUILD_DIR)/EnigmaCurry/src/%.cpp.o: EnigmaCurry/src/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/eightfold b/plugins/eightfold new file mode 160000 index 00000000..a541c5cf --- /dev/null +++ b/plugins/eightfold @@ -0,0 +1 @@ +Subproject commit a541c5cfdc3fb9ad8e4f345470f817eaf576b987 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 2d8ca4b1..70798969 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -395,6 +395,9 @@ namespace xycloid { void init(Plugin*); } #include "DrumKit/src/DrumKit.hpp" void setupSamples(); +// eightfold +#include "eightfold/src/plugin.hpp" + // EnigmaCurry #define modelPulse modelEnigmaCurryPulse #include "EnigmaCurry/src/plugin.hpp" @@ -948,6 +951,7 @@ Plugin* pluginInstance__CVfunk; Plugin* pluginInstance__dBiz; Plugin* pluginInstance__DHE; extern Plugin* pluginInstance__DrumKit; +Plugin* pluginInstance__eightfold; Plugin* pluginInstance__EnigmaCurry; Plugin* pluginInstance__ESeries; Plugin* pluginInstance__ExpertSleepersEncoders; @@ -2151,6 +2155,22 @@ static void initStatic__DrumKit() } } +static void initStatic__eightfold() +{ + Plugin* const p = new Plugin; + pluginInstance__eightfold = p; + + const StaticPluginLoader spl(p, "eightfold"); + if (spl.ok()) + { + p->addModel(modelSDOrcasHeartV2); + p->addModel(modelSDFormation); + p->addModel(modelSDLines); + p->addModel(modelSDTransgate); + p->addModel(modelSDComparator); + } +} + static void initStatic__EnigmaCurry() { Plugin* const p = new Plugin; @@ -3564,6 +3584,7 @@ void initStaticPlugins() initStatic__dBiz(); initStatic__DHE(); initStatic__DrumKit(); + initStatic__eightfold(); initStatic__EnigmaCurry(); initStatic__ESeries(); initStatic__ExpertSleepersEncoders();