| @@ -5,7 +5,7 @@ body: | |||
| id: version | |||
| attributes: | |||
| label: Version | |||
| value: "24.12" | |||
| value: "25.06" | |||
| validations: | |||
| required: true | |||
| - type: dropdown | |||
| @@ -3,11 +3,12 @@ name: build | |||
| on: [push, pull_request] | |||
| env: | |||
| CACHE_VERSION: 11 | |||
| CACHE_VERSION: 12 | |||
| CARDINAL_UNDER_WINE: 1 | |||
| CIBUILD: true | |||
| DEBIAN_FRONTEND: noninteractive | |||
| LIBGL_ALWAYS_SOFTWARE: true | |||
| PAWPAW_CI: 1 | |||
| PAWPAW_FAST_MATH: 1 | |||
| PAWPAW_SKIP_GLIB: 1 | |||
| PAWPAW_SKIP_LTO: 1 | |||
| @@ -23,7 +24,7 @@ jobs: | |||
| target: [aarch64, armhf, i686, riscv64, x86_64] | |||
| runs-on: ubuntu-latest | |||
| container: | |||
| image: ubuntu:20.04 | |||
| image: ubuntu:22.04 | |||
| steps: | |||
| - name: Install git | |||
| run: | | |||
| @@ -125,7 +126,7 @@ jobs: | |||
| *.tar.gz | |||
| linux-x86_64-debug: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -228,10 +229,12 @@ jobs: | |||
| files: | | |||
| ${{ github.event.repository.name }}-*.pkg | |||
| modaudio: | |||
| mod-plugin-builder: | |||
| strategy: | |||
| matrix: | |||
| include: | |||
| - name: darkglass-anagram | |||
| target: darkglass-anagram | |||
| - name: modduo | |||
| target: modduo-static | |||
| extraflags: MODDUO=true | |||
| @@ -239,7 +242,7 @@ jobs: | |||
| target: modduox-static | |||
| - name: moddwarf | |||
| target: moddwarf | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -254,7 +257,7 @@ jobs: | |||
| - name: Set up dependencies | |||
| run: | | |||
| sudo apt-get update -qq | |||
| sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static | |||
| sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python3 libtool-bin liblo-dev qemu-user-static | |||
| sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra | |||
| sudo apt-get clean | |||
| - name: Bootstrap toolchain | |||
| @@ -471,7 +474,7 @@ jobs: | |||
| Cardinal-*.zip | |||
| headless: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -488,7 +491,7 @@ jobs: | |||
| make HEADLESS=true -j $(nproc) | |||
| lto: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -505,7 +508,7 @@ jobs: | |||
| make WITH_LTO=true -j $(nproc) native | |||
| sysdeps: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -521,7 +524,7 @@ jobs: | |||
| make SYSDEPS=true -j $(nproc) | |||
| source-tarball: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -561,7 +564,7 @@ jobs: | |||
| /home/runner/*/*/cardinal*.tar.xz | |||
| plugin-validation: | |||
| runs-on: ubuntu-20.04 | |||
| runs-on: ubuntu-22.04 | |||
| steps: | |||
| - uses: actions/checkout@v4 | |||
| with: | |||
| @@ -583,8 +586,8 @@ jobs: | |||
| - name: Set up dependencies | |||
| run: | | |||
| # custom repos | |||
| wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb | |||
| sudo dpkg -i kxstudio-repos_11.1.0_all.deb | |||
| wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.2.0_all.deb | |||
| sudo dpkg -i kxstudio-repos_11.2.0_all.deb | |||
| sudo apt-get update -qq | |||
| # build-deps | |||
| sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | |||
| @@ -49,9 +49,9 @@ | |||
| [submodule "plugins/ValleyAudio"] | |||
| path = plugins/ValleyAudio | |||
| url = https://github.com/ValleyAudio/ValleyRackFree.git | |||
| [submodule "plugins/DrumKit"] | |||
| path = plugins/DrumKit | |||
| url = https://github.com/SVModular/DrumKit.git | |||
| [submodule "plugins/WSTD-Drums"] | |||
| path = plugins/WSTD-Drums | |||
| url = https://github.com/Wasted-Audio/WSTD-Drums.git | |||
| [submodule "carla"] | |||
| path = carla | |||
| url = https://github.com/falkTX/Carla.git | |||
| @@ -262,4 +262,7 @@ | |||
| url = https://github.com/Rcomian/rcm-modules.git | |||
| [submodule "plugins/admiral"] | |||
| path = plugins/admiral | |||
| url = https://github.com/wapiflapi/admiral.git | |||
| url = https://github.com/wapiflapi/admiral.git | |||
| [submodule "plugins/eightfold"] | |||
| path = plugins/eightfold | |||
| url = https://github.com/scanner-darkly/eightfold.git | |||
| @@ -1,12 +1,12 @@ | |||
| #!/usr/bin/make -f | |||
| # DISTRHO Cardinal Plugin | |||
| # Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| # Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||
| # SPDX-License-Identifier: GPL-3.0-or-later | |||
| ROOT = . | |||
| include $(ROOT)/Makefile.base.mk | |||
| # ----------------------------------------------------------------------------- | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Set version | |||
| # also set in: | |||
| @@ -15,20 +15,20 @@ include $(ROOT)/Makefile.base.mk | |||
| # src/CardinalPlugin.cpp `getVersion` | |||
| # utils/macOS/Info_{JACK,Native}.plist | |||
| # .github/ISSUE_TEMPLATE/bug.yaml src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist | |||
| VERSION = 24.12 | |||
| VERSION = 25.06 | |||
| # -------------------------------------------------------------- | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Build targets | |||
| all: cardinal carla deps dgl plugins gen resources | |||
| # -------------------------------------------------------------- | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Build config | |||
| PREFIX ?= /usr/local | |||
| DESTDIR ?= | |||
| # -------------------------------------------------------------- | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Carla config | |||
| CARLA_EXTRA_ARGS = \ | |||
| @@ -44,7 +44,16 @@ ifneq ($(DEBUG),true) | |||
| CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true | |||
| endif | |||
| # -------------------------------------------------------------- | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # DGL config | |||
| ifeq ($(WASM),true) | |||
| UI_TYPE = gles2 | |||
| else | |||
| UI_TYPE = opengl | |||
| endif | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Check for required system-wide dependencies | |||
| ifeq ($(SYSDEPS),true) | |||
| @@ -183,7 +192,7 @@ endif | |||
| dgl: | |||
| ifneq ($(HEADLESS),true) | |||
| $(MAKE) opengl -C dpf/dgl $(DGL_EXTRA_ARGS) | |||
| $(MAKE) $(UI_TYPE) -C dpf/dgl $(DGL_EXTRA_ARGS) | |||
| endif | |||
| plugins: deps | |||
| @@ -229,6 +238,9 @@ clap: carla deps dgl plugins resources | |||
| lv2: carla deps dgl plugins resources | |||
| $(MAKE) lv2 -C src $(CARLA_EXTRA_ARGS) | |||
| mapi: carla deps dgl plugins resources | |||
| $(MAKE) mapi -C src $(CARLA_EXTRA_ARGS) | |||
| vst2: carla deps dgl plugins resources | |||
| $(MAKE) vst2 -C src $(CARLA_EXTRA_ARGS) | |||
| @@ -145,7 +145,7 @@ At the moment the following 3rd-party modules are provided: | |||
| - [CVfunk](https://github.com/codygeary/CVfunk-Modules) | |||
| - [dBiz](https://github.com/dBiz/dBiz) | |||
| - [DHE Modules](https://github.com/dhemery/DHE-Modules) | |||
| - [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html) | |||
| - [eightfold](https://github.com/scanner-darkly/eightfold) | |||
| - [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack) | |||
| - [E-Series](https://github.com/VCVRack/ESeries) | |||
| - [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html) | |||
| @@ -199,6 +199,7 @@ At the moment the following 3rd-party modules are provided: | |||
| - [Valley](https://github.com/ValleyAudio/ValleyRackFree) | |||
| - [Voxglitch](https://github.com/clone45/voxglitch) | |||
| - [WhatTheRack](https://github.com/korfuri/WhatTheRack) | |||
| - [WSTD-Drums](https://github.com/Wasted-Audio/WSTD-Drums) | |||
| - [ZetaCarinae](https://github.com/mhampton/ZetaCarinaeModules) | |||
| - [ZZC](https://github.com/zezic/ZZC) | |||
| @@ -1 +1 @@ | |||
| Subproject commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc | |||
| Subproject commit 034d0c4242ba834e0b5a8967a5eefedf9d97178c | |||
| @@ -57,6 +57,7 @@ SPACE += | |||
| CMAKE = cmake | |||
| CMAKE += -DCMAKE_INSTALL_LIBDIR=lib | |||
| CMAKE += -DCMAKE_INSTALL_PREFIX='$(RACK_DEP_PATH)' | |||
| CMAKE += -DCMAKE_POLICY_VERSION_MINIMUM=3.5 | |||
| CMAKE += -DBUILD_SHARED_LIBS=OFF | |||
| # make sure debug/release matches | |||
| @@ -1 +1 @@ | |||
| Subproject commit 0985cf8d1c3a00b1958ef90e0f1aa511b865241a | |||
| Subproject commit f6eaed13bdeccec013d81ba2261f98aa8f452702 | |||
| @@ -39,7 +39,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | |||
| | CVfunk | MIT | | | |||
| | dBiz | GPL-3.0-or-later | | | |||
| | DHE-Modules | MIT | | | |||
| | DrumKit | CC0-1.0 | | | |||
| | eightfold | GPL-3.0-or-later | | | |||
| | EnigmaCurry | GPL-3.0-or-later | | | |||
| | E-Series | GPL-3.0-or-later | | | |||
| | ExpertSleepers Encoders | MIT | | | |||
| @@ -92,6 +92,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | |||
| | unless_modules | GPL-3.0-or-later | | | |||
| | Valley | GPL-3.0-or-later | | | |||
| | Voxglitch | GPL-3.0-or-later | | | |||
| | WSTD-Drums | CC0-1.0 | | | |||
| | WhatTheRack | WTFPL | | | |||
| | ZetaCarinae | GPL-3.0-or-later | | | |||
| | ZZC | GPL-3.0-or-later | | | |||
| @@ -179,6 +180,7 @@ Below is a list of artwork licenses from plugins | |||
| | DHE-Modules/* | MIT | Same license as source code | | |||
| | DrumKit/* | CC0-1.0 | | | |||
| | DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | | | |||
| | eightfold/* | GPL-3.0-or-later | No artwork specific license provided | | |||
| | EnigmaCurry/res/fonts/dseg/* | OFL-1.1-RFN | | | |||
| | EnigmaCurry/res/fonts/Fantasque/* | OFL-1.1 | | | |||
| | EnigmaCurry/res/fonts/manrope/* | OFL-1.1 | | | |||
| @@ -202,6 +204,7 @@ 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 | | |||
| | JW-Modules/res/fonts/ShareTechMono-Regular.ttf | OFL-1.1 | | | |||
| | 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 | | |||
| @@ -1 +1 @@ | |||
| Subproject commit c1ef6244581cf8378366c686cf210e3062ec40a5 | |||
| Subproject commit 201fa7387a2ec5bb3bc8352e4551eafccbcfcfb8 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 97700c06af7df4d8fcf173ae3670b7907a682627 | |||
| Subproject commit bf74c2b7674c610cfc57421157d814c98bd92438 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 5a80023d86e0f67ead3e27385170310cd430d44c | |||
| Subproject commit 5914634cd91cf11cc32394616252beb19c5c934c | |||
| @@ -1 +1 @@ | |||
| Subproject commit 37d6a2ac4562a266474aab47ff4b490ddd7dfc64 | |||
| Subproject commit 51f2b4e61cde7978fb84cdd892a1d3aaedc0ff5b | |||
| @@ -40,11 +40,18 @@ struct HostTime : TerminalModule { | |||
| kHostTimeCount | |||
| }; | |||
| enum BarDivisions { | |||
| Bars1 = 1, | |||
| Bars4 = 4, | |||
| Bars8 = 8 | |||
| }; | |||
| const CardinalPluginContext* const pcontext; | |||
| rack::dsp::PulseGenerator pulseReset, pulseBar, pulseBeat, pulseClock; | |||
| float sampleTime = 0.0f; | |||
| uint32_t lastProcessCounter = 0; | |||
| BarDivisions barDivision = Bars1; | |||
| // cached time values | |||
| struct { | |||
| bool reset = true; | |||
| @@ -122,7 +129,9 @@ struct HostTime : TerminalModule { | |||
| { | |||
| timeInfo.beat = 1; | |||
| ++timeInfo.bar; | |||
| pulseBar.trigger(); | |||
| if (timeInfo.bar % barDivision == 1) | |||
| pulseBar.trigger(); | |||
| } | |||
| } | |||
| @@ -148,9 +157,10 @@ struct HostTime : TerminalModule { | |||
| ? tick / pcontext->ticksPerBeat | |||
| : 0.0f; | |||
| const float barPhase = playingWithBBT && pcontext->beatsPerBar > 0 | |||
| ? ((float) (timeInfo.beat - 1) + beatPhase) / pcontext->beatsPerBar | |||
| ? ((float)((timeInfo.bar - 1) % barDivision) + (timeInfo.beat - 1) + beatPhase) | |||
| / (pcontext->beatsPerBar * barDivision) | |||
| : 0.0f; | |||
| lights[kHostTimeRolling].setBrightness(playing ? 1.0f : 0.0f); | |||
| lights[kHostTimeReset].setBrightnessSmooth(hasReset ? 1.0f : 0.0f, args.sampleTime * 0.5f); | |||
| lights[kHostTimeBar].setBrightnessSmooth(hasBar ? 1.0f : 0.0f, args.sampleTime * 0.5f); | |||
| @@ -170,6 +180,20 @@ struct HostTime : TerminalModule { | |||
| void processTerminalOutput(const ProcessArgs&) override | |||
| {} | |||
| json_t* dataToJson() override { | |||
| json_t* rootJ = json_object(); | |||
| json_object_set_new(rootJ, "barDivision", json_integer(barDivision)); | |||
| return rootJ; | |||
| } | |||
| void dataFromJson(json_t* rootJ) override { | |||
| if (json_t* bdJ = json_object_get(rootJ, "barDivision")) { | |||
| int value = json_integer_value(bdJ); | |||
| if (value == Bars1 || value == Bars4 || value == Bars8) | |||
| barDivision = static_cast<BarDivisions>(value); | |||
| } | |||
| } | |||
| }; | |||
| // -------------------------------------------------------------------------------------------------------------------- | |||
| @@ -286,6 +310,22 @@ struct HostTimeWidget : ModuleWidgetWith8HP { | |||
| ModuleWidget::drawLayer(args, layer); | |||
| } | |||
| void appendContextMenu(Menu* menu) override { | |||
| struct BarDivisionItem : MenuItem { | |||
| HostTime* module; | |||
| HostTime::BarDivisions value; | |||
| void onAction(const event::Action& e) override { | |||
| module->barDivision = value; | |||
| } | |||
| }; | |||
| menu->addChild(new MenuSeparator); | |||
| menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Bar Division")); | |||
| menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/1", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars1)); | |||
| menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/4", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars4)); | |||
| menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/8", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars8)); | |||
| } | |||
| }; | |||
| #else | |||
| struct HostTimeWidget : ModuleWidget { | |||
| @@ -1 +0,0 @@ | |||
| Subproject commit e4eb7adaff1afa731563e09c83e35d87319d4654 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 4dc7c53b9f230bfd4f6c4deb432c477a65188ac0 | |||
| Subproject commit 8c46fbe13acdcb87991719bddcc6ec8abcf152ef | |||
| @@ -1 +1 @@ | |||
| Subproject commit 9d8f8515deb20d7e14ca85b4c1d04ec6b66b3e8d | |||
| Subproject commit 72c8b569dd2cc12ce16abe2da582fc58e07c3d54 | |||
| @@ -1 +1 @@ | |||
| Subproject commit 8162f0d6aee157425c7d7eb3582d905c9ac6c43e | |||
| Subproject commit b6dde88e4d780de0207ece26c5b7de23d61c84e6 | |||
| @@ -560,7 +560,7 @@ PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp Befaco/src/MidiThing.cpp,$(wi | |||
| PLUGIN_FILES += $(wildcard Befaco/src/noise-plethora/*/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| BEFACO_CUSTOM = ADSR Mixer chowdsp Burst RecordButton | |||
| BEFACO_CUSTOM = ADSR Mixer chowdsp Burst RecordButton Mixer2 Slew | |||
| BEFACO_FLAGS = $(filter-out -fsingle-precision-constant,$(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS))) | |||
| BEFACO_FLAGS += -std=gnu++17 | |||
| @@ -678,7 +678,7 @@ COMPUTERSCARE_CUSTOM = Quantizer PanelBorder | |||
| PLUGIN_FILES += $(filter-out CVfunk/src/plugin.cpp,$(wildcard CVfunk/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| CVFUNK_CUSTOM = Steps | |||
| CVFUNK_CUSTOM = Steps Node | |||
| # -------------------------------------------------------------- | |||
| # dBiz | |||
| @@ -695,17 +695,15 @@ DBIZ_CUSTOM_PER_FILE = LERP MultiFilter Oscillator calcOutput sineOsc subBank | |||
| PLUGIN_FILES += $(filter-out DHE-Modules/src/plugin.cpp,$(wildcard DHE-Modules/src/modules/*/init.cpp)) | |||
| # -------------------------------------------------------------- | |||
| # DrumKit | |||
| PLUGIN_FILES += $(wildcard DrumKit/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/src/controller/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/src/view/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/src/model/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/deps/*.cpp) | |||
| PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp) | |||
| # eightfold | |||
| PLUGIN_FILES += $(filter-out eightfold/src/plugin.cpp,$(wildcard eightfold/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator | |||
| EIGHTFOLD_CUSTOM = Comparator comparator | |||
| EIGHTFOLD_FLAGS = $(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS)) | |||
| EIGHTFOLD_FLAGS += -std=gnu++17 | |||
| # -------------------------------------------------------------- | |||
| # EnigmaCurry | |||
| @@ -824,7 +822,7 @@ endif | |||
| endif | |||
| # modules/types which are present in other plugins | |||
| JW_CUSTOM = PlayHead Quantizer | |||
| JW_CUSTOM = PlayHead Quantizer Arrange | |||
| # -------------------------------------------------------------- | |||
| # kocmoc | |||
| @@ -832,7 +830,7 @@ JW_CUSTOM = PlayHead Quantizer | |||
| PLUGIN_FILES += $(filter-out kocmoc/src/plugin.cpp,$(wildcard kocmoc/src/*.cpp)) | |||
| # modules/types which are present in other plugins | |||
| KOCMOC_CUSTOM = Phasor __ct_base __ct_comp | |||
| KOCMOC_CUSTOM = Diode Phasor __ct_base __ct_comp | |||
| # -------------------------------------------------------------- | |||
| # LifeFormModular | |||
| @@ -1333,6 +1331,19 @@ VOXGLITCH_CUSTOM_PER_FILE = AudioBuffer GateSequencer Grain SamplePlayer Sequenc | |||
| PLUGIN_FILES += $(filter-out WhatTheRack/src/WhatTheRack.cpp,$(wildcard WhatTheRack/src/*.cpp)) | |||
| # -------------------------------------------------------------- | |||
| # WSTD-Drums | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/src/*.cpp) | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/src/controller/*.cpp) | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/src/view/*.cpp) | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/src/model/*.cpp) | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/deps/*.cpp) | |||
| PLUGIN_FILES += $(wildcard WSTD-Drums/deps/SynthDevKit/src/*.cpp) | |||
| # modules/types which are present in other plugins | |||
| WSTD_DRUMS_CUSTOM = ADSR Envelope LowFrequencyOscillator | |||
| # -------------------------------------------------------------- | |||
| # ZetaCarinaeModules | |||
| @@ -1452,6 +1463,7 @@ clean: | |||
| PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) | |||
| UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg | |||
| UNWANTED_FILES += $(wildcard "HetrickCV/res/affinity redo/*") | |||
| UNWANTED_FILES += $(wildcard Meander/res/*) | |||
| UNWANTED_FILES += $(wildcard Mog/res/*) | |||
| UNWANTED_FILES += $(wildcard Mog/res/*/*) | |||
| @@ -1481,7 +1493,7 @@ RESOURCE_FILES += BaconPlugs/res/midi/goldberg | |||
| RESOURCE_FILES += Befaco/res/SpringReverbIR.f32 | |||
| RESOURCE_FILES += cf/playeroscs | |||
| RESOURCE_FILES += DHE-Modules/svg | |||
| RESOURCE_FILES += DrumKit/res/samples | |||
| RESOURCE_FILES += WSTD-Drums/res/samples | |||
| RESOURCE_FILES += Meander/res | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets | |||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes | |||
| @@ -2204,7 +2216,7 @@ $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp | |||
| @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 $*))) \ | |||
| $(foreach m,$(AS_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),AS_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__AS \ | |||
| -Wno-unused-private-field | |||
| @@ -2260,7 +2272,7 @@ $(BUILD_DIR)/Bidoo%.cpp.o: Bidoo%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(BIDOO_CUSTOM),$(call custom_module_names,$(m),Bidoo)) \ | |||
| $(foreach m,$(BIDOO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bidoo_$(shell basename $*))) \ | |||
| $(foreach m,$(BIDOO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bidoo_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__Bidoo \ | |||
| -DSKIP_MINGW_FORMAT \ | |||
| -IBidoo/src/dep/gverb/include \ | |||
| @@ -2280,7 +2292,7 @@ $(BUILD_DIR)/BogaudioModules%.cpp.o: BogaudioModules%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(BOGAUDIO_CUSTOM),$(call custom_module_names,$(m),Bogaudio)) \ | |||
| $(foreach m,$(BOGAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bogaudio_$(shell basename $*))) \ | |||
| $(foreach m,$(BOGAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bogaudio_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__BogaudioModules \ | |||
| -DRACK_SIMD=1 \ | |||
| -DSKIP_MINGW_FORMAT \ | |||
| @@ -2333,7 +2345,7 @@ $(BUILD_DIR)/dBiz/src/%.cpp.o: dBiz/src/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(DBIZ_CUSTOM),$(call custom_module_names,$(m),dBiz)) \ | |||
| $(foreach m,$(DBIZ_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),dBiz_$(shell basename $*))) \ | |||
| $(foreach m,$(DBIZ_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),dBiz_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__dBiz | |||
| $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp | |||
| @@ -2344,14 +2356,12 @@ $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp | |||
| -DpluginInstance=pluginInstance__DHE \ | |||
| -IDHE-Modules/src | |||
| $(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp | |||
| $(BUILD_DIR)/eightfold/src/%.cpp.o: eightfold/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(DRUMKIT_CUSTOM),$(call custom_module_names,$(m),DrumKit)) \ | |||
| -DpluginInstance=pluginInstance__DrumKit \ | |||
| -Dinit=init__DrumKit \ | |||
| -Wno-sign-compare | |||
| $(SILENT)$(CXX) $< $(EIGHTFOLD_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(EIGHTFOLD_CUSTOM),$(call custom_module_names,$(m),eightfold)) \ | |||
| -DpluginInstance=pluginInstance__eightfold | |||
| $(BUILD_DIR)/EnigmaCurry/src/%.cpp.o: EnigmaCurry/src/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @@ -2495,7 +2505,7 @@ $(BUILD_DIR)/ImpromptuModular%.cpp.o: ImpromptuModular%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(IMPROMPTUMODULAR_CUSTOM),$(call custom_module_names,$(m),ImpromptuModular)) \ | |||
| $(foreach m,$(IMPROMPTUMODULAR_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ImpromptuModular_$(shell basename $*))) \ | |||
| $(foreach m,$(IMPROMPTUMODULAR_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ImpromptuModular_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__ImpromptuModular \ | |||
| -Wno-format-truncation | |||
| @@ -2504,7 +2514,7 @@ $(BUILD_DIR)/ihtsyn/%.cpp.o: ihtsyn/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(IHTSYN_CUSTOM),$(call custom_module_names,$(m),ihtsyn)) \ | |||
| $(foreach m,$(IHTSYN_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ihtsyn_$(shell basename $*))) \ | |||
| $(foreach m,$(IHTSYN_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ihtsyn_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__ihtsyn | |||
| $(BUILD_DIR)/JW-Modules/src/WavHead.cpp.o: JW-Modules/src/WavHead.cpp | |||
| @@ -2632,7 +2642,7 @@ $(BUILD_DIR)/mscHack/%.cpp.o: mscHack/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(MSCHACK_CUSTOM),$(call custom_module_names,$(m),mscHack)) \ | |||
| $(foreach m,$(MSCHACK_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),mscHack_$(shell basename $*))) \ | |||
| $(foreach m,$(MSCHACK_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),mscHack_$(shell basename -- $*))) \ | |||
| -DthePlugin=pluginInstance__mscHack \ | |||
| -Dinit=init__mscHack \ | |||
| -Wno-class-memaccess \ | |||
| @@ -2713,7 +2723,7 @@ $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(PRISM_CUSTOM),$(call custom_module_names,$(m),Prism)) \ | |||
| $(foreach m,$(PRISM_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Prism_$(shell basename $*))) \ | |||
| $(foreach m,$(PRISM_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Prism_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__Prism \ | |||
| $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp | |||
| @@ -2757,6 +2767,7 @@ $(BUILD_DIR)/Sapphire/%.cpp.o: Sapphire/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ | |||
| $(foreach m,$(SAPPHIRE_CUSTOM),$(call custom_module_names,$(m),Sapphire)) \ | |||
| -DSKIP_MINGW_FORMAT \ | |||
| -DpluginInstance=pluginInstance__sapphire | |||
| $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp | |||
| @@ -2786,7 +2797,7 @@ $(BUILD_DIR)/stoermelder-packone/%.cpp.o: stoermelder-packone/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(STOERMELDER_PACKONE_CUSTOM),$(call custom_module_names,$(m),stoermelder_p1)) \ | |||
| $(foreach m,$(STOERMELDER_PACKONE_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),stoermelder_p1_$(shell basename $*))) \ | |||
| $(foreach m,$(STOERMELDER_PACKONE_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),stoermelder_p1_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__stoermelder_p1 \ | |||
| -Dinit=init__stoermelder_p1 | |||
| @@ -2816,7 +2827,7 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(VALLEYAUDIO_CUSTOM),$(call custom_module_names,$(m),ValleyAudio)) \ | |||
| $(foreach m,$(VALLEYAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ValleyAudio_$(shell basename $*))) \ | |||
| $(foreach m,$(VALLEYAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ValleyAudio_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__ValleyAudio \ | |||
| -DSTDIO_OVERRIDE=ValleyAudio \ | |||
| -IValleyAudio/src \ | |||
| @@ -2828,7 +2839,7 @@ $(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(VOXGLITCH_CUSTOM),$(call custom_module_names,$(m),Voxglitch)) \ | |||
| $(foreach m,$(VOXGLITCH_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Voxglitch_$(shell basename $*))) \ | |||
| $(foreach m,$(VOXGLITCH_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Voxglitch_$(shell basename -- $*))) \ | |||
| -DpluginInstance=pluginInstance__Voxglitch \ | |||
| -DSKIP_MINGW_FORMAT | |||
| @@ -2839,6 +2850,15 @@ $(BUILD_DIR)/WhatTheRack/%.cpp.o: WhatTheRack/%.cpp | |||
| $(foreach m,$(WHATTHERACK_CUSTOM),$(call custom_module_names,$(m),WhatTheRack)) \ | |||
| -DpluginInstance=pluginInstance__WhatTheRack | |||
| $(BUILD_DIR)/WSTD-Drums/%.cpp.o: WSTD-Drums/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||
| $(foreach m,$(WSTD_DRUMS_CUSTOM),$(call custom_module_names,$(m),WSTD_Drums)) \ | |||
| -DpluginInstance=pluginInstance__WSTD_Drums \ | |||
| -Dinit=init__WSTD_Drums \ | |||
| -Wno-sign-compare | |||
| $(BUILD_DIR)/ZamAudio/%.cpp.o: ZamAudio/%.cpp | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -1 +1 @@ | |||
| Subproject commit 479d2c8007b2087cdf557a491df25c5b85784a96 | |||
| Subproject commit b819787d86a1db0ad6f4208cb96b8e3589b5e4ee | |||
| @@ -1 +1 @@ | |||
| Subproject commit 66e69a2f2047e3dab06275b12852e56d143388cf | |||
| Subproject commit 2f55b4b115e76623ef54e24c30daad4d576a4446 | |||
| @@ -1 +1 @@ | |||
| Subproject commit fcfdfab93efed535ea65e0a47c870f6e2e6654be | |||
| Subproject commit ef10da4e2578162b2db2f6534857d6504491daf4 | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 05330ce99f4ec742f906c77ab5d8758a15decb4c | |||
| @@ -1 +1 @@ | |||
| Subproject commit 15364616da500d31f7545dcbfc01b4fda7f7c9d4 | |||
| Subproject commit f5900888025fcfad7842770e83365ba743bb51bd | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit a541c5cfdc3fb9ad8e4f345470f817eaf576b987 | |||
| @@ -1 +1 @@ | |||
| Subproject commit eb46ce3a8b5795d61c2e3eb60f6ca58799a8cee2 | |||
| Subproject commit ea69acab96db49c32601b609cdfe06444ecee0e8 | |||
| @@ -147,10 +147,14 @@ extern Model* modelChord; | |||
| #define modelADSR modelBefacoADSR | |||
| #define modelMixer modelBefacoMixer | |||
| #define modelBurst modelBefacoBurst | |||
| #define modelMixer2 modelBefacoMixer2 | |||
| #define modelSlew modelBefacoSlew | |||
| #include "Befaco/src/plugin.hpp" | |||
| #undef modelADSR | |||
| #undef modelMixer | |||
| #undef modelBurst | |||
| #undef modelMixer2 | |||
| #undef modelSlew | |||
| // Bidoo | |||
| #include "Bidoo/src/plugin.hpp" | |||
| @@ -339,9 +343,11 @@ extern Model* modelTestVCF; | |||
| #include "cf/src/plugin.hpp" | |||
| // CVfunk | |||
| #define modelNode modelCVfunkNode | |||
| #define modelSteps modelCVfunkSteps | |||
| #include "CVfunk/src/plugin.hpp" | |||
| #undef modelSteps | |||
| #undef modelNode | |||
| // ChowDSP | |||
| #include "ChowDSP/src/plugin.hpp" | |||
| @@ -391,9 +397,8 @@ namespace truth { void init(Plugin*); } | |||
| namespace xycloid { void init(Plugin*); } | |||
| } | |||
| // DrumKit | |||
| #include "DrumKit/src/DrumKit.hpp" | |||
| void setupSamples(); | |||
| // eightfold | |||
| #include "eightfold/src/plugin.hpp" | |||
| // EnigmaCurry | |||
| #define modelPulse modelEnigmaCurryPulse | |||
| @@ -450,6 +455,7 @@ void saveGtgPluginDefault(const char*, int) {} | |||
| extern Model* modelTwoToFour; | |||
| extern Model* modelAnalogToDigital; | |||
| extern Model* modelASR; | |||
| extern Model* modelBinaryCounter; | |||
| extern Model* modelBinaryGate; | |||
| extern Model* modelBinaryNoise; | |||
| extern Model* modelBitshift; | |||
| @@ -460,6 +466,7 @@ extern Model* modelChaos2Op; | |||
| extern Model* modelChaos3Op; | |||
| extern Model* modelChaoticAttractors; | |||
| extern Model* modelClockedNoise; | |||
| extern Model* modelClockToPhasor; | |||
| extern Model* modelComparator; | |||
| extern Model* modelContrast; | |||
| extern Model* modelCrackle; | |||
| @@ -478,12 +485,14 @@ extern Model* modelGingerbread; | |||
| extern Model* modelLogicCombine; | |||
| extern Model* modelMidSide; | |||
| extern Model* modelMinMax; | |||
| extern Model* modelNormals; | |||
| extern Model* modelPhaseDrivenSequencer; | |||
| extern Model* modelPhaseDrivenSequencer32; | |||
| extern Model* modelPhasorAnalyzer; | |||
| extern Model* modelPhasorBurstGen; | |||
| extern Model* modelPhasorDivMult; | |||
| extern Model* modelPhasorEuclidean; | |||
| extern Model* modelPhasorFreezer; | |||
| extern Model* modelPhasorGates; | |||
| extern Model* modelPhasorGates32; | |||
| extern Model* modelPhasorGates64; | |||
| @@ -492,6 +501,7 @@ extern Model* modelPhasorGeometry; | |||
| extern Model* modelPhasorHumanizer; | |||
| extern Model* modelPhasorMixer; | |||
| extern Model* modelPhasorOctature; | |||
| extern Model* modelPhasorProbability; | |||
| extern Model* modelPhasorQuadrature; | |||
| extern Model* modelPhasorRandom; | |||
| extern Model* modelPhasorRanger; | |||
| @@ -499,18 +509,22 @@ extern Model* modelPhasorReset; | |||
| extern Model* modelPhasorRhythmGroup; | |||
| extern Model* modelPhasorShape; | |||
| extern Model* modelPhasorShift; | |||
| extern Model* modelPhasorSplitter; | |||
| extern Model* modelPhasorStutter; | |||
| extern Model* modelPhasorSubstepShape; | |||
| extern Model* modelPhasorSwing; | |||
| extern Model* modelPhasorTimetable; | |||
| extern Model* modelPhasorToClock; | |||
| extern Model* modelPhasorToRandom; | |||
| extern Model* modelPhasorToLFO; | |||
| extern Model* modelPhasorToWaveforms; | |||
| extern Model* modelPolymetricPhasors; | |||
| extern Model* modelProbability; | |||
| extern Model* modelRandomGates; | |||
| extern Model* modelRotator; | |||
| extern Model* modelRungler; | |||
| extern Model* modelScanner; | |||
| extern Model* modelTrigShaper; | |||
| extern Model* modelVectorMix; | |||
| extern Model* modelWaveshape; | |||
| extern Model* modelXYToPolar; | |||
| @@ -562,8 +576,10 @@ extern Model* modelBlankPanel; | |||
| // JW-Modules | |||
| #define modelQuantizer modelJWQuantizer | |||
| #define modelArrange modelJWArrange | |||
| #include "JW-Modules/src/JWModules.hpp" | |||
| #undef modelQuantizer | |||
| #undef modelArrange | |||
| // kocmoc | |||
| #include "kocmoc/src/plugin.hpp" | |||
| @@ -614,6 +630,8 @@ extern Model* modelDelta; | |||
| extern Model* modelVega; | |||
| extern Model* modelBD383238; | |||
| extern Model* modelZeta; | |||
| extern Model* modelSheliak; | |||
| extern Model* modelBeta; | |||
| #undef modelDelta | |||
| // Meander | |||
| @@ -887,6 +905,10 @@ void surgext_rack_update_theme(); | |||
| // WhatTheRack | |||
| #include "WhatTheRack/src/WhatTheRack.hpp" | |||
| // WSTD-Drums | |||
| #include "WSTD-Drums/src/WSTD_Drums.hpp" | |||
| void setupSamples(); | |||
| // ZetaCarinaeModules | |||
| #include "ZetaCarinaeModules/src/plugin.hpp" | |||
| @@ -944,7 +966,7 @@ Plugin* pluginInstance__Computerscare; | |||
| Plugin* pluginInstance__CVfunk; | |||
| Plugin* pluginInstance__dBiz; | |||
| Plugin* pluginInstance__DHE; | |||
| extern Plugin* pluginInstance__DrumKit; | |||
| Plugin* pluginInstance__eightfold; | |||
| Plugin* pluginInstance__EnigmaCurry; | |||
| Plugin* pluginInstance__ESeries; | |||
| Plugin* pluginInstance__ExpertSleepersEncoders; | |||
| @@ -997,6 +1019,7 @@ Plugin* pluginInstance__unless_modules; | |||
| Plugin* pluginInstance__ValleyAudio; | |||
| Plugin* pluginInstance__Voxglitch; | |||
| Plugin* pluginInstance__WhatTheRack; | |||
| extern Plugin* pluginInstance__WSTD_Drums; | |||
| Plugin* pluginInstance__ZetaCarinaeModules; | |||
| Plugin* pluginInstance__ZZC; | |||
| @@ -1612,6 +1635,8 @@ static void initStatic__Befaco() | |||
| #define modelADSR modelBefacoADSR | |||
| #define modelMixer modelBefacoMixer | |||
| #define modelBurst modelBefacoBurst | |||
| #define modelMixer2 modelBefacoMixer2 | |||
| #define modelSlew modelBefacoSlew | |||
| p->addModel(modelEvenVCO); | |||
| p->addModel(modelRampage); | |||
| p->addModel(modelABC); | |||
| @@ -1638,9 +1663,16 @@ static void initStatic__Befaco() | |||
| p->addModel(modelOctaves); | |||
| p->addModel(modelBypass); | |||
| p->addModel(modelBandit); | |||
| p->addModel(modelAtte); | |||
| p->addModel(modelAxBC); | |||
| p->addModel(modelMixer2); | |||
| p->addModel(modelMuDi); | |||
| p->addModel(modelSlew); | |||
| #undef modelADSR | |||
| #undef modelMixer | |||
| #undef modelBurst | |||
| #undef modelMixer2 | |||
| #undef modelSlew | |||
| // NOTE disabled in Cardinal due to MIDI usage | |||
| spl.removeModule("MidiThingV2"); | |||
| @@ -2021,25 +2053,40 @@ static void initStatic__CVfunk() | |||
| const StaticPluginLoader spl(p, "CVfunk"); | |||
| if (spl.ok()) | |||
| { | |||
| #define modelSteps modelCVfunkSteps | |||
| p->addModel(modelSteps); | |||
| p->addModel(modelEnvelopeArray); | |||
| p->addModel(modelPentaSequencer); | |||
| p->addModel(modelImpulseController); | |||
| p->addModel(modelSignals); | |||
| p->addModel(modelRanges); | |||
| p->addModel(modelHexMod); | |||
| p->addModel(modelCollatz); | |||
| p->addModel(modelStrings); | |||
| p->addModel(modelMagnets); | |||
| p->addModel(modelOuros); | |||
| p->addModel(modelPressedDuck); | |||
| p->addModel(modelFlowerPatch); | |||
| p->addModel(modelSyncro); | |||
| p->addModel(modelNona); | |||
| p->addModel(modelDecima); | |||
| p->addModel(modelMorta); | |||
| #undef modelSteps | |||
| #define modelSteps modelCVfunkSteps | |||
| #define modelNode modelCVfunkNode | |||
| p->addModel(modelSteps); | |||
| p->addModel(modelEnvelopeArray); | |||
| p->addModel(modelPentaSequencer); | |||
| p->addModel(modelImpulseController); | |||
| p->addModel(modelSignals); | |||
| p->addModel(modelRanges); | |||
| p->addModel(modelHexMod); | |||
| p->addModel(modelCollatz); | |||
| p->addModel(modelStrings); | |||
| p->addModel(modelMagnets); | |||
| p->addModel(modelOuros); | |||
| p->addModel(modelPressedDuck); | |||
| p->addModel(modelFlowerPatch); | |||
| p->addModel(modelSyncro); | |||
| p->addModel(modelNona); | |||
| p->addModel(modelDecima); | |||
| p->addModel(modelMorta); | |||
| p->addModel(modelStepWave); | |||
| p->addModel(modelPreeeeeeeeeeessedDuck); | |||
| p->addModel(modelArrange); | |||
| p->addModel(modelTriDelay); | |||
| p->addModel(modelTatami); | |||
| p->addModel(modelCartesia); | |||
| p->addModel(modelJunkDNA); | |||
| p->addModel(modelPicus); | |||
| p->addModel(modelNode); | |||
| p->addModel(modelWeave); | |||
| p->addModel(modelWonk); | |||
| p->addModel(modelHammer); | |||
| p->addModel(modelHub); | |||
| #undef modelNode | |||
| #undef modelSteps | |||
| } | |||
| } | |||
| @@ -2121,27 +2168,19 @@ static void initStatic__DHE() | |||
| } | |||
| } | |||
| static void initStatic__DrumKit() | |||
| static void initStatic__eightfold() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__DrumKit = p; | |||
| pluginInstance__eightfold = p; | |||
| const StaticPluginLoader spl(p, "DrumKit"); | |||
| const StaticPluginLoader spl(p, "eightfold"); | |||
| if (spl.ok()) | |||
| { | |||
| setupSamples(); | |||
| p->addModel(modelBD9); | |||
| p->addModel(modelSnare); | |||
| p->addModel(modelClosedHH); | |||
| p->addModel(modelOpenHH); | |||
| p->addModel(modelDMX); | |||
| p->addModel(modelCR78); | |||
| p->addModel(modelSBD); | |||
| p->addModel(modelGnome); | |||
| p->addModel(modelSequencer); | |||
| p->addModel(modelTomi); | |||
| p->addModel(modelBaronial); | |||
| p->addModel(modelMarionette); | |||
| p->addModel(modelSDOrcasHeartV2); | |||
| p->addModel(modelSDFormation); | |||
| p->addModel(modelSDLines); | |||
| p->addModel(modelSDTransgate); | |||
| p->addModel(modelSDComparator); | |||
| } | |||
| } | |||
| @@ -2377,6 +2416,7 @@ static void initStatic__HetrickCV() | |||
| p->addModel(modelTwoToFour); | |||
| p->addModel(modelAnalogToDigital); | |||
| p->addModel(modelASR); | |||
| p->addModel(modelBinaryCounter); | |||
| p->addModel(modelBinaryGate); | |||
| p->addModel(modelBinaryNoise); | |||
| p->addModel(modelBitshift); | |||
| @@ -2387,6 +2427,7 @@ static void initStatic__HetrickCV() | |||
| p->addModel(modelChaos3Op); | |||
| p->addModel(modelChaoticAttractors); | |||
| p->addModel(modelClockedNoise); | |||
| p->addModel(modelClockToPhasor); | |||
| p->addModel(modelComparator); | |||
| p->addModel(modelContrast); | |||
| p->addModel(modelCrackle); | |||
| @@ -2405,12 +2446,14 @@ static void initStatic__HetrickCV() | |||
| p->addModel(modelLogicCombine); | |||
| p->addModel(modelMidSide); | |||
| p->addModel(modelMinMax); | |||
| p->addModel(modelNormals); | |||
| p->addModel(modelPhaseDrivenSequencer); | |||
| p->addModel(modelPhaseDrivenSequencer32); | |||
| p->addModel(modelPhasorAnalyzer); | |||
| p->addModel(modelPhasorBurstGen); | |||
| p->addModel(modelPhasorDivMult); | |||
| p->addModel(modelPhasorEuclidean); | |||
| p->addModel(modelPhasorFreezer); | |||
| p->addModel(modelPhasorGates); | |||
| p->addModel(modelPhasorGates32); | |||
| p->addModel(modelPhasorGates64); | |||
| @@ -2419,6 +2462,7 @@ static void initStatic__HetrickCV() | |||
| p->addModel(modelPhasorHumanizer); | |||
| p->addModel(modelPhasorMixer); | |||
| p->addModel(modelPhasorOctature); | |||
| p->addModel(modelPhasorProbability); | |||
| p->addModel(modelPhasorQuadrature); | |||
| p->addModel(modelPhasorRandom); | |||
| p->addModel(modelPhasorRanger); | |||
| @@ -2426,18 +2470,22 @@ static void initStatic__HetrickCV() | |||
| p->addModel(modelPhasorRhythmGroup); | |||
| p->addModel(modelPhasorShape); | |||
| p->addModel(modelPhasorShift); | |||
| p->addModel(modelPhasorSplitter); | |||
| p->addModel(modelPhasorStutter); | |||
| p->addModel(modelPhasorSubstepShape); | |||
| p->addModel(modelPhasorSwing); | |||
| p->addModel(modelPhasorTimetable); | |||
| p->addModel(modelPhasorToClock); | |||
| p->addModel(modelPhasorToRandom); | |||
| p->addModel(modelPhasorToLFO); | |||
| p->addModel(modelPhasorToWaveforms); | |||
| p->addModel(modelPolymetricPhasors); | |||
| p->addModel(modelProbability); | |||
| p->addModel(modelRandomGates); | |||
| p->addModel(modelRotator); | |||
| p->addModel(modelRungler); | |||
| p->addModel(modelScanner); | |||
| p->addModel(modelTrigShaper); | |||
| p->addModel(modelVectorMix); | |||
| p->addModel(modelWaveshape); | |||
| p->addModel(modelXYToPolar); | |||
| @@ -2516,6 +2564,7 @@ static void initStatic__JW() | |||
| if (spl.ok()) | |||
| { | |||
| #define modelQuantizer modelJWQuantizer | |||
| #define modelArrange modelJWArrange | |||
| p->addModel(modelAdd5); | |||
| p->addModel(modelAbcdSeq); | |||
| p->addModel(modelBouncyBalls); | |||
| @@ -2551,7 +2600,9 @@ static void initStatic__JW() | |||
| #else | |||
| spl.removeModule("Str1ker"); | |||
| #endif | |||
| p->addModel(modelArrange); | |||
| #undef modelQuantizer | |||
| #undef modelArrange | |||
| } | |||
| } | |||
| @@ -2564,8 +2615,11 @@ static void initStatic__kocmoc() | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelSVF_1); | |||
| p->addModel(modeluSVF); | |||
| p->addModel(modelTRG); | |||
| p->addModel(modelLADR); | |||
| p->addModel(modeluLADR); | |||
| p->addModel(modelDIOD); | |||
| p->addModel(modelOP); | |||
| p->addModel(modelPHASR); | |||
| p->addModel(modelMUL); | |||
| @@ -2670,6 +2724,8 @@ static void initStatic__Lyrae() | |||
| p->addModel(modelVega); | |||
| p->addModel(modelBD383238); | |||
| p->addModel(modelZeta); | |||
| p->addModel(modelSheliak); | |||
| p->addModel(modelBeta); | |||
| #undef modelDelta | |||
| } | |||
| } | |||
| @@ -3174,7 +3230,11 @@ static void initStatic__Sapphire() | |||
| if (spl.ok()) | |||
| { | |||
| p->addModel(modelSapphireChaops); | |||
| p->addModel(modelSapphireEcho); | |||
| p->addModel(modelSapphireEchoOut); | |||
| p->addModel(modelSapphireEchoTap); | |||
| p->addModel(modelSapphireElastika); | |||
| p->addModel(modelSapphireEnv); | |||
| p->addModel(modelSapphireFrolic); | |||
| p->addModel(modelSapphireGalaxy); | |||
| p->addModel(modelSapphireGlee); | |||
| @@ -3193,6 +3253,7 @@ static void initStatic__Sapphire() | |||
| p->addModel(modelSapphireTout); | |||
| p->addModel(modelSapphireTricorder); | |||
| p->addModel(modelSapphireTubeUnit); | |||
| p->addModel(modelSapphireZoo); | |||
| } | |||
| } | |||
| @@ -3494,6 +3555,30 @@ static void initStatic__WhatTheRack() | |||
| } | |||
| } | |||
| static void initStatic__WSTD_Drums() | |||
| { | |||
| Plugin* const p = new Plugin; | |||
| pluginInstance__WSTD_Drums = p; | |||
| const StaticPluginLoader spl(p, "WSTD-Drums"); | |||
| if (spl.ok()) | |||
| { | |||
| setupSamples(); | |||
| p->addModel(modelBD9); | |||
| p->addModel(modelSnare); | |||
| p->addModel(modelClosedHH); | |||
| p->addModel(modelOpenHH); | |||
| p->addModel(modelDMX); | |||
| p->addModel(modelCR78); | |||
| p->addModel(modelSBD); | |||
| p->addModel(modelGnome); | |||
| p->addModel(modelSequencer); | |||
| p->addModel(modelTomi); | |||
| p->addModel(modelBaronial); | |||
| p->addModel(modelMarionette); | |||
| } | |||
| } | |||
| static void initStatic__ZetaCarinaeModules() | |||
| { | |||
| Plugin* p = new Plugin; | |||
| @@ -3566,7 +3651,7 @@ void initStaticPlugins() | |||
| initStatic__CVfunk(); | |||
| initStatic__dBiz(); | |||
| initStatic__DHE(); | |||
| initStatic__DrumKit(); | |||
| initStatic__eightfold(); | |||
| initStatic__EnigmaCurry(); | |||
| initStatic__ESeries(); | |||
| initStatic__ExpertSleepersEncoders(); | |||
| @@ -3619,6 +3704,7 @@ void initStaticPlugins() | |||
| initStatic__ValleyAudio(); | |||
| initStatic__Voxglitch(); | |||
| initStatic__WhatTheRack(); | |||
| initStatic__WSTD_Drums(); | |||
| initStatic__ZetaCarinaeModules(); | |||
| initStatic__ZZC(); | |||
| @@ -53,6 +53,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 1 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS + 10 | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS + 10 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| @@ -99,7 +99,7 @@ void destroyStaticPlugins(); | |||
| } | |||
| } | |||
| const std::string CARDINAL_VERSION = "24.12"; | |||
| const std::string CARDINAL_VERSION = "25.06"; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -626,47 +626,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB | |||
| if (asset::userDir.empty()) | |||
| { | |||
| #if defined(DISTRHO_OS_WASM) | |||
| asset::userDir = "/userfiles"; | |||
| #elif defined(ARCH_MAC) | |||
| asset::userDir = system::join(homeDir(), "Documents", "Cardinal"); | |||
| #elif defined(ARCH_WIN) | |||
| asset::userDir = system::join(getSpecialPath(kSpecialPathMyDocuments), "Cardinal"); | |||
| #else | |||
| std::string xdgConfigDir; | |||
| if (const char* const xdgEnv = getenv("XDG_CONFIG_HOME")) | |||
| xdgConfigDir = xdgEnv; | |||
| if (xdgConfigDir.empty()) | |||
| xdgConfigDir = system::join(homeDir(), ".config"); | |||
| const std::string xdgDirsConfigPath(system::join(xdgConfigDir, "user-dirs.dirs")); | |||
| if (system::exists(xdgDirsConfigPath)) | |||
| { | |||
| std::ifstream xdgDirsConfigFile(xdgDirsConfigPath, std::ios::in|std::ios::ate); | |||
| std::string xdgDirsConfig(xdgDirsConfigFile.tellg(), 0); | |||
| xdgDirsConfigFile.seekg(0); | |||
| xdgDirsConfigFile.read(&xdgDirsConfig[0], xdgDirsConfig.size()); | |||
| if (const char* const xdgDocsDir = std::strstr(xdgDirsConfig.c_str(), "XDG_DOCUMENTS_DIR=\"")) | |||
| { | |||
| if (const char* const xdgDocsDirNL = std::strstr(xdgDocsDir, "\"\n")) | |||
| { | |||
| asset::userDir = std::string(xdgDocsDir + 19, xdgDocsDirNL - xdgDocsDir - 19); | |||
| if (string::startsWith(asset::userDir, "$HOME")) | |||
| asset::userDir.replace(asset::userDir.begin(), asset::userDir.begin() + 5, homeDir()); | |||
| if (! system::exists(asset::userDir)) | |||
| asset::userDir.clear(); | |||
| } | |||
| } | |||
| } | |||
| if (asset::userDir.empty()) | |||
| asset::userDir = system::join(homeDir(), "Documents", "Cardinal"); | |||
| #endif | |||
| asset::userDir = system::join(getSpecialDir(kSpecialDirDocuments), "Cardinal"); | |||
| if (isRealInstance) | |||
| { | |||
| @@ -683,17 +643,10 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB | |||
| #ifndef CARDINAL_COMMON_DSP_ONLY | |||
| if (asset::configDir.empty()) | |||
| { | |||
| #if defined(ARCH_MAC) || defined(ARCH_WIN) || defined(DISTRHO_OS_WASM) | |||
| asset::configDir = asset::userDir; | |||
| #else | |||
| if (const char* const xdgEnv = getenv("XDG_CONFIG_HOME")) | |||
| asset::configDir = system::join(xdgEnv, "Cardinal"); | |||
| else | |||
| asset::configDir = system::join(homeDir(), ".config", "Cardinal"); | |||
| asset::configDir = system::join(getSpecialDir(kSpecialDirConfig), "Cardinal"); | |||
| if (isRealInstance) | |||
| system::createDirectory(asset::configDir); | |||
| #endif | |||
| } | |||
| #endif | |||
| @@ -875,7 +828,8 @@ void Initializer::stopRemoteServer() | |||
| lo_server_thread_stop(oscServerThread); | |||
| lo_server_thread_del_method(oscServerThread, nullptr, nullptr); | |||
| lo_server_thread_free(oscServerThread); | |||
| oscServerThread = oscServer = nullptr; | |||
| oscServerThread = nullptr; | |||
| oscServer = nullptr; | |||
| } | |||
| #else | |||
| if (oscServer != nullptr) | |||
| @@ -53,6 +53,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -44,6 +44,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS + 5 | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS + 5 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -43,6 +43,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS + 5 | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS + 5 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -53,6 +53,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 0 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| @@ -414,7 +414,7 @@ protected: | |||
| uint32_t getVersion() const override | |||
| { | |||
| return d_version(0, 24, 12); | |||
| return d_version(0, 25, 6); | |||
| } | |||
| int64_t getUniqueId() const override | |||
| @@ -229,7 +229,6 @@ SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/chopin | |||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/debussy | |||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg | |||
| SYMLINKED_DIRS_RESOURCES += cf/playeroscs | |||
| SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples | |||
| SYMLINKED_DIRS_RESOURCES += Fundamental/presets | |||
| SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | |||
| SYMLINKED_DIRS_RESOURCES += LyraeModules/presets | |||
| @@ -247,6 +246,7 @@ SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets | |||
| SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables | |||
| SYMLINKED_DIRS_RESOURCES += surgext/patches | |||
| SYMLINKED_DIRS_RESOURCES += surgext/presets | |||
| SYMLINKED_DIRS_RESOURCES += WSTD-Drums/res/samples | |||
| LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) | |||
| endif | |||
| LINK_FLAGS += -sALLOW_MEMORY_GROWTH | |||
| @@ -52,6 +52,7 @@ | |||
| #define DISTRHO_PLUGIN_IS_SYNTH 1 | |||
| #define DISTRHO_PLUGIN_NUM_INPUTS CARDINAL_NUM_AUDIO_INPUTS | |||
| #define DISTRHO_PLUGIN_NUM_OUTPUTS CARDINAL_NUM_AUDIO_OUTPUTS | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_AS_MPE 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_INPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_MIDI_OUTPUT 1 | |||
| #define DISTRHO_PLUGIN_WANT_FULL_STATE 1 | |||
| @@ -147,6 +147,9 @@ au: $(TARGETS) | |||
| $(MAKE) au -C CardinalFX $(CARDINAL_SYNTH_ARGS) | |||
| $(MAKE) au -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | |||
| mapi: $(TARGETS) | |||
| $(MAKE) mapi -C CardinalFX $(CARDINAL_FX_ARGS) | |||
| lv2: $(TARGETS) | |||
| $(MAKE) lv2 -C Cardinal | |||
| $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | |||
| @@ -264,6 +264,7 @@ endif | |||
| ifeq ($(WASM),true) | |||
| APP_EXT = .js | |||
| UI_TYPE = gles2 | |||
| endif | |||
| USE_VST2_BUNDLE = true | |||
| @@ -317,7 +318,6 @@ SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/debussy | |||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg | |||
| SYMLINKED_DIRS_RESOURCES += cf/playeroscs | |||
| SYMLINKED_DIRS_RESOURCES += DHE-Modules/svg | |||
| SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples | |||
| SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | |||
| SYMLINKED_DIRS_RESOURCES += LyraeModules/presets | |||
| SYMLINKED_DIRS_RESOURCES += Meander/res | |||
| @@ -332,6 +332,7 @@ SYMLINKED_DIRS_RESOURCES += Orbits/presets | |||
| SYMLINKED_DIRS_RESOURCES += stoermelder-packone/presets | |||
| SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets | |||
| SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables | |||
| SYMLINKED_DIRS_RESOURCES += WSTD-Drums/res/samples | |||
| endif | |||
| LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) | |||
| @@ -408,6 +409,11 @@ endif | |||
| BUILD_CXX_FLAGS += -DCARDINAL_PLUGIN_PREFIX='"$(PREFIX)"' | |||
| # -------------------------------------------------------------- | |||
| # we know what we are doing, promise! | |||
| BUILD_CXX_FLAGS += -DDISTRHO_NO_WARNINGS | |||
| # -------------------------------------------------------------- | |||
| # Enable all possible plugin types and setup resources | |||
| @@ -54,7 +54,6 @@ enum DarkMode { | |||
| kModeCf, | |||
| kModeComputerscare, | |||
| kModeDHE, | |||
| kModeDrumKit, | |||
| kModeESeries, | |||
| kModeLilacLoop, | |||
| kModeLittleUtils, | |||
| @@ -259,19 +258,6 @@ static const struct { | |||
| { kModeDHE, "/DHE-Modules/svg/truth-4.svg", {}, -1 }, | |||
| { kModeDHE, "/DHE-Modules/svg/upstage.svg", {}, -1 }, | |||
| { kModeDHE, "/DHE-Modules/svg/xycloid.svg", {}, -1 }, | |||
| // CC0-1.0 | |||
| { kModeDrumKit, "/DrumKit/res/Baronial.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/BD9.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/ClosedHH.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/CR78.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/DMX.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/Gnome.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/Marionette.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/OpenHH.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/SBD.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/Sequencer.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/Snare.svg", {}, -1 }, | |||
| { kModeDrumKit, "/DrumKit/res/Tomi.svg", {}, -1 }, | |||
| // Custom, runtime dark mode used with permission | |||
| { kModeESeries,"/ESeries/res/E340.svg", {}, -1 }, | |||
| // GPL3.0-or-later | |||
| @@ -290,12 +276,15 @@ static const struct { | |||
| { kModeLOGinstruments, "/LOGinstruments/res/velvet-nofonts.svg", {}, -1 }, | |||
| // GPL-3.0-or-later | |||
| { kModeKocmoc, "/kocmoc/res/DDLY.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/DIOD.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/LADR.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/uLADR.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/MUL.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/OP.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/PHASR.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/SKF.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/SVF.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/uSVF.svg", {}, -1 }, | |||
| { kModeKocmoc, "/kocmoc/res/TRG.svg", {}, -1 }, | |||
| // GPL-3.0-or-later | |||
| { kModeMyth, "/myth-modules/res/Mavka.svg", {}, -1 }, | |||
| @@ -377,6 +366,7 @@ enum LightMode { | |||
| kModePrism, | |||
| kModeRepelzen, | |||
| kModeSonusmodular, | |||
| kModeWSTDDrums, | |||
| }; | |||
| static const struct { | |||
| @@ -439,6 +429,11 @@ static const struct { | |||
| { kModeBefaco, "/Befaco/res/panels/Octaves.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/Bypass.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/Bandit.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/Atte.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/AxBC.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/Mixer2.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/MuDi.svg" }, | |||
| { kModeBefaco, "/Befaco/res/panels/Slew.svg" }, | |||
| // GPLv3+ | |||
| { kModeCardinal, "/Cardinal/res/AudioFile.svg" }, | |||
| { kModeCardinal, "/Cardinal/res/AudioToCVPitch.svg" }, | |||
| @@ -592,6 +587,20 @@ static const struct { | |||
| { kModeSonusmodular, "/sonusmodular/res/tropicana.svg" }, | |||
| { kModeSonusmodular, "/sonusmodular/res/twoff.svg" }, | |||
| { kModeSonusmodular, "/sonusmodular/res/yabp.svg" }, | |||
| // CC0-1.0 | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Baronial.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/BD9.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/ClosedHH.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/CR78.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/DMX.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Gnome.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Marionette.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/OpenHH.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/SBD.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Sequencer.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Snare.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/Tomi.svg" }, | |||
| { kModeWSTDDrums, "/WSTD-Drums/res/component/Knob.svg" }, | |||
| }; | |||
| static inline | |||
| @@ -628,12 +637,6 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai | |||
| { | |||
| switch (mode) | |||
| { | |||
| // Special case for DrumKit background gradient | |||
| case kModeDrumKit: | |||
| std::free(paint.gradient); | |||
| paint.type = NSVG_PAINT_COLOR; | |||
| paint.color = 0xff191919; | |||
| return true; | |||
| // Special case for LOGinstruments gradient | |||
| case kModeLOGinstruments: | |||
| // original color from stop 1 was copied to this stop and made ~25% darker | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||
| * SPDX-License-Identifier: GPL-3.0-or-later | |||
| */ | |||
| @@ -207,20 +207,23 @@ void Scene::step() { | |||
| (internal->historyActionIndex != actionIndex | |||
| && actionIndex > 0 | |||
| && time - internal->lastSceneChangeTime >= 1.0)) { | |||
| remoteDetails->first = false; | |||
| const std::string& name(APP->history->actions[actionIndex - 1]->name); | |||
| static const std::vector<std::string> ignoredNames = { | |||
| "move knob", | |||
| "move modules", | |||
| "move switch", | |||
| }; | |||
| if (std::find(ignoredNames.cbegin(), ignoredNames.cend(), name) == ignoredNames.cend()) { | |||
| printf("action '%s'\n", APP->history->actions[actionIndex - 1]->name.c_str()); | |||
| if (remoteDetails->first) { | |||
| remoteDetails->first = false; | |||
| remoteUtils::sendFullPatchToRemote(remoteDetails); | |||
| if (remoteDetails->screenshot) { | |||
| window::generateScreenshot(); | |||
| } else { | |||
| const std::string& name(APP->history->actions[actionIndex - 1]->name); | |||
| static const std::vector<std::string> ignoredNames = { | |||
| "move knob", | |||
| "move modules", | |||
| "move switch", | |||
| }; | |||
| if (std::find(ignoredNames.cbegin(), ignoredNames.cend(), name) == ignoredNames.cend()) { | |||
| d_debug("action '%s'\n", APP->history->actions[actionIndex - 1]->name.c_str()); | |||
| remoteUtils::sendFullPatchToRemote(remoteDetails); | |||
| if (remoteDetails->screenshot) { | |||
| window::generateScreenshot(); | |||
| } | |||
| } | |||
| } | |||
| internal->historyActionIndex = actionIndex; | |||
| @@ -48,6 +48,7 @@ static const std::map<std::string, std::string> pluginSlugFallbacks = { | |||
| {"AudibleInstrumentsPreview", "AudibleInstruments"}, | |||
| {"SequelSequencers", "DanielDavies"}, | |||
| {"DelexanderVol1", "DelexandraVol1"}, | |||
| {"DrumKit", "WSTD-Drums"} | |||
| // {"", ""}, | |||
| }; | |||
| @@ -102,6 +103,18 @@ static const std::map<PluginModuleSlug, PluginModuleSlug> moduleSlugFallbacks = | |||
| {{"Core", "Notes"}, {"Cardinal", "TextEditor"}}, | |||
| {{"Core", "Blank"}, {"Cardinal", "Blank"}}, | |||
| {{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}}, | |||
| {{"DrumKit", "BassDrum9"}, {"WSTD-Drums", "BassDrum9"}}, | |||
| {{"DrumKit", "ClosedHiHat"}, {"WSTD-Drums", "ClosedHiHat"}}, | |||
| {{"DrumKit", "CR78"}, {"WSTD-Drums", "CR78"}}, | |||
| {{"DrumKit", "DMX"}, {"WSTD-Drums", "DMX"}}, | |||
| {{"DrumKit", "OpenHiHat"}, {"WSTD-Drums", "OpenHiHat"}}, | |||
| {{"DrumKit", "SyntheticBassDrum"}, {"WSTD-Drums", "SyntheticBassDrum"}}, | |||
| {{"DrumKit", "SnareDrumN"}, {"WSTD-Drums", "SnareDrumN"}}, | |||
| {{"DrumKit", "Tomi"}, {"WSTD-Drums", "Tomi"}}, | |||
| {{"DrumKit", "Gnome"}, {"WSTD-Drums", "Gnome"}}, | |||
| {{"DrumKit", "Sequencer"}, {"WSTD-Drums", "Sequencer"}}, | |||
| {{"DrumKit", "Baronial"}, {"WSTD-Drums", "Baronial"}}, | |||
| {{"DrumKit", "MarionetteBass"}, {"WSTD-Drums", "MarionetteBass"}}, | |||
| // {{"", ""}, {"", ""}}, | |||
| }; | |||
| @@ -11,11 +11,11 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.jack</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>24.12</string> | |||
| <string>25.06</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||
| <string>(C) 2011-2024 Filipe Coelho. | |||
| <string>(C) 2011-2025 Filipe Coelho. | |||
| 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.</string> | |||
| <key>NSHighResolutionCapable</key> | |||
| <true/> | |||
| @@ -11,11 +11,11 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.native</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>24.12</string> | |||
| <string>25.06</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||
| <string>(C) 2011-2024 Filipe Coelho. | |||
| <string>(C) 2011-2025 Filipe Coelho. | |||
| 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.</string> | |||
| <key>NSHighResolutionCapable</key> | |||
| <true/> | |||