Feature/add aaron static (#179)

* preliminary Aaron Static work

* build fix (override, needs work); color invert

* put color exception somewhere else
This commit is contained in:
dreamer 2022-02-26 02:10:26 +01:00 committed by GitHub
parent e42d689cd3
commit 1c7e2f4386
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 51 additions and 0 deletions

3
.gitmodules vendored
View file

@ -175,3 +175,6 @@
[submodule "plugins/Algoritmarte"]
path = plugins/Algoritmarte
url = https://github.com/algoritmarte/AlgoritmarteVCVPlugin.git
[submodule "plugins/AaronStatic"]
path = plugins/AaronStatic
url = https://github.com/aaronstatic/AaronStatic_modules.git

View file

@ -104,6 +104,7 @@ At the moment the following 3rd-party modules are provided:
- 21kHz
- 8Mode
- Aaron Static
- AlgoritmArte
- Amalgamated Harmonics
- Animated Circuits

View file

@ -15,6 +15,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
| Rack | GPL-3.0-or-later | The actual Rack code, internal dependencies are compatible with GPLv3+ |
| 21kHz | MIT | |
| 8Mode | BSD-3-Clause | |
| Aaron Static | MIT | |
| AlgoritmArte | GPL-3.0-or-later | |
| Amalgamated Harmonics | BSD-3-Clause | |
| Animated Circuits | GPL-3.0-or-later | |
@ -84,6 +85,8 @@ Below is a list of artwork licenses from plugins
|-----------------------------------------|------------------|------------------|
| 21kHz | MIT | No artwork specific license provided |
| 8Mode | BSD-3-Clause | No artwork specific license provided |
| AaronStatic/* | MIT | No artwork specific license provided |
| AaronStatic/fonts/PixelOperator.ttf | CC0-1.0 | |
| Algoritmarte/* | GPL-3.0-or-later | No artwork specific license provided |
| Algoritmarte/LEDSliderGreenHandle.svg | CC-BY-NC-4.0 | |
| AmalgamatedHarmonics/* | BSD-3-Clause | No artwork specific license provided |

1
plugins/AaronStatic Submodule

@ -0,0 +1 @@
Subproject commit 4ace0a1789c577ee4eb12dc03da5271f80598d62

View file

@ -238,6 +238,11 @@ PLUGIN_FILES += $(filter-out 8Mode/src/plugin.cpp,$(wildcard 8Mode/src/*.cpp))
PLUGIN_FILES += $(filter-out Algoritmarte/src/plugin.cpp,$(wildcard Algoritmarte/src/*.cpp))
# --------------------------------------------------------------
# Aaron Static
PLUGIN_FILES += $(wildcard AaronStatic/src/*.cpp)
# --------------------------------------------------------------
# AmalgamatedHarmonics
@ -1151,6 +1156,14 @@ $(BUILD_DIR)/8Mode/%.cpp.o: 8Mode/%.cpp
$(foreach m,$(8MODE_CUSTOM),$(call custom_module_names,$(m),8Mode)) \
-DpluginInstance=pluginInstance__8Mode
$(BUILD_DIR)/AaronStatic/%.cpp.o: AaronStatic/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(AARONSTATIC_CUSTOM),$(call custom_module_names,$(m),AaronStatic)) \
-DpluginInstance=pluginInstance__AaronStatic \
-Dinit=init__AaronStatic
$(BUILD_DIR)/Algoritmarte/%.cpp.o: Algoritmarte/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"

View file

@ -30,6 +30,13 @@
// 8Mode
#include "8Mode/src/8mode.hpp"
// Aaron Static
#include "AaronStatic/src/plugin.hpp"
// Nasty override of this required function for now:
NVGcolor prepareDisplay(NVGcontext *vg, Rect *box, int fontSize) {
return nvgRGB(0xaf, 0xd2, 0x2c);
}
// Algoritmarte
#include "Algoritmarte/src/plugin.hpp"
@ -646,6 +653,7 @@ Plugin* pluginInstance__Cardinal;
#ifndef NOPLUGINS
Plugin* pluginInstance__21kHz;
Plugin* pluginInstance__8Mode;
Plugin* pluginInstance__AaronStatic;
Plugin* pluginInstance__Algoritmarte;
Plugin* pluginInstance__AmalgamatedHarmonics;
Plugin* pluginInstance__AnimatedCircuits;
@ -867,6 +875,21 @@ static void initStatic__8Mode()
}
}
static void initStatic__AaronStatic()
{
Plugin* const p = new Plugin;
pluginInstance__AaronStatic = p;
const StaticPluginLoader spl(p, "AaronStatic");
if (spl.ok())
{
p->addModel(modelChordCV);
p->addModel(modelScaleCV);
p->addModel(modelRandomNoteCV);
p->addModel(modelDiatonicCV);
}
}
static void initStatic__Algoritmarte()
{
Plugin* const p = new Plugin;
@ -2340,6 +2363,7 @@ void initStaticPlugins()
#ifndef NOPLUGINS
initStatic__21kHz();
initStatic__8Mode();
initStatic__AaronStatic();
initStatic__Algoritmarte();
initStatic__AmalgamatedHarmonics();
initStatic__AnimatedCircuits();

View file

@ -56,6 +56,11 @@ static const struct {
{ "/21kHz/res/Panels/D_Inf.svg", {}, -1 },
{ "/21kHz/res/Panels/PalmLoop.svg", {}, -1 },
{ "/21kHz/res/Panels/TachyonEntangler.svg", {}, -1 },
// MIT
{"/AaronStatic/res/ChordCV.svg", {}, -1 },
{"/AaronStatic/res/DiatonicCV.svg", {}, -1 },
{"/AaronStatic/res/RandomNoteCV.svg", {}, -1 },
{"/AaronStatic/res/ScaleCV.svg", {}, -1 },
// GPL3.0-or-later
{ "/Algoritmarte/res/Clockkky.svg", {}, -1 },
{ "/Algoritmarte/res/CyclicCA.svg", {}, -1 },
@ -442,6 +447,7 @@ static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const c
case 0xff0095fe:
case 0xff4d9a4d:
case 0xff4d4d9a:
case 0xff0187fc:
return false;
// pure black (convert to not quite pure white)
case 0xff000000: