| @@ -5,7 +5,7 @@ body: | |||||
| id: version | id: version | ||||
| attributes: | attributes: | ||||
| label: Version | label: Version | ||||
| value: "24.12" | |||||
| value: "25.12" | |||||
| validations: | validations: | ||||
| required: true | required: true | ||||
| - type: dropdown | - type: dropdown | ||||
| @@ -3,11 +3,12 @@ name: build | |||||
| on: [push, pull_request] | on: [push, pull_request] | ||||
| env: | env: | ||||
| CACHE_VERSION: 11 | |||||
| CACHE_VERSION: 14 | |||||
| CARDINAL_UNDER_WINE: 1 | CARDINAL_UNDER_WINE: 1 | ||||
| CIBUILD: true | CIBUILD: true | ||||
| DEBIAN_FRONTEND: noninteractive | DEBIAN_FRONTEND: noninteractive | ||||
| LIBGL_ALWAYS_SOFTWARE: true | LIBGL_ALWAYS_SOFTWARE: true | ||||
| PAWPAW_CI: 1 | |||||
| PAWPAW_FAST_MATH: 1 | PAWPAW_FAST_MATH: 1 | ||||
| PAWPAW_SKIP_GLIB: 1 | PAWPAW_SKIP_GLIB: 1 | ||||
| PAWPAW_SKIP_LTO: 1 | PAWPAW_SKIP_LTO: 1 | ||||
| @@ -23,7 +24,7 @@ jobs: | |||||
| target: [aarch64, armhf, i686, riscv64, x86_64] | target: [aarch64, armhf, i686, riscv64, x86_64] | ||||
| runs-on: ubuntu-latest | runs-on: ubuntu-latest | ||||
| container: | container: | ||||
| image: ubuntu:20.04 | |||||
| image: ubuntu:22.04 | |||||
| steps: | steps: | ||||
| - name: Install git | - name: Install git | ||||
| run: | | run: | | ||||
| @@ -125,7 +126,7 @@ jobs: | |||||
| *.tar.gz | *.tar.gz | ||||
| linux-x86_64-debug: | linux-x86_64-debug: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -157,7 +158,7 @@ jobs: | |||||
| *.tar.xz | *.tar.xz | ||||
| macos: | macos: | ||||
| runs-on: macos-13 | |||||
| runs-on: macos-14 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -179,6 +180,7 @@ jobs: | |||||
| key: macos-universal-v${{ env.CACHE_VERSION }} | key: macos-universal-v${{ env.CACHE_VERSION }} | ||||
| - name: Setup dependencies | - name: Setup dependencies | ||||
| run: | | run: | | ||||
| brew uninstall --force --ignore-dependencies cmake | |||||
| ./deps/PawPaw/.github/workflows/bootstrap-deps.sh macos-universal-10.15 | ./deps/PawPaw/.github/workflows/bootstrap-deps.sh macos-universal-10.15 | ||||
| - name: Build extra dependencies | - name: Build extra dependencies | ||||
| run: | | run: | | ||||
| @@ -228,10 +230,12 @@ jobs: | |||||
| files: | | files: | | ||||
| ${{ github.event.repository.name }}-*.pkg | ${{ github.event.repository.name }}-*.pkg | ||||
| modaudio: | |||||
| mod-plugin-builder: | |||||
| strategy: | strategy: | ||||
| matrix: | matrix: | ||||
| include: | include: | ||||
| - name: darkglass-anagram | |||||
| target: darkglass-anagram | |||||
| - name: modduo | - name: modduo | ||||
| target: modduo-static | target: modduo-static | ||||
| extraflags: MODDUO=true | extraflags: MODDUO=true | ||||
| @@ -239,7 +243,7 @@ jobs: | |||||
| target: modduox-static | target: modduox-static | ||||
| - name: moddwarf | - name: moddwarf | ||||
| target: moddwarf | target: moddwarf | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -254,7 +258,7 @@ jobs: | |||||
| - name: Set up dependencies | - name: Set up dependencies | ||||
| run: | | run: | | ||||
| sudo apt-get update -qq | 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 install -yqq pandoc texlive-latex-recommended texlive-latex-extra | ||||
| sudo apt-get clean | sudo apt-get clean | ||||
| - name: Bootstrap toolchain | - name: Bootstrap toolchain | ||||
| @@ -422,7 +426,7 @@ jobs: | |||||
| export PATH="/usr/lib/ccache:${PATH}" | export PATH="/usr/lib/ccache:${PATH}" | ||||
| source deps/PawPaw/local.env ${{ matrix.target }} | source deps/PawPaw/local.env ${{ matrix.target }} | ||||
| make features | make features | ||||
| make NOOPT=true -j $(nproc) | |||||
| xvfb-run make NOOPT=true -j $(nproc) | |||||
| - name: Build cross-compiled (carla) | - name: Build cross-compiled (carla) | ||||
| if: steps.cache.outputs.cache-hit == 'true' | if: steps.cache.outputs.cache-hit == 'true' | ||||
| shell: bash | shell: bash | ||||
| @@ -471,7 +475,7 @@ jobs: | |||||
| Cardinal-*.zip | Cardinal-*.zip | ||||
| headless: | headless: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -488,7 +492,7 @@ jobs: | |||||
| make HEADLESS=true -j $(nproc) | make HEADLESS=true -j $(nproc) | ||||
| lto: | lto: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -505,7 +509,7 @@ jobs: | |||||
| make WITH_LTO=true -j $(nproc) native | make WITH_LTO=true -j $(nproc) native | ||||
| sysdeps: | sysdeps: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -521,7 +525,7 @@ jobs: | |||||
| make SYSDEPS=true -j $(nproc) | make SYSDEPS=true -j $(nproc) | ||||
| source-tarball: | source-tarball: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -561,7 +565,7 @@ jobs: | |||||
| /home/runner/*/*/cardinal*.tar.xz | /home/runner/*/*/cardinal*.tar.xz | ||||
| plugin-validation: | plugin-validation: | ||||
| runs-on: ubuntu-20.04 | |||||
| runs-on: ubuntu-22.04 | |||||
| steps: | steps: | ||||
| - uses: actions/checkout@v4 | - uses: actions/checkout@v4 | ||||
| with: | with: | ||||
| @@ -583,8 +587,8 @@ jobs: | |||||
| - name: Set up dependencies | - name: Set up dependencies | ||||
| run: | | run: | | ||||
| # custom repos | # 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 | sudo apt-get update -qq | ||||
| # build-deps | # build-deps | ||||
| sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev | 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"] | [submodule "plugins/ValleyAudio"] | ||||
| path = plugins/ValleyAudio | path = plugins/ValleyAudio | ||||
| url = https://github.com/ValleyAudio/ValleyRackFree.git | 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"] | [submodule "carla"] | ||||
| path = carla | path = carla | ||||
| url = https://github.com/falkTX/Carla.git | url = https://github.com/falkTX/Carla.git | ||||
| @@ -260,4 +260,9 @@ | |||||
| [submodule "plugins/admiral"] | [submodule "plugins/admiral"] | ||||
| path = 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 | |||||
| [submodule "plugins/Venom"] | |||||
| path = plugins/Venom | |||||
| url = https://github.com/DaveBenham/VenomModules | |||||
| @@ -1,12 +1,12 @@ | |||||
| #!/usr/bin/make -f | #!/usr/bin/make -f | ||||
| # DISTRHO Cardinal Plugin | # 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 | # SPDX-License-Identifier: GPL-3.0-or-later | ||||
| ROOT = . | ROOT = . | ||||
| include $(ROOT)/Makefile.base.mk | include $(ROOT)/Makefile.base.mk | ||||
| # ----------------------------------------------------------------------------- | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # Set version | # Set version | ||||
| # also set in: | # also set in: | ||||
| @@ -15,20 +15,20 @@ include $(ROOT)/Makefile.base.mk | |||||
| # src/CardinalPlugin.cpp `getVersion` | # src/CardinalPlugin.cpp `getVersion` | ||||
| # utils/macOS/Info_{JACK,Native}.plist | # utils/macOS/Info_{JACK,Native}.plist | ||||
| # .github/ISSUE_TEMPLATE/bug.yaml src/CardinalCommon.cpp src/CardinalPlugin.cpp 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.12 | |||||
| # -------------------------------------------------------------- | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # Build targets | # Build targets | ||||
| all: cardinal carla deps dgl plugins gen resources | all: cardinal carla deps dgl plugins gen resources | ||||
| # -------------------------------------------------------------- | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # Build config | # Build config | ||||
| PREFIX ?= /usr/local | PREFIX ?= /usr/local | ||||
| DESTDIR ?= | DESTDIR ?= | ||||
| # -------------------------------------------------------------- | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # Carla config | # Carla config | ||||
| CARLA_EXTRA_ARGS = \ | CARLA_EXTRA_ARGS = \ | ||||
| @@ -44,7 +44,16 @@ ifneq ($(DEBUG),true) | |||||
| CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true | CARLA_EXTRA_ARGS += EXTERNAL_PLUGINS=true | ||||
| endif | endif | ||||
| # -------------------------------------------------------------- | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # DGL config | |||||
| ifeq ($(WASM),true) | |||||
| UI_TYPE = gles2 | |||||
| else | |||||
| UI_TYPE = opengl | |||||
| endif | |||||
| # --------------------------------------------------------------------------------------------------------------------- | |||||
| # Check for required system-wide dependencies | # Check for required system-wide dependencies | ||||
| ifeq ($(SYSDEPS),true) | ifeq ($(SYSDEPS),true) | ||||
| @@ -183,7 +192,7 @@ endif | |||||
| dgl: | dgl: | ||||
| ifneq ($(HEADLESS),true) | ifneq ($(HEADLESS),true) | ||||
| $(MAKE) opengl -C dpf/dgl $(DGL_EXTRA_ARGS) | |||||
| $(MAKE) $(UI_TYPE) -C dpf/dgl $(DGL_EXTRA_ARGS) | |||||
| endif | endif | ||||
| plugins: deps | plugins: deps | ||||
| @@ -229,6 +238,9 @@ clap: carla deps dgl plugins resources | |||||
| lv2: carla deps dgl plugins resources | lv2: carla deps dgl plugins resources | ||||
| $(MAKE) lv2 -C src $(CARLA_EXTRA_ARGS) | $(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 | vst2: carla deps dgl plugins resources | ||||
| $(MAKE) vst2 -C src $(CARLA_EXTRA_ARGS) | $(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) | - [CVfunk](https://github.com/codygeary/CVfunk-Modules) | ||||
| - [dBiz](https://github.com/dBiz/dBiz) | - [dBiz](https://github.com/dBiz/dBiz) | ||||
| - [DHE Modules](https://github.com/dhemery/DHE-Modules) | - [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) | - [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack) | ||||
| - [E-Series](https://github.com/VCVRack/ESeries) | - [E-Series](https://github.com/VCVRack/ESeries) | ||||
| - [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html) | - [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html) | ||||
| @@ -196,8 +196,10 @@ At the moment the following 3rd-party modules are provided: | |||||
| - [Surge XT](https://github.com/surge-synthesizer/surge-rack) | - [Surge XT](https://github.com/surge-synthesizer/surge-rack) | ||||
| - [unless_modules](https://gitlab.com/unlessgames/unless_modules) | - [unless_modules](https://gitlab.com/unlessgames/unless_modules) | ||||
| - [Valley](https://github.com/ValleyAudio/ValleyRackFree) | - [Valley](https://github.com/ValleyAudio/ValleyRackFree) | ||||
| - [Venom](https://github.com/DaveBenham/VenomModules) | |||||
| - [Voxglitch](https://github.com/clone45/voxglitch) | - [Voxglitch](https://github.com/clone45/voxglitch) | ||||
| - [WhatTheRack](https://github.com/korfuri/WhatTheRack) | - [WhatTheRack](https://github.com/korfuri/WhatTheRack) | ||||
| - [WSTD-Drums](https://github.com/Wasted-Audio/WSTD-Drums) | |||||
| - [ZetaCarinae](https://github.com/mhampton/ZetaCarinaeModules) | - [ZetaCarinae](https://github.com/mhampton/ZetaCarinaeModules) | ||||
| - [ZZC](https://github.com/zezic/ZZC) | - [ZZC](https://github.com/zezic/ZZC) | ||||
| @@ -1 +1 @@ | |||||
| Subproject commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc | |||||
| Subproject commit 1d8dcb5aab5e0c30352e9f928ce3e40cbc86a439 | |||||
| @@ -57,6 +57,7 @@ SPACE += | |||||
| CMAKE = cmake | CMAKE = cmake | ||||
| CMAKE += -DCMAKE_INSTALL_LIBDIR=lib | CMAKE += -DCMAKE_INSTALL_LIBDIR=lib | ||||
| CMAKE += -DCMAKE_INSTALL_PREFIX='$(RACK_DEP_PATH)' | CMAKE += -DCMAKE_INSTALL_PREFIX='$(RACK_DEP_PATH)' | ||||
| CMAKE += -DCMAKE_POLICY_VERSION_MINIMUM=3.5 | |||||
| CMAKE += -DBUILD_SHARED_LIBS=OFF | CMAKE += -DBUILD_SHARED_LIBS=OFF | ||||
| # make sure debug/release matches | # 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 | | | | CVfunk | MIT | | | ||||
| | dBiz | GPL-3.0-or-later | | | | dBiz | GPL-3.0-or-later | | | ||||
| | DHE-Modules | MIT | | | | DHE-Modules | MIT | | | ||||
| | DrumKit | CC0-1.0 | | | |||||
| | eightfold | GPL-3.0-or-later | | | |||||
| | EnigmaCurry | GPL-3.0-or-later | | | | EnigmaCurry | GPL-3.0-or-later | | | ||||
| | E-Series | GPL-3.0-or-later | | | | E-Series | GPL-3.0-or-later | | | ||||
| | ExpertSleepers Encoders | MIT | | | | ExpertSleepers Encoders | MIT | | | ||||
| @@ -90,7 +90,9 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | |||||
| | Surge XT | GPL-3.0-or-later | | | | Surge XT | GPL-3.0-or-later | | | ||||
| | unless_modules | GPL-3.0-or-later | | | | unless_modules | GPL-3.0-or-later | | | ||||
| | Valley | GPL-3.0-or-later | | | | Valley | GPL-3.0-or-later | | | ||||
| | Venom | GPL-3.0-or-later | | | |||||
| | Voxglitch | GPL-3.0-or-later | | | | Voxglitch | GPL-3.0-or-later | | | ||||
| | WSTD-Drums | CC0-1.0 | | | |||||
| | WhatTheRack | WTFPL | | | | WhatTheRack | WTFPL | | | ||||
| | ZetaCarinae | GPL-3.0-or-later | | | | ZetaCarinae | GPL-3.0-or-later | | | ||||
| | ZZC | GPL-3.0-or-later | | | | ZZC | GPL-3.0-or-later | | | ||||
| @@ -178,6 +180,7 @@ Below is a list of artwork licenses from plugins | |||||
| | DHE-Modules/* | MIT | Same license as source code | | | DHE-Modules/* | MIT | Same license as source code | | ||||
| | DrumKit/* | CC0-1.0 | | | | DrumKit/* | CC0-1.0 | | | ||||
| | DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | | | | 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/dseg/* | OFL-1.1-RFN | | | ||||
| | EnigmaCurry/res/fonts/Fantasque/* | OFL-1.1 | | | | EnigmaCurry/res/fonts/Fantasque/* | OFL-1.1 | | | ||||
| | EnigmaCurry/res/fonts/manrope/* | OFL-1.1 | | | | EnigmaCurry/res/fonts/manrope/* | OFL-1.1 | | | ||||
| @@ -201,6 +204,7 @@ Below is a list of artwork licenses from plugins | |||||
| | ImpromptuModular/res/comp/complib/* | CC-BY-NC-4.0 | | | | ImpromptuModular/res/comp/complib/* | CC-BY-NC-4.0 | | | ||||
| | JW-Modules/* | BSD-3-Clause | No artwork specific license provided | | | JW-Modules/* | BSD-3-Clause | No artwork specific license provided | | ||||
| | JW-Modules/DejaVuSansMono.ttf | Bitstream-Vera | Unused in Cardinal | | | 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 | | | kocmoc/* | GPL-3.0-or-later | No artwork specific license provided | | ||||
| | LifeFormModular/* | MIT | No artwork specific license provided | | | LifeFormModular/* | MIT | No artwork specific license provided | | ||||
| | LilacLoop/* | GPL-3.0-or-later | No artwork specific license provided | | | LilacLoop/* | GPL-3.0-or-later | No artwork specific license provided | | ||||
| @@ -263,6 +267,7 @@ Below is a list of artwork licenses from plugins | |||||
| | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | ||||
| | ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | | | | ValleyAudio/DSEG14Classic-*.ttf | OFL-1.1-RFN | | | ||||
| | ValleyAudio/ShareTechMono-*.ttf | OFL-1.1-RFN | | | | ValleyAudio/ShareTechMono-*.ttf | OFL-1.1-RFN | | | ||||
| | Venom/* | GPL-3.0-or-later | No artwork specific license provided | | |||||
| | voxglitch/* | GPL-3.0-or-later | No artwork specific license provided | | | voxglitch/* | GPL-3.0-or-later | No artwork specific license provided | | ||||
| | voxglitch/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | | voxglitch/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | ||||
| | WhatTheRack/* | WTFPL | | | | WhatTheRack/* | WTFPL | | | ||||
| @@ -23,6 +23,17 @@ If all went well opening the "Engine" menu again should show a checkmark, indica | |||||
| For the moment there is no error dialog or information in case things go wrong. | For the moment there is no error dialog or information in case things go wrong. | ||||
| If you are unable to connect, make sure your OS network firewall settings allows opening port 2228. | If you are unable to connect, make sure your OS network firewall settings allows opening port 2228. | ||||
| ### Automatic startup on headless builds | |||||
| If you do a headless build there is no UI to click on to enable remote control, so for this reason the headless builds (standalone, not plugins) will have OSC remote control enabled by default. | |||||
| To change the port for the OSC server use the `CARDINAL_REMOTE_HOST_PORT` environment variable, for example: | |||||
| ```sh | |||||
| env CARDINAL_REMOTE_HOST_PORT=2228 CardinalNative | |||||
| ``` | |||||
| This can be useful for starting Cardinal where no mouse/keyboard are attached but you want remote control. | |||||
| ## TouchOSC example setup | ## TouchOSC example setup | ||||
| A TouchOSC compatible file is available [here](https://github.com/DISTRHO/Cardinal/raw/main/patches/touchosc/24-direct-fader-params.tosc). | A TouchOSC compatible file is available [here](https://github.com/DISTRHO/Cardinal/raw/main/patches/touchosc/24-direct-fader-params.tosc). | ||||
| @@ -1 +1 @@ | |||||
| Subproject commit 32d911c1decd721520e44adce2ca7a92ca0ec4f0 | |||||
| Subproject commit 04eb91490c70a0c3f524e473087e263d8a9d550f | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit 5a80023d86e0f67ead3e27385170310cd430d44c | |||||
| Subproject commit 5914634cd91cf11cc32394616252beb19c5c934c | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit a116e6b18ac05974a23509cc47adfd86e8406385 | |||||
| Subproject commit 51f2b4e61cde7978fb84cdd892a1d3aaedc0ff5b | |||||
| @@ -171,6 +171,7 @@ | |||||
| "description": "Converts a monophonic audio signal to CV pitch", | "description": "Converts a monophonic audio signal to CV pitch", | ||||
| "manualUrl": "https://github.com/DISTRHO/Cardinal/blob/main/docs/CARDINAL-MODULES.md#audio-to-cv-pitch", | "manualUrl": "https://github.com/DISTRHO/Cardinal/blob/main/docs/CARDINAL-MODULES.md#audio-to-cv-pitch", | ||||
| "tags": [ | "tags": [ | ||||
| "Tuner", | |||||
| "Utility" | "Utility" | ||||
| ] | ] | ||||
| }, | }, | ||||
| @@ -192,15 +193,6 @@ | |||||
| "Utility" | "Utility" | ||||
| ] | ] | ||||
| }, | }, | ||||
| { | |||||
| "slug": "MPV", | |||||
| "name": "MPV", | |||||
| "description": "An embed video player inside Cardinal", | |||||
| "manualUrl": "https://github.com/DISTRHO/Cardinal/blob/main/docs/CARDINAL-MODULES.md#mpv", | |||||
| "tags": [ | |||||
| "Visual" | |||||
| ] | |||||
| }, | |||||
| { | { | ||||
| "slug": "SassyScope", | "slug": "SassyScope", | ||||
| "name": "Sassy Scope", | "name": "Sassy Scope", | ||||
| @@ -40,11 +40,18 @@ struct HostTime : TerminalModule { | |||||
| kHostTimeCount | kHostTimeCount | ||||
| }; | }; | ||||
| enum BarDivisions { | |||||
| Bars1 = 1, | |||||
| Bars4 = 4, | |||||
| Bars8 = 8 | |||||
| }; | |||||
| const CardinalPluginContext* const pcontext; | const CardinalPluginContext* const pcontext; | ||||
| rack::dsp::PulseGenerator pulseReset, pulseBar, pulseBeat, pulseClock; | rack::dsp::PulseGenerator pulseReset, pulseBar, pulseBeat, pulseClock; | ||||
| float sampleTime = 0.0f; | float sampleTime = 0.0f; | ||||
| uint32_t lastProcessCounter = 0; | uint32_t lastProcessCounter = 0; | ||||
| BarDivisions barDivision = Bars1; | |||||
| // cached time values | // cached time values | ||||
| struct { | struct { | ||||
| bool reset = true; | bool reset = true; | ||||
| @@ -122,7 +129,9 @@ struct HostTime : TerminalModule { | |||||
| { | { | ||||
| timeInfo.beat = 1; | timeInfo.beat = 1; | ||||
| ++timeInfo.bar; | ++timeInfo.bar; | ||||
| pulseBar.trigger(); | |||||
| if (timeInfo.bar % barDivision == 1) | |||||
| pulseBar.trigger(); | |||||
| } | } | ||||
| } | } | ||||
| @@ -148,9 +157,10 @@ struct HostTime : TerminalModule { | |||||
| ? tick / pcontext->ticksPerBeat | ? tick / pcontext->ticksPerBeat | ||||
| : 0.0f; | : 0.0f; | ||||
| const float barPhase = playingWithBBT && pcontext->beatsPerBar > 0 | 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; | : 0.0f; | ||||
| lights[kHostTimeRolling].setBrightness(playing ? 1.0f : 0.0f); | lights[kHostTimeRolling].setBrightness(playing ? 1.0f : 0.0f); | ||||
| lights[kHostTimeReset].setBrightnessSmooth(hasReset ? 1.0f : 0.0f, args.sampleTime * 0.5f); | lights[kHostTimeReset].setBrightnessSmooth(hasReset ? 1.0f : 0.0f, args.sampleTime * 0.5f); | ||||
| lights[kHostTimeBar].setBrightnessSmooth(hasBar ? 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 | 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); | 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 | #else | ||||
| struct HostTimeWidget : ModuleWidget { | struct HostTimeWidget : ModuleWidget { | ||||
| @@ -1 +0,0 @@ | |||||
| Subproject commit b94c5deb9b93d810f582221f03db8a6feaee6679 | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit 49e2bc0f6a3ef4d1616b78d6280a6d4e7ee222d3 | |||||
| Subproject commit 8c46fbe13acdcb87991719bddcc6ec8abcf152ef | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit 9d8f8515deb20d7e14ca85b4c1d04ec6b66b3e8d | |||||
| Subproject commit 72c8b569dd2cc12ce16abe2da582fc58e07c3d54 | |||||
| @@ -255,18 +255,12 @@ PLUGIN_FILES += Cardinal/src/glBars.cpp | |||||
| endif | endif | ||||
| endif | endif | ||||
| ifneq ($(STATIC_BUILD),true) | |||||
| ifneq ($(MOD_BUILD),true) | |||||
| PLUGIN_FILES += Cardinal/src/AudioFile.cpp | PLUGIN_FILES += Cardinal/src/AudioFile.cpp | ||||
| ifneq ($(WASM),true) | ifneq ($(WASM),true) | ||||
| PLUGIN_FILES += Cardinal/src/Carla.cpp | PLUGIN_FILES += Cardinal/src/Carla.cpp | ||||
| PLUGIN_FILES += Cardinal/src/Ildaeil.cpp | PLUGIN_FILES += Cardinal/src/Ildaeil.cpp | ||||
| endif | endif | ||||
| ifneq ($(HEADLESS),true) | |||||
| ifeq ($(HAVE_X11),true) | |||||
| PLUGIN_FILES += Cardinal/src/EmbedWidget.cpp | |||||
| PLUGIN_FILES += Cardinal/src/MPV.cpp | |||||
| endif | |||||
| endif | |||||
| endif | endif | ||||
| ifneq ($(HEADLESS),true) | ifneq ($(HEADLESS),true) | ||||
| @@ -560,7 +554,7 @@ PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp Befaco/src/MidiThing.cpp,$(wi | |||||
| PLUGIN_FILES += $(wildcard Befaco/src/noise-plethora/*/*.cpp) | PLUGIN_FILES += $(wildcard Befaco/src/noise-plethora/*/*.cpp) | ||||
| # modules/types which are present in other plugins | # 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 = $(filter-out -fsingle-precision-constant,$(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS))) | ||||
| BEFACO_FLAGS += -std=gnu++17 | BEFACO_FLAGS += -std=gnu++17 | ||||
| @@ -678,7 +672,7 @@ COMPUTERSCARE_CUSTOM = Quantizer PanelBorder | |||||
| PLUGIN_FILES += $(filter-out CVfunk/src/plugin.cpp,$(wildcard CVfunk/src/*.cpp)) | PLUGIN_FILES += $(filter-out CVfunk/src/plugin.cpp,$(wildcard CVfunk/src/*.cpp)) | ||||
| # modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
| CVFUNK_CUSTOM = Steps | |||||
| CVFUNK_CUSTOM = Steps Node | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # dBiz | # dBiz | ||||
| @@ -695,17 +689,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)) | 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 | # 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 | # EnigmaCurry | ||||
| @@ -812,7 +804,7 @@ IHTSYN_CUSTOM_PER_FILE += mv_statevariable | |||||
| PLUGIN_FILES += $(filter-out JW-Modules/src/JWModules.cpp JW-Modules/src/Str1ker.cpp,$(wildcard JW-Modules/src/*.cpp)) | PLUGIN_FILES += $(filter-out JW-Modules/src/JWModules.cpp JW-Modules/src/Str1ker.cpp,$(wildcard JW-Modules/src/*.cpp)) | ||||
| ifneq ($(STATIC_BUILD),true) | |||||
| ifneq ($(MOD_BUILD),true) | |||||
| PLUGIN_FILES += JW-Modules/src/Str1ker.cpp | PLUGIN_FILES += JW-Modules/src/Str1ker.cpp | ||||
| PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/ip/*.cpp) | PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/ip/*.cpp) | ||||
| PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/osc/*.cpp) | PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/osc/*.cpp) | ||||
| @@ -824,7 +816,7 @@ endif | |||||
| endif | endif | ||||
| # modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
| JW_CUSTOM = PlayHead Quantizer | |||||
| JW_CUSTOM = PlayHead Quantizer Arrange | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # kocmoc | # kocmoc | ||||
| @@ -832,7 +824,7 @@ JW_CUSTOM = PlayHead Quantizer | |||||
| PLUGIN_FILES += $(filter-out kocmoc/src/plugin.cpp,$(wildcard kocmoc/src/*.cpp)) | PLUGIN_FILES += $(filter-out kocmoc/src/plugin.cpp,$(wildcard kocmoc/src/*.cpp)) | ||||
| # modules/types which are present in other plugins | # modules/types which are present in other plugins | ||||
| KOCMOC_CUSTOM = Phasor __ct_base __ct_comp | |||||
| KOCMOC_CUSTOM = Diode Phasor __ct_base __ct_comp | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # LifeFormModular | # LifeFormModular | ||||
| @@ -1312,6 +1304,11 @@ PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | |||||
| VALLEYAUDIO_CUSTOM = $(DRWAV) Chord DigitalDisplay | VALLEYAUDIO_CUSTOM = $(DRWAV) Chord DigitalDisplay | ||||
| VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | ||||
| # -------------------------------------------------------------- | |||||
| # Venom | |||||
| PLUGIN_FILES += $(filter-out Venom/src/plugin.cpp,$(wildcard Venom/src/*.cpp)) | |||||
| # -------------------------------------------------------------- | # -------------------------------------------------------------- | ||||
| # Voxglitch | # Voxglitch | ||||
| @@ -1327,6 +1324,19 @@ VOXGLITCH_CUSTOM_PER_FILE = AudioBuffer GateSequencer Grain SamplePlayer Sequenc | |||||
| PLUGIN_FILES += $(filter-out WhatTheRack/src/WhatTheRack.cpp,$(wildcard WhatTheRack/src/*.cpp)) | 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 | # ZetaCarinaeModules | ||||
| @@ -1446,6 +1456,7 @@ clean: | |||||
| PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) | PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) | ||||
| UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg | UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg | ||||
| UNWANTED_FILES += $(wildcard "HetrickCV/res/affinity redo/*") | |||||
| UNWANTED_FILES += $(wildcard Meander/res/*) | UNWANTED_FILES += $(wildcard Meander/res/*) | ||||
| UNWANTED_FILES += $(wildcard Mog/res/*) | UNWANTED_FILES += $(wildcard Mog/res/*) | ||||
| UNWANTED_FILES += $(wildcard Mog/res/*/*) | UNWANTED_FILES += $(wildcard Mog/res/*/*) | ||||
| @@ -1475,7 +1486,7 @@ RESOURCE_FILES += BaconPlugs/res/midi/goldberg | |||||
| RESOURCE_FILES += Befaco/res/SpringReverbIR.f32 | RESOURCE_FILES += Befaco/res/SpringReverbIR.f32 | ||||
| RESOURCE_FILES += cf/playeroscs | RESOURCE_FILES += cf/playeroscs | ||||
| RESOURCE_FILES += DHE-Modules/svg | RESOURCE_FILES += DHE-Modules/svg | ||||
| RESOURCE_FILES += DrumKit/res/samples | |||||
| RESOURCE_FILES += WSTD-Drums/res/samples | |||||
| RESOURCE_FILES += Meander/res | RESOURCE_FILES += Meander/res | ||||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets | RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets | ||||
| RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes | RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes | ||||
| @@ -2198,7 +2209,7 @@ $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(AS_CUSTOM),$(call custom_module_names,$(m),AS)) \ | $(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 \ | -DpluginInstance=pluginInstance__AS \ | ||||
| -Wno-unused-private-field | -Wno-unused-private-field | ||||
| @@ -2254,7 +2265,7 @@ $(BUILD_DIR)/Bidoo%.cpp.o: Bidoo%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(BIDOO_CUSTOM),$(call custom_module_names,$(m),Bidoo)) \ | $(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 \ | -DpluginInstance=pluginInstance__Bidoo \ | ||||
| -DSKIP_MINGW_FORMAT \ | -DSKIP_MINGW_FORMAT \ | ||||
| -IBidoo/src/dep/gverb/include \ | -IBidoo/src/dep/gverb/include \ | ||||
| @@ -2274,7 +2285,7 @@ $(BUILD_DIR)/BogaudioModules%.cpp.o: BogaudioModules%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(BOGAUDIO_CUSTOM),$(call custom_module_names,$(m),Bogaudio)) \ | $(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 \ | -DpluginInstance=pluginInstance__BogaudioModules \ | ||||
| -DRACK_SIMD=1 \ | -DRACK_SIMD=1 \ | ||||
| -DSKIP_MINGW_FORMAT \ | -DSKIP_MINGW_FORMAT \ | ||||
| @@ -2327,7 +2338,7 @@ $(BUILD_DIR)/dBiz/src/%.cpp.o: dBiz/src/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(DBIZ_CUSTOM),$(call custom_module_names,$(m),dBiz)) \ | $(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 | -DpluginInstance=pluginInstance__dBiz | ||||
| $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp | $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp | ||||
| @@ -2338,14 +2349,12 @@ $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp | |||||
| -DpluginInstance=pluginInstance__DHE \ | -DpluginInstance=pluginInstance__DHE \ | ||||
| -IDHE-Modules/src | -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)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @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 | $(BUILD_DIR)/EnigmaCurry/src/%.cpp.o: EnigmaCurry/src/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @@ -2489,7 +2498,7 @@ $(BUILD_DIR)/ImpromptuModular%.cpp.o: ImpromptuModular%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(IMPROMPTUMODULAR_CUSTOM),$(call custom_module_names,$(m),ImpromptuModular)) \ | $(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 \ | -DpluginInstance=pluginInstance__ImpromptuModular \ | ||||
| -Wno-format-truncation | -Wno-format-truncation | ||||
| @@ -2498,7 +2507,7 @@ $(BUILD_DIR)/ihtsyn/%.cpp.o: ihtsyn/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(IHTSYN_CUSTOM),$(call custom_module_names,$(m),ihtsyn)) \ | $(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 | -DpluginInstance=pluginInstance__ihtsyn | ||||
| $(BUILD_DIR)/JW-Modules/src/WavHead.cpp.o: JW-Modules/src/WavHead.cpp | $(BUILD_DIR)/JW-Modules/src/WavHead.cpp.o: JW-Modules/src/WavHead.cpp | ||||
| @@ -2619,7 +2628,7 @@ $(BUILD_DIR)/mscHack/%.cpp.o: mscHack/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(MSCHACK_CUSTOM),$(call custom_module_names,$(m),mscHack)) \ | $(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 \ | -DthePlugin=pluginInstance__mscHack \ | ||||
| -Dinit=init__mscHack \ | -Dinit=init__mscHack \ | ||||
| -Wno-class-memaccess \ | -Wno-class-memaccess \ | ||||
| @@ -2700,7 +2709,7 @@ $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(PRISM_CUSTOM),$(call custom_module_names,$(m),Prism)) \ | $(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 \ | -DpluginInstance=pluginInstance__Prism \ | ||||
| $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp | $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp | ||||
| @@ -2744,6 +2753,7 @@ $(BUILD_DIR)/Sapphire/%.cpp.o: Sapphire/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ | ||||
| $(foreach m,$(SAPPHIRE_CUSTOM),$(call custom_module_names,$(m),Sapphire)) \ | $(foreach m,$(SAPPHIRE_CUSTOM),$(call custom_module_names,$(m),Sapphire)) \ | ||||
| -DSKIP_MINGW_FORMAT \ | |||||
| -DpluginInstance=pluginInstance__sapphire | -DpluginInstance=pluginInstance__sapphire | ||||
| $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp | $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp | ||||
| @@ -2773,7 +2783,7 @@ $(BUILD_DIR)/stoermelder-packone/%.cpp.o: stoermelder-packone/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(STOERMELDER_PACKONE_CUSTOM),$(call custom_module_names,$(m),stoermelder_p1)) \ | $(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 \ | -DpluginInstance=pluginInstance__stoermelder_p1 \ | ||||
| -Dinit=init__stoermelder_p1 | -Dinit=init__stoermelder_p1 | ||||
| @@ -2803,19 +2813,28 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp | |||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(VALLEYAUDIO_CUSTOM),$(call custom_module_names,$(m),ValleyAudio)) \ | $(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 \ | -DpluginInstance=pluginInstance__ValleyAudio \ | ||||
| -DSTDIO_OVERRIDE=ValleyAudio \ | -DSTDIO_OVERRIDE=ValleyAudio \ | ||||
| -IValleyAudio/src \ | -IValleyAudio/src \ | ||||
| -Wno-sign-compare \ | -Wno-sign-compare \ | ||||
| -Wno-unused-but-set-variable | -Wno-unused-but-set-variable | ||||
| $(BUILD_DIR)/Venom/%.cpp.o: Venom/%.cpp | |||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||||
| @echo "Compiling $<" | |||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | |||||
| $(foreach m,$(VENOM_CUSTOM),$(call custom_module_names,$(m),Venom)) \ | |||||
| -DSKIP_MINGW_FORMAT \ | |||||
| -DpluginInstance=pluginInstance__Venom \ | |||||
| -lglfw | |||||
| $(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp | $(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ | ||||
| $(foreach m,$(VOXGLITCH_CUSTOM),$(call custom_module_names,$(m),Voxglitch)) \ | $(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 \ | -DpluginInstance=pluginInstance__Voxglitch \ | ||||
| -DSKIP_MINGW_FORMAT | -DSKIP_MINGW_FORMAT | ||||
| @@ -2826,6 +2845,15 @@ $(BUILD_DIR)/WhatTheRack/%.cpp.o: WhatTheRack/%.cpp | |||||
| $(foreach m,$(WHATTHERACK_CUSTOM),$(call custom_module_names,$(m),WhatTheRack)) \ | $(foreach m,$(WHATTHERACK_CUSTOM),$(call custom_module_names,$(m),WhatTheRack)) \ | ||||
| -DpluginInstance=pluginInstance__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 | $(BUILD_DIR)/ZamAudio/%.cpp.o: ZamAudio/%.cpp | ||||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | ||||
| @echo "Compiling $<" | @echo "Compiling $<" | ||||
| @@ -1 +1 @@ | |||||
| Subproject commit 9665f4bddb59841ef74ff206fe91345c146fed52 | |||||
| Subproject commit 191fbee21a6be7d9c18eacc6f3a1804455d5358d | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit ba95ede2370d340e0f7143dd897ff7e089bda336 | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit 05330ce99f4ec742f906c77ab5d8758a15decb4c | |||||
| @@ -0,0 +1 @@ | |||||
| Subproject commit a541c5cfdc3fb9ad8e4f345470f817eaf576b987 | |||||
| @@ -1 +1 @@ | |||||
| Subproject commit eaf7cbf3af0a8525d3c649c53eab476c3052d41b | |||||
| Subproject commit ea69acab96db49c32601b609cdfe06444ecee0e8 | |||||
| @@ -147,10 +147,14 @@ extern Model* modelChord; | |||||
| #define modelADSR modelBefacoADSR | #define modelADSR modelBefacoADSR | ||||
| #define modelMixer modelBefacoMixer | #define modelMixer modelBefacoMixer | ||||
| #define modelBurst modelBefacoBurst | #define modelBurst modelBefacoBurst | ||||
| #define modelMixer2 modelBefacoMixer2 | |||||
| #define modelSlew modelBefacoSlew | |||||
| #include "Befaco/src/plugin.hpp" | #include "Befaco/src/plugin.hpp" | ||||
| #undef modelADSR | #undef modelADSR | ||||
| #undef modelMixer | #undef modelMixer | ||||
| #undef modelBurst | #undef modelBurst | ||||
| #undef modelMixer2 | |||||
| #undef modelSlew | |||||
| // Bidoo | // Bidoo | ||||
| #include "Bidoo/src/plugin.hpp" | #include "Bidoo/src/plugin.hpp" | ||||
| @@ -339,9 +343,11 @@ extern Model* modelTestVCF; | |||||
| #include "cf/src/plugin.hpp" | #include "cf/src/plugin.hpp" | ||||
| // CVfunk | // CVfunk | ||||
| #define modelNode modelCVfunkNode | |||||
| #define modelSteps modelCVfunkSteps | #define modelSteps modelCVfunkSteps | ||||
| #include "CVfunk/src/plugin.hpp" | #include "CVfunk/src/plugin.hpp" | ||||
| #undef modelSteps | #undef modelSteps | ||||
| #undef modelNode | |||||
| // ChowDSP | // ChowDSP | ||||
| #include "ChowDSP/src/plugin.hpp" | #include "ChowDSP/src/plugin.hpp" | ||||
| @@ -391,9 +397,8 @@ namespace truth { void init(Plugin*); } | |||||
| namespace xycloid { void init(Plugin*); } | namespace xycloid { void init(Plugin*); } | ||||
| } | } | ||||
| // DrumKit | |||||
| #include "DrumKit/src/DrumKit.hpp" | |||||
| void setupSamples(); | |||||
| // eightfold | |||||
| #include "eightfold/src/plugin.hpp" | |||||
| // EnigmaCurry | // EnigmaCurry | ||||
| #define modelPulse modelEnigmaCurryPulse | #define modelPulse modelEnigmaCurryPulse | ||||
| @@ -450,6 +455,7 @@ void saveGtgPluginDefault(const char*, int) {} | |||||
| extern Model* modelTwoToFour; | extern Model* modelTwoToFour; | ||||
| extern Model* modelAnalogToDigital; | extern Model* modelAnalogToDigital; | ||||
| extern Model* modelASR; | extern Model* modelASR; | ||||
| extern Model* modelBinaryCounter; | |||||
| extern Model* modelBinaryGate; | extern Model* modelBinaryGate; | ||||
| extern Model* modelBinaryNoise; | extern Model* modelBinaryNoise; | ||||
| extern Model* modelBitshift; | extern Model* modelBitshift; | ||||
| @@ -460,6 +466,7 @@ extern Model* modelChaos2Op; | |||||
| extern Model* modelChaos3Op; | extern Model* modelChaos3Op; | ||||
| extern Model* modelChaoticAttractors; | extern Model* modelChaoticAttractors; | ||||
| extern Model* modelClockedNoise; | extern Model* modelClockedNoise; | ||||
| extern Model* modelClockToPhasor; | |||||
| extern Model* modelComparator; | extern Model* modelComparator; | ||||
| extern Model* modelContrast; | extern Model* modelContrast; | ||||
| extern Model* modelCrackle; | extern Model* modelCrackle; | ||||
| @@ -478,6 +485,7 @@ extern Model* modelGingerbread; | |||||
| extern Model* modelLogicCombine; | extern Model* modelLogicCombine; | ||||
| extern Model* modelMidSide; | extern Model* modelMidSide; | ||||
| extern Model* modelMinMax; | extern Model* modelMinMax; | ||||
| extern Model* modelNormals; | |||||
| extern Model* modelPhaseDrivenSequencer; | extern Model* modelPhaseDrivenSequencer; | ||||
| extern Model* modelPhaseDrivenSequencer32; | extern Model* modelPhaseDrivenSequencer32; | ||||
| extern Model* modelPhasorAnalyzer; | extern Model* modelPhasorAnalyzer; | ||||
| @@ -507,8 +515,10 @@ extern Model* modelPhasorSubstepShape; | |||||
| extern Model* modelPhasorSwing; | extern Model* modelPhasorSwing; | ||||
| extern Model* modelPhasorTimetable; | extern Model* modelPhasorTimetable; | ||||
| extern Model* modelPhasorToClock; | extern Model* modelPhasorToClock; | ||||
| extern Model* modelPhasorToRandom; | |||||
| extern Model* modelPhasorToLFO; | extern Model* modelPhasorToLFO; | ||||
| extern Model* modelPhasorToWaveforms; | extern Model* modelPhasorToWaveforms; | ||||
| extern Model* modelPolymetricPhasors; | |||||
| extern Model* modelProbability; | extern Model* modelProbability; | ||||
| extern Model* modelRandomGates; | extern Model* modelRandomGates; | ||||
| extern Model* modelRotator; | extern Model* modelRotator; | ||||
| @@ -566,8 +576,10 @@ extern Model* modelBlankPanel; | |||||
| // JW-Modules | // JW-Modules | ||||
| #define modelQuantizer modelJWQuantizer | #define modelQuantizer modelJWQuantizer | ||||
| #define modelArrange modelJWArrange | |||||
| #include "JW-Modules/src/JWModules.hpp" | #include "JW-Modules/src/JWModules.hpp" | ||||
| #undef modelQuantizer | #undef modelQuantizer | ||||
| #undef modelArrange | |||||
| // kocmoc | // kocmoc | ||||
| #include "kocmoc/src/plugin.hpp" | #include "kocmoc/src/plugin.hpp" | ||||
| @@ -882,6 +894,13 @@ void surgext_rack_update_theme(); | |||||
| // ValleyAudio | // ValleyAudio | ||||
| #include "ValleyAudio/src/Valley.hpp" | #include "ValleyAudio/src/Valley.hpp" | ||||
| // Venom | |||||
| #include "Venom/src/plugin.hpp" | |||||
| namespace Venom | |||||
| { | |||||
| void readDefaultThemes(); | |||||
| } | |||||
| // Voxglitch | // Voxglitch | ||||
| #define modelLooper modelVoxglitchLooper | #define modelLooper modelVoxglitchLooper | ||||
| #include "voxglitch/src/plugin.hpp" | #include "voxglitch/src/plugin.hpp" | ||||
| @@ -890,6 +909,10 @@ void surgext_rack_update_theme(); | |||||
| // WhatTheRack | // WhatTheRack | ||||
| #include "WhatTheRack/src/WhatTheRack.hpp" | #include "WhatTheRack/src/WhatTheRack.hpp" | ||||
| // WSTD-Drums | |||||
| #include "WSTD-Drums/src/WSTD_Drums.hpp" | |||||
| void setupSamples(); | |||||
| // ZetaCarinaeModules | // ZetaCarinaeModules | ||||
| #include "ZetaCarinaeModules/src/plugin.hpp" | #include "ZetaCarinaeModules/src/plugin.hpp" | ||||
| @@ -947,7 +970,7 @@ Plugin* pluginInstance__Computerscare; | |||||
| Plugin* pluginInstance__CVfunk; | Plugin* pluginInstance__CVfunk; | ||||
| Plugin* pluginInstance__dBiz; | Plugin* pluginInstance__dBiz; | ||||
| Plugin* pluginInstance__DHE; | Plugin* pluginInstance__DHE; | ||||
| extern Plugin* pluginInstance__DrumKit; | |||||
| Plugin* pluginInstance__eightfold; | |||||
| Plugin* pluginInstance__EnigmaCurry; | Plugin* pluginInstance__EnigmaCurry; | ||||
| Plugin* pluginInstance__ESeries; | Plugin* pluginInstance__ESeries; | ||||
| Plugin* pluginInstance__ExpertSleepersEncoders; | Plugin* pluginInstance__ExpertSleepersEncoders; | ||||
| @@ -997,8 +1020,10 @@ extern Plugin* pluginInstance__stoermelder_p1; | |||||
| Plugin* pluginInstance__surgext; | Plugin* pluginInstance__surgext; | ||||
| Plugin* pluginInstance__unless_modules; | Plugin* pluginInstance__unless_modules; | ||||
| Plugin* pluginInstance__ValleyAudio; | Plugin* pluginInstance__ValleyAudio; | ||||
| Plugin* pluginInstance__Venom; | |||||
| Plugin* pluginInstance__Voxglitch; | Plugin* pluginInstance__Voxglitch; | ||||
| Plugin* pluginInstance__WhatTheRack; | Plugin* pluginInstance__WhatTheRack; | ||||
| extern Plugin* pluginInstance__WSTD_Drums; | |||||
| Plugin* pluginInstance__ZetaCarinaeModules; | Plugin* pluginInstance__ZetaCarinaeModules; | ||||
| Plugin* pluginInstance__ZZC; | Plugin* pluginInstance__ZZC; | ||||
| @@ -1044,10 +1069,17 @@ struct StaticPluginLoader { | |||||
| return; | return; | ||||
| } | } | ||||
| // force ABI, we use static plugins so this doesnt matter as long as it builds | |||||
| json_t* const version = json_string((APP_VERSION_MAJOR + ".0").c_str()); | |||||
| json_object_set(rootJ, "version", version); | |||||
| json_decref(version); | |||||
| std::string version; | |||||
| if (json_t* const versionJ = json_object_get(rootJ, "version")) | |||||
| version = json_string_value(versionJ); | |||||
| if (!string::startsWith(version, APP_VERSION_MAJOR + ".")) | |||||
| { | |||||
| // force ABI, we use static plugins so this doesnt matter as long as it builds | |||||
| json_t* const versionJ = json_string((APP_VERSION_MAJOR + ".0").c_str()); | |||||
| json_object_set(rootJ, "version", versionJ); | |||||
| json_decref(versionJ); | |||||
| } | |||||
| // Load manifest | // Load manifest | ||||
| p->fromJson(rootJ); | p->fromJson(rootJ); | ||||
| @@ -1132,12 +1164,12 @@ static void initStatic__Cardinal() | |||||
| #else | #else | ||||
| spl.removeModule("glBars"); | spl.removeModule("glBars"); | ||||
| #endif | #endif | ||||
| #ifndef STATIC_BUILD | |||||
| #ifndef __MOD_DEVICES__ | |||||
| p->addModel(modelAudioFile); | p->addModel(modelAudioFile); | ||||
| #else | #else | ||||
| spl.removeModule("AudioFile"); | spl.removeModule("AudioFile"); | ||||
| #endif | #endif | ||||
| #if !(defined(DISTRHO_OS_WASM) || defined(STATIC_BUILD)) | |||||
| #if !(defined(DISTRHO_OS_WASM) || defined(__MOD_DEVICES__)) | |||||
| p->addModel(modelCarla); | p->addModel(modelCarla); | ||||
| p->addModel(modelIldaeil); | p->addModel(modelIldaeil); | ||||
| #else | #else | ||||
| @@ -1149,11 +1181,6 @@ static void initStatic__Cardinal() | |||||
| #else | #else | ||||
| spl.removeModule("SassyScope"); | spl.removeModule("SassyScope"); | ||||
| #endif | #endif | ||||
| #if defined(HAVE_X11) && !defined(HEADLESS) && !defined(STATIC_BUILD) | |||||
| p->addModel(modelMPV); | |||||
| #else | |||||
| spl.removeModule("MPV"); | |||||
| #endif | |||||
| #ifdef HAVE_FFTW3F | #ifdef HAVE_FFTW3F | ||||
| p->addModel(modelAudioToCVPitch); | p->addModel(modelAudioToCVPitch); | ||||
| #else | #else | ||||
| @@ -1614,6 +1641,8 @@ static void initStatic__Befaco() | |||||
| #define modelADSR modelBefacoADSR | #define modelADSR modelBefacoADSR | ||||
| #define modelMixer modelBefacoMixer | #define modelMixer modelBefacoMixer | ||||
| #define modelBurst modelBefacoBurst | #define modelBurst modelBefacoBurst | ||||
| #define modelMixer2 modelBefacoMixer2 | |||||
| #define modelSlew modelBefacoSlew | |||||
| p->addModel(modelEvenVCO); | p->addModel(modelEvenVCO); | ||||
| p->addModel(modelRampage); | p->addModel(modelRampage); | ||||
| p->addModel(modelABC); | p->addModel(modelABC); | ||||
| @@ -1640,9 +1669,16 @@ static void initStatic__Befaco() | |||||
| p->addModel(modelOctaves); | p->addModel(modelOctaves); | ||||
| p->addModel(modelBypass); | p->addModel(modelBypass); | ||||
| p->addModel(modelBandit); | p->addModel(modelBandit); | ||||
| p->addModel(modelAtte); | |||||
| p->addModel(modelAxBC); | |||||
| p->addModel(modelMixer2); | |||||
| p->addModel(modelMuDi); | |||||
| p->addModel(modelSlew); | |||||
| #undef modelADSR | #undef modelADSR | ||||
| #undef modelMixer | #undef modelMixer | ||||
| #undef modelBurst | #undef modelBurst | ||||
| #undef modelMixer2 | |||||
| #undef modelSlew | |||||
| // NOTE disabled in Cardinal due to MIDI usage | // NOTE disabled in Cardinal due to MIDI usage | ||||
| spl.removeModule("MidiThingV2"); | spl.removeModule("MidiThingV2"); | ||||
| @@ -2024,6 +2060,7 @@ static void initStatic__CVfunk() | |||||
| if (spl.ok()) | if (spl.ok()) | ||||
| { | { | ||||
| #define modelSteps modelCVfunkSteps | #define modelSteps modelCVfunkSteps | ||||
| #define modelNode modelCVfunkNode | |||||
| p->addModel(modelSteps); | p->addModel(modelSteps); | ||||
| p->addModel(modelEnvelopeArray); | p->addModel(modelEnvelopeArray); | ||||
| p->addModel(modelPentaSequencer); | p->addModel(modelPentaSequencer); | ||||
| @@ -2044,7 +2081,17 @@ static void initStatic__CVfunk() | |||||
| p->addModel(modelStepWave); | p->addModel(modelStepWave); | ||||
| p->addModel(modelPreeeeeeeeeeessedDuck); | p->addModel(modelPreeeeeeeeeeessedDuck); | ||||
| p->addModel(modelArrange); | p->addModel(modelArrange); | ||||
| p->addModel(modelTriDelay); | |||||
| 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 | #undef modelSteps | ||||
| } | } | ||||
| } | } | ||||
| @@ -2127,27 +2174,19 @@ static void initStatic__DHE() | |||||
| } | } | ||||
| } | } | ||||
| static void initStatic__DrumKit() | |||||
| static void initStatic__eightfold() | |||||
| { | { | ||||
| Plugin* const p = new Plugin; | Plugin* const p = new Plugin; | ||||
| pluginInstance__DrumKit = p; | |||||
| pluginInstance__eightfold = p; | |||||
| const StaticPluginLoader spl(p, "DrumKit"); | |||||
| const StaticPluginLoader spl(p, "eightfold"); | |||||
| if (spl.ok()) | 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); | |||||
| } | } | ||||
| } | } | ||||
| @@ -2383,6 +2422,7 @@ static void initStatic__HetrickCV() | |||||
| p->addModel(modelTwoToFour); | p->addModel(modelTwoToFour); | ||||
| p->addModel(modelAnalogToDigital); | p->addModel(modelAnalogToDigital); | ||||
| p->addModel(modelASR); | p->addModel(modelASR); | ||||
| p->addModel(modelBinaryCounter); | |||||
| p->addModel(modelBinaryGate); | p->addModel(modelBinaryGate); | ||||
| p->addModel(modelBinaryNoise); | p->addModel(modelBinaryNoise); | ||||
| p->addModel(modelBitshift); | p->addModel(modelBitshift); | ||||
| @@ -2393,6 +2433,7 @@ static void initStatic__HetrickCV() | |||||
| p->addModel(modelChaos3Op); | p->addModel(modelChaos3Op); | ||||
| p->addModel(modelChaoticAttractors); | p->addModel(modelChaoticAttractors); | ||||
| p->addModel(modelClockedNoise); | p->addModel(modelClockedNoise); | ||||
| p->addModel(modelClockToPhasor); | |||||
| p->addModel(modelComparator); | p->addModel(modelComparator); | ||||
| p->addModel(modelContrast); | p->addModel(modelContrast); | ||||
| p->addModel(modelCrackle); | p->addModel(modelCrackle); | ||||
| @@ -2411,6 +2452,7 @@ static void initStatic__HetrickCV() | |||||
| p->addModel(modelLogicCombine); | p->addModel(modelLogicCombine); | ||||
| p->addModel(modelMidSide); | p->addModel(modelMidSide); | ||||
| p->addModel(modelMinMax); | p->addModel(modelMinMax); | ||||
| p->addModel(modelNormals); | |||||
| p->addModel(modelPhaseDrivenSequencer); | p->addModel(modelPhaseDrivenSequencer); | ||||
| p->addModel(modelPhaseDrivenSequencer32); | p->addModel(modelPhaseDrivenSequencer32); | ||||
| p->addModel(modelPhasorAnalyzer); | p->addModel(modelPhasorAnalyzer); | ||||
| @@ -2440,8 +2482,10 @@ static void initStatic__HetrickCV() | |||||
| p->addModel(modelPhasorSwing); | p->addModel(modelPhasorSwing); | ||||
| p->addModel(modelPhasorTimetable); | p->addModel(modelPhasorTimetable); | ||||
| p->addModel(modelPhasorToClock); | p->addModel(modelPhasorToClock); | ||||
| p->addModel(modelPhasorToRandom); | |||||
| p->addModel(modelPhasorToLFO); | p->addModel(modelPhasorToLFO); | ||||
| p->addModel(modelPhasorToWaveforms); | p->addModel(modelPhasorToWaveforms); | ||||
| p->addModel(modelPolymetricPhasors); | |||||
| p->addModel(modelProbability); | p->addModel(modelProbability); | ||||
| p->addModel(modelRandomGates); | p->addModel(modelRandomGates); | ||||
| p->addModel(modelRotator); | p->addModel(modelRotator); | ||||
| @@ -2526,6 +2570,7 @@ static void initStatic__JW() | |||||
| if (spl.ok()) | if (spl.ok()) | ||||
| { | { | ||||
| #define modelQuantizer modelJWQuantizer | #define modelQuantizer modelJWQuantizer | ||||
| #define modelArrange modelJWArrange | |||||
| p->addModel(modelAdd5); | p->addModel(modelAdd5); | ||||
| p->addModel(modelAbcdSeq); | p->addModel(modelAbcdSeq); | ||||
| p->addModel(modelBouncyBalls); | p->addModel(modelBouncyBalls); | ||||
| @@ -2556,12 +2601,14 @@ static void initStatic__JW() | |||||
| p->addModel(modelCoolBreeze); | p->addModel(modelCoolBreeze); | ||||
| p->addModel(modelPete); | p->addModel(modelPete); | ||||
| p->addModel(modelTimer); | p->addModel(modelTimer); | ||||
| #ifndef STATIC_BUILD | |||||
| #ifndef __MOD_DEVICES__ | |||||
| p->addModel(modelStr1ker); | p->addModel(modelStr1ker); | ||||
| #else | #else | ||||
| spl.removeModule("Str1ker"); | spl.removeModule("Str1ker"); | ||||
| #endif | #endif | ||||
| p->addModel(modelArrange); | |||||
| #undef modelQuantizer | #undef modelQuantizer | ||||
| #undef modelArrange | |||||
| } | } | ||||
| } | } | ||||
| @@ -2578,6 +2625,7 @@ static void initStatic__kocmoc() | |||||
| p->addModel(modelTRG); | p->addModel(modelTRG); | ||||
| p->addModel(modelLADR); | p->addModel(modelLADR); | ||||
| p->addModel(modeluLADR); | p->addModel(modeluLADR); | ||||
| p->addModel(modelDIOD); | |||||
| p->addModel(modelOP); | p->addModel(modelOP); | ||||
| p->addModel(modelPHASR); | p->addModel(modelPHASR); | ||||
| p->addModel(modelMUL); | p->addModel(modelMUL); | ||||
| @@ -3173,7 +3221,11 @@ static void initStatic__Sapphire() | |||||
| if (spl.ok()) | if (spl.ok()) | ||||
| { | { | ||||
| p->addModel(modelSapphireChaops); | p->addModel(modelSapphireChaops); | ||||
| p->addModel(modelSapphireEcho); | |||||
| p->addModel(modelSapphireEchoOut); | |||||
| p->addModel(modelSapphireEchoTap); | |||||
| p->addModel(modelSapphireElastika); | p->addModel(modelSapphireElastika); | ||||
| p->addModel(modelSapphireEnv); | |||||
| p->addModel(modelSapphireFrolic); | p->addModel(modelSapphireFrolic); | ||||
| p->addModel(modelSapphireGalaxy); | p->addModel(modelSapphireGalaxy); | ||||
| p->addModel(modelSapphireGlee); | p->addModel(modelSapphireGlee); | ||||
| @@ -3192,6 +3244,7 @@ static void initStatic__Sapphire() | |||||
| p->addModel(modelSapphireTout); | p->addModel(modelSapphireTout); | ||||
| p->addModel(modelSapphireTricorder); | p->addModel(modelSapphireTricorder); | ||||
| p->addModel(modelSapphireTubeUnit); | p->addModel(modelSapphireTubeUnit); | ||||
| p->addModel(modelSapphireZoo); | |||||
| } | } | ||||
| } | } | ||||
| @@ -3439,6 +3492,82 @@ static void initStatic__ValleyAudio() | |||||
| } | } | ||||
| } | } | ||||
| static void initStatic__Venom() | |||||
| { | |||||
| Plugin* const p = new Plugin; | |||||
| pluginInstance__Venom = p; | |||||
| const StaticPluginLoader spl(p, "Venom"); | |||||
| if (spl.ok()) | |||||
| { | |||||
| p->addModel(modelVenomAD_ASR); | |||||
| p->addModel(modelVenomAuxClone); | |||||
| p->addModel(modelVenomBayInput); | |||||
| p->addModel(modelVenomBayNorm); | |||||
| p->addModel(modelVenomBayOutput); | |||||
| p->addModel(modelVenomBenjolinOsc); | |||||
| p->addModel(modelVenomBenjolinGatesExpander); | |||||
| p->addModel(modelVenomBenjolinVoltsExpander); | |||||
| p->addModel(modelVenomBernoulliSwitch); | |||||
| p->addModel(modelVenomBernoulliSwitchExpander); | |||||
| p->addModel(modelVenomBlocker); | |||||
| p->addModel(modelVenomBypass); | |||||
| p->addModel(modelVenomCloneMerge); | |||||
| p->addModel(modelVenomCompare2); | |||||
| p->addModel(modelVenomCrossFade3D); | |||||
| p->addModel(modelVenomHQ); | |||||
| p->addModel(modelVenomKnob5); | |||||
| p->addModel(modelVenomLinearBeats); | |||||
| p->addModel(modelVenomLinearBeatsExpander); | |||||
| p->addModel(modelVenomLogic); | |||||
| p->addModel(modelVenomMix4); | |||||
| p->addModel(modelVenomMix4Stereo); | |||||
| p->addModel(modelVenomMixFade); | |||||
| p->addModel(modelVenomMixFade2); | |||||
| p->addModel(modelVenomMixMute); | |||||
| p->addModel(modelVenomMixOffset); | |||||
| p->addModel(modelVenomMixPan); | |||||
| p->addModel(modelVenomMixSend); | |||||
| p->addModel(modelVenomMixSolo); | |||||
| p->addModel(modelVenomMousePad); | |||||
| p->addModel(modelVenomMultiMerge); | |||||
| p->addModel(modelVenomMultiSplit); | |||||
| p->addModel(modelVenomSVF); | |||||
| p->addModel(modelVenomOscillator); | |||||
| p->addModel(modelVenomNORS_IQ); | |||||
| p->addModel(modelVenomNORSIQChord2Scale); | |||||
| p->addModel(modelVenomPan3D); | |||||
| p->addModel(modelVenomPolyClone); | |||||
| p->addModel(modelVenomPolyFade); | |||||
| p->addModel(modelVenomPolyOffset); | |||||
| p->addModel(modelVenomPolySHASR); | |||||
| p->addModel(modelVenomPolyScale); | |||||
| p->addModel(modelVenomPolyUnison); | |||||
| p->addModel(modelVenomPush5); | |||||
| p->addModel(modelVenomQuadVCPolarizer); | |||||
| p->addModel(modelVenomRecurse); | |||||
| p->addModel(modelVenomRecurseStereo); | |||||
| p->addModel(modelVenomReformation); | |||||
| p->addModel(modelVenomRhythmExplorer); | |||||
| p->addModel(modelVenomShapedVCA); | |||||
| p->addModel(modelVenomSlew); | |||||
| p->addModel(modelVenomSphereToXYZ); | |||||
| p->addModel(modelVenomThru); | |||||
| p->addModel(modelVenomVCAMix4); | |||||
| p->addModel(modelVenomVCAMix4Stereo); | |||||
| p->addModel(modelVenomVCOUnit); | |||||
| p->addModel(modelVenomBlank); | |||||
| p->addModel(modelVenomWaveFolder); | |||||
| p->addModel(modelVenomWaveMangler); | |||||
| p->addModel(modelVenomWaveMultiplier); | |||||
| p->addModel(modelVenomWidgetMenuExtender); | |||||
| p->addModel(modelVenomWinComp); | |||||
| p->addModel(modelVenomXM_OP); | |||||
| Venom::readDefaultThemes(); | |||||
| } | |||||
| } | |||||
| static void initStatic__Voxglitch() | static void initStatic__Voxglitch() | ||||
| { | { | ||||
| Plugin* p = new Plugin; | Plugin* p = new Plugin; | ||||
| @@ -3493,6 +3622,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() | static void initStatic__ZetaCarinaeModules() | ||||
| { | { | ||||
| Plugin* p = new Plugin; | Plugin* p = new Plugin; | ||||
| @@ -3565,7 +3718,7 @@ void initStaticPlugins() | |||||
| initStatic__CVfunk(); | initStatic__CVfunk(); | ||||
| initStatic__dBiz(); | initStatic__dBiz(); | ||||
| initStatic__DHE(); | initStatic__DHE(); | ||||
| initStatic__DrumKit(); | |||||
| initStatic__eightfold(); | |||||
| initStatic__EnigmaCurry(); | initStatic__EnigmaCurry(); | ||||
| initStatic__ESeries(); | initStatic__ESeries(); | ||||
| initStatic__ExpertSleepersEncoders(); | initStatic__ExpertSleepersEncoders(); | ||||
| @@ -3615,8 +3768,10 @@ void initStaticPlugins() | |||||
| initStatic__surgext(); | initStatic__surgext(); | ||||
| initStatic__unless_modules(); | initStatic__unless_modules(); | ||||
| initStatic__ValleyAudio(); | initStatic__ValleyAudio(); | ||||
| initStatic__Venom(); | |||||
| initStatic__Voxglitch(); | initStatic__Voxglitch(); | ||||
| initStatic__WhatTheRack(); | initStatic__WhatTheRack(); | ||||
| initStatic__WSTD_Drums(); | |||||
| initStatic__ZetaCarinaeModules(); | initStatic__ZetaCarinaeModules(); | ||||
| initStatic__ZZC(); | initStatic__ZZC(); | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * DISTRHO Cardinal Plugin | * 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 | * 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.12"; | |||||
| // ----------------------------------------------------------------------------------------------------------- | // ----------------------------------------------------------------------------------------------------------- | ||||
| @@ -626,47 +626,7 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB | |||||
| if (asset::userDir.empty()) | 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) | if (isRealInstance) | ||||
| { | { | ||||
| @@ -683,17 +643,10 @@ Initializer::Initializer(const CardinalBasePlugin* const plugin, const CardinalB | |||||
| #ifndef CARDINAL_COMMON_DSP_ONLY | #ifndef CARDINAL_COMMON_DSP_ONLY | ||||
| if (asset::configDir.empty()) | 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) | if (isRealInstance) | ||||
| system::createDirectory(asset::configDir); | system::createDirectory(asset::configDir); | ||||
| #endif | |||||
| } | } | ||||
| #endif | #endif | ||||
| @@ -875,7 +828,8 @@ void Initializer::stopRemoteServer() | |||||
| lo_server_thread_stop(oscServerThread); | lo_server_thread_stop(oscServerThread); | ||||
| lo_server_thread_del_method(oscServerThread, nullptr, nullptr); | lo_server_thread_del_method(oscServerThread, nullptr, nullptr); | ||||
| lo_server_thread_free(oscServerThread); | lo_server_thread_free(oscServerThread); | ||||
| oscServerThread = oscServer = nullptr; | |||||
| oscServerThread = nullptr; | |||||
| oscServer = nullptr; | |||||
| } | } | ||||
| #else | #else | ||||
| if (oscServer != nullptr) | if (oscServer != nullptr) | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * DISTRHO Cardinal Plugin | * 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 | * SPDX-License-Identifier: GPL-3.0-or-later | ||||
| */ | */ | ||||
| @@ -414,7 +414,7 @@ protected: | |||||
| uint32_t getVersion() const override | uint32_t getVersion() const override | ||||
| { | { | ||||
| return d_version(0, 24, 12); | |||||
| return d_version(0, 25, 12); | |||||
| } | } | ||||
| int64_t getUniqueId() const override | 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/debussy | ||||
| SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg | SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg | ||||
| SYMLINKED_DIRS_RESOURCES += cf/playeroscs | SYMLINKED_DIRS_RESOURCES += cf/playeroscs | ||||
| SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples | |||||
| SYMLINKED_DIRS_RESOURCES += Fundamental/presets | SYMLINKED_DIRS_RESOURCES += Fundamental/presets | ||||
| SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | ||||
| SYMLINKED_DIRS_RESOURCES += LyraeModules/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/build/surge-data/wavetables | ||||
| SYMLINKED_DIRS_RESOURCES += surgext/patches | SYMLINKED_DIRS_RESOURCES += surgext/patches | ||||
| SYMLINKED_DIRS_RESOURCES += surgext/presets | 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)) | LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) | ||||
| endif | endif | ||||
| LINK_FLAGS += -sALLOW_MEMORY_GROWTH | LINK_FLAGS += -sALLOW_MEMORY_GROWTH | ||||
| @@ -1259,20 +1259,6 @@ protected: | |||||
| #endif | #endif | ||||
| } | } | ||||
| #if 0 | |||||
| void uiReshape(const uint width, const uint height) override | |||||
| { | |||||
| glEnable(GL_BLEND); | |||||
| glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); | |||||
| glMatrixMode(GL_PROJECTION); | |||||
| glLoadIdentity(); | |||||
| glOrtho(0.0, width, 0.0, height, -1.0, 1.0); | |||||
| glViewport(0, 0, width, height); | |||||
| glMatrixMode(GL_MODELVIEW); | |||||
| glLoadIdentity(); | |||||
| } | |||||
| #endif | |||||
| private: | private: | ||||
| /** | /** | ||||
| Set our UI class as non-copyable and add a leak detector just in case. | Set our UI class as non-copyable and add a leak detector just in case. | ||||
| @@ -147,6 +147,9 @@ au: $(TARGETS) | |||||
| $(MAKE) au -C CardinalFX $(CARDINAL_SYNTH_ARGS) | $(MAKE) au -C CardinalFX $(CARDINAL_SYNTH_ARGS) | ||||
| $(MAKE) au -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | $(MAKE) au -C CardinalSynth $(CARDINAL_SYNTH_ARGS) | ||||
| mapi: $(TARGETS) | |||||
| $(MAKE) mapi -C CardinalFX $(CARDINAL_FX_ARGS) | |||||
| lv2: $(TARGETS) | lv2: $(TARGETS) | ||||
| $(MAKE) lv2 -C Cardinal | $(MAKE) lv2 -C Cardinal | ||||
| $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | $(MAKE) lv2 -C CardinalFX $(CARDINAL_FX_ARGS) | ||||
| @@ -264,6 +264,7 @@ endif | |||||
| ifeq ($(WASM),true) | ifeq ($(WASM),true) | ||||
| APP_EXT = .js | APP_EXT = .js | ||||
| UI_TYPE = gles2 | |||||
| endif | endif | ||||
| USE_VST2_BUNDLE = true | 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 += BaconPlugs/res/midi/goldberg | ||||
| SYMLINKED_DIRS_RESOURCES += cf/playeroscs | SYMLINKED_DIRS_RESOURCES += cf/playeroscs | ||||
| SYMLINKED_DIRS_RESOURCES += DHE-Modules/svg | SYMLINKED_DIRS_RESOURCES += DHE-Modules/svg | ||||
| SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples | |||||
| SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | SYMLINKED_DIRS_RESOURCES += GrandeModular/presets | ||||
| SYMLINKED_DIRS_RESOURCES += LyraeModules/presets | SYMLINKED_DIRS_RESOURCES += LyraeModules/presets | ||||
| SYMLINKED_DIRS_RESOURCES += Meander/res | SYMLINKED_DIRS_RESOURCES += Meander/res | ||||
| @@ -332,6 +332,7 @@ SYMLINKED_DIRS_RESOURCES += Orbits/presets | |||||
| SYMLINKED_DIRS_RESOURCES += stoermelder-packone/presets | SYMLINKED_DIRS_RESOURCES += stoermelder-packone/presets | ||||
| SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets | SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets | ||||
| SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables | SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables | ||||
| SYMLINKED_DIRS_RESOURCES += WSTD-Drums/res/samples | |||||
| endif | endif | ||||
| LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) | 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)"' | 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 | # Enable all possible plugin types and setup resources | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * DISTRHO Cardinal Plugin | * DISTRHO Cardinal Plugin | ||||
| * Copyright (C) 2021-2022 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| * modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
| @@ -55,6 +55,7 @@ GLFWAPI void glfwSetClipboardString(GLFWwindow*, const char*) {} | |||||
| GLFWAPI GLFWcursor* glfwCreateStandardCursor(int) { return nullptr; } | GLFWAPI GLFWcursor* glfwCreateStandardCursor(int) { return nullptr; } | ||||
| GLFWAPI void glfwSetCursor(GLFWwindow*, GLFWcursor*) {} | GLFWAPI void glfwSetCursor(GLFWwindow*, GLFWcursor*) {} | ||||
| GLFWAPI const char* glfwGetKeyName(int, int) { return nullptr; } | GLFWAPI const char* glfwGetKeyName(int, int) { return nullptr; } | ||||
| GLFWAPI int glfwGetKey(GLFWwindow*, int) { return 0; } | |||||
| GLFWAPI int glfwGetKeyScancode(int) { return 0; } | GLFWAPI int glfwGetKeyScancode(int) { return 0; } | ||||
| GLFWAPI double glfwGetTime(void) { return 0.0; } | GLFWAPI double glfwGetTime(void) { return 0.0; } | ||||
| @@ -54,7 +54,6 @@ enum DarkMode { | |||||
| kModeCf, | kModeCf, | ||||
| kModeComputerscare, | kModeComputerscare, | ||||
| kModeDHE, | kModeDHE, | ||||
| kModeDrumKit, | |||||
| kModeESeries, | kModeESeries, | ||||
| kModeLilacLoop, | kModeLilacLoop, | ||||
| kModeLittleUtils, | kModeLittleUtils, | ||||
| @@ -258,19 +257,6 @@ static const struct { | |||||
| { kModeDHE, "/DHE-Modules/svg/truth-4.svg", {}, -1 }, | { kModeDHE, "/DHE-Modules/svg/truth-4.svg", {}, -1 }, | ||||
| { kModeDHE, "/DHE-Modules/svg/upstage.svg", {}, -1 }, | { kModeDHE, "/DHE-Modules/svg/upstage.svg", {}, -1 }, | ||||
| { kModeDHE, "/DHE-Modules/svg/xycloid.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 | // Custom, runtime dark mode used with permission | ||||
| { kModeESeries,"/ESeries/res/E340.svg", {}, -1 }, | { kModeESeries,"/ESeries/res/E340.svg", {}, -1 }, | ||||
| // GPL3.0-or-later | // GPL3.0-or-later | ||||
| @@ -284,6 +270,7 @@ static const struct { | |||||
| { kModeLittleUtils, "/LittleUtils/res/TeleportOut.svg", {}, -1 }, | { kModeLittleUtils, "/LittleUtils/res/TeleportOut.svg", {}, -1 }, | ||||
| // GPL-3.0-or-later | // GPL-3.0-or-later | ||||
| { kModeKocmoc, "/kocmoc/res/DDLY.svg", {}, -1 }, | { kModeKocmoc, "/kocmoc/res/DDLY.svg", {}, -1 }, | ||||
| { kModeKocmoc, "/kocmoc/res/DIOD.svg", {}, -1 }, | |||||
| { kModeKocmoc, "/kocmoc/res/LADR.svg", {}, -1 }, | { kModeKocmoc, "/kocmoc/res/LADR.svg", {}, -1 }, | ||||
| { kModeKocmoc, "/kocmoc/res/uLADR.svg", {}, -1 }, | { kModeKocmoc, "/kocmoc/res/uLADR.svg", {}, -1 }, | ||||
| { kModeKocmoc, "/kocmoc/res/MUL.svg", {}, -1 }, | { kModeKocmoc, "/kocmoc/res/MUL.svg", {}, -1 }, | ||||
| @@ -373,6 +360,7 @@ enum LightMode { | |||||
| kModePrism, | kModePrism, | ||||
| kModeRepelzen, | kModeRepelzen, | ||||
| kModeSonusmodular, | kModeSonusmodular, | ||||
| kModeWSTDDrums, | |||||
| }; | }; | ||||
| static const struct { | static const struct { | ||||
| @@ -435,6 +423,11 @@ static const struct { | |||||
| { kModeBefaco, "/Befaco/res/panels/Octaves.svg" }, | { kModeBefaco, "/Befaco/res/panels/Octaves.svg" }, | ||||
| { kModeBefaco, "/Befaco/res/panels/Bypass.svg" }, | { kModeBefaco, "/Befaco/res/panels/Bypass.svg" }, | ||||
| { kModeBefaco, "/Befaco/res/panels/Bandit.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+ | // GPLv3+ | ||||
| { kModeCardinal, "/Cardinal/res/AudioFile.svg" }, | { kModeCardinal, "/Cardinal/res/AudioFile.svg" }, | ||||
| { kModeCardinal, "/Cardinal/res/AudioToCVPitch.svg" }, | { kModeCardinal, "/Cardinal/res/AudioToCVPitch.svg" }, | ||||
| @@ -588,6 +581,20 @@ static const struct { | |||||
| { kModeSonusmodular, "/sonusmodular/res/tropicana.svg" }, | { kModeSonusmodular, "/sonusmodular/res/tropicana.svg" }, | ||||
| { kModeSonusmodular, "/sonusmodular/res/twoff.svg" }, | { kModeSonusmodular, "/sonusmodular/res/twoff.svg" }, | ||||
| { kModeSonusmodular, "/sonusmodular/res/yabp.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 | static inline | ||||
| @@ -624,12 +631,6 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai | |||||
| { | { | ||||
| switch (mode) | 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 PathSet shifty gradient | // Special case for PathSet shifty gradient | ||||
| case kModePathSet: | case kModePathSet: | ||||
| paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue | paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue | ||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * DISTRHO Cardinal Plugin | * DISTRHO Cardinal Plugin | ||||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||||
| * | * | ||||
| * This program is free software; you can redistribute it and/or | * This program is free software; you can redistribute it and/or | ||||
| * modify it under the terms of the GNU General Public License as | * modify it under the terms of the GNU General Public License as | ||||
| @@ -17,6 +17,7 @@ | |||||
| #include "Application.hpp" | #include "Application.hpp" | ||||
| #include "CardinalPluginContext.hpp" | #include "CardinalPluginContext.hpp" | ||||
| #include "widget/event.hpp" | |||||
| #include <GLFW/glfw3.h> | #include <GLFW/glfw3.h> | ||||
| @@ -207,3 +208,12 @@ GLFWAPI const char* glfwGetKeyName(const int key, int) | |||||
| default: return nullptr; | default: return nullptr; | ||||
| } | } | ||||
| } | } | ||||
| int glfwGetKey(GLFWwindow*, const int key) | |||||
| { | |||||
| CardinalPluginContext* const context = static_cast<CardinalPluginContext*>(APP); | |||||
| DISTRHO_SAFE_ASSERT_RETURN(context != nullptr, GLFW_RELEASE); | |||||
| DISTRHO_SAFE_ASSERT_RETURN(context->event != nullptr, GLFW_RELEASE); | |||||
| return context->event->heldKeys.find(key) != context->event->heldKeys.end() ? GLFW_PRESS : GLFW_RELEASE; | |||||
| } | |||||
| @@ -1,6 +1,6 @@ | |||||
| /* | /* | ||||
| * DISTRHO Cardinal Plugin | * 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 | * SPDX-License-Identifier: GPL-3.0-or-later | ||||
| */ | */ | ||||
| @@ -207,20 +207,23 @@ void Scene::step() { | |||||
| (internal->historyActionIndex != actionIndex | (internal->historyActionIndex != actionIndex | ||||
| && actionIndex > 0 | && actionIndex > 0 | ||||
| && time - internal->lastSceneChangeTime >= 1.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); | 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; | internal->historyActionIndex = actionIndex; | ||||
| @@ -48,6 +48,7 @@ static const std::map<std::string, std::string> pluginSlugFallbacks = { | |||||
| {"AudibleInstrumentsPreview", "AudibleInstruments"}, | {"AudibleInstrumentsPreview", "AudibleInstruments"}, | ||||
| {"SequelSequencers", "DanielDavies"}, | {"SequelSequencers", "DanielDavies"}, | ||||
| {"DelexanderVol1", "DelexandraVol1"}, | {"DelexanderVol1", "DelexandraVol1"}, | ||||
| {"DrumKit", "WSTD-Drums"} | |||||
| // {"", ""}, | // {"", ""}, | ||||
| }; | }; | ||||
| @@ -102,6 +103,18 @@ static const std::map<PluginModuleSlug, PluginModuleSlug> moduleSlugFallbacks = | |||||
| {{"Core", "Notes"}, {"Cardinal", "TextEditor"}}, | {{"Core", "Notes"}, {"Cardinal", "TextEditor"}}, | ||||
| {{"Core", "Blank"}, {"Cardinal", "Blank"}}, | {{"Core", "Blank"}, {"Cardinal", "Blank"}}, | ||||
| {{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}}, | {{"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> | <key>CFBundleIdentifier</key> | ||||
| <string>studio.kx.distrho.cardinal.jack</string> | <string>studio.kx.distrho.cardinal.jack</string> | ||||
| <key>CFBundleShortVersionString</key> | <key>CFBundleShortVersionString</key> | ||||
| <string>24.12</string> | |||||
| <string>25.12</string> | |||||
| <key>LSMinimumSystemVersion</key> | <key>LSMinimumSystemVersion</key> | ||||
| <string>10.15</string> | <string>10.15</string> | ||||
| <key>NSHumanReadableCopyright</key> | <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> | 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> | <key>NSHighResolutionCapable</key> | ||||
| <true/> | <true/> | ||||
| @@ -11,11 +11,11 @@ | |||||
| <key>CFBundleIdentifier</key> | <key>CFBundleIdentifier</key> | ||||
| <string>studio.kx.distrho.cardinal.native</string> | <string>studio.kx.distrho.cardinal.native</string> | ||||
| <key>CFBundleShortVersionString</key> | <key>CFBundleShortVersionString</key> | ||||
| <string>24.12</string> | |||||
| <string>25.12</string> | |||||
| <key>LSMinimumSystemVersion</key> | <key>LSMinimumSystemVersion</key> | ||||
| <string>10.15</string> | <string>10.15</string> | ||||
| <key>NSHumanReadableCopyright</key> | <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> | 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> | <key>NSHighResolutionCapable</key> | ||||
| <true/> | <true/> | ||||