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) { | |||
*panelTheme = 1; | |||
*panelContrast = panelContrastDefault; | |||
@@ -212,7 +212,7 @@ PLUGIN_FILES += $(filter-out AS/src/AS.cpp,$(wildcard AS/src/*.cpp)) | |||
PLUGIN_FILES += AS/freeverb/revmodel.cpp | |||
# 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 | |||
@@ -336,7 +336,7 @@ PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp,$(wildcard Befaco/src/*.cpp)) | |||
PLUGIN_BINARIES += Befaco/src/SpringReverbIR.pcm | |||
# modules/types which are present in other plugins | |||
BEFACO_CUSTOM = ADSR | |||
BEFACO_CUSTOM = ADSR Mixer | |||
# -------------------------------------------------------------- | |||
# Bidoo | |||
@@ -390,6 +390,10 @@ PLUGIN_FILES += ESeries/src/E340.cpp | |||
# Fundamental | |||
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 | |||
@@ -522,7 +526,7 @@ PLUGIN_BINARIES += ValleyAudio/src/VOX_MACH.bin | |||
PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | |||
# modules/types which are present in other plugins | |||
VALLEYAUDIO_CUSTOM = $(DRWAV) | |||
VALLEYAUDIO_CUSTOM = $(DRWAV) DigitalDisplay | |||
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)) \ | |||
-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 | |||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
@echo "Compiling $<" | |||
@@ -1 +1 @@ | |||
Subproject commit d51e97d77b23b0321231b0bdab8c18f24ae159d7 | |||
Subproject commit eb0f8f92082eb38600f35170867cd528d898b48e |
@@ -33,9 +33,11 @@ | |||
// AS | |||
#define modelADSR modelASADSR | |||
#define modelVCA modelASVCA | |||
#define YellowRedLight ASYellowRedLight | |||
#include "AS/src/AS.hpp" | |||
#undef modelADSR | |||
#undef modelVCA | |||
#undef YellowRedLight | |||
// Atelier | |||
#include "Atelier/src/plugin.hpp" | |||
@@ -45,8 +47,10 @@ | |||
// Befaco | |||
#define modelADSR modelBefacoADSR | |||
#define modelMixer modelBefacoMixer | |||
#include "Befaco/src/plugin.hpp" | |||
#undef modelADSR | |||
#undef modelMixer | |||
// Bidoo | |||
#include "Bidoo/src/plugin.hpp" | |||
@@ -611,6 +615,7 @@ static void initStatic__Befaco() | |||
if (spl.ok()) | |||
{ | |||
#define modelADSR modelBefacoADSR | |||
#define modelMixer modelBefacoMixer | |||
p->addModel(modelEvenVCO); | |||
p->addModel(modelRampage); | |||
p->addModel(modelABC); | |||
@@ -629,6 +634,7 @@ static void initStatic__Befaco() | |||
p->addModel(modelMuxlicer); | |||
p->addModel(modelMex); | |||
#undef modelADSR | |||
#undef modelMixer | |||
} | |||
} | |||
@@ -950,6 +956,7 @@ static void initStatic__Fundamental() | |||
p->addModel(modelLFO2); | |||
p->addModel(modelDelay); | |||
p->addModel(modelADSR); | |||
p->addModel(modelMixer); | |||
p->addModel(modelVCMixer); | |||
p->addModel(model_8vert); | |||
p->addModel(modelUnity); | |||
@@ -968,6 +975,17 @@ static void initStatic__Fundamental() | |||
p->addModel(modelMidSide); | |||
p->addModel(modelNoise); | |||
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 | |||
https://github.com/MarcBoule/Geodesics | |||
mscHack 42316.0 | |||
https://github.com/mschack/VCV-Rack-Plugins/ | |||
BaconMusic 42095.0 | |||
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)/water.a | |||
CARLA_EXTRA_LIBS += $(CARLA_BUILD_DIR)/modules/$(CARLA_BUILD_TYPE)/zita-resampler.a | |||
ifeq ($(MACOS),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_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 | |||
endif | |||
endif | |||
endif | |||
# ifneq ($(MACOS),true) | |||
# CARLA_EXTRA_LIBS += -Wl,--no-whole-archive -Wl,--end-group | |||
# endif | |||
@@ -46,7 +46,7 @@ float FollowerBase::efGainMaxDecibelsDebug = 12.0f; | |||
// Custom Cardinal filtering | |||
static const struct { | |||
const char* const filename; | |||
const char* shapes[4]; | |||
const char* shapes[8]; | |||
} pathsToFilterOut[] = { | |||
{ | |||
"/Core/Audio2.svg", | |||
@@ -149,95 +149,114 @@ static const struct { | |||
}, | |||
{ | |||
"/Fundamental/8vert.svg", | |||
{"path69642","path69646","path69640","path69644"} | |||
{"path17","path21","circle15","path19"} | |||
}, | |||
{ | |||
"/Fundamental/ADSR.svg", | |||
{"path33693","path33697","path33699","path33695"} | |||
{"path12","path16","circle18","path14"} | |||
}, | |||
{ | |||
"/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", | |||
{"path29991","path29995","path29989","path29993"} | |||
{"path16","path20","circle14","path18", | |||
"path26","path30","circle24","path28"} | |||
}, | |||
{ | |||
"/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", | |||
{"path21613","path21617","path21611","path21615"} | |||
{"path17","path21","circle15","path19"} | |||
}, | |||
{ | |||
"/Fundamental/Noise.svg", | |||
{"path105594","path105598","path105592","path105596"} | |||
{"path14","path18","circle12","path16"} | |||
}, | |||
{ | |||
"/Fundamental/Octave.svg", | |||
{"path38471","path38475","path38469","path38473"} | |||
{"path14","path18","circle12","path16"} | |||
}, | |||
{ | |||
"/Fundamental/Pulses.svg", | |||
{"path46241","path46245","path46239","path46243"} | |||
{"path14","path18","circle12","path16"} | |||
}, | |||
{ | |||
"/Fundamental/Quantizer.svg", | |||
{"path38549","path38553","path38547","path38551"} | |||
{"path14","path18","circle12","path16"} | |||
}, | |||
{ | |||
"/Fundamental/Random.svg", | |||
{"path89732","path89736","path89730","path89734"} | |||
{"path58","path62","circle64","path60"} | |||
}, | |||
{ | |||
"/Fundamental/Scope.svg", | |||
{"path14","path18","circle20","path16"} | |||
}, | |||
{ | |||
"/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", | |||
{"path29999","path30003","path29997","path30001"} | |||
{"path18","path22","circle16","path20", | |||
"path28","path32","circle26","path30"} | |||
}, | |||
{ | |||
"/Fundamental/Sum.svg", | |||
{"path10913","path10917","path10911","path10915"} | |||
{"path24","path28","circle22","path26"} | |||
}, | |||
{ | |||
"/Fundamental/Unity.svg", | |||
{"path21219","path21223","path21217","path21221"} | |||
}, | |||
{ | |||
"/Fundamental/VCA-1.svg", | |||
{"path16","path20","circle14","path18"} | |||
}, | |||
{ | |||
"/Fundamental/VCF.svg", | |||
{"path25239","path25243","path25245","path25241"} | |||
{"path12","path16","circle18","path14"} | |||
}, | |||
{ | |||
"/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 { | |||
@@ -352,9 +371,6 @@ static const struct { | |||
{ "/DrumKit/Snare.svg", {}, -1 }, | |||
{ "/DrumKit/Tomi.svg", {}, -1 }, | |||
{ "/ESeries/E340.svg", {}, -1 }, | |||
{ "/Fundamental/SequentialSwitch1.svg", {}, -1 }, | |||
{ "/Fundamental/SequentialSwitch2.svg", {}, -1 }, | |||
{ "/Fundamental/VCA-1.svg", {}, -1 }, | |||
{ "/Fundamental/VCA.svg", {}, -1 }, | |||
{ "/JW-Modules/Add5.svg", {}, -1 }, | |||
{ "/JW-Modules/BlankPanel1hp.svg", {}, -1 }, | |||
@@ -380,8 +396,11 @@ static const struct { | |||
{ "/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) | |||
{ | |||
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); | |||
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 | |||
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[2]); | |||
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) | |||
{ | |||