Add substation-opensource (#163)

* WIP: Add Substation Open Source release (broken)

* Update upstream

Co-authored-by: Simon-L <lumis@xulepth.fr>
This commit is contained in:
FergusL 2022-02-22 21:13:34 +01:00 committed by GitHub
parent 0040434178
commit dd661db6b8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 79 additions and 0 deletions

3
.gitmodules vendored
View file

@ -130,3 +130,6 @@
[submodule "plugins/Autinn"]
path = plugins/Autinn
url = https://github.com/NikolaiVChr/Autinn.git
[submodule "plugins/substation-opensource"]
path = plugins/substation-opensource
url = https://gitlab.com/slimechild/substation-opensource.git

View file

@ -622,6 +622,16 @@ REPELZEN_CUSTOM = Blank Mixer Werner tanh_pade
PLUGIN_FILES += $(filter-out sonusmodular/src/sonusmodular,$(wildcard sonusmodular/src/*.cpp))
# --------------------------------------------------------------
# Substation (Open source release)
PLUGIN_FILES += $(wildcard substation-opensource/dep/slime4rack/src/slime/*.cpp)
PLUGIN_FILES += $(wildcard substation-opensource/dep/slime4rack/src/slime/**/*.cpp)
PLUGIN_FILES += $(filter-out substation-opensource/src/_plugin.cpp,$(wildcard substation-opensource/src/*.cpp))
# modules/types which are present in other plugins
SUBSTATION_CUSTOM = Clock Mixer Quantizer VCA init
# --------------------------------------------------------------
# ValleyAudio
@ -1400,6 +1410,16 @@ $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp
$(foreach m,$(SONUSMODULAR_CUSTOM),$(call custom_module_names,$(m),sonusmodular)) \
-DpluginInstance=pluginInstance__sonusmodular
$(BUILD_DIR)/substation-opensource/%.cpp.o: substation-opensource/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(SUBSTATION_CUSTOM),$(call custom_module_names,$(m),substation)) \
-DpluginInstance=pluginInstance__substation \
-D'PRIVATE=__attribute__((error("Using internal Rack function or symbol")))' \
-Werror \
-Isubstation-opensource/dep/slime4rack/include
$(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"

View file

@ -497,6 +497,29 @@ extern Model* modelMaude_221;
// sonusmodular
#include "sonusmodular/src/sonusmodular.hpp"
//substation
// NOTE too much noise in original include, do this a different way
// "substation-opensource/src/_plugin.hpp"
#define modelClock modelsubstationClock
#define modelMixer modelsubstationMixer
#define modelQuantizer modelsubstationQuantizer
#define modelVCA modelsubstationVCA
extern Model* modelClock;
extern Model* modelPolySequencer;
extern Model* modelSubOscillator;
extern Model* modelMixer;
extern Model* modelFilter;
extern Model* modelEnvelopes;
extern Model* modelQuantizer;
extern Model* modelVCA;
extern Model* modelBlank4;
extern Model* modelBlank7;
extern Model* modelFilterPlus;
#undef modelClock
#undef modelMixer
#undef modelQuantizer
#undef modelVCA
// ValleyAudio
#include "ValleyAudio/src/Valley.hpp"
@ -564,6 +587,7 @@ Plugin* pluginInstance__Prism;
Plugin* pluginInstance__rackwindows;
Plugin* pluginInstance__repelzen;
Plugin* pluginInstance__sonusmodular;
Plugin* pluginInstance__substation;
Plugin* pluginInstance__ValleyAudio;
Plugin* pluginInstance__ZetaCarinaeModules;
Plugin* pluginInstance__ZZC;
@ -1822,6 +1846,36 @@ static void initStatic__sonusmodular()
}
}
static void initStatic__substation()
{
Plugin* const p = new Plugin;
pluginInstance__substation = p;
const StaticPluginLoader spl(p, "substation-opensource");
if (spl.ok())
{
#define modelClock modelsubstationClock
#define modelMixer modelsubstationMixer
#define modelQuantizer modelsubstationQuantizer
#define modelVCA modelsubstationVCA
p->addModel(modelClock);
p->addModel(modelEnvelopes);
p->addModel(modelFilter);
p->addModel(modelMixer);
p->addModel(modelQuantizer);
p->addModel(modelPolySequencer);
p->addModel(modelVCA);
p->addModel(modelSubOscillator);
p->addModel(modelBlank4);
p->addModel(modelBlank7);
p->addModel(modelFilterPlus);
#undef modelClock
#undef modelMixer
#undef modelQuantizer
#undef modelVCA
}
}
static void initStatic__ValleyAudio()
{
Plugin* const p = new Plugin;
@ -1924,6 +1978,7 @@ void initStaticPlugins()
initStatic__rackwindows();
initStatic__repelzen();
initStatic__sonusmodular();
initStatic__substation();
initStatic__ValleyAudio();
initStatic__ZetaCarinaeModules();
initStatic__ZZC();

@ -0,0 +1 @@
Subproject commit f71030d598923be76a0d7f05af5be949500c17b5