diff --git a/.gitmodules b/.gitmodules index 8b62825..7c70f73 100644 --- a/.gitmodules +++ b/.gitmodules @@ -178,3 +178,6 @@ [submodule "plugins/AaronStatic"] path = plugins/AaronStatic url = https://github.com/aaronstatic/AaronStatic_modules.git +[submodule "plugins/MSM"] + path = plugins/MSM + url = https://github.com/netboy3/MSM-vcvrack-plugin.git diff --git a/README.md b/README.md index 279f6a6..4cb1f0c 100644 --- a/README.md +++ b/README.md @@ -144,6 +144,7 @@ At the moment the following 3rd-party modules are provided: - Mockba Modular - Mog - mscHack +- MSM - Orbits - Path Set - Prism diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 18577b0..11798c6 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -55,6 +55,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Mockba Modular | MIT | | | Mog | CC0-1.0 | | | mscHack | BSD-3-Clause | | +| MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | | Orbits | GPL-3.0-or-later | | | Path Set | GPL-3.0-or-later | | | Prism | BSD-3-Clause | | @@ -163,6 +164,10 @@ Below is a list of artwork licenses from plugins | Mog/components/* | CC-BY-NC-4.0 | | | Mog/Exo2-BoldItalic.ttf | OFL-1.1-RFN | | | mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) | +| MSM/* | MIT | No artwork specific license provided | +| MSM/Fonts/DejaVuSansMono.ttf | Bitstream-Vera | | +| MSM/Fonts/Segment7Standard.ttf | OFL-1.1-RFN | | +| MSM/Fonts/Sudo.ttf | OFL-1.1-no-RFN | | | Orbits/* | CC-BY-NC-ND-4.0 | | | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/MSM b/plugins/MSM new file mode 160000 index 0000000..80b4a5a --- /dev/null +++ b/plugins/MSM @@ -0,0 +1 @@ +Subproject commit 80b4a5aa06d9c4a58f62d90fe567b28b01f6312d diff --git a/plugins/Makefile b/plugins/Makefile index 8d51685..e9f3bc8 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -681,6 +681,14 @@ PLUGIN_FILES += $(wildcard mscHack/src/*.cpp) # modules/types which are present in other plugins MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_PARAM_STRUCT PHRASE_CHANGE_STRUCT +# -------------------------------------------------------------- +# MSM + +PLUGIN_FILES += $(filter-out MSM/src/MSM.cpp,$(wildcard MSM/src/*.cpp)) + +# modules/types which are present in other plugins +MSM_CUSTOM = ADSR BlankPanel Delay LFO Mult Noise VCA VCO sawTable triTable + # -------------------------------------------------------------- # Orbits @@ -1565,6 +1573,14 @@ $(BUILD_DIR)/mscHack/%.cpp.o: mscHack/%.cpp -Wno-non-c-typedef-for-linkage \ -Wno-unused-but-set-variable +$(BUILD_DIR)/MSM/%.cpp.o: MSM/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(MSM_CUSTOM),$(call custom_module_names,$(m),MSM)) \ + -DpluginInstance=pluginInstance__MSM \ + -DDARKTHEME + $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 49a63f5..2f155e9 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -568,6 +568,48 @@ extern Model* modelAlienz; extern Model* modelOSC_WaveMorph_3; extern Model* modelMaude_221; +// MSM +/* NOTE too much noise in original include, do this a different way +// #include "MSM/src/MSM.hpp" +*/ +#define modelADSR modelMSMADSR +#define modelBlankPanel modelMSMBlankPanel +#define modelDelay modelMSMDelay +#define modelLFO modelMSMLFO +#define modelMult modelMSMMult +#define modelNoise modelMSMNoise +#define modelVCA modelMSMVCA +#define modelVCO modelMSMVCO +extern Model* modelVCO; +extern Model* modelBVCO; +extern Model* modelExperimentalVCO; +extern Model* modelNoise; +extern Model* modelLFO; +extern Model* modelVCA; +extern Model* modelADSR; +extern Model* modelDelay; +extern Model* modelWaveShaper; +extern Model* modelWavefolder; +extern Model* modelBitcrusher; +extern Model* modelPhaserModule; +extern Model* modelMorpher; +extern Model* modelRingMod; +extern Model* modelRandomSource; +extern Model* modelMult; +extern Model* modelCrazyMult; +extern Model* modelFade; +extern Model* modelSimpleSlider; +extern Model* modelxseq; +extern Model* modelBlankPanel; +#undef modelADSR +#undef modelBlankPanel +#undef modelDelay +#undef modelLFO +#undef modelMult +#undef modelNoise +#undef modelVCA +#undef modelVCO + // Orbits #include "Orbits/src/plugin.hpp" @@ -692,6 +734,7 @@ Plugin* pluginInstance__ML; Plugin* pluginInstance__MockbaModular; Plugin* pluginInstance__Mog; extern Plugin* pluginInstance__mscHack; +Plugin* pluginInstance__MSM; Plugin* pluginInstance__Orbits; Plugin* pluginInstance__PathSet; Plugin* pluginInstance__Prism; @@ -2124,6 +2167,54 @@ static void initStatic__mscHack() } } +static void initStatic__MSM() +{ + Plugin* const p = new Plugin; + pluginInstance__MSM = p; + + const StaticPluginLoader spl(p, "MSM"); + if (spl.ok()) + { +#define modelADSR modelMSMADSR +#define modelBlankPanel modelMSMBlankPanel +#define modelDelay modelMSMDelay +#define modelLFO modelMSMLFO +#define modelMult modelMSMMult +#define modelNoise modelMSMNoise +#define modelVCA modelMSMVCA +#define modelVCO modelMSMVCO + p->addModel(modelVCO); + p->addModel(modelBVCO); + p->addModel(modelExperimentalVCO); + p->addModel(modelNoise); + p->addModel(modelLFO); + p->addModel(modelVCA); + p->addModel(modelADSR); + p->addModel(modelDelay); + p->addModel(modelWaveShaper); + p->addModel(modelWavefolder); + p->addModel(modelBitcrusher); + p->addModel(modelPhaserModule); + p->addModel(modelMorpher); + p->addModel(modelRingMod); + p->addModel(modelRandomSource); + p->addModel(modelMult); + p->addModel(modelCrazyMult); + p->addModel(modelFade); + p->addModel(modelSimpleSlider); + p->addModel(modelxseq); + p->addModel(modelBlankPanel); +#undef modelADSR +#undef modelBlankPanel +#undef modelDelay +#undef modelLFO +#undef modelMult +#undef modelNoise +#undef modelVCA +#undef modelVCO + } +} + static void initStatic__Orbits() { Plugin* const p = new Plugin; @@ -2402,6 +2493,7 @@ void initStaticPlugins() initStatic__MockbaModular(); initStatic__Mog(); initStatic__mscHack(); + initStatic__MSM(); initStatic__Orbits(); initStatic__PathSet(); initStatic__Prism();