Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -266,3 +266,9 @@
[submodule "plugins/Venom"]
path = plugins/Venom
url = https://github.com/DaveBenham/VenomModules
[submodule "plugins/AmbientModules"]
path = plugins/AmbientModules
url = https://github.com/neilbgr/AmbientModules.git
[submodule "plugins/Astravox"]
path = plugins/Astravox
url = https://github.com/JackArkyDev/Astravox.git
7 changes: 7 additions & 0 deletions docs/LICENSES.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,12 @@ Below follows a list of all code licenses used in Cardinal and linked submodules
| alef's bits | GPL-3.0-or-later | |
| AlgoritmArte | GPL-3.0-or-later | |
| Amalgamated Harmonics | BSD-3-Clause | |
| AmbientModules | GPL-3.0-or-later | Includes artwork derived from Valley Audio and the VCV Rack Component Library; see artwork licenses below |
| Animated Circuits | GPL-3.0-or-later | |
| Arable Instruments | GPL-3.0-or-later | |
| Aria Salvatrice | GPL-3.0-or-later | |
| AS | MIT | |
| Astravox | GPL-3.0-only | Tape Echo hysteresis code is adapted from AnalogTapeModel, also GPL-3.0-only |
| Audible Instruments | GPL-3.0-or-later | |
| Autinn | GPL-3.0-or-later | |
| Axioma | GPL-3.0-or-later | |
Expand Down Expand Up @@ -123,6 +125,9 @@ Below is a list of artwork licenses from plugins
| AmalgamatedHarmonics/* | BSD-3-Clause | No artwork specific license provided |
| AmalgamatedHarmonics/DSEG*.ttf | OFL-1.1-RFN | |
| AmalgamatedHarmonics/Roboto*.ttf | Apache-2.0 | |
| AmbientModules/* | GPL-3.0-or-later | No separate license stated except where noted below |
| AmbientModules/res/knobs/* | GPL-3.0-or-later | Copied or adapted from ValleyRackFree; see `res/knobs/NOTICE.md` |
| AmbientModules/res/switches/* | CC-BY-NC-4.0 | Adapted from the VCV Rack Component Library; see `res/switches/NOTICE.md` |
| AnimatedCircuits/* | CC-BY-NC-SA-4.0 | |
| ArableInstruments/* | Custom | Copyright © Alex Brandt, [used and distributed with permission](https://github.com/adbrant/ArableInstruments/issues/21) |
| AriaModules/* | CC-BY-SA-4.0 | |
Expand All @@ -135,6 +140,8 @@ Below is a list of artwork licenses from plugins
| AS/* | CC-BY-NC-ND-4.0 | The AS Logo/Monogram is Copyright (c) 2017 Alfredo Santamaria and cannot be used in derivative works; Cardinal has [explicit permission](https://github.com/AScustomWorks/AS/issues/60#issuecomment-1133488586) for its use. |
| AS/saxmono.ttf | Custom | You may download this font, circulate it und use it freely. You may not alter, rename, change copyrights or modify this font in any way. |
| AS/Segment7Standard.ttf | OFL-1.1-RFN | |
| Astravox/* | GPL-3.0-only | No separate artwork license stated except where noted below |
| Astravox/res/fonts/Inter-Light.otf | OFL-1.1 | See `res/fonts/OFL.txt` |
| AudibleInstruments/* | Custom | Copyright © Emilie Gillet, [used and distributed with permission](LICENSE-PERMISSIONS.md#audible-instruments-émilie-gillet--mutable-instruments) |
| Autinn/* | GPL-3.0-or-later | No artwork specific license provided |
| Axioma/* | GPL-3.0-or-later | No artwork specific license provided |
Expand Down
1 change: 1 addition & 0 deletions plugins/AmbientModules
Submodule AmbientModules added at 4ca599
1 change: 1 addition & 0 deletions plugins/Astravox
Submodule Astravox added at 62b308
57 changes: 54 additions & 3 deletions plugins/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,14 @@ PLUGIN_FILES += $(filter-out AmalgamatedHarmonics/src/AH.cpp,$(wildcard Amalgama
AMALGAMATEDHARMONICS_CUSTOM = BasePinkNoiseGenerator EvenVCO LowFrequencyOscillator Pattern PinkNoiseGenerator RedNoiseGenerator
AMALGAMATEDHARMONICS_CUSTOM += bogaudio

# --------------------------------------------------------------
# AmbientModules

PLUGIN_FILES += $(filter-out AmbientModules/src/plugin.cpp,$(wildcard AmbientModules/src/*.cpp))

# modules/types which are present in other plugins
AMBIENTMODULES_CUSTOM = Blank XYPad RoganMedSmallWhite RoganSmallRed

# --------------------------------------------------------------
# AnimatedCircuits

Expand Down Expand Up @@ -412,6 +420,14 @@ PLUGIN_FILES += AS/freeverb/revmodel.cpp
AS_CUSTOM = ADSR BpmDisplayWidget LabelDisplayWidget LedLight LowFrequencyOscillator SigDisplayWidget VCA WaveShaper YellowRedLight allpass comb revmodel
AS_CUSTOM_PER_FILE = NumberDisplayWidget

# --------------------------------------------------------------
# Astravox

PLUGIN_FILES += $(filter-out Astravox/src/plugin.cpp,$(wildcard Astravox/src/*.cpp))

# modules/types which are present in other plugins
ASTRAVOX_CUSTOM = Biquad DecayEnvelope ShelfFilter SpringReverb SVFilter

# --------------------------------------------------------------
# AudibleInstruments

Expand Down Expand Up @@ -1480,6 +1496,9 @@ RESOURCE_FILES = \
$(wildcard */res/*/*/*.ttf))

