Add HetrickCV (#69)

* try to add HetrickCV

* specify modules separately

* HetrickCV builds

* custom MidSide; invert panels; add to LICENSES file

* undo trailing whitespace removal in docs; add res symlink
This commit is contained in:
dreamer 2021-12-05 17:34:56 +01:00 committed by GitHub
parent 16f1afc73c
commit 8134b2b679
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 172 additions and 1 deletions

3
.gitmodules vendored
View file

@ -100,3 +100,6 @@
[submodule "plugins/GlueTheGiant"]
path = plugins/GlueTheGiant
url = https://github.com/gluethegiant/gtg-rack.git
[submodule "plugins/HetrickCV"]
path = plugins/HetrickCV
url = https://github.com/mhetrick/hetrickcv.git

View file

@ -31,6 +31,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule
| Fundamental | GPL-3.0-or-later | |
| Glue the Giant | GPL-3.0-or-later | |
| Grande | GPL-3.0-or-later | |
| HetrickCV | CC0-1.0 | |
| Impromptu | GPL-3.0-or-later | |
| JW-Modules | BSD-3-Clause | |
| MindMeld | GPL-3.0-or-later | |

1
plugins/HetrickCV Submodule

@ -0,0 +1 @@
Subproject commit 2fc83df75154c32b83addd3ed68b35eb6156ca0d

View file

@ -435,6 +435,18 @@ PLUGIN_FILES += $(filter-out GlueTheGiant/src/plugin.cpp,$(wildcard GlueTheGiant
PLUGIN_FILES += $(filter-out GrandeModular/src/plugin.cpp,$(wildcard GrandeModular/src/*.cpp))
# --------------------------------------------------------------
# HetrickCV
PLUGIN_FILES += $(wildcard HetrickCV/src/*.cpp)
PLUGIN_FILES += $(wildcard HetrickCV/src/DSP/*.cpp)
PLUGIN_FILES += $(wildcard HetrickCV/Gamma/src/arr.cpp)
PLUGIN_FILES += $(wildcard HetrickCV/Gamma/src/Domain.cpp)
PLUGIN_FILES += $(wildcard HetrickCV/Gamma/src/scl.cpp)
# modules/types which are present in other plugins
HETRICKCV_CUSTOM = ASR BlankPanel FlipFlop MidSide
# --------------------------------------------------------------
# ImpromptuModular
@ -992,6 +1004,15 @@ $(BUILD_DIR)/GrandeModular/%.cpp.o: GrandeModular/%.cpp
-Wno-missing-braces \
-Wno-self-assign
$(BUILD_DIR)/HetrickCV/%.cpp.o: HetrickCV/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(HETRICKCV_CUSTOM),$(call custom_module_names,$(m),HetrickCV)) \
-DpluginInstance=pluginInstance__HetrickCV \
-IHetrickCV/Gamma \
-Wno-unused-but-set-variable
$(BUILD_DIR)/ImpromptuModular/src/Foundr%.cpp.o: ImpromptuModular/src/Foundr%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"

View file

@ -304,6 +304,51 @@ extern Model *modelWriteSeq32;
extern Model *modelWriteSeq64;
extern Model *modelBlankPanel;
// HetrickCV
#define modelASR modelHetrickCVASR
#define modelBlankPanel modelHetrickCVBlankPanel
#define modelFlipFlop modelHetrickCVFlipFlop
#define modelMidSide modelHetrickCVMidSide
extern Model *modelTwoToFour;
extern Model *modelAnalogToDigital;
extern Model *modelASR;
extern Model *modelBinaryGate;
extern Model *modelBinaryNoise;
extern Model *modelBitshift;
extern Model *modelBlankPanel;
extern Model *modelBoolean3;
extern Model *modelChaos1Op;
extern Model *modelChaos2Op;
extern Model *modelChaos3Op;
extern Model *modelChaoticAttractors;
extern Model *modelClockedNoise;
extern Model *modelComparator;
extern Model *modelContrast;
extern Model *modelCrackle;
extern Model *modelDataCompander;
extern Model *modelDelta;
extern Model *modelDigitalToAnalog;
extern Model *modelDust;
extern Model *modelExponent;
extern Model *modelFBSineChaos;
extern Model *modelFlipFlop;
extern Model *modelFlipPan;
extern Model *modelGateJunction;
extern Model *modelGingerbread;
extern Model *modelLogicCombine;
extern Model *modelMidSide;
extern Model *modelMinMax;
extern Model *modelRandomGates;
extern Model *modelRotator;
extern Model *modelRungler;
extern Model *modelScanner;
extern Model *modelWaveshape;
extern Model *modelXYToPolar;
#undef modelASR
#undef modelBlankPanel
#undef modelFlipFlop
#undef modelMidSide
// JW-Modules
#define modelQuantizer modelJWQuantizer
#include "JW-Modules/src/JWModules.hpp"
@ -418,6 +463,7 @@ Plugin* pluginInstance__FehlerFabrik;
Plugin* pluginInstance__Fundamental;
Plugin* pluginInstance__GrandeModular;
Plugin* pluginInstance__GlueTheGiant;
Plugin* pluginInstance__HetrickCV;
extern Plugin* pluginInstance__ImpromptuModular;
Plugin* pluginInstance__JW;
extern Plugin* pluginInstance__MindMeld;
@ -1259,6 +1305,60 @@ static void initStatic__GrandeModular()
}
}
static void initStatic__HetrickCV()
{
Plugin* const p = new Plugin;
pluginInstance__HetrickCV = p;
const StaticPluginLoader spl(p, "HetrickCV");
if (spl.ok())
{
#define modelASR modelHetrickCVASR
#define modelBlankPanel modelHetrickCVBlankPanel
#define modelFlipFlop modelHetrickCVFlipFlop
#define modelMidSide modelHetrickCVMidSide
p->addModel(modelTwoToFour);
p->addModel(modelAnalogToDigital);
p->addModel(modelASR);
p->addModel(modelBinaryGate);
p->addModel(modelBinaryNoise);
p->addModel(modelBitshift);
p->addModel(modelBlankPanel);
p->addModel(modelBoolean3);
p->addModel(modelChaos1Op);
p->addModel(modelChaos2Op);
p->addModel(modelChaos3Op);
p->addModel(modelChaoticAttractors);
p->addModel(modelClockedNoise);
p->addModel(modelComparator);
p->addModel(modelContrast);
p->addModel(modelCrackle);
p->addModel(modelDataCompander);
p->addModel(modelDelta);
p->addModel(modelDigitalToAnalog);
p->addModel(modelDust);
p->addModel(modelExponent);
p->addModel(modelFBSineChaos);
p->addModel(modelFlipFlop);
p->addModel(modelFlipPan);
p->addModel(modelGateJunction);
p->addModel(modelGingerbread);
p->addModel(modelLogicCombine);
p->addModel(modelMidSide);
p->addModel(modelMinMax);
p->addModel(modelRandomGates);
p->addModel(modelRotator);
p->addModel(modelRungler);
p->addModel(modelScanner);
p->addModel(modelWaveshape);
p->addModel(modelXYToPolar);
#undef modelASR
#undef modelBlankPanel
#undef modelFlipFlop
#undef modelMidSide
}
}
static void initStatic__ImpromptuModular()
{
Plugin* const p = new Plugin;
@ -1388,7 +1488,7 @@ static void initStatic__mscHack()
p->addModel(modelSynthDrums);
p->addModel(modelSEQ_6x32x16);
p->addModel(modelMasterClockx4);
//p->addModel(modelMasterClockx8);
//p->addModel(modelMasterClockx8);
p->addModel(modelSEQ_Envelope_8);
p->addModel(modelSeq_Triad2);
p->addModel(modelARP700);
@ -1585,6 +1685,7 @@ void initStaticPlugins()
initStatic__Fundamental();
initStatic__GlueTheGiant();
initStatic__GrandeModular();
initStatic__HetrickCV();
initStatic__ImpromptuModular();
initStatic__JW();
initStatic__MindMeld();

1
plugins/res/HetrickCV Symbolic link
View file

@ -0,0 +1 @@
../HetrickCV/res

View file

@ -375,6 +375,49 @@ static const struct {
{ "/DrumKit/Tomi.svg", {}, -1 },
{ "/ESeries/E340.svg", {}, -1 },
{ "/Fundamental/VCA.svg", {}, -1 },
{ "/HetrickCV/1OpChaos.svg", {}, -1},
{ "/HetrickCV/2OpChaos.svg", {}, -1},
{ "/HetrickCV/2To4.svg", {}, -1},
{ "/HetrickCV/3OpChaos.svg", {}, -1},
{ "/HetrickCV/ASR.svg", {}, -1},
{ "/HetrickCV/AToD.svg", {}, -1},
{ "/HetrickCV/BinaryGate.svg", {}, -1},
{ "/HetrickCV/BinaryNoise.svg", {}, -1},
{ "/HetrickCV/Bitshift.svg", {}, -1},
{ "/HetrickCV/Boolean3.svg", {}, -1},
{ "/HetrickCV/ChaoticAttractors.svg", {}, -1},
{ "/HetrickCV/ClockedNoise.svg", {}, -1},
{ "/HetrickCV/Comparator.svg", {}, -1},
{ "/HetrickCV/Contrast.svg", {}, -1},
{ "/HetrickCV/Crackle.svg", {}, -1},
{ "/HetrickCV/DataCompander.svg", {}, -1},
{ "/HetrickCV/Delta.svg", {}, -1},
{ "/HetrickCV/DToA.svg", {}, -1},
{ "/HetrickCV/Dust.svg", {}, -1},
{ "/HetrickCV/Exponent.svg", {}, -1},
{ "/HetrickCV/FBSineChaos.svg", {}, -1},
{ "/HetrickCV/FlipFlop.svg", {}, -1},
{ "/HetrickCV/FlipPan.svg", {}, -1},
{ "/HetrickCV/GateJunction.svg", {}, -1},
{ "/HetrickCV/Gingerbread.svg", {}, -1},
{ "/HetrickCV/LogicCombiner.svg", {}, -1},
{ "/HetrickCV/LogicInverter.svg", {}, -1},
{ "/HetrickCV/MidSide.svg", {}, -1},
{ "/HetrickCV/MinMax.svg", {}, -1},
{ "/HetrickCV/RandomGates.svg", {}, -1},
{ "/HetrickCV/Rotator.svg", {}, -1},
{ "/HetrickCV/Rungler.svg", {}, -1},
{ "/HetrickCV/Scanner.svg", {}, -1},
{ "/HetrickCV/TrigShaper.svg", {}, -1},
{ "/HetrickCV/Waveshape.svg", {}, -1},
{ "/HetrickCV/XYToPolar.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel1.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel2.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel3.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel5.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel6.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel7.svg", {}, -1},
{ "/HetrickCV/Blanks/BlankPanel8.svg", {}, -1},
{ "/JW-Modules/Add5.svg", {}, -1 },
{ "/JW-Modules/BlankPanel1hp.svg", {}, -1 },
{ "/JW-Modules/BlankPanelLarge.svg", {}, -1 },