| @@ -181,3 +181,6 @@ | |||||
| [submodule "plugins/MSM"] | [submodule "plugins/MSM"] | ||||
| path = plugins/MSM | path = plugins/MSM | ||||
| url = https://github.com/netboy3/MSM-vcvrack-plugin.git | url = https://github.com/netboy3/MSM-vcvrack-plugin.git | ||||
| [submodule "plugins/nonlinearcircuits"] | |||||
| path = plugins/nonlinearcircuits | |||||
| url = https://github.com/mhetrick/nonlinearcircuits.git | |||||
| @@ -145,6 +145,7 @@ At the moment the following 3rd-party modules are provided: | |||||
| - Mog | - Mog | ||||
| - mscHack | - mscHack | ||||
| - MSM | - MSM | ||||
| - Nonlinear Circuits | |||||
| - Orbits | - Orbits | ||||
| - Path Set | - Path Set | ||||
| - Prism | - Prism | ||||
| @@ -56,6 +56,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||||
| | Mog | CC0-1.0 | | | | Mog | CC0-1.0 | | | ||||
| | mscHack | BSD-3-Clause | | | | mscHack | BSD-3-Clause | | | ||||
| | MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | | | MSM | MIT | Repo's [LICENSE-dist.md](https://github.com/netboy3/MSM-vcvrack-plugin/issues/10) includes wrong information | | ||||
| | Nonlinear Circuits | CC0-1.0 | | | |||||
| | Orbits | GPL-3.0-or-later | | | | Orbits | GPL-3.0-or-later | | | ||||
| | Path Set | GPL-3.0-or-later | | | | Path Set | GPL-3.0-or-later | | | ||||
| | Prism | BSD-3-Clause | | | | Prism | BSD-3-Clause | | | ||||
| @@ -168,6 +169,8 @@ Below is a list of artwork licenses from plugins | |||||
| | MSM/Fonts/DejaVuSansMono.ttf | Bitstream-Vera | | | | MSM/Fonts/DejaVuSansMono.ttf | Bitstream-Vera | | | ||||
| | MSM/Fonts/Segment7Standard.ttf | OFL-1.1-RFN | | | | MSM/Fonts/Segment7Standard.ttf | OFL-1.1-RFN | | | ||||
| | MSM/Fonts/Sudo.ttf | OFL-1.1-no-RFN | | | | MSM/Fonts/Sudo.ttf | OFL-1.1-no-RFN | | | ||||
| | nonlinearcircuits/* | CC0-1.0 | No artwork specific license provided | | |||||
| | nonlinearcircuits/Audiowide-Regular.ttf | OFL-1.1-RFN | | | |||||
| | Orbits/* | CC-BY-NC-ND-4.0 | | | | Orbits/* | CC-BY-NC-ND-4.0 | | | ||||
| | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | ||||
| | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | | | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | | ||||
| @@ -689,6 +689,11 @@ PLUGIN_FILES += $(filter-out MSM/src/MSM.cpp,$(wildcard MSM/src/*.cpp)) | |||||
| # modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
| MSM_CUSTOM = ADSR BlankPanel Delay LFO LowFrequencyOscillator Mult Noise OP VCA VCO sawTable triTable | MSM_CUSTOM = ADSR BlankPanel Delay LFO LowFrequencyOscillator Mult Noise OP VCA VCO sawTable triTable | ||||
| # -------------------------------------------------------------- | |||||
| # Nonlinear Circuits | |||||
| PLUGIN_FILES += $(filter-out nonlinearcircuits/src/NLC.cpp,$(wildcard nonlinearcircuits/src/*.cpp)) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Orbits | # Orbits | ||||
| @@ -1581,6 +1586,13 @@ $(BUILD_DIR)/MSM/%.cpp.o: MSM/%.cpp | |||||
| -DpluginInstance=pluginInstance__MSM \ | -DpluginInstance=pluginInstance__MSM \ | ||||
| -DDARKTHEME | -DDARKTHEME | ||||
| $(BUILD_DIR)/nonlinearcircuits/%.cpp.o: nonlinearcircuits/%.cpp | |||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
| @echo "Compiling $<" | |||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||||
| $(foreach m,$(NONLINEARCIRCUITS_CUSTOM),$(call custom_module_names,$(m),nonlinearcircuits)) \ | |||||
| -DpluginInstance=pluginInstance__nonlinearcircuits | |||||
| $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp | $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit d7c3763ba3f801a3cfe98c49dfb7419a1477fd46 | |||||
| @@ -610,6 +610,9 @@ extern Model* modelBlankPanel; | |||||
| #undef modelVCA | #undef modelVCA | ||||
| #undef modelVCO | #undef modelVCO | ||||
| // Nonlinear Circuits | |||||
| #include "nonlinearcircuits/src/NLC.hpp" | |||||
| // Orbits | // Orbits | ||||
| #include "Orbits/src/plugin.hpp" | #include "Orbits/src/plugin.hpp" | ||||
| @@ -735,6 +738,7 @@ Plugin* pluginInstance__MockbaModular; | |||||
| Plugin* pluginInstance__Mog; | Plugin* pluginInstance__Mog; | ||||
| extern Plugin* pluginInstance__mscHack; | extern Plugin* pluginInstance__mscHack; | ||||
| Plugin* pluginInstance__MSM; | Plugin* pluginInstance__MSM; | ||||
| Plugin* pluginInstance__nonlinearcircuits; | |||||
| Plugin* pluginInstance__Orbits; | Plugin* pluginInstance__Orbits; | ||||
| Plugin* pluginInstance__PathSet; | Plugin* pluginInstance__PathSet; | ||||
| Plugin* pluginInstance__Prism; | Plugin* pluginInstance__Prism; | ||||
| @@ -2215,6 +2219,30 @@ static void initStatic__MSM() | |||||
| } | } | ||||
| } | } | ||||
| static void initStatic__nonlinearcircuits() | |||||
| { | |||||
| Plugin* const p = new Plugin; | |||||
| pluginInstance__nonlinearcircuits = p; | |||||
| const StaticPluginLoader spl(p, "nonlinearcircuits"); | |||||
| if (spl.ok()) | |||||
| { | |||||
| p->addModel(model4Seq); | |||||
| p->addModel(modelCipher); | |||||
| p->addModel(modelBOOLs); | |||||
| p->addModel(modelDivideConquer); | |||||
| p->addModel(modelDivineCMOS); | |||||
| p->addModel(modelDoubleNeuron); | |||||
| p->addModel(modelGenie); | |||||
| p->addModel(modelLetsSplosh); | |||||
| p->addModel(modelNeuron); | |||||
| p->addModel(modelNumberwang); | |||||
| p->addModel(modelSegue); | |||||
| p->addModel(modelSquidAxon); | |||||
| p->addModel(modelStatues); | |||||
| } | |||||
| } | |||||
| static void initStatic__Orbits() | static void initStatic__Orbits() | ||||
| { | { | ||||
| Plugin* const p = new Plugin; | Plugin* const p = new Plugin; | ||||
| @@ -2494,6 +2522,7 @@ void initStaticPlugins() | |||||
| initStatic__Mog(); | initStatic__Mog(); | ||||
| initStatic__mscHack(); | initStatic__mscHack(); | ||||
| initStatic__MSM(); | initStatic__MSM(); | ||||
| initStatic__nonlinearcircuits(); | |||||
| initStatic__Orbits(); | initStatic__Orbits(); | ||||
| initStatic__PathSet(); | initStatic__PathSet(); | ||||
| initStatic__Prism(); | initStatic__Prism(); | ||||
| @@ -265,6 +265,20 @@ static const struct { | |||||
| { "/kocmoc/res/SKF.svg", {}, -1 }, | { "/kocmoc/res/SKF.svg", {}, -1 }, | ||||
| { "/kocmoc/res/SVF.svg", {}, -1 }, | { "/kocmoc/res/SVF.svg", {}, -1 }, | ||||
| { "/kocmoc/res/TRG.svg", {}, -1 }, | { "/kocmoc/res/TRG.svg", {}, -1 }, | ||||
| // CC0-1.0 | |||||
| { "/nonlinearcircuits/res/NLC - 4seq.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - 8 BIT CIPHER.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/BOOLs2.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - DIVIDE & CONQUER.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - DIVINE CMOS.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/DoubleNeuronRef.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - GENiE.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/LetsSplosh.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - NEURON.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - NUMBERWANG.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - SEGUE.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/squid-axon-papernoise-panel2.svg", {}, -1 }, | |||||
| { "/nonlinearcircuits/res/NLC - STATUES.svg", {}, -1 }, | |||||
| // GPL-3.0-or-later | // GPL-3.0-or-later | ||||
| { "/PathSet/res/AstroVibe.svg", {}, -1 }, | { "/PathSet/res/AstroVibe.svg", {}, -1 }, | ||||
| { "/PathSet/res/IceTray.svg", {}, -1 }, | { "/PathSet/res/IceTray.svg", {}, -1 }, | ||||
| @@ -365,6 +379,29 @@ static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const c | |||||
| } | } | ||||
| } | } | ||||
| // Special case for Nonlinear Circuits | |||||
| if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/nonlinearcircuits/", 19) == 0) | |||||
| { | |||||
| switch (paint.color) | |||||
| { | |||||
| case 0xff9a7900: | |||||
| case 0xff96782c: | |||||
| case 0xff6a07ae: | |||||
| case 0xffcf8044: | |||||
| case 0xff2ac6ba: | |||||
| case 0xff5ba85c: | |||||
| case 0xffa97b00: | |||||
| case 0xff9f7a00: | |||||
| case 0xffff7300: | |||||
| case 0xffa47b00: | |||||
| case 0xffb09423: | |||||
| return false; | |||||
| case 0xffffffff: | |||||
| paint.color = 0x00000000; | |||||
| return true; | |||||
| } | |||||
| } | |||||
| // Special case for PathSet colors | // Special case for PathSet colors | ||||
| if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) | if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) | ||||
| { | { | ||||