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) | |||
| { | |||