diff --git a/.gitmodules b/.gitmodules index 88815aa..fbbf66d 100644 --- a/.gitmodules +++ b/.gitmodules @@ -200,3 +200,6 @@ [submodule "plugins/WhatTheRack"] path = plugins/WhatTheRack url = https://github.com/korfuri/WhatTheRack.git +[submodule "plugins/AS"] + path = plugins/AS + url = https://github.com/AScustomWorks/AS.git diff --git a/README.md b/README.md index 8a5d28b..324c2df 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,7 @@ At the moment the following 3rd-party modules are provided: - Animated Circuits - Arable Instruments - Aria Salvatrice +- AS - Audible Instruments - Autinn - Axioma diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 6e00996..9bb6d93 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -21,6 +21,7 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | Animated Circuits | GPL-3.0-or-later | | | Arable Instruments | GPL-3.0-or-later | | | Aria Salvatrice | GPL-3.0-or-later | | +| AS | MIT | | | Audible Instruments | GPL-3.0-or-later | | | Autinn | GPL-3.0-or-later | | | Axioma | GPL-3.0-or-later | | @@ -109,6 +110,9 @@ Below is a list of artwork licenses from plugins | AriaModules/lcd/Fixed_v01/* | Custom | See [LICENSE.txt](../plugins/AriaModules/res/lcd/Fixed_v01/LICENSE.txt) | | AriaModules/lcd/piano/* | WTFPL | | | AriaModules/signature/* | Custom | Removal required if modifying other files without author's permission | +| 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 | | | 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 | @@ -207,7 +211,7 @@ Below is a list of artwork licenses from plugins | WhatTheRack/BoomButton/* | CC-BY-3.0 | | | ZetaCarinaeModules/* | GPL-3.0-or-later | [Same license as source code](https://github.com/mhampton/ZetaCarinaeModules/issues/8) | | ZZC/* | CC-BY-NC-SA-4.0 | | -| ZZC/panels/* | CC-BY-NC-SA-4.0 | NOTE: The ZZC Logo is Copyright (c) 2019 Sergey Ukolov and cannot be used in derivative works; Cardinal's use does not officially constitute derivative work. | +| ZZC/panels/* | CC-BY-NC-SA-4.0 | The ZZC Logo is Copyright (c) 2019 Sergey Ukolov and cannot be used in derivative works; Cardinal's use does not officially constitute derivative work. | | ZZC/fonts/DSEG/* | OFL-1.1-RFN | | | ZZC/fonts/Nunito/* | OFL-1.1-RFN | | diff --git a/plugins/AS b/plugins/AS new file mode 160000 index 0000000..2284e4a --- /dev/null +++ b/plugins/AS @@ -0,0 +1 @@ +Subproject commit 2284e4a3befb097b42ae30032147fd61226f64ff diff --git a/plugins/Makefile b/plugins/Makefile index 59d9833..4e1d92a 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -316,6 +316,16 @@ PLUGIN_FILES += AriaModules/src/Undular.cpp # modules/types which are present in other plugins ARIA_CUSTOM = Blank +# -------------------------------------------------------------- +# AS + +PLUGIN_FILES += $(filter-out AS/src/AS.cpp,$(wildcard AS/src/*.cpp)) +PLUGIN_FILES += AS/freeverb/revmodel.cpp + +# modules/types which are present in other plugins +AS_CUSTOM = ADSR LabelDisplayWidget LedLight LowFrequencyOscillator VCA YellowRedLight allpass comb revmodel +AS_CUSTOM_PER_FILE = NumberDisplayWidget + # -------------------------------------------------------------- # AudibleInstruments @@ -1292,6 +1302,15 @@ $(BUILD_DIR)/AriaModules/%.cpp.o: AriaModules/%.cpp -DpluginInstance=pluginInstance__Aria \ -Wno-cast-function-type +$(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(AS_CUSTOM),$(call custom_module_names,$(m),AS)) \ + $(foreach m,$(AS_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),AS_$(shell basename $*))) \ + -DpluginInstance=pluginInstance__AS \ + -Wno-unused-private-field + $(BUILD_DIR)/AudibleInstruments/%.o: AudibleInstruments/% -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index a88eb62..c49d27f 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -77,6 +77,17 @@ extern Model* modelUndular; extern Model* modelBlank; #undef modelBlank +// AS +#define modelADSR modelASADSR +#define modelVCA modelASVCA +#define LedLight ASLedLight +#define YellowRedLight ASYellowRedLight +#include "AS/src/AS.hpp" +#undef modelADSR +#undef modelVCA +#undef LedLight +#undef YellowRedLight + // AudibleInstruments #include "AudibleInstruments/src/plugin.hpp" @@ -705,6 +716,7 @@ Plugin* pluginInstance__AmalgamatedHarmonics; Plugin* pluginInstance__ArableInstruments; Plugin* pluginInstance__AnimatedCircuits; Plugin* pluginInstance__Aria; +Plugin* pluginInstance__AS; Plugin* pluginInstance__AudibleInstruments; extern Plugin* pluginInstance__Autinn; Plugin* pluginInstance__Axioma; @@ -1100,6 +1112,68 @@ static void initStatic__Aria() } } +static void initStatic__AS() +{ + Plugin* const p = new Plugin; + pluginInstance__AS = p; + const StaticPluginLoader spl(p, "AS"); + if (spl.ok()) + { +#define modelADSR modelASADSR +#define modelVCA modelASVCA + //OSCILLATORS + p->addModel(modelSineOsc); + p->addModel(modelSawOsc); + //TOOLS + p->addModel(modelADSR); + p->addModel(modelVCA); + p->addModel(modelQuadVCA); + p->addModel(modelTriLFO); + p->addModel(modelAtNuVrTr); + p->addModel(modelBPMClock); + p->addModel(modelSEQ16); + p->addModel(modelMixer2ch); + p->addModel(modelMixer4ch); + p->addModel(modelMixer8ch); + p->addModel(modelMonoVUmeter); + p->addModel(modelStereoVUmeter); + p->addModel(modelMultiple2_5); + p->addModel(modelMerge2_5); + p->addModel(modelSteps); + p->addModel(modelLaunchGate); + p->addModel(modelKillGate); + p->addModel(modelFlow); + p->addModel(modelSignalDelay); + p->addModel(modelTriggersMKI); + p->addModel(modelTriggersMKII); + p->addModel(modelTriggersMKIII); + p->addModel(modelBPMCalc); + p->addModel(modelBPMCalc2); + p->addModel(modelCv2T); + p->addModel(modelZeroCV2T); + p->addModel(modelReScale); + //EFFECTS + p->addModel(modelDelayPlusFx); + p->addModel(modelDelayPlusStereoFx); + p->addModel(modelPhaserFx); + p->addModel(modelReverbFx); + p->addModel(modelReverbStereoFx); + p->addModel(modelSuperDriveFx); + p->addModel(modelSuperDriveStereoFx); + p->addModel(modelTremoloFx); + p->addModel(modelTremoloStereoFx); + p->addModel(modelWaveShaper); + p->addModel(modelWaveShaperStereo); + //BLANK PANELS + p->addModel(modelBlankPanel4); + p->addModel(modelBlankPanel6); + p->addModel(modelBlankPanel8); + p->addModel(modelBlankPanelSpecial); +#undef modelADSR +#undef modelVCA + } +} + static void initStatic__AudibleInstruments() { Plugin* const p = new Plugin; @@ -2577,6 +2651,7 @@ void initStaticPlugins() initStatic__AnimatedCircuits(); initStatic__ArableInstruments(); initStatic__Aria(); + initStatic__AS(); initStatic__AudibleInstruments(); initStatic__Autinn(); initStatic__Axioma();