Browse Source

Add substation-opensource (#163)

* WIP: Add Substation Open Source release (broken)

* Update upstream

Co-authored-by: Simon-L <lumis@xulepth.fr>
tags/22.03
FergusL GitHub 3 years ago
parent
commit
dd661db6b8
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 79 additions and 0 deletions
  1. +3
    -0
      .gitmodules
  2. +20
    -0
      plugins/Makefile
  3. +55
    -0
      plugins/plugins.cpp
  4. +1
    -0
      plugins/substation-opensource

+ 3
- 0
.gitmodules 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

+ 20
- 0
plugins/Makefile 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 $<"


+ 55
- 0
plugins/plugins.cpp 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();


+ 1
- 0
plugins/substation-opensource

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

Loading…
Cancel
Save