RESOURCE_FILES += $(wildcard */presets)
RESOURCE_FILES += $(wildcard Astravox/res/*.json)
RESOURCE_FILES += $(wildcard Astravox/res/*.png)
RESOURCE_FILES += $(wildcard Astravox/res/*.wav)
RESOURCE_FILES += $(wildcard Orbits/res/*.json)
RESOURCE_FILES += ArableInstruments/res/Joni.png
RESOURCE_FILES += BaconPlugs/res/Keypunch029.json
Expand Down Expand Up @@ -2198,6 +2217,13 @@ $(BUILD_DIR)/AmalgamatedHarmonics/%.cpp.o: AmalgamatedHarmonics/%.cpp
$(foreach m,$(AMALGAMATEDHARMONICS_CUSTOM),$(call custom_module_names,$(m),AmalgamatedHarmonics)) \
-DpluginInstance=pluginInstance__AmalgamatedHarmonics

$(BUILD_DIR)/AmbientModules/%.cpp.o: AmbientModules/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(AMBIENTMODULES_CUSTOM),$(call custom_module_names,$(m),AmbientModules)) \
-DpluginInstance=pluginInstance__AmbientModules

$(BUILD_DIR)/AnimatedCircuits/%.cpp.o: AnimatedCircuits/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
Expand Down Expand Up @@ -2233,6 +2259,13 @@ $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp
-DpluginInstance=pluginInstance__AS \
-Wno-unused-private-field

$(BUILD_DIR)/Astravox/%.cpp.o: Astravox/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(ASTRAVOX_CUSTOM),$(call custom_module_names,$(m),Astravox)) \
-DpluginInstance=pluginInstance__Astravox

$(BUILD_DIR)/AudibleInstruments/%.o: AudibleInstruments/%
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
Expand Down Expand Up @@ -2608,15 +2641,24 @@ $(BUILD_DIR)/Meander/src/%.cpp.o: Meander/src/%.cpp
-Wno-format-security \
-Wno-format-zero-length

$(BUILD_DIR)/MindMeldModular/src/MindMeldModular.cpp.o: MindMeldModular/src/MindMeldModular.cpp
MINDMELD_XCODE_COMPAT_PATCH = ../utils/patches/MindMeldModular-xcode27.patch

.PHONY: mindmeld-xcode-compat
mindmeld-xcode-compat: $(MINDMELD_XCODE_COMPAT_PATCH)
@if grep -q 'std::abs<T>' MindMeldModular/src/ShapeMaster/Shape.hpp; then \
echo "Applying MindMeldModular Xcode compatibility patch"; \
patch -p1 -d MindMeldModular < $(MINDMELD_XCODE_COMPAT_PATCH); \
fi

$(BUILD_DIR)/MindMeldModular/src/MindMeldModular.cpp.o: MindMeldModular/src/MindMeldModular.cpp | mindmeld-xcode-compat
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(MINDMELD_CUSTOM),$(call custom_module_names,$(m),MindMeld)) \
-DpluginInstance=pluginInstance__MindMeld \
-Dinit=init__MindMeld

$(BUILD_DIR)/MindMeldModular/%.cpp.o: MindMeldModular/%.cpp
$(BUILD_DIR)/MindMeldModular/%.cpp.o: MindMeldModular/%.cpp | mindmeld-xcode-compat
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
Expand Down Expand Up @@ -2815,7 +2857,16 @@ $(BUILD_DIR)/stocaudio/%.cpp.o: stocaudio/%.cpp
$(foreach m,$(STOCAUDIO_CUSTOM),$(call custom_module_names,$(m),stocaudio)) \
-DpluginInstance=pluginInstance__stocaudio

$(BUILD_DIR)/surgext%.cpp.o: surgext%.cpp
SURGEXT_XCODE_COMPAT_PATCH = ../utils/patches/surgext-xcode27.patch

.PHONY: surgext-xcode-compat
surgext-xcode-compat: $(SURGEXT_XCODE_COMPAT_PATCH)
@if grep -q '\.template emplace_back' surgext/src/VCO.cpp; then \
echo "Applying surgext Xcode compatibility patch"; \
patch -p1 -d surgext < $(SURGEXT_XCODE_COMPAT_PATCH); \
fi

$(BUILD_DIR)/surgext%.cpp.o: surgext%.cpp | surgext-xcode-compat
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(SURGEXT_FLAGS) -c -o $@ \
Expand Down
58 changes: 58 additions & 0 deletions plugins/plugins.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,20 @@ extern Model* modelDivisions;
// AmalgamatedHarmonics
#include "AmalgamatedHarmonics/src/AH.hpp"

// AmbientModules
void loadAmbientTheme();
extern Model* modelAmbientModulesBlank;
extern Model* modelLunar50Drone;
extern Model* modelLunarLFO;
extern Model* modelLunarVCO;
extern Model* modelLunarPapaSrapa;
extern Model* modelLunarSequencer;
extern Model* modelLunarJoystick;
extern Model* modelLunarMixer;
extern Model* modelLunarPads;
extern Model* modelLunarDetector;
extern Model* modelLunarFilter;

// AnimatedCircuits
#include "AnimatedCircuits/src/plugin.hpp"

Expand Down Expand Up @@ -97,6 +111,10 @@ extern Model* modelBlank;
#undef LedLight
#undef YellowRedLight

// Astravox
extern Model* modelVocoder;
extern Model* modelTapeEcho;

// AudibleInstruments
#include "AudibleInstruments/src/plugin.hpp"

Expand Down Expand Up @@ -964,10 +982,12 @@ Plugin* pluginInstance__admiral;
Plugin* pluginInstance__alefsbits;
Plugin* pluginInstance__Algoritmarte;
Plugin* pluginInstance__AmalgamatedHarmonics;
Plugin* pluginInstance__AmbientModules;
Plugin* pluginInstance__ArableInstruments;
Plugin* pluginInstance__AnimatedCircuits;
Plugin* pluginInstance__Aria;
Plugin* pluginInstance__AS;
Plugin* pluginInstance__Astravox;
Plugin* pluginInstance__AudibleInstruments;
extern Plugin* pluginInstance__Autinn;
Plugin* pluginInstance__Axioma;
Expand Down Expand Up @@ -1399,6 +1419,29 @@ static void initStatic__AmalgamatedHarmonics()
}
}

static void initStatic__AmbientModules()
{
Plugin* const p = new Plugin;
pluginInstance__AmbientModules = p;

const StaticPluginLoader spl(p, "AmbientModules");
if (spl.ok())
{
loadAmbientTheme();
p->addModel(modelAmbientModulesBlank);
p->addModel(modelLunar50Drone);
p->addModel(modelLunarLFO);
p->addModel(modelLunarVCO);
p->addModel(modelLunarPapaSrapa);
p->addModel(modelLunarSequencer);
p->addModel(modelLunarJoystick);
p->addModel(modelLunarMixer);
p->addModel(modelLunarPads);
p->addModel(modelLunarDetector);
p->addModel(modelLunarFilter);
}
}

static void initStatic__AnimatedCircuits()
{
Plugin* const p = new Plugin;
Expand Down Expand Up @@ -1526,6 +1569,19 @@ static void initStatic__AS()
}
}

static void initStatic__Astravox()
{
Plugin* const p = new Plugin;
pluginInstance__Astravox = p;

const StaticPluginLoader spl(p, "Astravox");
if (spl.ok())
{
p->addModel(modelVocoder);
p->addModel(modelTapeEcho);
}
}

static void initStatic__AudibleInstruments()
{
Plugin* const p = new Plugin;
Expand Down Expand Up @@ -3738,10 +3794,12 @@ void initStaticPlugins()
initStatic__alefsbits();
initStatic__Algoritmarte();
initStatic__AmalgamatedHarmonics();
initStatic__AmbientModules();
initStatic__AnimatedCircuits();
initStatic__ArableInstruments();
initStatic__Aria();
initStatic__AS();
initStatic__Astravox();
initStatic__AudibleInstruments();
initStatic__Autinn();
initStatic__Axioma();
Expand Down
5 changes: 5 additions & 0 deletions utils/patches/MindMeldModular-xcode27.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--- a/src/ShapeMaster/Shape.hpp
+++ b/src/ShapeMaster/Shape.hpp
@@ -160 +160 @@
- T dx = std::abs<T>((T)points[p + 1].x - (T)points[p].x);
+ T dx = std::abs((T)points[p + 1].x - (T)points[p].x);
8 changes: 8 additions & 0 deletions utils/patches/surgext-xcode27.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
--- a/src/VCO.cpp
+++ b/src/VCO.cpp
@@ -1051 +1051 @@
- p.template emplace_back(x, y0 + (-tb[s] + 1) * 0.5 * hw);
+ p.emplace_back(x, y0 + (-tb[s] + 1) * 0.5 * hw);
@@ -1068 +1068 @@
- ribbon.template emplace_back(x, y0 + (-tb[s] + 1) * 0.5 * hw);
+ ribbon.emplace_back(x, y0 + (-tb[s] + 1) * 0.5 * hw);