From 5ef7bf5a41863e0aec127271eeb5121ae3d5996a Mon Sep 17 00:00:00 2001 From: falkTX Date: Tue, 11 Jan 2022 16:42:55 +0000 Subject: [PATCH] Add ihtsyn --- .gitmodules | 3 ++ README.md | 1 + doc/LICENSES.md | 3 ++ plugins/Makefile | 21 +++++++++++ plugins/ihtsyn | 1 + plugins/plugins.cpp | 88 +++++++++++++++++++++++++++------------------ plugins/res/ihtsyn | 1 + 7 files changed, 84 insertions(+), 34 deletions(-) create mode 160000 plugins/ihtsyn create mode 120000 plugins/res/ihtsyn diff --git a/.gitmodules b/.gitmodules index 2347ddd..0769c58 100644 --- a/.gitmodules +++ b/.gitmodules @@ -130,3 +130,6 @@ [submodule "plugins/ExpertSleepers-Encoders"] path = plugins/ExpertSleepers-Encoders url = https://github.com/expertsleepersltd/vcvrack-encoders.git +[submodule "plugins/ihtsyn"] + path = plugins/ihtsyn + url = https://github.com/nysthi/ihtsyn.git diff --git a/README.md b/README.md index 21016fc..6dee87d 100644 --- a/README.md +++ b/README.md @@ -100,6 +100,7 @@ At the moment the following 3rd-party modules are provided: - Grande - HetrickCV - Impromptu +- ihtsyn - JW-Modules - LifeFormModular - Little Utils diff --git a/doc/LICENSES.md b/doc/LICENSES.md index 1fe64e9..51b63a0 100644 --- a/doc/LICENSES.md +++ b/doc/LICENSES.md @@ -36,6 +36,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Grande | GPL-3.0-or-later | | | HetrickCV | CC0-1.0 | | | Impromptu | GPL-3.0-or-later | | +| ihtsyn | GPL-3.0-or-later | | | JW-Modules | BSD-3-Clause | | | LifeFormModular | MIT | | | Little Utils | MIT | | @@ -99,6 +100,8 @@ Below is a list of artwork licenses from plugins | Cardinal/* | CC0-1.0 | | | Cardinal/Miku/Miku.png | CC-BY-NC-3.0 | https://piapro.net/intl/en_for_creators.html | | ExpertSleepers-Encoders/* | MIT | No artwork specific license provided | +| ihtsyn/* | GPL-3.0-or-later | No artwork specific license provided | +| ihtsyn/LEDCalculator.ttf | Custom | Free for personal use | | LittleUtils/* | MIT | No artwork specific license provided | | LyraeModules/* | CC-BY-NC-SA-4.0 | | | ZetaCarinaeModules/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/Makefile b/plugins/Makefile index 4017d82..ed20828 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -484,6 +484,19 @@ PLUGIN_FILES += ImpromptuModularDark/PanelTheme.cpp IMPROMPTUMODULAR_CUSTOM = RefreshCounter IMPROMPTUMODULAR_CUSTOM_PER_FILE = Clock stepClock +# -------------------------------------------------------------- +# ihtsyn + +PLUGIN_FILES += $(filter-out ihtsyn/src/plugin.cpp,$(wildcard ihtsyn/src/*.cpp)) + +# modules/types which are present in other plugins +IHTSYN_CUSTOM_PER_FILE = mv_allpass +IHTSYN_CUSTOM_PER_FILE += mv_staticallpass4tap +IHTSYN_CUSTOM_PER_FILE += mv_staticdelayline +IHTSYN_CUSTOM_PER_FILE += mv_staticdelayline4tap +IHTSYN_CUSTOM_PER_FILE += mv_staticdelayline8tap +IHTSYN_CUSTOM_PER_FILE += mv_statevariable + # -------------------------------------------------------------- # JW-Modules @@ -1135,6 +1148,14 @@ $(BUILD_DIR)/ImpromptuModular%.cpp.o: ImpromptuModular%.cpp -DpluginInstance=pluginInstance__ImpromptuModular \ -Wno-format-truncation +$(BUILD_DIR)/ihtsyn/%.cpp.o: ihtsyn/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(IHTSYN_CUSTOM),$(call custom_module_names,$(m),ihtsyn)) \ + $(foreach m,$(IHTSYN_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ihtsyn_$(shell basename $*))) \ + -DpluginInstance=pluginInstance__ihtsyn + $(BUILD_DIR)/JW-Modules/src/WavHead.cpp.o: JW-Modules/src/WavHead.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/ihtsyn b/plugins/ihtsyn new file mode 160000 index 0000000..69d0120 --- /dev/null +++ b/plugins/ihtsyn @@ -0,0 +1 @@ +Subproject commit 69d0120212b3b0afdd608f2667f0959ad9aeffb4 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index b77525a..389957f 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -279,40 +279,6 @@ void saveGtgPluginDefault(const char*, int) {} // GrandeModular #include "GrandeModular/src/plugin.hpp" -// ImpromptuModular -/* NOTE too much noise in original include, do this a different way -// #include "ImpromptuModular/src/ImpromptuModular.hpp" -*/ -extern Model* modelAdaptiveQuantizer; -extern Model* modelBigButtonSeq; -extern Model* modelBigButtonSeq2; -extern Model* modelChordKey; -extern Model* modelChordKeyExpander; -extern Model* modelClocked; -extern Model* modelClockedExpander; -extern Model* modelClkd; -extern Model* modelCvPad; -extern Model* modelFoundry; -extern Model* modelFoundryExpander; -extern Model* modelFourView; -extern Model* modelGateSeq64; -extern Model* modelGateSeq64Expander; -extern Model* modelHotkey; -extern Model* modelPart; -extern Model* modelPhraseSeq16; -extern Model* modelPhraseSeq32; -extern Model* modelPhraseSeqExpander; -extern Model* modelProbKey; -// extern Model* modelProbKeyExpander; -extern Model* modelSemiModularSynth; -extern Model* modelTact; -extern Model* modelTact1; -extern Model* modelTactG; -extern Model* modelTwelveKey; -extern Model* modelWriteSeq32; -extern Model* modelWriteSeq64; -extern Model* modelBlankPanel; - // HetrickCV #define modelASR modelHetrickCVASR #define modelBlankPanel modelHetrickCVBlankPanel @@ -360,6 +326,43 @@ extern Model* modelXYToPolar; #undef modelMidSide #undef modelMinMax +// ImpromptuModular +/* NOTE too much noise in original include, do this a different way +// #include "ImpromptuModular/src/ImpromptuModular.hpp" +*/ +extern Model* modelAdaptiveQuantizer; +extern Model* modelBigButtonSeq; +extern Model* modelBigButtonSeq2; +extern Model* modelChordKey; +extern Model* modelChordKeyExpander; +extern Model* modelClocked; +extern Model* modelClockedExpander; +extern Model* modelClkd; +extern Model* modelCvPad; +extern Model* modelFoundry; +extern Model* modelFoundryExpander; +extern Model* modelFourView; +extern Model* modelGateSeq64; +extern Model* modelGateSeq64Expander; +extern Model* modelHotkey; +extern Model* modelPart; +extern Model* modelPhraseSeq16; +extern Model* modelPhraseSeq32; +extern Model* modelPhraseSeqExpander; +extern Model* modelProbKey; +// extern Model* modelProbKeyExpander; +extern Model* modelSemiModularSynth; +extern Model* modelTact; +extern Model* modelTact1; +extern Model* modelTactG; +extern Model* modelTwelveKey; +extern Model* modelWriteSeq32; +extern Model* modelWriteSeq64; +extern Model* modelBlankPanel; + +// ihtsyn +#include "ihtsyn/src/plugin.hpp" + // JW-Modules #define modelQuantizer modelJWQuantizer #include "JW-Modules/src/JWModules.hpp" @@ -520,6 +523,7 @@ Plugin* pluginInstance__GrandeModular; Plugin* pluginInstance__GlueTheGiant; Plugin* pluginInstance__HetrickCV; extern Plugin* pluginInstance__ImpromptuModular; +Plugin* pluginInstance__ihtsyn; Plugin* pluginInstance__JW; Plugin* pluginInstance__LifeFormModular; Plugin* pluginInstance__LittleUtils; @@ -1521,6 +1525,21 @@ static void initStatic__ImpromptuModular() } } +static void initStatic__ihtsyn() +{ + Plugin* const p = new Plugin; + pluginInstance__ihtsyn = p; + + const StaticPluginLoader spl(p, "ihtsyn"); + if (spl.ok()) + { + p->addModel(modelPitchMangler); + p->addModel(modelTwistedVerb); + p->addModel(modelHiVerb); + p->addModel(modelMVerb); + } +} + static void initStatic__JW() { Plugin* const p = new Plugin; @@ -1899,6 +1918,7 @@ void initStaticPlugins() initStatic__GrandeModular(); initStatic__HetrickCV(); initStatic__ImpromptuModular(); + initStatic__ihtsyn(); initStatic__JW(); initStatic__LifeFormModular(); initStatic__LittleUtils(); diff --git a/plugins/res/ihtsyn b/plugins/res/ihtsyn new file mode 120000 index 0000000..8db9356 --- /dev/null +++ b/plugins/res/ihtsyn @@ -0,0 +1 @@ +../ihtsyn/res \ No newline at end of file