@@ -184,3 +184,6 @@ | |||||
[submodule "plugins/nonlinearcircuits"] | [submodule "plugins/nonlinearcircuits"] | ||||
path = plugins/nonlinearcircuits | path = plugins/nonlinearcircuits | ||||
url = https://github.com/mhetrick/nonlinearcircuits.git | url = https://github.com/mhetrick/nonlinearcircuits.git | ||||
[submodule "plugins/voxglitch"] | |||||
path = plugins/voxglitch | |||||
url = https://github.com/clone45/voxglitch.git |
@@ -155,6 +155,7 @@ At the moment the following 3rd-party modules are provided: | |||||
- stocaudio | - stocaudio | ||||
- Substation Opensource | - Substation Opensource | ||||
- Valley | - Valley | ||||
- Voxglitch | |||||
- ZetaCarinae | - ZetaCarinae | ||||
- ZZC | - ZZC | ||||
@@ -66,6 +66,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||||
| Sonus Modular | GPL-3.0-or-later | | | | Sonus Modular | GPL-3.0-or-later | | | ||||
| stocaudio | GPL-3.0-or-later | | | | stocaudio | GPL-3.0-or-later | | | ||||
| Valley | GPL-3.0-or-later | | | | Valley | GPL-3.0-or-later | | | ||||
| Voxglitch | GPL-3.0-or-later | [License still to be applied in the repo](https://github.com/clone45/voxglitch/issues/123) | | |||||
| ZetaCarinae | GPL-3.0-or-later | | | | ZetaCarinae | GPL-3.0-or-later | | | ||||
| ZZC | GPL-3.0-or-later | | | | ZZC | GPL-3.0-or-later | | | ||||
@@ -185,6 +186,8 @@ Below is a list of artwork licenses from plugins | |||||
| ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | ||||
| ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | | | | ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | | | ||||
| ValleyAudio/ShareTechMono-*.ttf | OFL-1.1-RFN | | | | ValleyAudio/ShareTechMono-*.ttf | OFL-1.1-RFN | | | ||||
| voxglitch/* | BSD-3-Clause | No artwork specific license provided | | |||||
| voxglitch/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | |||||
| ZetaCarinaeModules/* | GPL-3.0-or-later | [Same license as source code](https://github.com/mhampton/ZetaCarinaeModules/issues/8) | | | ZetaCarinaeModules/* | GPL-3.0-or-later | [Same license as source code](https://github.com/mhampton/ZetaCarinaeModules/issues/8) | | ||||
| ZZC/* | CC-BY-NC-SA-4.0 | | | | ZZC/* | CC-BY-NC-SA-4.0 | | | ||||
| ZZC/panels/* | CC-BY-NC-SA-4.0 | NOTE: The ZZC Logo is Copyright (c) 2019 Sergey Ukolov and cannot be used in derivative works; Cardinal's use does not officially constitute derivative work. | | | ZZC/panels/* | CC-BY-NC-SA-4.0 | NOTE: The ZZC Logo is Copyright (c) 2019 Sergey Ukolov and cannot be used in derivative works; Cardinal's use does not officially constitute derivative work. | | ||||
@@ -820,6 +820,14 @@ PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | |||||
VALLEYAUDIO_CUSTOM = $(DRWAV) DigitalDisplay | VALLEYAUDIO_CUSTOM = $(DRWAV) DigitalDisplay | ||||
VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | ||||
# -------------------------------------------------------------- | |||||
# Voxglitch | |||||
PLUGIN_FILES += $(filter-out voxglitch/src/plugin.cpp,$(wildcard voxglitch/src/*.cpp)) | |||||
# modules/types which are present in other plugins | |||||
VOXGLITCH_CUSTOM = $(DRWAV) Readout | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# ZetaCarinaeModules | # ZetaCarinaeModules | ||||
@@ -1679,6 +1687,13 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp | |||||
-Wno-sign-compare \ | -Wno-sign-compare \ | ||||
-Wno-unused-but-set-variable | -Wno-unused-but-set-variable | ||||
$(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp | |||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
@echo "Compiling $<" | |||||
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||||
$(foreach m,$(VOXGLITCH_CUSTOM),$(call custom_module_names,$(m),Voxglitch)) \ | |||||
-DpluginInstance=pluginInstance__Voxglitch | |||||
$(BUILD_DIR)/ZetaCarinaeModules/%.cpp.o: ZetaCarinaeModules/%.cpp | $(BUILD_DIR)/ZetaCarinaeModules/%.cpp.o: ZetaCarinaeModules/%.cpp | ||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
@echo "Compiling $<" | @echo "Compiling $<" | ||||
@@ -665,6 +665,9 @@ extern Model* modelFilterPlus; | |||||
// ValleyAudio | // ValleyAudio | ||||
#include "ValleyAudio/src/Valley.hpp" | #include "ValleyAudio/src/Valley.hpp" | ||||
// Voxglitch | |||||
#include "voxglitch/src/plugin.hpp" | |||||
// ZetaCarinaeModules | // ZetaCarinaeModules | ||||
#include "ZetaCarinaeModules/src/plugin.hpp" | #include "ZetaCarinaeModules/src/plugin.hpp" | ||||
@@ -748,6 +751,7 @@ Plugin* pluginInstance__sonusmodular; | |||||
Plugin* pluginInstance__stocaudio; | Plugin* pluginInstance__stocaudio; | ||||
Plugin* pluginInstance__substation; | Plugin* pluginInstance__substation; | ||||
Plugin* pluginInstance__ValleyAudio; | Plugin* pluginInstance__ValleyAudio; | ||||
Plugin* pluginInstance__Voxglitch; | |||||
Plugin* pluginInstance__ZetaCarinaeModules; | Plugin* pluginInstance__ZetaCarinaeModules; | ||||
Plugin* pluginInstance__ZZC; | Plugin* pluginInstance__ZZC; | ||||
#endif // NOPLUGINS | #endif // NOPLUGINS | ||||
@@ -2430,6 +2434,37 @@ static void initStatic__ValleyAudio() | |||||
} | } | ||||
} | } | ||||
static void initStatic__Voxglitch() | |||||
{ | |||||
Plugin* p = new Plugin; | |||||
pluginInstance__Voxglitch = p; | |||||
const StaticPluginLoader spl(p, "voxglitch"); | |||||
if (spl.ok()) | |||||
{ | |||||
p->addModel(modelAutobreak); | |||||
p->addModel(modelByteBeat); | |||||
p->addModel(modelDigitalProgrammer); | |||||
p->addModel(modelDigitalSequencer); | |||||
p->addModel(modelDigitalSequencerXP); | |||||
p->addModel(modelGlitchSequencer); | |||||
p->addModel(modelGhosts); | |||||
p->addModel(modelGoblins); | |||||
p->addModel(modelGrainEngine); | |||||
p->addModel(modelGrainEngineMK2); | |||||
p->addModel(modelGrainEngineMK2Expander); | |||||
p->addModel(modelGrainFx); | |||||
p->addModel(modelHazumi); | |||||
p->addModel(modelLooper); | |||||
p->addModel(modelRepeater); | |||||
p->addModel(modelSamplerX8); | |||||
p->addModel(modelSatanonaut); | |||||
p->addModel(modelWavBank); | |||||
p->addModel(modelWavBankMC); | |||||
p->addModel(modelXY); | |||||
} | |||||
} | |||||
static void initStatic__ZetaCarinaeModules() | static void initStatic__ZetaCarinaeModules() | ||||
{ | { | ||||
Plugin* p = new Plugin; | Plugin* p = new Plugin; | ||||
@@ -2532,6 +2567,7 @@ void initStaticPlugins() | |||||
initStatic__stocaudio(); | initStatic__stocaudio(); | ||||
initStatic__substation(); | initStatic__substation(); | ||||
initStatic__ValleyAudio(); | initStatic__ValleyAudio(); | ||||
initStatic__Voxglitch(); | |||||
initStatic__ZetaCarinaeModules(); | initStatic__ZetaCarinaeModules(); | ||||
initStatic__ZZC(); | initStatic__ZZC(); | ||||
#endif // NOPLUGINS | #endif // NOPLUGINS | ||||
@@ -0,0 +1 @@ | |||||
Subproject commit c391e1a83b73b38125fb007117c40d0f5ee2091c |
@@ -283,6 +283,26 @@ static const struct { | |||||
{ "/PathSet/res/AstroVibe.svg", {}, -1 }, | { "/PathSet/res/AstroVibe.svg", {}, -1 }, | ||||
{ "/PathSet/res/IceTray.svg", {}, -1 }, | { "/PathSet/res/IceTray.svg", {}, -1 }, | ||||
{ "/PathSet/res/ShiftyMod.svg", {}, -1 }, | { "/PathSet/res/ShiftyMod.svg", {}, -1 }, | ||||
// BSD-3-Clause | |||||
{ "/voxglitch/res/autobreak_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/bytebeat_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/digital_programmer_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/digital_sequencer_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/digital_sequencer_xp_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/ghosts_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/glitch_sequencer_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/goblins_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/grain_engine_mk2_expander_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/grain_engine_mk2_front_panel_r3.svg", {}, -1 }, | |||||
{ "/voxglitch/res/grain_fx_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/hazumi_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/looper_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/repeater_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/samplerx8_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/satanonaut_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/wav_bank_front_panel.svg", {}, -1 }, | |||||
{ "/voxglitch/res/wav_bank_mc_front_panel_v2.svg", {}, -1 }, | |||||
{ "/voxglitch/res/xy_front_panel.svg", {}, -1 }, | |||||
}; | }; | ||||
static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | ||||
@@ -458,6 +478,24 @@ static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const c | |||||
} | } | ||||
} | } | ||||
// Special case for voxglitch colors | |||||
if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/voxglitch/", 11) == 0) | |||||
{ | |||||
switch (paint.color) | |||||
{ | |||||
// wavbank blue | |||||
case 0xffc5ae8a: | |||||
// various black | |||||
case 0xff121212: | |||||
case 0xff2a2828: | |||||
return false; | |||||
// satanonaut | |||||
case 0xff595959: | |||||
paint.color = 0x7f3219ac; | |||||
return true; | |||||
} | |||||
} | |||||
switch (paint.color) | switch (paint.color) | ||||
{ | { | ||||
// scopes or other special things (do nothing) | // scopes or other special things (do nothing) | ||||