@@ -79,3 +79,6 @@ | |||
[submodule "plugins/repelzen"] | |||
path = plugins/repelzen | |||
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) | |||
# -------------------------------------------------------------- | |||
# VCV internal dependencies target | |||
# Rack internal dependencies target | |||
$(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 | |||
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 | |||
TARGETS += $(DEP_PATH)/lib/libjansson.a | |||
TARGETS += $(DEP_PATH)/lib/libquickjs.a | |||
TARGETS += $(DEP_PATH)/lib/libsamplerate.a | |||
TARGETS += $(DEP_PATH)/lib/libspeexdsp.a | |||
@@ -206,5 +236,6 @@ clean: | |||
rm -rf $(DEP_PATH)/libsamplerate-0.1.9 | |||
rm -rf $(DEP_PATH)/speexdsp-SpeexDSP-1.2rc3 | |||
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) | |||
# -------------------------------------------------------------- | |||
# 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 | |||
@@ -775,6 +783,13 @@ $(BUILD_DIR)/AnimatedCircuits/%.cpp.o: AnimatedCircuits/%.cpp | |||
$(foreach m,$(ANIMATEDCIRCUITS_CUSTOM),$(call custom_module_names,$(m),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 | |||
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
@echo "Compiling $<" | |||
@@ -1 +1 @@ | |||
Subproject commit 1f63e91e1e32bf31bc5dbccf5b924316f69f45f9 | |||
Subproject commit 0ef9be3619f822849f5a4621380777a6c39a2aa6 |
@@ -30,6 +30,33 @@ | |||
// AnimatedCircuits | |||
#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 | |||
#define modelADSR modelASADSR | |||
#define modelVCA modelASVCA | |||
@@ -327,6 +354,7 @@ Plugin* pluginInstance__Cardinal; | |||
#ifndef NOPLUGINS | |||
Plugin* pluginInstance__AmalgamatedHarmonics; | |||
Plugin* pluginInstance__AnimatedCircuits; | |||
Plugin* pluginInstance__Aria; | |||
Plugin* pluginInstance__AS; | |||
Plugin* pluginInstance__Atelier; | |||
Plugin* pluginInstance__AudibleInstruments; | |||
@@ -429,6 +457,29 @@ struct StaticPluginLoader { | |||
{ | |||
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() | |||
@@ -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() | |||
{ | |||
Plugin* const p = new Plugin; | |||
@@ -711,27 +799,7 @@ static void initStatic__Bidoo() | |||
// NOTE disabled in Cardinal due to curl usage | |||
// 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 | |||
initStatic__AmalgamatedHarmonics(); | |||
initStatic__AnimatedCircuits(); | |||
initStatic__Aria(); | |||
initStatic__AS(); | |||
initStatic__Atelier(); | |||
initStatic__AudibleInstruments(); | |||
@@ -0,0 +1 @@ | |||
../AriaModules/res/ |
@@ -96,6 +96,7 @@ RACK_EXTRA_LIBS += ../rack.a | |||
ifneq ($(SYSDEPS),true) | |||
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/libspeexdsp.a | |||
ifeq ($(WINDOWS),true) | |||