Signed-off-by: falkTX <falktx@falktx.com>tags/22.02
@@ -1 +1 @@ | |||||
Subproject commit b948516db4bf1d0f5ba5ee4babeb4980721ec036 | |||||
Subproject commit 43569f442ff3c54448dfd3b5d1f93a61faa0bd56 |
@@ -1 +1 @@ | |||||
Subproject commit 98c7e62cfe878f9bc849abda61cfd70e8c1966e5 | |||||
Subproject commit 9a2a2a8f82c3ec9f6eb86c677ff8ba4e7e4aa495 |
@@ -1 +1 @@ | |||||
Subproject commit 1d88a3e0e94542acf8ac95892ce1ff39b68424f3 | |||||
Subproject commit ed6b580f9e205f5d5d1ef6b64d5cf49bac955861 |
@@ -1 +1 @@ | |||||
Subproject commit 71017fc7704bcb24145bee6b6ab1f7fee3340b03 | |||||
Subproject commit fe2c34eddc3064f534f2a2bd8e9e329d39021769 |
@@ -1 +1 @@ | |||||
Subproject commit eab50a469bd24107bcab6a825050a64e3f0f1aa4 | |||||
Subproject commit efdf86ca6f47562bde164d145884de92e5ce5fc8 |
@@ -9,6 +9,10 @@ | |||||
void writeThemeAndContrastAsDefault() {} | |||||
void readThemeAndContrastFromDefault() {} | |||||
void loadThemeAndContrastFromDefault(int* panelTheme, float* panelContrast) { | void loadThemeAndContrastFromDefault(int* panelTheme, float* panelContrast) { | ||||
*panelTheme = 1; | *panelTheme = 1; | ||||
*panelContrast = panelContrastDefault; | *panelContrast = panelContrastDefault; | ||||
@@ -212,7 +212,7 @@ PLUGIN_FILES += $(filter-out AS/src/AS.cpp,$(wildcard AS/src/*.cpp)) | |||||
PLUGIN_FILES += AS/freeverb/revmodel.cpp | PLUGIN_FILES += AS/freeverb/revmodel.cpp | ||||
# modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
AS_CUSTOM = ADSR LabelDisplayWidget LowFrequencyOscillator VCA allpass comb revmodel | |||||
AS_CUSTOM = ADSR LabelDisplayWidget LowFrequencyOscillator VCA YellowRedLight allpass comb revmodel | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Atelier | # Atelier | ||||
@@ -336,7 +336,7 @@ PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp,$(wildcard Befaco/src/*.cpp)) | |||||
PLUGIN_BINARIES += Befaco/src/SpringReverbIR.pcm | PLUGIN_BINARIES += Befaco/src/SpringReverbIR.pcm | ||||
# modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
BEFACO_CUSTOM = ADSR | |||||
BEFACO_CUSTOM = ADSR Mixer | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# Bidoo | # Bidoo | ||||
@@ -390,6 +390,10 @@ PLUGIN_FILES += ESeries/src/E340.cpp | |||||
# Fundamental | # Fundamental | ||||
PLUGIN_FILES += $(filter-out Fundamental/src/plugin.cpp,$(wildcard Fundamental/src/*.cpp)) | PLUGIN_FILES += $(filter-out Fundamental/src/plugin.cpp,$(wildcard Fundamental/src/*.cpp)) | ||||
PLUGIN_FILES += Fundamental/src/dr_wav.c | |||||
# modules/types which are present in other plugins | |||||
FUNDAMENTAL_CUSTOM = $(DRWAV) | |||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
# GrandeModular | # GrandeModular | ||||
@@ -522,7 +526,7 @@ PLUGIN_BINARIES += ValleyAudio/src/VOX_MACH.bin | |||||
PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | ||||
# modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
VALLEYAUDIO_CUSTOM = $(DRWAV) | |||||
VALLEYAUDIO_CUSTOM = $(DRWAV) DigitalDisplay | |||||
VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | ||||
# -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
@@ -847,6 +851,13 @@ $(BUILD_DIR)/ESeries/%.cpp.o: ESeries/%.cpp | |||||
$(foreach m,$(ESERIES_CUSTOM),$(call custom_module_names,$(m),ESeries)) \ | $(foreach m,$(ESERIES_CUSTOM),$(call custom_module_names,$(m),ESeries)) \ | ||||
-DpluginInstance=pluginInstance__ESeries | -DpluginInstance=pluginInstance__ESeries | ||||
$(BUILD_DIR)/Fundamental/%.c.o: Fundamental/%.c | |||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
@echo "Compiling $<" | |||||
$(SILENT)$(CC) $< $(BUILD_C_FLAGS) -c -o $@ \ | |||||
$(foreach m,$(FUNDAMENTAL_CUSTOM),$(call custom_module_names,$(m),Fundamental)) \ | |||||
-DpluginInstance=pluginInstance__Fundamental | |||||
$(BUILD_DIR)/Fundamental/%.cpp.o: Fundamental/%.cpp | $(BUILD_DIR)/Fundamental/%.cpp.o: Fundamental/%.cpp | ||||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
@echo "Compiling $<" | @echo "Compiling $<" | ||||
@@ -1 +1 @@ | |||||
Subproject commit d51e97d77b23b0321231b0bdab8c18f24ae159d7 | |||||
Subproject commit eb0f8f92082eb38600f35170867cd528d898b48e |
@@ -33,9 +33,11 @@ | |||||
// AS | // AS | ||||
#define modelADSR modelASADSR | #define modelADSR modelASADSR | ||||
#define modelVCA modelASVCA | #define modelVCA modelASVCA | ||||
#define YellowRedLight ASYellowRedLight | |||||
#include "AS/src/AS.hpp" | #include "AS/src/AS.hpp" | ||||
#undef modelADSR | #undef modelADSR | ||||
#undef modelVCA | #undef modelVCA | ||||
#undef YellowRedLight | |||||
// Atelier | // Atelier | ||||
#include "Atelier/src/plugin.hpp" | #include "Atelier/src/plugin.hpp" | ||||
@@ -45,8 +47,10 @@ | |||||
// Befaco | // Befaco | ||||
#define modelADSR modelBefacoADSR | #define modelADSR modelBefacoADSR | ||||
#define modelMixer modelBefacoMixer | |||||
#include "Befaco/src/plugin.hpp" | #include "Befaco/src/plugin.hpp" | ||||
#undef modelADSR | #undef modelADSR | ||||
#undef modelMixer | |||||
// Bidoo | // Bidoo | ||||
#include "Bidoo/src/plugin.hpp" | #include "Bidoo/src/plugin.hpp" | ||||
@@ -611,6 +615,7 @@ static void initStatic__Befaco() | |||||
if (spl.ok()) | if (spl.ok()) | ||||
{ | { | ||||
#define modelADSR modelBefacoADSR | #define modelADSR modelBefacoADSR | ||||
#define modelMixer modelBefacoMixer | |||||
p->addModel(modelEvenVCO); | p->addModel(modelEvenVCO); | ||||
p->addModel(modelRampage); | p->addModel(modelRampage); | ||||
p->addModel(modelABC); | p->addModel(modelABC); | ||||
@@ -629,6 +634,7 @@ static void initStatic__Befaco() | |||||
p->addModel(modelMuxlicer); | p->addModel(modelMuxlicer); | ||||
p->addModel(modelMex); | p->addModel(modelMex); | ||||
#undef modelADSR | #undef modelADSR | ||||
#undef modelMixer | |||||
} | } | ||||
} | } | ||||
@@ -950,6 +956,7 @@ static void initStatic__Fundamental() | |||||
p->addModel(modelLFO2); | p->addModel(modelLFO2); | ||||
p->addModel(modelDelay); | p->addModel(modelDelay); | ||||
p->addModel(modelADSR); | p->addModel(modelADSR); | ||||
p->addModel(modelMixer); | |||||
p->addModel(modelVCMixer); | p->addModel(modelVCMixer); | ||||
p->addModel(model_8vert); | p->addModel(model_8vert); | ||||
p->addModel(modelUnity); | p->addModel(modelUnity); | ||||
@@ -968,6 +975,17 @@ static void initStatic__Fundamental() | |||||
p->addModel(modelMidSide); | p->addModel(modelMidSide); | ||||
p->addModel(modelNoise); | p->addModel(modelNoise); | ||||
p->addModel(modelRandom); | p->addModel(modelRandom); | ||||
// show all plugins, helping those familiar with v1 Rack modules | |||||
if (json_t* const modules = json_object_get(spl.rootJ, "modules")) | |||||
{ | |||||
size_t i; | |||||
json_t* v; | |||||
json_array_foreach(modules, i, v) | |||||
{ | |||||
json_object_set(v, "hidden", json_false()); | |||||
} | |||||
} | |||||
} | } | ||||
} | } | ||||
@@ -28,9 +28,6 @@ LindenbergResearch 43959.0 (not opensource?) | |||||
Geodesics 42761.0 | Geodesics 42761.0 | ||||
https://github.com/MarcBoule/Geodesics | https://github.com/MarcBoule/Geodesics | ||||
mscHack 42316.0 | |||||
https://github.com/mschack/VCV-Rack-Plugins/ | |||||
BaconMusic 42095.0 | BaconMusic 42095.0 | ||||
https://github.com/baconpaul/BaconPlugs/ | https://github.com/baconpaul/BaconPlugs/ | ||||
@@ -40,6 +40,8 @@ CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/rtmempool.a | |||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/sfzero.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/sfzero.a | ||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/water.a | ||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a | ||||
ifeq ($(MACOS),true) | |||||
ifeq ($(USING_JUCE),true) | ifeq ($(USING_JUCE),true) | ||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_basics.a | ||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_audio_processors.a | ||||
@@ -52,6 +54,8 @@ ifeq ($(USING_JUCE_GUI_EXTRA),true) | |||||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a | CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/juce_gui_extra.a | ||||
endif | endif | ||||
endif | endif | ||||
endif | |||||
# ifneq ($(MACOS),true) | # ifneq ($(MACOS),true) | ||||
# CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group | # CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group | ||||
# endif | # endif | ||||
@@ -46,7 +46,7 @@ float FollowerBase::efGainMaxDecibelsDebug = 12.0f; | |||||
// Custom Cardinal filtering | // Custom Cardinal filtering | ||||
static const struct { | static const struct { | ||||
const char* const filename; | const char* const filename; | ||||
const char* shapes[4]; | |||||
const char* shapes[8]; | |||||
} pathsToFilterOut[] = { | } pathsToFilterOut[] = { | ||||
{ | { | ||||
"/Core/Audio2.svg", | "/Core/Audio2.svg", | ||||
@@ -149,95 +149,114 @@ static const struct { | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/8vert.svg", | "/Fundamental/8vert.svg", | ||||
{"path69642","path69646","path69640","path69644"} | |||||
{"path17","path21","circle15","path19"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/ADSR.svg", | "/Fundamental/ADSR.svg", | ||||
{"path33693","path33697","path33699","path33695"} | |||||
{"path12","path16","circle18","path14"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Delay.svg", | "/Fundamental/Delay.svg", | ||||
{"path25369","path25373","path25375","path25371"} | |||||
{"path14","path18","circle20","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/LFO-1.svg", | |||||
{"path35889","path35893","path35895","path35891"} | |||||
}, | |||||
{ | |||||
"/Fundamental/LFO-2.svg", | |||||
{"path36131","path36135","path36137","path36133"} | |||||
"/Fundamental/LFO.svg", | |||||
{"path14","path18","circle20","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Merge.svg", | "/Fundamental/Merge.svg", | ||||
{"path29991","path29995","path29989","path29993"} | |||||
{"path16","path20","circle14","path18", | |||||
"path26","path30","circle24","path28"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/MidSide.svg", | "/Fundamental/MidSide.svg", | ||||
{"path44181","path44185","path44179","path44183"} | |||||
{"path23","path27","circle21","path25", | |||||
"path33","path37","circle31","path35"} | |||||
}, | |||||
{ | |||||
"/Fundamental/Mixer.svg", | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Mutes.svg", | "/Fundamental/Mutes.svg", | ||||
{"path21613","path21617","path21611","path21615"} | |||||
{"path17","path21","circle15","path19"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Noise.svg", | "/Fundamental/Noise.svg", | ||||
{"path105594","path105598","path105592","path105596"} | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Octave.svg", | "/Fundamental/Octave.svg", | ||||
{"path38471","path38475","path38469","path38473"} | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Pulses.svg", | "/Fundamental/Pulses.svg", | ||||
{"path46241","path46245","path46239","path46243"} | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Quantizer.svg", | "/Fundamental/Quantizer.svg", | ||||
{"path38549","path38553","path38547","path38551"} | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Random.svg", | "/Fundamental/Random.svg", | ||||
{"path89732","path89736","path89730","path89734"} | |||||
{"path58","path62","circle64","path60"} | |||||
}, | |||||
{ | |||||
"/Fundamental/Scope.svg", | |||||
{"path14","path18","circle20","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/SEQ3.svg", | "/Fundamental/SEQ3.svg", | ||||
{"path35687","path35691","path35693","path35689"} | |||||
{"path16","path20","circle22","path18"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Scope.svg", | |||||
{"path33887","path33891","path33893","path33889"} | |||||
"/Fundamental/SequentialSwitch1.svg", | |||||
{"path17","path21","circle15","path19"} | |||||
}, | |||||
{ | |||||
"/Fundamental/SequentialSwitch2.svg", | |||||
{"path17","path21","circle15","path19"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Split.svg", | "/Fundamental/Split.svg", | ||||
{"path29999","path30003","path29997","path30001"} | |||||
{"path18","path22","circle16","path20", | |||||
"path28","path32","circle26","path30"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Sum.svg", | "/Fundamental/Sum.svg", | ||||
{"path10913","path10917","path10911","path10915"} | |||||
{"path24","path28","circle22","path26"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Unity.svg", | "/Fundamental/Unity.svg", | ||||
{"path21219","path21223","path21217","path21221"} | {"path21219","path21223","path21217","path21221"} | ||||
}, | }, | ||||
{ | |||||
"/Fundamental/VCA-1.svg", | |||||
{"path16","path20","circle14","path18"} | |||||
}, | |||||
{ | { | ||||
"/Fundamental/VCF.svg", | "/Fundamental/VCF.svg", | ||||
{"path25239","path25243","path25245","path25241"} | |||||
{"path12","path16","circle18","path14"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/VCMixer.svg", | "/Fundamental/VCMixer.svg", | ||||
{"path125839","path125843","path125845","path125841"} | |||||
{"path12","path16","circle18","path14"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/VCO-1.svg", | |||||
{"path33533","path33537","path33539","path33535"} | |||||
"/Fundamental/VCO.svg", | |||||
{"path14","path18","circle20","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/VCO-2.svg", | |||||
{"path37557","path37561","path37563","path37559"} | |||||
"/Fundamental/Viz.svg", | |||||
{"path14","path18","circle12","path16"} | |||||
}, | }, | ||||
{ | { | ||||
"/Fundamental/Viz.svg", | |||||
{"path41769","path41773","path41767","path41771"} | |||||
"/Fundamental/WTLFO.svg", | |||||
{"path12","path16","circle18","path14"} | |||||
}, | |||||
{ | |||||
"/Fundamental/WTVCO.svg", | |||||
{"path12","path16","circle18","path14"} | |||||
}, | }, | ||||
}; | }; | ||||
static const struct { | static const struct { | ||||
@@ -352,9 +371,6 @@ static const struct { | |||||
{ "/DrumKit/Snare.svg", {}, -1 }, | { "/DrumKit/Snare.svg", {}, -1 }, | ||||
{ "/DrumKit/Tomi.svg", {}, -1 }, | { "/DrumKit/Tomi.svg", {}, -1 }, | ||||
{ "/ESeries/E340.svg", {}, -1 }, | { "/ESeries/E340.svg", {}, -1 }, | ||||
{ "/Fundamental/SequentialSwitch1.svg", {}, -1 }, | |||||
{ "/Fundamental/SequentialSwitch2.svg", {}, -1 }, | |||||
{ "/Fundamental/VCA-1.svg", {}, -1 }, | |||||
{ "/Fundamental/VCA.svg", {}, -1 }, | { "/Fundamental/VCA.svg", {}, -1 }, | ||||
{ "/JW-Modules/Add5.svg", {}, -1 }, | { "/JW-Modules/Add5.svg", {}, -1 }, | ||||
{ "/JW-Modules/BlankPanel1hp.svg", {}, -1 }, | { "/JW-Modules/BlankPanel1hp.svg", {}, -1 }, | ||||
@@ -380,8 +396,11 @@ static const struct { | |||||
{ "/JW-Modules/XYPad.svg", {}, -1 }, | { "/JW-Modules/XYPad.svg", {}, -1 }, | ||||
}; | }; | ||||
static void removeShape(NSVGimage* const handle, const char* const id) | |||||
static inline void removeShape(NSVGimage* const handle, const char* const id) | |||||
{ | { | ||||
if (id == nullptr) | |||||
return; | |||||
for (NSVGshape *shape = handle->shapes, *old = nullptr; shape != nullptr; old = shape, shape = shape->next) | for (NSVGshape *shape = handle->shapes, *old = nullptr; shape != nullptr; old = shape, shape = shape->next) | ||||
{ | { | ||||
if (std::strcmp(shape->id, id) != 0) | if (std::strcmp(shape->id, id) != 0) | ||||
@@ -394,11 +413,13 @@ static void removeShape(NSVGimage* const handle, const char* const id) | |||||
nsvg__deletePaths(shape->paths); | nsvg__deletePaths(shape->paths); | ||||
free(shape); | free(shape); | ||||
break; | |||||
return; | |||||
} | } | ||||
printf("NOTICE: failed to find '%s' shape to remove\n", id); | |||||
} | } | ||||
static bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | |||||
static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | |||||
{ | { | ||||
// Special case for DrumKit background grandient | // Special case for DrumKit background grandient | ||||
if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0) | if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0) | ||||
@@ -519,6 +540,10 @@ NSVGimage* nsvgParseFromFileCardinal(const char* const filename, const char* con | |||||
removeShape(handle, pathsToFilterOut[i].shapes[1]); | removeShape(handle, pathsToFilterOut[i].shapes[1]); | ||||
removeShape(handle, pathsToFilterOut[i].shapes[2]); | removeShape(handle, pathsToFilterOut[i].shapes[2]); | ||||
removeShape(handle, pathsToFilterOut[i].shapes[3]); | removeShape(handle, pathsToFilterOut[i].shapes[3]); | ||||
removeShape(handle, pathsToFilterOut[i].shapes[4]); | |||||
removeShape(handle, pathsToFilterOut[i].shapes[5]); | |||||
removeShape(handle, pathsToFilterOut[i].shapes[6]); | |||||
removeShape(handle, pathsToFilterOut[i].shapes[7]); | |||||
for (NSVGshape* shape = handle->shapes; shape != nullptr; shape = shape->next) | for (NSVGshape* shape = handle->shapes; shape != nullptr; shape = shape->next) | ||||
{ | { | ||||