diff --git a/.gitmodules b/.gitmodules index 0f8b9da..0c38e5e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -236,7 +236,9 @@ [submodule "plugins/Computerscare"] path = plugins/Computerscare url = https://github.com/freddyz/computerscare-vcv-modules.git - branch = v2.0.4 [submodule "plugins/CVfunk"] path = plugins/CVfunk - url = https://github.com/codygeary/CVfunk-Modules.git \ No newline at end of file + url = https://github.com/codygeary/CVfunk-Modules.git +[submodule "plugins/StarlingVia"] + path = plugins/StarlingVia + url = https://github.com/starlingcode/Via-for-Rack.git diff --git a/README.md b/README.md index 3692f53..1cef9ea 100644 --- a/README.md +++ b/README.md @@ -186,6 +186,7 @@ At the moment the following 3rd-party modules are provided: - [Sapphire](https://github.com/cosinekitty/sapphire) - [Sonus Modular](https://gitlab.com/sonusdept/sonusmodular) - [stocaudio](https://github.com/aptrn/stocaudio-modules) +- [Starling Via](https://github.com/starlingcode/Via-for-Rack) - [Stoermelder Pack-One](https://github.com/stoermelder/vcvrack-packone) - [Surge XT](https://github.com/surge-synthesizer/surge-rack) - [unless_modules](https://gitlab.com/unlessgames/unless_modules) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index ba7ea2a..16406f2 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -79,6 +79,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | RebelTech | GPL-2.0-or-later | | | Sapphire | GPL-3.0-or-later | | | Sonus Modular | GPL-3.0-or-later | | +| Starling Via | MIT | | | stocaudio | GPL-3.0-or-later | | | Stoermelder Pack-One | GPL-3.0-or-later | | | Surge XT | GPL-3.0-or-later | | @@ -235,6 +236,7 @@ Below is a list of artwork licenses from plugins | RebelTech/* | CC-BY-NC-4.0 | | | Sapphire/* | GPL-3.0-or-later | No artwork specific license provided | | sonusmodular/* | GPL-3.0-or-later | [Same license as source code](https://gitlab.com/sonusdept/sonusmodular/-/issues/14) | +| StarlingVia/* | MIT | No artwork specific license provided | | stocaudio/* | GPL-3.0-or-later | No artwork specific license provided | | stoermelder-packone/* | GPL-3.0-or-later | No artwork specific license provided | | stoermelder-packone/fonts/RedkostComic.otf | OFL-1.1-RFN | | diff --git a/plugins/Makefile b/plugins/Makefile index f8d6116..40cb2cd 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1012,8 +1012,24 @@ PLUGIN_FILES += $(filter-out Sapphire/src/plugin.cpp,$(wildcard Sapphire/src/*.c PLUGIN_FILES += $(filter-out sonusmodular/src/sonusmodular.cpp,$(wildcard sonusmodular/src/*.cpp)) # -------------------------------------------------------------- -# stocaudio +# Starling Via + +PLUGIN_FILES += $(wildcard StarlingVia/src/*.cpp) +PLUGIN_FILES += $(wildcard StarlingVia/Via/io/src/*.cpp) +PLUGIN_FILES += $(wildcard StarlingVia/Via/ui/src/*.cpp) +PLUGIN_FILES += $(wildcard StarlingVia/Via/modules/*/*.cpp) +PLUGIN_BINARIES += StarlingVia/res/original.gateseq +PLUGIN_BINARIES += StarlingVia/res/original.meta +PLUGIN_BINARIES += StarlingVia/res/original.osc3 +PLUGIN_BINARIES += StarlingVia/res/original.scanner +PLUGIN_BINARIES += StarlingVia/res/original.sync +PLUGIN_BINARIES += StarlingVia/res/original.sync3 + +# modules/types which are present in other plugins +STARLINGVIA_CUSTOM = Scanner Scale Wavetable +# -------------------------------------------------------------- +# stocaudio PLUGIN_FILES += $(filter-out stocaudio/src/plugin.cpp,$(wildcard stocaudio/src/*.cpp)) # -------------------------------------------------------------- @@ -2645,6 +2661,21 @@ $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp $(foreach m,$(SONUSMODULAR_CUSTOM),$(call custom_module_names,$(m),sonusmodular)) \ -DpluginInstance=pluginInstance__sonusmodular +$(BUILD_DIR)/StarlingVia/%.cpp.o: StarlingVia/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(STARLINGVIA_CUSTOM),$(call custom_module_names,$(m),StarlingVia)) \ + -DpluginInstance=pluginInstance__StarlingVia \ + -DBUILD_VIRTUAL \ + -IStarlingVia/dep/starling-dsp \ + -IStarlingVia/Via/modules/inc \ + -IStarlingVia/Via/synthesis/inc \ + -IStarlingVia/Via/io/inc \ + -IStarlingVia/Via/ui/inc \ + -IStarlingVia/src/dep/starling-dsp \ + -IStarlingVia/src/dep/starling-rack-ui + $(BUILD_DIR)/stoermelder-packone/%.cpp.o: stoermelder-packone/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/StarlingVia b/plugins/StarlingVia new file mode 160000 index 0000000..a6b75fd --- /dev/null +++ b/plugins/StarlingVia @@ -0,0 +1 @@ +Subproject commit a6b75fddc2df624ba64dab70c2e35b8e48ad8c1d diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 4c8e50e..60e1307 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -782,6 +782,16 @@ void addThemeMenuItems(Menu*, ModuleTheme*) {} // sonusmodular #include "sonusmodular/src/sonusmodular.hpp" + +// Starling Via +#define modelScanner modelStarlingViaScanner +#define Scale starlingViaScale +#define Wavetable starlingViaWavetable +#include "StarlingVia/src/starling.hpp" +#undef modelScanner +#undef Scale +#undef Wavetable + // stocaudio #include "stocaudio/src/plugin.hpp" @@ -914,6 +924,7 @@ Plugin* pluginInstance__RebelTech; Plugin* pluginInstance__repelzen; Plugin* pluginInstance__sapphire; Plugin* pluginInstance__sonusmodular; +extern Plugin* pluginInstance__StarlingVia; Plugin* pluginInstance__stocaudio; extern Plugin* pluginInstance__stoermelder_p1; Plugin* pluginInstance__surgext; @@ -2987,6 +2998,33 @@ static void initStatic__sonusmodular() } } + +static void initStatic__StarlingVia() +{ + Plugin* const p = new Plugin; + pluginInstance__StarlingVia = p; + + const StaticPluginLoader spl(p, "StarlingVia"); + if (spl.ok()) + { +#define modelScanner modelStarlingViaScanner +#define Scale starlingViaScale +#define Wavetable starlingViaWavetable + p->addModel(modelMeta); + p->addModel(modelGateseq); + p->addModel(modelScanner); + p->addModel(modelSync); + p->addModel(modelAtsr); + p->addModel(modelOsc3); + p->addModel(modelSync3); + p->addModel(modelSync3XL); + p->addModel(modelSync3XLLevels); +#undef modelScanner +#undef Scale +#undef Wavetable + } +} + static void initStatic__stocaudio() { Plugin* const p = new Plugin; @@ -3329,6 +3367,7 @@ void initStaticPlugins() initStatic__repelzen(); initStatic__Sapphire(); initStatic__sonusmodular(); + initStatic__StarlingVia(); initStatic__stocaudio(); initStatic__stoermelder_p1(); initStatic__surgext();