| @@ -154,6 +154,24 @@ | |||
| [submodule "plugins/Orbits"] | |||
| path = plugins/Orbits | |||
| url = git@github.com:RareBreeds/Orbits.git | |||
| [submodule "plugins/stocaudio"] | |||
| path = plugins/stocaudio | |||
| url = https://github.com/aptrn/stocaudio-modules.git | |||
| [submodule "plugins/CatroModulo"] | |||
| path = plugins/CatroModulo | |||
| url = https://github.com/catronomix/catro-modulo.git | |||
| [submodule "plugins/LilacLoop"] | |||
| path = plugins/LilacLoop | |||
| url = https://github.com/grough/lilac-loop-vcv.git | |||
| [submodule "plugins/kocmoc"] | |||
| path = plugins/kocmoc | |||
| url = https://github.com/janne808/kocmoc-rack-modules.git | |||
| [submodule "plugins/PathSet"] | |||
| path = plugins/PathSet | |||
| url = https://github.com/patheros/PathSetModules.git | |||
| [submodule "plugins/Dintree"] | |||
| path = plugins/Dintree | |||
| url = https://github.com/hires/Dintree-Virtual.git | |||
| [submodule "plugins/StarlingVia"] | |||
| path = plugins/StarlingVia | |||
| url = https://github.com/starlingcode/Via-for-Rack.git | |||
| @@ -114,8 +114,10 @@ At the moment the following 3rd-party modules are provided: | |||
| - Befaco | |||
| - Bidoo | |||
| - Bogaudio | |||
| - Catro/Modulo | |||
| - cf | |||
| - ChowDSP | |||
| - Dintree Virtual | |||
| - DrumKit | |||
| - E-Series | |||
| - ExpertSleepers Encoders | |||
| @@ -129,7 +131,9 @@ At the moment the following 3rd-party modules are provided: | |||
| - ihtsyn | |||
| - Impromptu | |||
| - JW-Modules | |||
| - kocmoc | |||
| - LifeFormModular | |||
| - Lilac Loop | |||
| - Little Utils | |||
| - Lomas Modules | |||
| - Lyrae Modules | |||
| @@ -139,11 +143,13 @@ At the moment the following 3rd-party modules are provided: | |||
| - Mog | |||
| - mscHack | |||
| - Orbits | |||
| - Path Set | |||
| - Prism | |||
| - rackwindows | |||
| - repelzen | |||
| - Sonus Modular | |||
| - Starling Via | |||
| - stocaudio | |||
| - Substation Opensource | |||
| - Valley | |||
| - ZetaCarinae | |||
| @@ -54,8 +54,8 @@ BASE_FLAGS += -I../include/mingw-compat | |||
| BASE_FLAGS += -I../include/mingw-std-threads | |||
| endif | |||
| BUILD_C_FLAGS += -fno-finite-math-only | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only | |||
| BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| # Rack code is not tested for this flag, unset it | |||
| BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS | |||
| @@ -4,7 +4,7 @@ | |||
| While Cardinal itself is licensed under GPLv3+, some modules/plugins used by it are not. | |||
| And since Cardinal builds the entire Rack and modules as a static library, | |||
| the more restrictive of the **code licenses** will apply to the final binary. | |||
| the more restrictive of the **code licenses** will apply to the final binary. | |||
| Bellow follows a list of all code licenses used in Cardinal and linked submodules. | |||
| @@ -25,8 +25,10 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||
| | Befaco | GPL-3.0-or-later | | | |||
| | Bidoo | GPL-3.0-or-later | | | |||
| | Bogaudio | GPL-3.0-or-later | | | |||
| | Catro/Modulo | BSD-3-Clause | | | |||
| | cf | BSD-3-Clause | | | |||
| | ChowDSP | GPL-3.0-or-later | | | |||
| | Dintree | GPL-3.0-or-later | | | |||
| | DrumKit | CC0-1.0 | | | |||
| | E-Series | GPL-3.0-or-later | | | |||
| | ExpertSleepers Encoders | MIT | | | |||
| @@ -40,7 +42,9 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||
| | ihtsyn | GPL-3.0-or-later | | | |||
| | Impromptu | GPL-3.0-or-later | | | |||
| | JW-Modules | BSD-3-Clause | | | |||
| | kocmoc | GPL-3.0-or-later | | | |||
| | LifeFormModular | MIT | | | |||
| | Lilac Loop | GPL-3.0-or-later | | | |||
| | Little Utils | EUPL-1.2 | | | |||
| | Lomas Modules | GPL-3.0-or-later | | | |||
| | Lyrae Modules | GPL-3.0-or-later | | | |||
| @@ -50,11 +54,13 @@ Bellow follows a list of all code licenses used in Cardinal and linked submodule | |||
| | Mog | CC0-1.0 | | | |||
| | mscHack | BSD-3-Clause | | | |||
| | Orbits | GPL-3.0-or-later | | | |||
| | Path Set | GPL-3.0-or-later | | | |||
| | Prism | BSD-3-Clause | | | |||
| | Rackwindows | MIT | | | |||
| | repelzen | GPL-3.0-or-later | | | |||
| | Sonus Modular | GPL-3.0-or-later | | | |||
| | Starling Via | MIT | | | |||
| | stocaudio | GPL-3.0-or-later | | | |||
| | Substation Opensource | BSD-3-Clause-Attribution | Need to check full compatibility with GPLv3+ | | |||
| | Valley | GPL-3.0-or-later | | | |||
| | ZetaCarinae | GPL-3.0-or-later | | | |||
| @@ -105,12 +111,15 @@ Below is a list of artwork licenses from plugins | |||
| | BogaudioModules/fonts/inconsolata*.ttf | OFL-1.1-no-RFN | | | |||
| | Cardinal/* | CC0-1.0 | | | |||
| | Cardinal/Miku/Miku.png | CC-BY-NC-3.0 | https://piapro.net/intl/en_for_creators.html | | |||
| | CatroModulo/* | BSD-3-Clause | No artwork specific license provided | | |||
| | CatroModulo/Segment7Standard.ttf | OFL-1.1-RFN | | | |||
| | cf/* | BSD-3-Clause | No artwork specific license provided | | |||
| | cf/DejaVuSansMono.ttf | Bitstream-Vera | | | |||
| | cf/Segment7Standard.ttf | OFL-1.1-RFN | | | |||
| | cf/VT323-Regular.ttf | OFL-1.1-no-RFN | | | |||
| | ChowDSP/* | GPL-3.0-or-later | Same license as source code | | |||
| | ChowDSP/fonts/RobotoCondensed-*.ttf | Apache-2.0 | | | |||
| | Dintree/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | DrumKit/* | CC0-1.0 | | | |||
| | DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | | | |||
| | E-Series/* | Custom | Copyright © Synthesis Technology, [used and distributed with permission](LICENSE-PERMISSIONS.md#eseries-paul-schreiber--synthtech) | | |||
| @@ -129,7 +138,9 @@ Below is a list of artwork licenses from plugins | |||
| | ImpromptuModular/res/comp/complib/* | CC-BY-NC-4.0 | | | |||
| | JW-Modules/* | BSD-3-Clause | No artwork specific license provided | | |||
| | JW-Modules/DejaVuSansMono.ttf | Bitstream-Vera | Unused in Cardinal | | |||
| | kocmoc/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | LifeFormModular/* | MIT | No artwork specific license provided | | |||
| | LilacLoop/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | LittleUtils/* | EUPL-1.2 | Same license as source code | | |||
| | LittleUtils/fonts/CooperHewitt-*.ttf | OFL-1.1-RFN | | | |||
| | LittleUtils/fonts/Overpass-*.ttf | OFL-1.1-RFN | | | |||
| @@ -149,12 +160,14 @@ Below is a list of artwork licenses from plugins | |||
| | mscHack/* | BSD-3-Clause | No artwork specific license provided, see [mschack#108](https://github.com/mschack/VCV-Rack-Plugins/issues/108) | | |||
| | Orbits/* | CC-BY-NC-ND-4.0 | | | |||
| | Orbits/fonts/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | |||
| | PathSet/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | Prism/* | CC-BY-SA-4.0 | | | |||
| | Prism/RobotoCondensed-Regular.ttf | Apache-2.0 | | | |||
| | Rackwindows/* | MIT | [Same license as source code](https://github.com/n0jo/rackwindows/issues/15) | | |||
| | repelzen/* | CC-BY-SA-4.0 | | | |||
| | 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 | | |||
| | substation-opensource/* | BSD-3-Clause-Attribution | No artwork specific license provided | | |||
| | ValleyAudio/* | GPL-3.0-or-later | [Same license as source code](https://github.com/ValleyAudio/ValleyRackFree/issues/73) | | |||
| | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| @@ -15,4 +15,6 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #pragma once | |||
| #include <shlobj.h> | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| @@ -15,4 +15,6 @@ | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #pragma once | |||
| #include <shlwapi.h> | |||
| @@ -0,0 +1,25 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| * published by the Free Software Foundation; either version 3 of | |||
| * the License, or any later version. | |||
| * | |||
| * This program is distributed in the hope that it will be useful, | |||
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |||
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |||
| * GNU General Public License for more details. | |||
| * | |||
| * For a full copy of the GNU General Public License see the LICENSE file. | |||
| */ | |||
| #pragma once | |||
| #include_next <future> | |||
| #include "mingw.future.h" | |||
| #undef IN | |||
| #undef OUT | |||
| #undef far | |||
| #undef near | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit bf6f969c5f7fff6a419a54197fb4318671281ad5 | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 8d28da2a6083eb6af4b8d559e001fc9afbe2d41f | |||
| @@ -1 +1 @@ | |||
| Subproject commit df096a635fe8d3ea86a1e6451a55e45ccee5b83d | |||
| Subproject commit 95496e8a955407889bbab94cf404cf356802bb76 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 40a197698496030a30ead69658b1484eca2ae299 | |||
| Subproject commit 33f445d1e3f78aa1f62c8995010303bdb42e0163 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 68f04a5a8a1a656e7a3aa7e217524f0feb91167e | |||
| Subproject commit f7399c473735c0a5bec95bb40953e781f9a47ca4 | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 69d8d66521175cd561d53e65728d460b398950c9 | |||
| @@ -429,11 +429,26 @@ PLUGIN_FILES += $(filter-out ChowDSP/src/Credit.cpp,$(wildcard ChowDSP/src/*/*.c | |||
| PLUGIN_FILES += $(wildcard ChowDSP/src/*/*/*.cpp) | |||
| PLUGIN_FILES += $(wildcard ChowDSP/lib/r8lib/*.cpp) | |||
| # -------------------------------------------------------------- | |||
| # CatroModulo | |||
| PLUGIN_FILES += $(wildcard CatroModulo/src/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| CATROMODULO_CUSTOM = LowFrequencyOscillator NumDisplayWidget | |||
| # -------------------------------------------------------------- | |||
| # cf | |||
| PLUGIN_FILES += $(filter-out cf/src/plugin.cpp,$(wildcard cf/src/*.cpp)) | |||
| # -------------------------------------------------------------- | |||
| # Dintree | |||
| PLUGIN_FILES += $(wildcard Dintree/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard Dintree/src/components/*.cpp) | |||
| PLUGIN_FILES += $(wildcard Dintree/src/utils/*.cpp) | |||
| # -------------------------------------------------------------- | |||
| # DrumKit | |||
| @@ -444,6 +459,7 @@ PLUGIN_FILES += $(wildcard DrumKit/src/model/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/deps/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator | |||
| # -------------------------------------------------------------- | |||
| @@ -466,6 +482,7 @@ PLUGIN_FILES += $(filter-out Extratone/src/plugin.cpp,$(wildcard Extratone/src/* | |||
| PLUGIN_FILES += $(filter-out FehlerFabrik/src/plugin.cpp,$(wildcard FehlerFabrik/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| FEHLERFABRIK_CUSTOM = Operator Sequencer SlewLimiter | |||
| # -------------------------------------------------------------- | |||
| @@ -559,6 +576,14 @@ endif | |||
| # modules/types which are present in other plugins | |||
| JW_CUSTOM = PlayHead Quantizer | |||
| # -------------------------------------------------------------- | |||
| # kocmoc | |||
| PLUGIN_FILES += $(wildcard kocmoc/src/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| KOCMOC_CUSTOM = Phasor __ct_base __ct_comp | |||
| # -------------------------------------------------------------- | |||
| # LifeFormModular | |||
| @@ -567,6 +592,14 @@ PLUGIN_FILES += $(filter-out LifeFormModular/src/plugin.cpp,$(wildcard LifeFormM | |||
| # modules/types which are present in other plugins | |||
| LIFEFORMMODULAR_CUSTOM = IO MS __ct_base __ct_comp | |||
| # -------------------------------------------------------------- | |||
| # Lilac Loop | |||
| PLUGIN_FILES += $(wildcard LilacLoop/src/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| LILACLOOP_CUSTOM = AudioFile Mode | |||
| # -------------------------------------------------------------- | |||
| # LittleUtils | |||
| @@ -611,7 +644,7 @@ PLUGIN_FILES += $(filter-out ML_modules/src/plugin.cpp,$(wildcard ML_modules/src | |||
| PLUGIN_FILES += ML_modules/freeverb/revmodel.cpp | |||
| # modules/types which are present in other plugins | |||
| ML_CUSTOM = Quant Quantizer QuantizerWidget SH8 allpass comb revmodel | |||
| ML_CUSTOM = Mode Quant Quantizer QuantizerWidget SH8 allpass comb revmodel | |||
| # -------------------------------------------------------------- | |||
| # MockbaModular | |||
| @@ -640,6 +673,11 @@ MSCHACK_CUSTOM_PER_FILE = MAIN_SYNC_CLOCK FILTER_STRUCT FILTER_PARAM_STRUCT OSC_ | |||
| PLUGIN_FILES += $(wildcard Orbits/src/*.cpp) | |||
| # -------------------------------------------------------------- | |||
| # Path Set | |||
| PLUGIN_FILES += $(wildcard PathSet/src/*.cpp) | |||
| # -------------------------------------------------------------- | |||
| # Prism | |||
| @@ -678,6 +716,10 @@ PLUGIN_FILES += $(wildcard StarlingVia/Via/modules/*/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| STARLINGVIA_CUSTOM = Scanner | |||
| # -------------------------------------------------------------- | |||
| # stocaudio | |||
| PLUGIN_FILES += $(wildcard stocaudio/src/*.cpp) | |||
| # -------------------------------------------------------------- | |||
| # Substation (Open source release) | |||
| @@ -795,7 +837,6 @@ BASE_FLAGS += -DARCH_LIN | |||
| endif | |||
| BASE_FLAGS += -DBUILDING_PLUGIN_MODULES | |||
| BASE_FLAGS += -fno-strict-aliasing | |||
| BASE_FLAGS += -I../dpf/dgl/src/nanovg | |||
| BASE_FLAGS += -I../dpf/distrho | |||
| @@ -865,8 +906,8 @@ BASE_FLAGS += -DHAVE_SNDFILE | |||
| endif | |||
| BUILD_C_FLAGS += -std=gnu11 | |||
| BUILD_C_FLAGS += -fno-finite-math-only | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only | |||
| BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| # Rack code is not tested for this flag, unset it | |||
| BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS | |||
| @@ -1220,6 +1261,13 @@ $(BUILD_DIR)/BogaudioModules/%.cpp.o: BogaudioModules/%.cpp | |||
| -IBogaudioModules/lib \ | |||
| -IBogaudioModules/src/dsp | |||
| $(BUILD_DIR)/CatroModulo/src/%.cpp.o: CatroModulo/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(CATROMODULO_CUSTOM),$(call custom_module_names,$(m),CatroModulo)) \ | |||
| -DpluginInstance=pluginInstance__CatroModulo | |||
| $(BUILD_DIR)/cf/src/%.cpp.o: cf/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1240,6 +1288,13 @@ $(BUILD_DIR)/ChowDSP/%.cpp.o: ChowDSP/%.cpp | |||
| -IChowDSP/lib/chowdsp_utils/DSP/WDF \ | |||
| -Wno-deprecated-copy | |||
| $(BUILD_DIR)/Dintree/%.cpp.o: Dintree/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(DINTREE_CUSTOM),$(call custom_module_names,$(m),Dintree)) \ | |||
| -DpluginInstance=pluginInstance__Dintree | |||
| $(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1399,6 +1454,13 @@ $(BUILD_DIR)/JW-Modules/%.cpp.o: JW-Modules/%.cpp | |||
| -Wno-unused-but-set-variable \ | |||
| -Wno-unused-result | |||
| $(BUILD_DIR)/kocmoc/%.cpp.o: kocmoc/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(KOCMOC_CUSTOM),$(call custom_module_names,$(m),kocmoc)) \ | |||
| -DpluginInstance=pluginInstance__kocmoc | |||
| $(BUILD_DIR)/LifeFormModular/%.cpp.o: LifeFormModular/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1406,6 +1468,14 @@ $(BUILD_DIR)/LifeFormModular/%.cpp.o: LifeFormModular/%.cpp | |||
| $(foreach m,$(LIFEFORMMODULAR_CUSTOM),$(call custom_module_names,$(m),LifeFormModular)) \ | |||
| -DpluginInstance=pluginInstance__LifeFormModular | |||
| $(BUILD_DIR)/LilacLoop/%.cpp.o: LilacLoop/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(LILACLOOP_CUSTOM),$(call custom_module_names,$(m),LilacLoop)) \ | |||
| -DpluginInstance=pluginInstance__LilacLoop \ | |||
| -DSKIP_MINGW_FORMAT | |||
| $(BUILD_DIR)/LittleUtils/%.cpp.o: LittleUtils/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1483,6 +1553,13 @@ $(BUILD_DIR)/Orbits/%.cpp.o: Orbits/%.cpp | |||
| $(foreach m,$(ORBITS_CUSTOM),$(call custom_module_names,$(m),Orbits)) \ | |||
| -DpluginInstance=pluginInstance__Orbits | |||
| $(BUILD_DIR)/PathSet/%.cpp.o: PathSet/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(PATHSET_CUSTOM),$(call custom_module_names,$(m),PathSet)) \ | |||
| -DpluginInstance=pluginInstance__PathSet | |||
| $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1528,6 +1605,13 @@ $(BUILD_DIR)/StarlingVia/%.cpp.o: StarlingVia/%.cpp | |||
| -IStarlingVia/Via/ui/inc \ | |||
| -I./dep/starling-dsp | |||
| $(BUILD_DIR)/stocaudio/%.cpp.o: stocaudio/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(STOCAUDIO_CUSTOM),$(call custom_module_names,$(m),stocaudio)) \ | |||
| -DpluginInstance=pluginInstance__stocaudio | |||
| $(BUILD_DIR)/substation-%.cpp.o: substation-%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1 +1 @@ | |||
| Subproject commit 621a29f3f1b521582fd11ca7f17635d19faa340c | |||
| Subproject commit 38e72d454ddb1197ec8225224656135abe6b6609 | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit d03e8b486deba4740bc7f15ae95a08d823a7d00a | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit f2a8c19f8aa81769e13d085d69a44de5afaacfaa | |||
| @@ -267,6 +267,9 @@ extern Model* modelTestVCF; | |||
| #undef modelVCF | |||
| #undef modelVCO | |||
| // CatroModulo | |||
| #include "CatroModulo/src/CatroModulo.hpp" | |||
| // cf | |||
| #include "cf/src/plugin.hpp" | |||
| @@ -276,6 +279,9 @@ extern Model* modelTestVCF; | |||
| #include "ChowDSP/src/plugin.cpp" | |||
| #undef init | |||
| // Dintree | |||
| #include "Dintree/src/plugin.hpp" | |||
| // DrumKit | |||
| #include "DrumKit/src/DrumKit.hpp" | |||
| void setupSamples(); | |||
| @@ -407,6 +413,9 @@ extern Model* modelBlankPanel; | |||
| #include "JW-Modules/src/JWModules.hpp" | |||
| #undef modelQuantizer | |||
| // kocmoc | |||
| #include "kocmoc/src/plugin.hpp" | |||
| // LifeFormModular | |||
| /* NOTE too much noise in original include, do this a different way | |||
| // #include "LifeFormModular/src/plugin.hpp" | |||
| @@ -428,6 +437,13 @@ extern Model* modelDriftgen; | |||
| // LittleUtils | |||
| #include "LittleUtils/src/plugin.hpp" | |||
| // Lilac Loop | |||
| /* NOTE too much noise in original include, do this a different way | |||
| // #include "LilacLoop/src/plugin.hpp" | |||
| */ | |||
| extern Model* modelLooperOne; | |||
| extern Model* modelLooperTwo; | |||
| // LomasModules | |||
| #include "LomasModules/src/plugin.hpp" | |||
| #undef DR_WAV_IMPLEMENTATION | |||
| @@ -549,6 +565,9 @@ extern Model* modelMaude_221; | |||
| // Orbits | |||
| #include "Orbits/src/plugin.hpp" | |||
| // Path Set | |||
| # include "PathSet/src/plugin.hpp" | |||
| // Prism | |||
| # include "Prism/src/plugin.hpp" | |||
| @@ -569,11 +588,15 @@ extern Model* modelMaude_221; | |||
| // sonusmodular | |||
| #include "sonusmodular/src/sonusmodular.hpp" | |||
| // Starling Via | |||
| #define modelScanner modelStarlingViaScanner | |||
| #include "StarlingVia/src/starling.hpp" | |||
| #undef modelScanner | |||
| // stocaudio | |||
| #include "stocaudio/src/plugin.hpp" | |||
| // substation | |||
| /* NOTE too much noise in original include, do this a different way | |||
| // "substation-opensource/src/_plugin.hpp" | |||
| @@ -636,8 +659,10 @@ Plugin* pluginInstance__Bacon; | |||
| Plugin* pluginInstance__Befaco; | |||
| Plugin* pluginInstance__Bidoo; | |||
| Plugin* pluginInstance__BogaudioModules; | |||
| Plugin* pluginInstance__CatroModulo; | |||
| Plugin* pluginInstance__cf; | |||
| Plugin* pluginInstance__ChowDSP; | |||
| Plugin* pluginInstance__Dintree; | |||
| extern Plugin* pluginInstance__DrumKit; | |||
| Plugin* pluginInstance__ESeries; | |||
| Plugin* pluginInstance__ExpertSleepersEncoders; | |||
| @@ -654,7 +679,9 @@ Plugin* pluginInstance__HetrickCV; | |||
| extern Plugin* pluginInstance__ImpromptuModular; | |||
| Plugin* pluginInstance__ihtsyn; | |||
| Plugin* pluginInstance__JW; | |||
| Plugin* pluginInstance__kocmoc; | |||
| Plugin* pluginInstance__LifeFormModular; | |||
| Plugin* pluginInstance__LilacLoop; | |||
| Plugin* pluginInstance__LittleUtils; | |||
| Plugin* pluginInstance__Lomas; | |||
| Plugin* pluginInstance__Lyrae; | |||
| @@ -664,11 +691,13 @@ Plugin* pluginInstance__MockbaModular; | |||
| Plugin* pluginInstance__Mog; | |||
| extern Plugin* pluginInstance__mscHack; | |||
| Plugin* pluginInstance__Orbits; | |||
| Plugin* pluginInstance__PathSet; | |||
| Plugin* pluginInstance__Prism; | |||
| Plugin* pluginInstance__rackwindows; | |||
| Plugin* pluginInstance__repelzen; | |||
| Plugin* pluginInstance__sonusmodular; | |||
| Plugin* pluginInstance__StarlingVia; | |||
| Plugin* pluginInstance__stocaudio; | |||
| Plugin* pluginInstance__substation; | |||
| Plugin* pluginInstance__ValleyAudio; | |||
| Plugin* pluginInstance__ZetaCarinaeModules; | |||
| @@ -1281,6 +1310,27 @@ static void initStatic__BogaudioModules() | |||
| } | |||
| } | |||
| static void initStatic__CatroModulo() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__CatroModulo = p; | |||
| const StaticPluginLoader spl(p, "CatroModulo"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelCM1Module); | |||
| p->addModel(modelCM2Module); | |||
| p->addModel(modelCM3Module); | |||
| p->addModel(modelCM4Module); | |||
| p->addModel(modelCM5Module); | |||
| p->addModel(modelCM6Module); | |||
| p->addModel(modelCM7Module); | |||
| p->addModel(modelCM8Module); | |||
| p->addModel(modelCM9Module); | |||
| p->addModel(modelCM10Module); | |||
| } | |||
| } | |||
| static void initStatic__cf() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -1348,6 +1398,26 @@ static void initStatic__ChowDSP() | |||
| } | |||
| } | |||
| static void initStatic__Dintree() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__Dintree = p; | |||
| const StaticPluginLoader spl(p, "Dintree"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelV100_Scanner); | |||
| p->addModel(modelV101_Dual_Envelope); | |||
| p->addModel(modelV102_Output_Mixer); | |||
| p->addModel(modelV103_Reverb_Delay); | |||
| p->addModel(modelV104_Four_Vs); | |||
| p->addModel(modelV105_Quad_CV_Proc); | |||
| p->addModel(modelV107_Dual_Slew); | |||
| p->addModel(modelV201_Tri_Comparator); | |||
| p->addModel(modelV218_SH_Clock_Noise); | |||
| } | |||
| } | |||
| static void initStatic__DrumKit() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -1548,11 +1618,13 @@ static void initStatic__GrandeModular() | |||
| { | |||
| p->addModel(modelClip); | |||
| p->addModel(modelLFO3); | |||
| p->addModel(modelLogic); | |||
| p->addModel(modelMerge8); | |||
| p->addModel(modelMergeSplit4); | |||
| p->addModel(modelMicrotonalChords); | |||
| p->addModel(modelMicrotonalNotes); | |||
| p->addModel(modelNoteMT); | |||
| p->addModel(modelPeak); | |||
| p->addModel(modelPolyMergeResplit); | |||
| p->addModel(modelPolySplit); | |||
| p->addModel(modelQuant); | |||
| @@ -1741,6 +1813,25 @@ static void initStatic__JW() | |||
| } | |||
| } | |||
| static void initStatic__kocmoc() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__kocmoc= p; | |||
| const StaticPluginLoader spl(p, "kocmoc"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelSVF_1); | |||
| p->addModel(modelTRG); | |||
| p->addModel(modelLADR); | |||
| p->addModel(modelOP); | |||
| p->addModel(modelPHASR); | |||
| p->addModel(modelMUL); | |||
| p->addModel(modelSKF); | |||
| p->addModel(modelDDLY); | |||
| } | |||
| } | |||
| static void initStatic__LifeFormModular() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -1765,6 +1856,18 @@ static void initStatic__LifeFormModular() | |||
| } | |||
| } | |||
| static void initStatic__LilacLoop() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__LilacLoop = p; | |||
| const StaticPluginLoader spl(p, "LilacLoop"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelLooperOne); | |||
| } | |||
| } | |||
| static void initStatic__LittleUtils() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -2000,6 +2103,20 @@ static void initStatic__Orbits() | |||
| } | |||
| } | |||
| static void initStatic__PathSet() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__PathSet = p; | |||
| const StaticPluginLoader spl(p, "PathSet"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelShiftyMod); | |||
| p->addModel(modelIceTray); | |||
| p->addModel(modelAstroVibe); | |||
| } | |||
| } | |||
| static void initStatic__Prism() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -2105,6 +2222,7 @@ static void initStatic__sonusmodular() | |||
| } | |||
| } | |||
| static void initStatic__StarlingVia() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -2127,6 +2245,20 @@ static void initStatic__StarlingVia() | |||
| } | |||
| } | |||
| static void initStatic__stocaudio() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__stocaudio = p; | |||
| const StaticPluginLoader spl(p, "stocaudio"); | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelPolyturing); | |||
| p->addModel(modelPolydelay); | |||
| p->addModel(modelSpread); | |||
| } | |||
| } | |||
| static void initStatic__substation() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| @@ -2226,8 +2358,10 @@ void initStaticPlugins() | |||
| initStatic__Befaco(); | |||
| initStatic__Bidoo(); | |||
| initStatic__BogaudioModules(); | |||
| initStatic__CatroModulo(); | |||
| initStatic__cf(); | |||
| initStatic__ChowDSP(); | |||
| initStatic__Dintree(); | |||
| initStatic__DrumKit(); | |||
| initStatic__ESeries(); | |||
| initStatic__ExpertSleepersEncoders(); | |||
| @@ -2244,7 +2378,9 @@ void initStaticPlugins() | |||
| initStatic__ImpromptuModular(); | |||
| initStatic__ihtsyn(); | |||
| initStatic__JW(); | |||
| initStatic__kocmoc(); | |||
| initStatic__LifeFormModular(); | |||
| initStatic__LilacLoop(); | |||
| initStatic__LittleUtils(); | |||
| initStatic__Lomas(); | |||
| initStatic__Lyrae(); | |||
| @@ -2254,11 +2390,13 @@ void initStaticPlugins() | |||
| initStatic__Mog(); | |||
| initStatic__mscHack(); | |||
| initStatic__Orbits(); | |||
| initStatic__PathSet(); | |||
| initStatic__Prism(); | |||
| initStatic__rackwindows(); | |||
| initStatic__repelzen(); | |||
| initStatic__sonusmodular(); | |||
| initStatic__StarlingVia(); | |||
| initStatic__stocaudio(); | |||
| initStatic__substation(); | |||
| initStatic__ValleyAudio(); | |||
| initStatic__ZetaCarinaeModules(); | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit ed5c85b0d9391c37f4ec4d9de4ef8aa30d94bcd6 | |||
| @@ -36,7 +36,6 @@ ifeq ($(HAIKU),true) | |||
| BASE_FLAGS += -I../include/haiku-compat | |||
| endif | |||
| BASE_FLAGS += -fno-strict-aliasing | |||
| BASE_FLAGS += -DPRIVATE= | |||
| BASE_FLAGS += -I../dpf/dgl/src/nanovg | |||
| BASE_FLAGS += -I../dpf/distrho | |||
| @@ -95,8 +94,8 @@ BASE_FLAGS += -I../include/mingw-std-threads | |||
| endif | |||
| BUILD_C_FLAGS += -std=gnu11 | |||
| BUILD_C_FLAGS += -fno-finite-math-only | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only | |||
| BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| # use our custom function to invert some colors | |||
| BUILD_CXX_FLAGS += -DnsvgParseFromFile=nsvgParseFromFileCardinal | |||
| @@ -129,7 +129,6 @@ else | |||
| BASE_FLAGS += -DARCH_LIN | |||
| endif | |||
| BASE_FLAGS += -fno-strict-aliasing | |||
| BASE_FLAGS += -DPRIVATE= | |||
| BASE_FLAGS += -I.. | |||
| BASE_FLAGS += -I../../dpf/dgl/src/nanovg | |||
| @@ -170,8 +169,8 @@ BASE_FLAGS += -I../../include/mingw-std-threads | |||
| endif | |||
| BUILD_C_FLAGS += -std=gnu11 | |||
| BUILD_C_FLAGS += -fno-finite-math-only | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only | |||
| BUILD_C_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| BUILD_CXX_FLAGS += -fno-finite-math-only -fno-strict-aliasing | |||
| # Rack code is not tested for this flag, unset it | |||
| BUILD_CXX_FLAGS += -U_GLIBCXX_ASSERTIONS -Wp,-U_GLIBCXX_ASSERTIONS | |||
| @@ -234,6 +234,8 @@ static const struct { | |||
| { "/JW-Modules/res/Trigs.svg", {}, -1 }, | |||
| { "/JW-Modules/res/WavHeadPanel.svg", {}, -1 }, | |||
| { "/JW-Modules/res/XYPad.svg", {}, -1 }, | |||
| // GPL3.0-or-later | |||
| { "/LilacLoop/res/Looper.svg", {}, -1 }, | |||
| // EUPL-1.2 | |||
| { "/LittleUtils/res/Bias_Semitone.svg", {}, -1 }, | |||
| { "/LittleUtils/res/ButtonModule.svg", {}, -1 }, | |||
| @@ -241,16 +243,39 @@ static const struct { | |||
| { "/LittleUtils/res/PulseGenerator.svg", {}, -1 }, | |||
| { "/LittleUtils/res/TeleportIn.svg", {}, -1 }, | |||
| { "/LittleUtils/res/TeleportOut.svg", {}, -1 }, | |||
| // GPL-3.0-or-later | |||
| { "/kocmoc/res/DDLY.svg", {}, -1 }, | |||
| { "/kocmoc/res/LADR.svg", {}, -1 }, | |||
| { "/kocmoc/res/MUL.svg", {}, -1 }, | |||
| { "/kocmoc/res/OP.svg", {}, -1 }, | |||
| { "/kocmoc/res/PHASR.svg", {}, -1 }, | |||
| { "/kocmoc/res/SKF.svg", {}, -1 }, | |||
| { "/kocmoc/res/SVF.svg", {}, -1 }, | |||
| { "/kocmoc/res/TRG.svg", {}, -1 }, | |||
| // GPL-3.0-or-later | |||
| { "/PathSet/res/AstroVibe.svg", {}, -1 }, | |||
| { "/PathSet/res/IceTray.svg", {}, -1 }, | |||
| { "/PathSet/res/ShiftyMod.svg", {}, -1 }, | |||
| }; | |||
| static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | |||
| static inline bool invertPaint(NSVGshape* const shape, NSVGpaint& paint, const char* const svgFileToInvert = nullptr) | |||
| { | |||
| // Special case for DrumKit background grandient | |||
| if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0) | |||
| if (paint.type == NSVG_PAINT_LINEAR_GRADIENT && svgFileToInvert != nullptr) | |||
| { | |||
| paint.type = NSVG_PAINT_COLOR; | |||
| paint.color = 0xff191919; | |||
| return true; | |||
| // Special case for DrumKit background gradient | |||
| if (std::strncmp(svgFileToInvert, "/DrumKit/", 9) == 0) | |||
| { | |||
| paint.type = NSVG_PAINT_COLOR; | |||
| paint.color = 0xff191919; | |||
| return true; | |||
| } | |||
| // Special case for PathSet shifty gradient | |||
| if (std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) | |||
| { | |||
| paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue | |||
| paint.gradient->stops[1].color = 0xff5b3a1a; // 33.3% darker than main blue | |||
| return false; | |||
| } | |||
| } | |||
| if (paint.type == NSVG_PAINT_NONE) | |||
| @@ -303,6 +328,86 @@ static inline bool invertPaint(NSVGpaint& paint, const char* const svgFileToInve | |||
| } | |||
| } | |||
| // Special case for Lilac | |||
| if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/LilacLoop/", 11) == 0) | |||
| { | |||
| switch (paint.color) | |||
| { | |||
| // main bg (custom) | |||
| case 0xffd5d5da: | |||
| paint.color = 0xff242228; | |||
| return true; | |||
| // main color (do nothing) | |||
| case 0xffbfb7d7: | |||
| return false; | |||
| // screws (hide) | |||
| case 0xffc8c8cf: | |||
| case 0xffbcbcbc: | |||
| case 0xffb1b1bb: | |||
| case 0xffacacac: | |||
| case 0xff898991: | |||
| case 0xff727272: | |||
| paint.color = 0x00000000; | |||
| return true; | |||
| } | |||
| } | |||
| // Special case for PathSet colors | |||
| if (svgFileToInvert != nullptr && std::strncmp(svgFileToInvert, "/PathSet/", 9) == 0) | |||
| { | |||
| switch (paint.color) | |||
| { | |||
| // main blue tone | |||
| case 0xffdf7a1a: | |||
| if (shape->opacity == 0.5f && std::strcmp(svgFileToInvert, "/PathSet/res/AstroVibe.svg") == 0) | |||
| { | |||
| shape->opacity = 0.2f; | |||
| return true; | |||
| } | |||
| if (shape->opacity == 0.25f) | |||
| shape->opacity = 0.75f; | |||
| return false; | |||
| // bottom logo stuff, set to full white | |||
| case 0xff000000: | |||
| if (shape->stroke.type != NSVG_PAINT_NONE) | |||
| { | |||
| paint.color = 0xffffffff; | |||
| return true; | |||
| } | |||
| break; | |||
| // pink step 2 (pink with 50% opacity on bg) | |||
| case 0xffef73ea: | |||
| paint.color = 0xff812d7d; | |||
| return true; | |||
| // pink step 3 (pink with 33.3% opacity on bg) | |||
| case 0xfff49ff0: | |||
| paint.color = 0xff4d234c; | |||
| return true; | |||
| // pink and orange | |||
| case 0xffe941e2: | |||
| case 0xff698efb: | |||
| return false; | |||
| // blue darker 1 (blue with 50% opacity on bg) | |||
| case 0xffde944f: | |||
| case 0xffe3b080: | |||
| case 0xffe4cbb3: | |||
| case 0xfff5c99f: | |||
| case 0xfff6d1b0: | |||
| paint.color = 0xff7c4919; | |||
| return true; | |||
| // blue darker 2 (blue with 33.3% opacity on bg) | |||
| case 0xffe5d9cd: | |||
| case 0xfff8dcc2: | |||
| case 0xffe1a265: | |||
| paint.color = 0xff5b3a1a; | |||
| return true; | |||
| // blue darker 3 (blue with 25% opacity on bg) | |||
| case 0xffe5cbb3: | |||
| paint.color = 0xff4b321a; | |||
| return true; | |||
| } | |||
| } | |||
| switch (paint.color) | |||
| { | |||
| // scopes or other special things (do nothing) | |||
| @@ -384,8 +489,8 @@ NSVGimage* nsvgParseFromFileCardinal(const char* const filename, const char* con | |||
| if (ignore) | |||
| continue; | |||
| if (invertPaint(shape->fill, svgFileToInvert)) | |||
| invertPaint(shape->stroke, svgFileToInvert); | |||
| if (invertPaint(shape, shape->fill, svgFileToInvert)) | |||
| invertPaint(shape, shape->stroke, svgFileToInvert); | |||
| } | |||
| return handle; | |||