| @@ -79,3 +79,6 @@ | |||||
| [submodule "plugins/repelzen"] | [submodule "plugins/repelzen"] | ||||
| path = plugins/repelzen | path = plugins/repelzen | ||||
| url = https://github.com/wiqid/repelzen.git | url = https://github.com/wiqid/repelzen.git | ||||
| [submodule "plugins/AriaModules"] | |||||
| path = plugins/AriaModules | |||||
| url = https://github.com/CardinalModules/AriaModules.git | |||||
| @@ -130,7 +130,7 @@ DEP_MAKE += DEP_MAC_SDK_FLAGS= | |||||
| DEP_MAKE += MACHINE=$(MACHINE)$(MACHINE_SUFFIX) | DEP_MAKE += MACHINE=$(MACHINE)$(MACHINE_SUFFIX) | ||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # VCV internal dependencies target | |||||
| # Rack internal dependencies target | |||||
| $(DEP_PATH)/lib/%.a: | $(DEP_PATH)/lib/%.a: | ||||
| $(DEP_MAKE) -C $(DEP_PATH) lib/$*.a | $(DEP_MAKE) -C $(DEP_PATH) lib/$*.a | ||||
| @@ -176,10 +176,40 @@ $(DEP_PATH)/zstd-1.4.5/.stamp-patched: | |||||
| sed -i -e "142,144d" $(DEP_PATH)/zstd-1.4.5/programs/util.c | sed -i -e "142,144d" $(DEP_PATH)/zstd-1.4.5/programs/util.c | ||||
| touch $@ | touch $@ | ||||
| # -------------------------------------------------------------- | |||||
| # QuickJS target, needed for AriaModules | |||||
| QUICKJS_MAKE_FLAGS = CFLAGS="$(BUILD_C_FLAGS) -D_GNU_SOURCE -DCONFIG_VERSION='\"Cardinal\"' -w" | |||||
| QUICKJS_MAKE_FLAGS += PROGS=libquickjs.a | |||||
| ifeq ($(WITH_LTO),true) | |||||
| QUICKJS_MAKE_FLAGS += CONFIG_LTO=y | |||||
| else | |||||
| QUICKJS_MAKE_FLAGS += CONFIG_LTO=n | |||||
| endif | |||||
| ifeq ($(WINDOWS),true) | |||||
| QUICKJS_MAKE_FLAGS += CONFIG_WIN32=y | |||||
| else ifeq ($(MACOS),true) | |||||
| QUICKJS_MAKE_FLAGS += CONFIG_DARWIN=y | |||||
| endif | |||||
| $(DEP_PATH)/lib/libquickjs.a: $(DEP_PATH)/QuickJS | |||||
| $(DEP_MAKE) $(QUICKJS_MAKE_FLAGS) -C $(DEP_PATH)/QuickJS | |||||
| install -d $(DEP_PATH)/include | |||||
| install -d $(DEP_PATH)/lib | |||||
| install -m644 $(DEP_PATH)/QuickJS/libquickjs.a $@ | |||||
| install -m644 $(DEP_PATH)/QuickJS/quickjs.h $(DEP_PATH)/include/quickjs.h | |||||
| $(DEP_PATH)/QuickJS: | |||||
| git clone "https://github.com/JerrySievert/QuickJS.git" $(DEP_PATH)/QuickJS | |||||
| git -C $(DEP_PATH)/QuickJS checkout b70d5344013836544631c361ae20569b978176c9 | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Build targets | # Build targets | ||||
| TARGETS += $(DEP_PATH)/lib/libjansson.a | TARGETS += $(DEP_PATH)/lib/libjansson.a | ||||
| TARGETS += $(DEP_PATH)/lib/libquickjs.a | |||||
| TARGETS += $(DEP_PATH)/lib/libsamplerate.a | TARGETS += $(DEP_PATH)/lib/libsamplerate.a | ||||
| TARGETS += $(DEP_PATH)/lib/libspeexdsp.a | TARGETS += $(DEP_PATH)/lib/libspeexdsp.a | ||||
| @@ -206,5 +236,6 @@ clean: | |||||
| rm -rf $(DEP_PATH)/libsamplerate-0.1.9 | rm -rf $(DEP_PATH)/libsamplerate-0.1.9 | ||||
| rm -rf $(DEP_PATH)/speexdsp-SpeexDSP-1.2rc3 | rm -rf $(DEP_PATH)/speexdsp-SpeexDSP-1.2rc3 | ||||
| rm -rf $(DEP_PATH)/zstd-1.4.5 | rm -rf $(DEP_PATH)/zstd-1.4.5 | ||||
| rm -rf $(DEP_PATH)/QuickJS | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit 90f8009e1431341225c616bb3a9c250b02bce2c1 | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit b5215ae3e907fab07ebd1fc3098a678306065483 | |||||
| Subproject commit e80c8cb0873fbccca2d382d564e69b1a88ecb1f5 | |||||
| @@ -207,6 +207,14 @@ AMALGAMATEDHARMONICS_CUSTOM += bogaudio | |||||
| PLUGIN_FILES += $(wildcard AnimatedCircuits/src/Folding/*.cpp) | PLUGIN_FILES += $(wildcard AnimatedCircuits/src/Folding/*.cpp) | ||||
| # -------------------------------------------------------------- | |||||
| # Aria | |||||
| PLUGIN_FILES += $(filter-out AriaModules/src/Arcane.cpp AriaModules/src/plugin.cpp,$(wildcard AriaModules/src/*.cpp)) | |||||
| # modules/types which are present in other plugins | |||||
| ARIA_CUSTOM = Blank | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # AS | # AS | ||||
| @@ -775,6 +783,13 @@ $(BUILD_DIR)/AnimatedCircuits/%.cpp.o: AnimatedCircuits/%.cpp | |||||
| $(foreach m,$(ANIMATEDCIRCUITS_CUSTOM),$(call custom_module_names,$(m),AnimatedCircuits)) \ | $(foreach m,$(ANIMATEDCIRCUITS_CUSTOM),$(call custom_module_names,$(m),AnimatedCircuits)) \ | ||||
| -DpluginInstance=pluginInstance__AnimatedCircuits | -DpluginInstance=pluginInstance__AnimatedCircuits | ||||
| $(BUILD_DIR)/AriaModules/%.cpp.o: AriaModules/%.cpp | |||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
| @echo "Compiling $<" | |||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||||
| $(foreach m,$(ARIA_CUSTOM),$(call custom_module_names,$(m),Aria)) \ | |||||
| -DpluginInstance=pluginInstance__Aria | |||||
| $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp | $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| @@ -1 +1 @@ | |||||
| Subproject commit 1f63e91e1e32bf31bc5dbccf5b924316f69f45f9 | |||||
| Subproject commit 0ef9be3619f822849f5a4621380777a6c39a2aa6 | |||||
| @@ -30,6 +30,33 @@ | |||||
| // AnimatedCircuits | // AnimatedCircuits | ||||
| #include "AnimatedCircuits/src/plugin.hpp" | #include "AnimatedCircuits/src/plugin.hpp" | ||||
| // Aria | |||||
| /* NOTE too much noise in original include, do this a different way | |||||
| // #include "AriaModules/src/plugin.hpp" | |||||
| */ | |||||
| #define modelBlank modelAriaBlank | |||||
| extern Model *modelSplort; | |||||
| extern Model *modelSmerge; | |||||
| extern Model *modelSpleet; | |||||
| extern Model *modelSwerge; | |||||
| extern Model *modelSplirge; | |||||
| // extern Model *modelSrot; | |||||
| extern Model *modelQqqq; | |||||
| extern Model *modelQuack; | |||||
| extern Model *modelQ; | |||||
| extern Model *modelQuale; | |||||
| extern Model *modelDarius; | |||||
| extern Model *modelSolomon4; | |||||
| extern Model *modelSolomon8; | |||||
| extern Model *modelSolomon16; | |||||
| extern Model *modelPsychopump; | |||||
| extern Model *modelPokies4; | |||||
| extern Model *modelGrabby; | |||||
| extern Model *modelRotatoes4; | |||||
| extern Model *modelUndular; | |||||
| extern Model *modelBlank; | |||||
| #undef modelBlank | |||||
| // AS | // AS | ||||
| #define modelADSR modelASADSR | #define modelADSR modelASADSR | ||||
| #define modelVCA modelASVCA | #define modelVCA modelASVCA | ||||
| @@ -327,6 +354,7 @@ Plugin* pluginInstance__Cardinal; | |||||
| #ifndef NOPLUGINS | #ifndef NOPLUGINS | ||||
| Plugin* pluginInstance__AmalgamatedHarmonics; | Plugin* pluginInstance__AmalgamatedHarmonics; | ||||
| Plugin* pluginInstance__AnimatedCircuits; | Plugin* pluginInstance__AnimatedCircuits; | ||||
| Plugin* pluginInstance__Aria; | |||||
| Plugin* pluginInstance__AS; | Plugin* pluginInstance__AS; | ||||
| Plugin* pluginInstance__Atelier; | Plugin* pluginInstance__Atelier; | ||||
| Plugin* pluginInstance__AudibleInstruments; | Plugin* pluginInstance__AudibleInstruments; | ||||
| @@ -429,6 +457,29 @@ struct StaticPluginLoader { | |||||
| { | { | ||||
| return rootJ != nullptr; | return rootJ != nullptr; | ||||
| } | } | ||||
| void removeModule(const char* const slugToRemove) const noexcept | |||||
| { | |||||
| json_t* const modules = json_object_get(rootJ, "modules"); | |||||
| DISTRHO_SAFE_ASSERT_RETURN(modules != nullptr,); | |||||
| size_t i; | |||||
| json_t* v; | |||||
| json_array_foreach(modules, i, v) | |||||
| { | |||||
| if (json_t* const slug = json_object_get(v, "slug")) | |||||
| { | |||||
| if (const char* const value = json_string_value(slug)) | |||||
| { | |||||
| if (std::strcmp(value, slugToRemove) == 0) | |||||
| { | |||||
| json_array_remove(modules, i); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| }; | }; | ||||
| static void initStatic__Core() | static void initStatic__Core() | ||||
| @@ -516,6 +567,43 @@ static void initStatic__AnimatedCircuits() | |||||
| } | } | ||||
| } | } | ||||
| static void initStatic__Aria() | |||||
| { | |||||
| Plugin* const p = new Plugin; | |||||
| pluginInstance__Aria = p; | |||||
| const StaticPluginLoader spl(p, "AriaModules"); | |||||
| if (spl.ok()) | |||||
| { | |||||
| #define modelBlank modelAriaBlank | |||||
| p->addModel(modelSplort); | |||||
| p->addModel(modelSmerge); | |||||
| p->addModel(modelSpleet); | |||||
| p->addModel(modelSwerge); | |||||
| p->addModel(modelSplirge); | |||||
| // p->addModel(modelSrot); | |||||
| p->addModel(modelQqqq); | |||||
| p->addModel(modelQuack); | |||||
| p->addModel(modelQ); | |||||
| p->addModel(modelQuale); | |||||
| p->addModel(modelDarius); | |||||
| p->addModel(modelSolomon4); | |||||
| p->addModel(modelSolomon8); | |||||
| p->addModel(modelSolomon16); | |||||
| p->addModel(modelPsychopump); | |||||
| p->addModel(modelPokies4); | |||||
| p->addModel(modelGrabby); | |||||
| p->addModel(modelRotatoes4); | |||||
| p->addModel(modelUndular); | |||||
| p->addModel(modelBlank); | |||||
| #undef modelBlank | |||||
| // NOTE disabled in Cardinal due to online requirement | |||||
| spl.removeModule("Arcane"); | |||||
| spl.removeModule("Atout"); | |||||
| spl.removeModule("Aleister"); | |||||
| } | |||||
| } | |||||
| static void initStatic__AS() | static void initStatic__AS() | ||||
| { | { | ||||
| Plugin* const p = new Plugin; | Plugin* const p = new Plugin; | ||||
| @@ -711,27 +799,7 @@ static void initStatic__Bidoo() | |||||
| // NOTE disabled in Cardinal due to curl usage | // NOTE disabled in Cardinal due to curl usage | ||||
| // p->addModel(modelANTN); | // p->addModel(modelANTN); | ||||
| // intentionally remove known bad plugin | |||||
| if (json_t* const modules = json_object_get(spl.rootJ, "modules")) | |||||
| { | |||||
| size_t i; | |||||
| json_t* v; | |||||
| json_array_foreach(modules, i, v) | |||||
| { | |||||
| if (json_t* const slug = json_object_get(v, "slug")) | |||||
| { | |||||
| if (const char* const value = json_string_value(slug)) | |||||
| { | |||||
| if (std::strcmp(value, "antN") == 0) | |||||
| { | |||||
| json_array_remove(modules, i); | |||||
| break; | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| spl.removeModule("antN"); | |||||
| } | } | ||||
| } | } | ||||
| @@ -1289,6 +1357,7 @@ void initStaticPlugins() | |||||
| #ifndef NOPLUGINS | #ifndef NOPLUGINS | ||||
| initStatic__AmalgamatedHarmonics(); | initStatic__AmalgamatedHarmonics(); | ||||
| initStatic__AnimatedCircuits(); | initStatic__AnimatedCircuits(); | ||||
| initStatic__Aria(); | |||||
| initStatic__AS(); | initStatic__AS(); | ||||
| initStatic__Atelier(); | initStatic__Atelier(); | ||||
| initStatic__AudibleInstruments(); | initStatic__AudibleInstruments(); | ||||
| @@ -0,0 +1 @@ | |||||
| ../AriaModules/res/ | |||||
| @@ -96,6 +96,7 @@ RACK_EXTRA_LIBS += ../rack.a | |||||
| ifneq ($(SYSDEPS),true) | ifneq ($(SYSDEPS),true) | ||||
| RACK_EXTRA_LIBS += ../Rack/dep/lib/libjansson.a | RACK_EXTRA_LIBS += ../Rack/dep/lib/libjansson.a | ||||
| RACK_EXTRA_LIBS += ../Rack/dep/lib/libquickjs.a | |||||
| RACK_EXTRA_LIBS += ../Rack/dep/lib/libsamplerate.a | RACK_EXTRA_LIBS += ../Rack/dep/lib/libsamplerate.a | ||||
| RACK_EXTRA_LIBS += ../Rack/dep/lib/libspeexdsp.a | RACK_EXTRA_LIBS += ../Rack/dep/lib/libspeexdsp.a | ||||
| ifeq ($(WINDOWS),true) | ifeq ($(WINDOWS),true) | ||||