diff --git a/.gitmodules b/.gitmodules index 8460a099..41435ee7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -248,6 +248,9 @@ [submodule "plugins/Biset"] path = plugins/Biset url = https://github.com/gibbonjoyeux/VCV-Biset.git +[submodule "plugins/LOGinstruments"] + path = plugins/LOGinstruments + url = https://github.com/LOGUNIVPM/LOGinstruments.git [submodule "plugins/PdArray"] path = plugins/PdArray url = https://github.com/mgunyho/PdArray.git @@ -259,5 +262,4 @@ url = https://github.com/Rcomian/rcm-modules.git [submodule "plugins/admiral"] path = plugins/admiral - url = https://github.com/wapiflapi/admiral.git - + url = https://github.com/wapiflapi/admiral.git \ No newline at end of file diff --git a/README.md b/README.md index 3de00ba0..105b5b44 100644 --- a/README.md +++ b/README.md @@ -166,6 +166,7 @@ At the moment the following 3rd-party modules are provided: - [LifeFormModular](https://github.com/TimeControlledOrganism/LifeFormModular) - [Lilac Loop](https://grough.github.io/lilac-loop-vcv) - [Little Utils](https://github.com/mgunyho/Little-Utils) +- [LOGinstruments](https://github.com/LOGUNIVPM/LOGinstruments) - [Lomas Modules](https://github.com/LomasModules/LomasModules) - [Lyrae Modules](https://github.com/VegaDeftwing/LyraeModules) - [Meander](https://github.com/knchaffin/Meander) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 7e171186..ffdcb89e 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -60,6 +60,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | LifeFormModular | MIT | | | Lilac Loop | GPL-3.0-or-later | | | Little Utils | EUPL-1.2 | | +| LOGinstruments | BSD-3-Clause | | | Lomas Modules | GPL-3.0-or-later | | | Lyrae Modules | GPL-3.0-or-later | | | Meander | GPL-3.0-or-later | | @@ -208,6 +209,8 @@ Below is a list of artwork licenses from plugins | LittleUtils/fonts/CooperHewitt-*.ttf | OFL-1.1-RFN | | | LittleUtils/fonts/Overpass-*.ttf | OFL-1.1-RFN | | | LittleUtils/fonts/RobotoMono-*.ttf | Apache-2.0 | | +| LOGinstruments/* | BSD-3-Clause | No artwork specific license provided | +| LOGinstruments/DejaVuSansMono.ttf | Bitstream Vera | | | LomasModules/* | GPL-3.0-or-later | [Same license as source code](https://github.com/LomasModules/LomasModules/issues/26) | | LomasModules/Fonts/FiraMono-Bold.ttf | OFL-1.1-RFN | | | LyraeModules/* | CC-BY-NC-SA-4.0 | | diff --git a/plugins/LOGinstruments b/plugins/LOGinstruments new file mode 160000 index 00000000..1fc62faf --- /dev/null +++ b/plugins/LOGinstruments @@ -0,0 +1 @@ +Subproject commit 1fc62fafe66bd622432db895a09ef1e3afc4531c diff --git a/plugins/Makefile b/plugins/Makefile index 58bd3006..683f0bc1 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -858,6 +858,12 @@ PLUGIN_FILES += $(filter-out LittleUtils/src/plugin.cpp,$(wildcard LittleUtils/s # modules/types which are present in other plugins LITTLEUTILS_CUSTOM = MsDisplayWidget +# -------------------------------------------------------------- +# LOGinstruments + +PLUGIN_FILES += $(filter-out LOGinstruments/src/LOGinstruments.cpp,$(wildcard LOGinstruments/src/*.cpp)) +PLUGIN_FILES += LOGinstruments/src/kiss_fft.c + # -------------------------------------------------------------- # LomasModules @@ -2555,6 +2561,13 @@ $(BUILD_DIR)/LittleUtils/%.cpp.o: LittleUtils/%.cpp $(foreach m,$(LITTLEUTILS_CUSTOM),$(call custom_module_names,$(m),LittleUtils)) \ -DpluginInstance=pluginInstance__LittleUtils +$(BUILD_DIR)/LOGinstruments/src/%.o: LOGinstruments/src/% + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(LOGINSTRUMENTS_CUSTOM),$(call custom_module_names,$(m),LOGinstruments)) \ + -DpluginInstance=pluginInstance__LOGinstruments + $(BUILD_DIR)/LomasModules/%.cpp.o: LomasModules/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 0313bf55..884ea7ef 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -596,6 +596,9 @@ extern Model* modelDriftgen; extern Model* modelLooperOne; extern Model* modelLooperTwo; +// LOGinstruments +#include "LOGinstruments/src/LOGinstruments.hpp" + // LomasModules #include "LomasModules/src/plugin.hpp" #undef DR_WAV_IMPLEMENTATION @@ -961,6 +964,7 @@ Plugin* pluginInstance__kocmoc; Plugin* pluginInstance__LifeFormModular; Plugin* pluginInstance__LilacLoop; Plugin* pluginInstance__LittleUtils; +Plugin* pluginInstance__LOGinstruments; Plugin* pluginInstance__Lomas; Plugin* pluginInstance__Lyrae; Plugin* pluginInstance__Meander; @@ -2623,6 +2627,21 @@ static void initStatic__LittleUtils() } } +static void initStatic__LOGinstruments() +{ + Plugin* const p = new Plugin; + pluginInstance__LOGinstruments = p; + + const StaticPluginLoader spl(p, "LOGinstruments"); + if (spl.ok()) + { + p->addModel(modelSpeck); + p->addModel(modelLessMess); + p->addModel(modelVelvet); + p->addModel(modelCrystal); + } +} + static void initStatic__Lomas() { Plugin* const p = new Plugin; @@ -3567,6 +3586,7 @@ void initStaticPlugins() initStatic__LifeFormModular(); initStatic__LilacLoop(); initStatic__LittleUtils(); + initStatic__LOGinstruments(); initStatic__Lomas(); initStatic__Lyrae(); initStatic__Meander(); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 72b76f4a..59ee7bb5 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -58,6 +58,7 @@ enum DarkMode { kModeESeries, kModeLilacLoop, kModeLittleUtils, + kModeLOGinstruments, kModeKocmoc, kModeMyth, kModeNonlinearcircuits, @@ -282,6 +283,11 @@ static const struct { { kModeLittleUtils, "/LittleUtils/res/PulseGenerator.svg", {}, -1 }, { kModeLittleUtils, "/LittleUtils/res/TeleportIn.svg", {}, -1 }, { kModeLittleUtils, "/LittleUtils/res/TeleportOut.svg", {}, -1 }, + // BSD-3 Clause + { kModeLOGinstruments, "/LOGinstruments/res/crystal-nofonts.svg", {}, -1 }, + { kModeLOGinstruments, "/LOGinstruments/res/LessMess_nofonts.svg", {}, -1 }, + { kModeLOGinstruments, "/LOGinstruments/res/Speck_nofonts2.svg", {}, -1 }, + { kModeLOGinstruments, "/LOGinstruments/res/velvet-nofonts.svg", {}, -1 }, // GPL-3.0-or-later { kModeKocmoc, "/kocmoc/res/DDLY.svg", {}, -1 }, { kModeKocmoc, "/kocmoc/res/LADR.svg", {}, -1 }, @@ -628,6 +634,13 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai paint.type = NSVG_PAINT_COLOR; paint.color = 0xff191919; return true; + // Special case for LOGinstruments gradient + case kModeLOGinstruments: + // original color from stop 1 was copied to this stop and made ~25% darker + paint.gradient->stops[0].color = 0xd95c5c5c; + // color was made ~75% darker + paint.gradient->stops[1].color = 0xd91f1f1f; + return false; // Special case for PathSet shifty gradient case kModePathSet: paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue @@ -700,6 +713,15 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai return true; } break; + // Special case for LOGinstruments + case kModeLOGinstruments: + switch (paint.color) + { + // Don't change Speck scope color + case 0xff1a1a1a: + return false; + } + break; // Special case for Nonlinear Circuits case kModeNonlinearcircuits: switch (paint.color)