diff --git a/.gitmodules b/.gitmodules index ad412c3..2bff404 100644 --- a/.gitmodules +++ b/.gitmodules @@ -181,3 +181,6 @@ [submodule "plugins/MSM"] path = plugins/MSM url = https://github.com/netboy3/MSM-vcvrack-plugin.git +[submodule "plugins/TheXOR"] + path = plugins/TheXOR + url = https://github.com/CardinalModules/TheXOR.git diff --git a/README.md b/README.md index 4cb1f0c..3955fd6 100644 --- a/README.md +++ b/README.md @@ -153,6 +153,7 @@ At the moment the following 3rd-party modules are provided: - Sonus Modular - stocaudio - Substation Opensource +- TheXOR - Valley - ZetaCarinae - ZZC diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 11798c6..d119fbd 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -64,6 +64,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Substation Opensource | BSD-3-Clause-Attribution | Need to check full compatibility with GPLv3+ | | Sonus Modular | GPL-3.0-or-later | | | stocaudio | GPL-3.0-or-later | | +| TheXOR | CC0-1.0 | | | Valley | GPL-3.0-or-later | | | ZetaCarinae | GPL-3.0-or-later | | | ZZC | GPL-3.0-or-later | | @@ -178,6 +179,9 @@ Below is a list of artwork licenses from plugins | substation-opensource/* | BSD-3-Clause-Attribution | No artwork specific license provided | | sonusmodular/* | GPL-3.0-or-later | [Same license as source code](https://gitlab.com/sonusdept/sonusmodular/-/issues/14) | | stocaudio/* | GPL-3.0-or-later | No artwork specific license provided | +| TheXOR/* | CC0-1.0 | No artwork specific license provided | +| TheXOR/FreeMonoBold.ttf | GPL-3.0-with-font-exception | | +| TheXOR/Segment7Standard.ttf | OFL-1.1-RFN | | | ValleyAudio/* | GPL-3.0-or-later | [Same license as source code](https://github.com/ValleyAudio/ValleyRackFree/issues/73) | | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | | diff --git a/plugins/Makefile b/plugins/Makefile index fcbec11..dee81b5 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -739,6 +739,14 @@ PLUGIN_FILES += $(wildcard substation-opensource/dep/slime4rack/src/slime/**/*.c PLUGIN_FILES += $(filter-out substation-opensource/src/_plugin.cpp substation-opensource/src/Settings.cpp,$(wildcard substation-opensource/src/*.cpp)) PLUGIN_FILES += substation-settings/Settings.cpp +# -------------------------------------------------------------- +# TheXOR + +PLUGIN_FILES += TheXOR/src/Sequencers.cpp +PLUGIN_FILES += TheXOR/src/common.cpp +PLUGIN_FILES += TheXOR/src/ascii.cpp +PLUGIN_FILES += TheXOR/src/empty.cpp + # -------------------------------------------------------------- # ValleyAudio @@ -1642,6 +1650,13 @@ $(BUILD_DIR)/substation-%.cpp.o: substation-%.cpp -D'PRIVATE=__attribute__((error("Using internal Rack function or symbol")))' \ -Isubstation-opensource/dep/slime4rack/include +$(BUILD_DIR)/TheXOR/%.cpp.o: TheXOR/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(THEXOR_CUSTOM),$(call custom_module_names,$(m),TheXOR)) \ + -DpluginInstance=pluginInstance__TheXOR + $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/TheXOR b/plugins/TheXOR new file mode 160000 index 0000000..689d178 --- /dev/null +++ b/plugins/TheXOR @@ -0,0 +1 @@ +Subproject commit 689d178a6ba86d49aade4517caeffb8fbd0e0dc5 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 2f155e9..341ede5 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -641,7 +641,7 @@ extern Model* modelBlankPanel; // substation /* NOTE too much noise in original include, do this a different way -// "substation-opensource/src/_plugin.hpp" +// #include "substation-opensource/src/_plugin.hpp" */ namespace slime { namespace plugin { @@ -659,6 +659,53 @@ extern Model* modelBlank7; extern Model* modelFilterPlus; }}} +// TheXOR +/* NOTE custom implementation, no header file definition possible to include */ +namespace TheXOR { +extern Model* modelKlee; +extern Model* modelkExp; +extern Model* modelM581; +extern Model* modelM581TExp; +extern Model* modelM581CExp; +extern Model* modelM581MExp; +extern Model* modelM581VExp; +extern Model* modelZ8K; +extern Model* modelZ8KVExp; +extern Model* modelZ8KCExp; +extern Model* modelZ8KMExp; +extern Model* modelZ8KTExp; +extern Model* modelZ8KXExp; +extern Model* modelRenato; +extern Model* modelSpiralone; +extern Model* modelBurst; +extern Model* modelUncertain; +extern Model* modelPWMClock; +extern Model* modelQuantizer; +extern Model* modelAttAmp; +extern Model* modelXSwitch; +extern Model* modelBoole; +extern Model* modelMplex; +extern Model* modelDmplex; +extern Model* modelCounter; +extern Model* modelmidyQuant; +extern Model* modelnag; +extern Model* modelempty; +extern Model* modelascii; +extern Model* modelquattro; +extern Model* modelflop; +extern Model* modelo88o; +extern Model* modelvolt; +extern Model* modelNordschleife; +extern Model* modelRR; +extern Model* modelchords; +extern Model* modelc2v; +extern Model* modelc3v; +extern Model* modeldice; +extern Model* modelgate; +extern Model* modelPWC; +extern Model* modelcclk; +} + // ValleyAudio #include "ValleyAudio/src/Valley.hpp" @@ -743,6 +790,7 @@ Plugin* pluginInstance__repelzen; Plugin* pluginInstance__sonusmodular; Plugin* pluginInstance__stocaudio; Plugin* pluginInstance__substation; +Plugin* pluginInstance__TheXOR; Plugin* pluginInstance__ValleyAudio; Plugin* pluginInstance__ZetaCarinaeModules; Plugin* pluginInstance__ZZC; @@ -2383,6 +2431,64 @@ static void initStatic__substation() } } +static void initStatic__TheXOR() +{ + Plugin* const p = new Plugin; + pluginInstance__TheXOR = p; + + const StaticPluginLoader spl(p, "TheXOR"); + if (spl.ok()) + { + p->addModel(TheXOR::modelempty); + p->addModel(TheXOR::modelascii); + /* + p->addModel(TheXOR::modelKlee); + p->addModel(TheXOR::modelkExp); + p->addModel(TheXOR::modelM581); + p->addModel(TheXOR::modelM581TExp); + p->addModel(TheXOR::modelM581CExp); + p->addModel(TheXOR::modelM581MExp); + p->addModel(TheXOR::modelM581VExp); + p->addModel(TheXOR::modelZ8K); + p->addModel(TheXOR::modelZ8KVExp); + p->addModel(TheXOR::modelZ8KCExp); + p->addModel(TheXOR::modelZ8KMExp); + p->addModel(TheXOR::modelZ8KTExp); + p->addModel(TheXOR::modelZ8KXExp); + p->addModel(TheXOR::modelRenato); + p->addModel(TheXOR::modelSpiralone); + p->addModel(TheXOR::modelBurst); + p->addModel(TheXOR::modelUncertain); + p->addModel(TheXOR::modelPWMClock); + p->addModel(TheXOR::modelQuantizer); + p->addModel(TheXOR::modelAttAmp); + p->addModel(TheXOR::modelXSwitch); + p->addModel(TheXOR::modelBoole); + p->addModel(TheXOR::modelMplex); + p->addModel(TheXOR::modelDmplex); + p->addModel(TheXOR::modelCounter); + p->addModel(TheXOR::modelmidyQuant); + p->addModel(TheXOR::modelnag); + p->addModel(TheXOR::modelempty); + p->addModel(TheXOR::modelascii); + p->addModel(TheXOR::modelquattro); + p->addModel(TheXOR::modelflop); + p->addModel(TheXOR::modelo88o); + p->addModel(TheXOR::modelvolt); + p->addModel(TheXOR::modelNordschleife); + p->addModel(TheXOR::modelRR); + p->addModel(TheXOR::modelchords); + p->addModel(TheXOR::modelc2v); + p->addModel(TheXOR::modelc3v); + p->addModel(TheXOR::modeldice); + p->addModel(TheXOR::modelgate); + p->addModel(TheXOR::modelPWC); + p->addModel(TheXOR::modelcclk); + */ +// spl.removeModule("Str1ker"); + } +} + static void initStatic__ValleyAudio() { Plugin* const p = new Plugin; @@ -2502,6 +2608,7 @@ void initStaticPlugins() initStatic__sonusmodular(); initStatic__stocaudio(); initStatic__substation(); + initStatic__TheXOR(); initStatic__ValleyAudio(); initStatic__ZetaCarinaeModules(); initStatic__ZZC(); diff --git a/plugins/todo.txt b/plugins/todo.txt index 2735250..3c69bb8 100644 --- a/plugins/todo.txt +++ b/plugins/todo.txt @@ -2,14 +2,11 @@ List of plugins still to add, sorted by popularity - TODO, see list at https://github.com/VCVRack/library/tree/v2/repos -Grayscale 74754.0 (not opensource?) +Grayscale 74754.0 (not opensource) -VultModulesFree 61804.0 (not opensource?) +VultModulesFree 61804.0 (not opensource) -NYSTHI 58494.0 (not opensource?) - -ML_modules 55847.0 -https://github.com/martin-lueders/ML_modules/ +NYSTHI 58494.0 (not opensource) FrozenWasteland 53690.0 (GPL-3.0-only) https://github.com/almostEric/FrozenWasteland/ @@ -17,10 +14,10 @@ https://github.com/almostEric/FrozenWasteland/ ArableInstruments 48756.0 https://github.com/adbrant/ArableInstruments/ -squinkylabs-plug1 48682.0 +squinkylabs-plug1 48682.0 (GPL-3.0-only) https://github.com/squinkylabs/SquinkyVCV -LindenbergResearch 43959.0 (not opensource?) +LindenbergResearch 43959.0 (not opensource) Geodesics 42761.0 (GPL-3.0-only) https://github.com/MarcBoule/Geodesics @@ -29,23 +26,41 @@ Alikins 41798.0 https://github.com/alikins/Alikins-rack-plugins dBiz 40849.0 +https://github.com/DISTRHO/Cardinal/pull/166 WIP + RJModules 39972.0 +https://github.com/Miserlou/RJModules (needs v2 work) + DHE-Modules 39582.0 -AlrightDevices 38307.0 +https://github.com/dhemery/DHE-Modules/ + +AlrightDevices 38307.0 (not opensource) + SynthKit 38228.0 -SubmarineFree 38146.0 -Hora-treasureFree 37847.0 +https://github.com/SVModular/SynthKit/ + +SubmarineFree 38146.0 (GPL-3.0-only) +https://github.com/david-c14/SubmarineFree + +Hora-treasureFree 37847.0 (not opensource) + ParableInstruments 37781.0 -CountModula 37759.0 -MSM 37337.0 +https://github.com/adbrant/ArableInstruments/ + +CountModula 37759.0 (GPL-3.0-only) +https://github.com/countmodula/VCVRackPlugins/ + CharredDesert 36813.0 -EricaCopies 36556.0 -TheXOR 36497.0 -Autinn 34990.0 +https://github.com/SVModular/CharredDesert/ + +EricaCopies 36556.0 (not opensource) + trowaSoft 34946.0 -Hora-VCO_VCF_VCA_Free 34770.0 +https://github.com/j4s0n-c/trowaSoft-VCV/ + +Hora-VCO_VCF_VCA_Free 34770.0 (not opensource) + moDllz 34368.0 -21kHz 34172.0 Ohmer 33950.0 modular80 33447.0 Autodafe-DrumKit 33143.0