From 8e62521572bb8c76c1e6b81fb67eb94ed96f50bb Mon Sep 17 00:00:00 2001 From: Don Cross Date: Tue, 7 Jan 2025 01:03:18 -0500 Subject: [PATCH 01/26] Sapphire v2.5.7: Elastika CPU optimization + resampler option. (#789) Elastika now uses about 60% of the CPU it used to, thanks to a complete overhaul of its physics engine. Added an optional resampler to run Elastika at a different rate than the engine rate. For backward compatibility, the resampler is disabled by default. UI improvement: the channel count sliders in Hiss, Pop, and Split/Add/Merge now visually "snap" in steps, instead of sliding smoothly. --- plugins/Sapphire | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index 9665f4b..53464d2 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit 9665f4bddb59841ef74ff206fe91345c146fed52 +Subproject commit 53464d2e626f5203e4f666069a43950481bc2b42 From 89a18eb2f8af0c78bd60d621718fcec10c0327fb Mon Sep 17 00:00:00 2001 From: Don Cross Date: Wed, 8 Jan 2025 03:26:40 -0500 Subject: [PATCH 02/26] Sapphire v2.5.7, release candidate 2: Elastika minor cleanup (#790) Removed unused member variable PhysicsMesh::gravity. The gravity concept was abandoned before I released the first version of Elastika, and has never been used. --- plugins/Sapphire | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index 53464d2..f838c23 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit 53464d2e626f5203e4f666069a43950481bc2b42 +Subproject commit f838c2364366c2b258cd63dd5ec5158237c96ed1 From 2e9bc2d68a31114c5170007b83fd6b983c126132 Mon Sep 17 00:00:00 2001 From: Don Cross Date: Fri, 28 Feb 2025 06:18:17 -0500 Subject: [PATCH 03/26] Sapphire v2.5.8 - new module "Env". (#805) Added new module Sapphire Env: envelope follower and pitch detector. Elastika adds polyphonic stereo in/out options. Minor display glitch fixed in Tin + Tricorder combination. --- plugins/Sapphire | 2 +- plugins/plugins.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index f838c23..c65bf21 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit f838c2364366c2b258cd63dd5ec5158237c96ed1 +Subproject commit c65bf21e00c984613749ce76ba07633f3eb8d61f diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 5882a85..67829de 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -3174,6 +3174,7 @@ static void initStatic__Sapphire() { p->addModel(modelSapphireChaops); p->addModel(modelSapphireElastika); + p->addModel(modelSapphireEnv); p->addModel(modelSapphireFrolic); p->addModel(modelSapphireGalaxy); p->addModel(modelSapphireGlee); From fc854653dac9b7c7f662a28391be8b97f5ca7518 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Mon, 10 Mar 2025 07:10:41 +0100 Subject: [PATCH 04/26] update Befaco to v2.9.0 and add new modules (#810) --- plugins/Befaco | 2 +- plugins/Makefile | 2 +- plugins/plugins.cpp | 15 ++++++++++++++- src/custom/dep.cpp | 5 +++++ 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/plugins/Befaco b/plugins/Befaco index 5a80023..5914634 160000 --- a/plugins/Befaco +++ b/plugins/Befaco @@ -1 +1 @@ -Subproject commit 5a80023d86e0f67ead3e27385170310cd430d44c +Subproject commit 5914634cd91cf11cc32394616252beb19c5c934c diff --git a/plugins/Makefile b/plugins/Makefile index 58bd300..ff10677 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -560,7 +560,7 @@ PLUGIN_FILES += $(filter-out Befaco/src/plugin.cpp Befaco/src/MidiThing.cpp,$(wi PLUGIN_FILES += $(wildcard Befaco/src/noise-plethora/*/*.cpp) # modules/types which are present in other plugins -BEFACO_CUSTOM = ADSR Mixer chowdsp Burst RecordButton +BEFACO_CUSTOM = ADSR Mixer chowdsp Burst RecordButton Mixer2 Slew BEFACO_FLAGS = $(filter-out -fsingle-precision-constant,$(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS))) BEFACO_FLAGS += -std=gnu++17 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 67829de..096d2d9 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -147,10 +147,14 @@ extern Model* modelChord; #define modelADSR modelBefacoADSR #define modelMixer modelBefacoMixer #define modelBurst modelBefacoBurst +#define modelMixer2 modelBefacoMixer2 +#define modelSlew modelBefacoSlew #include "Befaco/src/plugin.hpp" #undef modelADSR #undef modelMixer #undef modelBurst +#undef modelMixer2 +#undef modelSlew // Bidoo #include "Bidoo/src/plugin.hpp" @@ -1614,6 +1618,8 @@ static void initStatic__Befaco() #define modelADSR modelBefacoADSR #define modelMixer modelBefacoMixer #define modelBurst modelBefacoBurst +#define modelMixer2 modelBefacoMixer2 +#define modelSlew modelBefacoSlew p->addModel(modelEvenVCO); p->addModel(modelRampage); p->addModel(modelABC); @@ -1640,9 +1646,16 @@ static void initStatic__Befaco() p->addModel(modelOctaves); p->addModel(modelBypass); p->addModel(modelBandit); + p->addModel(modelAtte); + p->addModel(modelAxBC); + p->addModel(modelMixer2); + p->addModel(modelMuDi); + p->addModel(modelSlew); #undef modelADSR #undef modelMixer #undef modelBurst +#undef modelMixer2 +#undef modelSlew // NOTE disabled in Cardinal due to MIDI usage spl.removeModule("MidiThingV2"); @@ -2044,7 +2057,7 @@ static void initStatic__CVfunk() p->addModel(modelStepWave); p->addModel(modelPreeeeeeeeeeessedDuck); p->addModel(modelArrange); - p->addModel(modelTriDelay); + p->addModel(modelTriDelay); #undef modelSteps } } diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index c6b83cf..12feb52 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -435,6 +435,11 @@ static const struct { { kModeBefaco, "/Befaco/res/panels/Octaves.svg" }, { kModeBefaco, "/Befaco/res/panels/Bypass.svg" }, { kModeBefaco, "/Befaco/res/panels/Bandit.svg" }, + { kModeBefaco, "/Befaco/res/panels/Atte.svg" }, + { kModeBefaco, "/Befaco/res/panels/AxBC.svg" }, + { kModeBefaco, "/Befaco/res/panels/Mixer2.svg" }, + { kModeBefaco, "/Befaco/res/panels/MuDi.svg" }, + { kModeBefaco, "/Befaco/res/panels/Slew.svg" }, // GPLv3+ { kModeCardinal, "/Cardinal/res/AudioFile.svg" }, { kModeCardinal, "/Cardinal/res/AudioToCVPitch.svg" }, From 04d9e2762d2741a46572e0e5f1312ff36055335e Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Tue, 18 Mar 2025 02:08:49 -0400 Subject: [PATCH 05/26] Update JW-Modules to 2.0.8. (#814) * Update JW-Modules to 2.0.8 * Update build.yml --- .github/workflows/build.yml | 4 ++-- plugins/JW-Modules | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ba1e33c..b76a8c4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -583,8 +583,8 @@ jobs: - name: Set up dependencies run: | # custom repos - wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.1.0_all.deb - sudo dpkg -i kxstudio-repos_11.1.0_all.deb + wget https://launchpad.net/~kxstudio-debian/+archive/kxstudio/+files/kxstudio-repos_11.2.0_all.deb + sudo dpkg -i kxstudio-repos_11.2.0_all.deb sudo apt-get update -qq # build-deps sudo apt-get install -yqq libdbus-1-dev libgl1-mesa-dev liblo-dev libx11-dev libxcursor-dev libxext-dev libxrandr-dev diff --git a/plugins/JW-Modules b/plugins/JW-Modules index 9d8f851..d49cb1d 160000 --- a/plugins/JW-Modules +++ b/plugins/JW-Modules @@ -1 +1 @@ -Subproject commit 9d8f8515deb20d7e14ca85b4c1d04ec6b66b3e8d +Subproject commit d49cb1de630f278852d098dfbb09e3f4c9a8165e From 0407fefafb20044097b502ed7265165aac38e74d Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 23 Apr 2025 21:58:33 +0200 Subject: [PATCH 06/26] Update dpf Signed-off-by: falkTX --- dpf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpf b/dpf index 32d911c..d2f31da 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 32d911c1decd721520e44adce2ca7a92ca0ec4f0 +Subproject commit d2f31dadba31dcd33feaac7c26587491f796ab87 From 1d8278b591e90679334b937f222b5a00fec6ec49 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Wed, 23 Apr 2025 16:04:45 -0400 Subject: [PATCH 07/26] [Build System] Update Ubuntu version to 22.04 (#824) * Update Ubuntu build. * Add package python-is-python3. * Try installing python3 instead of python. * Replace Ubuntu version with 22.04. * Update macos to 14. * Revert "Update macos to 14." --- .github/workflows/build.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b76a8c4..c5c9785 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: target: [aarch64, armhf, i686, riscv64, x86_64] runs-on: ubuntu-latest container: - image: ubuntu:20.04 + image: ubuntu:22.04 steps: - name: Install git run: | @@ -125,7 +125,7 @@ jobs: *.tar.gz linux-x86_64-debug: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -239,7 +239,7 @@ jobs: target: modduox-static - name: moddwarf target: moddwarf - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -254,7 +254,7 @@ jobs: - name: Set up dependencies run: | sudo apt-get update -qq - sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static + sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python3 libtool-bin liblo-dev qemu-user-static sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra sudo apt-get clean - name: Bootstrap toolchain @@ -471,7 +471,7 @@ jobs: Cardinal-*.zip headless: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -488,7 +488,7 @@ jobs: make HEADLESS=true -j $(nproc) lto: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -505,7 +505,7 @@ jobs: make WITH_LTO=true -j $(nproc) native sysdeps: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -521,7 +521,7 @@ jobs: make SYSDEPS=true -j $(nproc) source-tarball: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: @@ -561,7 +561,7 @@ jobs: /home/runner/*/*/cardinal*.tar.xz plugin-validation: - runs-on: ubuntu-20.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: From 850e76ec10d565712df3b63a91e78985e6dff845 Mon Sep 17 00:00:00 2001 From: falkTX Date: Wed, 23 Apr 2025 23:39:51 +0200 Subject: [PATCH 08/26] Update PawPaw, fixing build with new cmake Signed-off-by: falkTX --- deps/PawPaw | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/deps/PawPaw b/deps/PawPaw index 0985cf8..0946f78 160000 --- a/deps/PawPaw +++ b/deps/PawPaw @@ -1 +1 @@ -Subproject commit 0985cf8d1c3a00b1958ef90e0f1aa511b865241a +Subproject commit 0946f783f0e9e230bca893289325f91144a3429f From fbea15e1036e70685fe0121c2991d95bd16b7fda Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 26 Apr 2025 22:36:49 +0200 Subject: [PATCH 09/26] Add darkglass-anagram headless build Signed-off-by: falkTX --- .github/workflows/build.yml | 4 +++- dpf | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c5c9785..aef017e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -228,10 +228,12 @@ jobs: files: | ${{ github.event.repository.name }}-*.pkg - modaudio: + mod-plugin-builder: strategy: matrix: include: + - name: darkglass-anagram + target: darkglass-anagram - name: modduo target: modduo-static extraflags: MODDUO=true diff --git a/dpf b/dpf index d2f31da..f3be5ae 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit d2f31dadba31dcd33feaac7c26587491f796ab87 +Subproject commit f3be5aee081d87cc7a6795110525569670ff0907 From 52fa1604f0118ea1c769f694ecf2421b8dae9360 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 27 Apr 2025 00:40:14 +0200 Subject: [PATCH 10/26] Force-fix build with cmake 4 Signed-off-by: falkTX --- deps/Makefile | 1 + 1 file changed, 1 insertion(+) diff --git a/deps/Makefile b/deps/Makefile index 0354e0c..c53e998 100644 --- a/deps/Makefile +++ b/deps/Makefile @@ -57,6 +57,7 @@ SPACE += CMAKE = cmake CMAKE += -DCMAKE_INSTALL_LIBDIR=lib CMAKE += -DCMAKE_INSTALL_PREFIX='$(RACK_DEP_PATH)' +CMAKE += -DCMAKE_POLICY_VERSION_MINIMUM=3.5 CMAKE += -DBUILD_SHARED_LIBS=OFF # make sure debug/release matches From d30b356845f948e9db43311182554a5465d71644 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Tue, 13 May 2025 15:05:58 -0400 Subject: [PATCH 11/26] Added eightfold. (#735) * Added eightfold. * Add C++17 flags for eightfold. * Add comment to explain C++17 flags. * Undo "Add comment to explain C++17 flags." * Update license.md to add artwork infomation about eightfold. * eightfold -> eightfold/* in LICENSES.md --- .gitmodules | 3 +++ README.md | 1 + docs/LICENSES.md | 2 ++ plugins/Makefile | 18 ++++++++++++++++++ plugins/eightfold | 1 + plugins/plugins.cpp | 21 +++++++++++++++++++++ 6 files changed, 46 insertions(+) create mode 160000 plugins/eightfold diff --git a/.gitmodules b/.gitmodules index 8460a09..b054833 100644 --- a/.gitmodules +++ b/.gitmodules @@ -260,4 +260,7 @@ [submodule "plugins/admiral"] path = plugins/admiral url = https://github.com/wapiflapi/admiral.git +[submodule "plugins/eightfold"] + path = plugins/eightfold + url = https://github.com/scanner-darkly/eightfold.git diff --git a/README.md b/README.md index 3de00ba..a216d0e 100644 --- a/README.md +++ b/README.md @@ -146,6 +146,7 @@ At the moment the following 3rd-party modules are provided: - [dBiz](https://github.com/dBiz/dBiz) - [DHE Modules](https://github.com/dhemery/DHE-Modules) - [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html) +- [eightfold](https://github.com/scanner-darkly/eightfold) - [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack) - [E-Series](https://github.com/VCVRack/ESeries) - [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 7e17118..7e6318c 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -40,6 +40,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | dBiz | GPL-3.0-or-later | | | DHE-Modules | MIT | | | DrumKit | CC0-1.0 | | +| eightfold | GPL-3.0-or-later | | | EnigmaCurry | GPL-3.0-or-later | | | E-Series | GPL-3.0-or-later | | | ExpertSleepers Encoders | MIT | | @@ -178,6 +179,7 @@ Below is a list of artwork licenses from plugins | DHE-Modules/* | MIT | Same license as source code | | DrumKit/* | CC0-1.0 | | | DrumKit/component/NovaMono.ttf | OFL-1.1-RFN | | +| eightfold/* | GPL-3.0-or-later | No artwork specific license provided | | EnigmaCurry/res/fonts/dseg/* | OFL-1.1-RFN | | | EnigmaCurry/res/fonts/Fantasque/* | OFL-1.1 | | | EnigmaCurry/res/fonts/manrope/* | OFL-1.1 | | diff --git a/plugins/Makefile b/plugins/Makefile index ff10677..07901ec 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -707,6 +707,17 @@ PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp) # modules/types which are present in other plugins DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator +# -------------------------------------------------------------- +# eightfold + +PLUGIN_FILES += $(filter-out eightfold/src/plugin.cpp,$(wildcard eightfold/src/*.cpp)) +# modules/types which are present in other plugins +EIGHTFOLD_CUSTOM = Comparator comparator + + +EIGHTFOLD_FLAGS = $(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS)) +EIGHTFOLD_FLAGS += -std=gnu++17 + # -------------------------------------------------------------- # EnigmaCurry @@ -2347,6 +2358,13 @@ $(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp -Dinit=init__DrumKit \ -Wno-sign-compare +$(BUILD_DIR)/eightfold/src/%.cpp.o: eightfold/src/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(EIGHTFOLD_FLAGS) -c -o $@ \ + $(foreach m,$(EIGHTFOLD_CUSTOM),$(call custom_module_names,$(m),eightfold)) \ + -DpluginInstance=pluginInstance__eightfold + $(BUILD_DIR)/EnigmaCurry/src/%.cpp.o: EnigmaCurry/src/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/eightfold b/plugins/eightfold new file mode 160000 index 0000000..a541c5c --- /dev/null +++ b/plugins/eightfold @@ -0,0 +1 @@ +Subproject commit a541c5cfdc3fb9ad8e4f345470f817eaf576b987 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 096d2d9..0bdb641 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -399,6 +399,9 @@ namespace xycloid { void init(Plugin*); } #include "DrumKit/src/DrumKit.hpp" void setupSamples(); +// eightfold +#include "eightfold/src/plugin.hpp" + // EnigmaCurry #define modelPulse modelEnigmaCurryPulse #include "EnigmaCurry/src/plugin.hpp" @@ -952,6 +955,7 @@ Plugin* pluginInstance__CVfunk; Plugin* pluginInstance__dBiz; Plugin* pluginInstance__DHE; extern Plugin* pluginInstance__DrumKit; +Plugin* pluginInstance__eightfold; Plugin* pluginInstance__EnigmaCurry; Plugin* pluginInstance__ESeries; Plugin* pluginInstance__ExpertSleepersEncoders; @@ -2164,6 +2168,22 @@ static void initStatic__DrumKit() } } +static void initStatic__eightfold() +{ + Plugin* const p = new Plugin; + pluginInstance__eightfold = p; + + const StaticPluginLoader spl(p, "eightfold"); + if (spl.ok()) + { + p->addModel(modelSDOrcasHeartV2); + p->addModel(modelSDFormation); + p->addModel(modelSDLines); + p->addModel(modelSDTransgate); + p->addModel(modelSDComparator); + } +} + static void initStatic__EnigmaCurry() { Plugin* const p = new Plugin; @@ -3580,6 +3600,7 @@ void initStaticPlugins() initStatic__dBiz(); initStatic__DHE(); initStatic__DrumKit(); + initStatic__eightfold(); initStatic__EnigmaCurry(); initStatic__ESeries(); initStatic__ExpertSleepersEncoders(); From ed75b4989c7e3c9bf0f38e174c7e4352fc4a8b59 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Tue, 13 May 2025 15:06:05 -0400 Subject: [PATCH 12/26] Update HetrickCV. (#795) * Update HetrickCV. * Update makefile --- plugins/HetrickCV | 2 +- plugins/Makefile | 1 + plugins/plugins.cpp | 2 ++ 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/plugins/HetrickCV b/plugins/HetrickCV index 49e2bc0..52b1e03 160000 --- a/plugins/HetrickCV +++ b/plugins/HetrickCV @@ -1 +1 @@ -Subproject commit 49e2bc0f6a3ef4d1616b78d6280a6d4e7ee222d3 +Subproject commit 52b1e03c34bd1baa264395c150cd62d8e192b12f diff --git a/plugins/Makefile b/plugins/Makefile index 07901ec..c3a7e3f 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -1457,6 +1457,7 @@ clean: PLUGIN_LIST = $(subst /plugin.json,,$(wildcard */plugin.json)) UNWANTED_FILES = HetrickCV/res/illustrator - deprecated/MyModule.svg +UNWANTED_FILES += $(wildcard "HetrickCV/res/affinity redo/*") UNWANTED_FILES += $(wildcard Meander/res/*) UNWANTED_FILES += $(wildcard Mog/res/*) UNWANTED_FILES += $(wildcard Mog/res/*/*) diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 0bdb641..9f499fe 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -457,6 +457,7 @@ void saveGtgPluginDefault(const char*, int) {} extern Model* modelTwoToFour; extern Model* modelAnalogToDigital; extern Model* modelASR; +extern Model* modelBinaryCounter; extern Model* modelBinaryGate; extern Model* modelBinaryNoise; extern Model* modelBitshift; @@ -2416,6 +2417,7 @@ static void initStatic__HetrickCV() p->addModel(modelTwoToFour); p->addModel(modelAnalogToDigital); p->addModel(modelASR); + p->addModel(modelBinaryCounter); p->addModel(modelBinaryGate); p->addModel(modelBinaryNoise); p->addModel(modelBitshift); From 7587c28d12bfcec29bdd8791a21d801768a2ffae Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Wed, 14 May 2025 07:05:37 +0200 Subject: [PATCH 13/26] update JW-Modules (#828) --- docs/LICENSES.md | 1 + plugins/JW-Modules | 2 +- plugins/Makefile | 2 +- plugins/plugins.cpp | 5 +++++ 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 7e6318c..671f0e3 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -203,6 +203,7 @@ Below is a list of artwork licenses from plugins | ImpromptuModular/res/comp/complib/* | CC-BY-NC-4.0 | | | JW-Modules/* | BSD-3-Clause | No artwork specific license provided | | JW-Modules/DejaVuSansMono.ttf | Bitstream-Vera | Unused in Cardinal | +| JW-Modules/res/fonts/ShareTechMono-Regular.ttf | OFL-1.1 | | | kocmoc/* | GPL-3.0-or-later | No artwork specific license provided | | LifeFormModular/* | MIT | No artwork specific license provided | | LilacLoop/* | GPL-3.0-or-later | No artwork specific license provided | diff --git a/plugins/JW-Modules b/plugins/JW-Modules index d49cb1d..72c8b56 160000 --- a/plugins/JW-Modules +++ b/plugins/JW-Modules @@ -1 +1 @@ -Subproject commit d49cb1de630f278852d098dfbb09e3f4c9a8165e +Subproject commit 72c8b569dd2cc12ce16abe2da582fc58e07c3d54 diff --git a/plugins/Makefile b/plugins/Makefile index c3a7e3f..53042ba 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -835,7 +835,7 @@ endif endif # modules/types which are present in other plugins -JW_CUSTOM = PlayHead Quantizer +JW_CUSTOM = PlayHead Quantizer Arrange # -------------------------------------------------------------- # kocmoc diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 9f499fe..1ed3649 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -574,8 +574,10 @@ extern Model* modelBlankPanel; // JW-Modules #define modelQuantizer modelJWQuantizer +#define modelArrange modelJWArrange #include "JW-Modules/src/JWModules.hpp" #undef modelQuantizer +#undef modelArrange // kocmoc #include "kocmoc/src/plugin.hpp" @@ -2561,6 +2563,7 @@ static void initStatic__JW() if (spl.ok()) { #define modelQuantizer modelJWQuantizer +#define modelArrange modelJWArrange p->addModel(modelAdd5); p->addModel(modelAbcdSeq); p->addModel(modelBouncyBalls); @@ -2596,7 +2599,9 @@ static void initStatic__JW() #else spl.removeModule("Str1ker"); #endif + p->addModel(modelArrange); #undef modelQuantizer +#undef modelArrange } } From 87d6e4eeceb27a4ad62238d60f34eeb5e352c010 Mon Sep 17 00:00:00 2001 From: Don Cross Date: Fri, 30 May 2025 22:26:51 -0400 Subject: [PATCH 14/26] Sapphire v2.5.9 - new module Echo (#832) * Sapphire v2.5.9 - new module Echo Added a new multitap delay module: [Echo](https://github.com/cosinekitty/sapphire/blob/main/doc/Echo.md). Added "neon mode" menu options to make the Sapphire panel glow. This effect is most visible when the room brightness is dim. Chaops did not reset the FREEZE button on initialize. This has been fixed. Fixed minor polyphony bug in Env: the number of channels in the GAIN control's CV input did not affect the number of output channels. This has been fixed. Fixed typos in help text for Gravy and Sauce. * Sapphire v2.5.9 attempt 2: fixed memory errors * Sapphire v2.5.9 - fixed build problem for Windows. There was a compatibility problem between MINGW and my own member function named `format`. I don't need MINGW so I disabled it in the Cardinal Makefile. This solution was suggested by @falkTX. It is nice because I don't have to change any Sapphire code! --- plugins/Makefile | 1 + plugins/Sapphire | 2 +- plugins/plugins.cpp | 3 +++ 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index 53042ba..b975411 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -2763,6 +2763,7 @@ $(BUILD_DIR)/Sapphire/%.cpp.o: Sapphire/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -std=gnu++17 -c -o $@ \ $(foreach m,$(SAPPHIRE_CUSTOM),$(call custom_module_names,$(m),Sapphire)) \ + -DSKIP_MINGW_FORMAT \ -DpluginInstance=pluginInstance__sapphire $(BUILD_DIR)/sonusmodular/%.cpp.o: sonusmodular/%.cpp diff --git a/plugins/Sapphire b/plugins/Sapphire index c65bf21..a1f7deb 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit c65bf21e00c984613749ce76ba07633f3eb8d61f +Subproject commit a1f7deb7931b7ef0fc4fa9f8a3871d9e37e81e73 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 1ed3649..45c0f52 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -3213,6 +3213,9 @@ static void initStatic__Sapphire() if (spl.ok()) { p->addModel(modelSapphireChaops); + p->addModel(modelSapphireEcho); + p->addModel(modelSapphireEchoOut); + p->addModel(modelSapphireEchoTap); p->addModel(modelSapphireElastika); p->addModel(modelSapphireEnv); p->addModel(modelSapphireFrolic); From 088953ad90d9a6b17bdfc6bcdc6565c487bd3fc2 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Sun, 15 Jun 2025 05:36:38 -0400 Subject: [PATCH 15/26] Update kocmoc. (#837) --- plugins/kocmoc | 2 +- plugins/plugins.cpp | 1 + src/custom/dep.cpp | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/plugins/kocmoc b/plugins/kocmoc index eaf7cbf..ea69aca 160000 --- a/plugins/kocmoc +++ b/plugins/kocmoc @@ -1 +1 @@ -Subproject commit eaf7cbf3af0a8525d3c649c53eab476c3052d41b +Subproject commit ea69acab96db49c32601b609cdfe06444ecee0e8 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 45c0f52..6f73b37 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -2618,6 +2618,7 @@ static void initStatic__kocmoc() p->addModel(modelTRG); p->addModel(modelLADR); p->addModel(modeluLADR); + p->addModel(modelDIOD); p->addModel(modelOP); p->addModel(modelPHASR); p->addModel(modelMUL); diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index 12feb52..e99f2ba 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -284,6 +284,7 @@ static const struct { { kModeLittleUtils, "/LittleUtils/res/TeleportOut.svg", {}, -1 }, // GPL-3.0-or-later { kModeKocmoc, "/kocmoc/res/DDLY.svg", {}, -1 }, + { kModeKocmoc, "/kocmoc/res/DIOD.svg", {}, -1 }, { kModeKocmoc, "/kocmoc/res/LADR.svg", {}, -1 }, { kModeKocmoc, "/kocmoc/res/uLADR.svg", {}, -1 }, { kModeKocmoc, "/kocmoc/res/MUL.svg", {}, -1 }, From a6e5f1915771ac08b275e5d25ff51d41a29013a7 Mon Sep 17 00:00:00 2001 From: falkTX Date: Mon, 16 Jun 2025 20:55:22 +0200 Subject: [PATCH 16/26] Fix wasm build Signed-off-by: falkTX --- plugins/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Makefile b/plugins/Makefile index b975411..53088e9 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -843,7 +843,7 @@ JW_CUSTOM = PlayHead Quantizer Arrange PLUGIN_FILES += $(filter-out kocmoc/src/plugin.cpp,$(wildcard kocmoc/src/*.cpp)) # modules/types which are present in other plugins -KOCMOC_CUSTOM = Phasor __ct_base __ct_comp +KOCMOC_CUSTOM = Diode Phasor __ct_base __ct_comp # -------------------------------------------------------------- # LifeFormModular From 03eee39a6ae79de2aa11525f83166d33063a59d2 Mon Sep 17 00:00:00 2001 From: Don Cross Date: Tue, 17 Jun 2025 01:43:11 -0400 Subject: [PATCH 17/26] Sapphire v2.6.000 (#838) * Sapphire v2.6.000 Complete overhaul of undo/redo: now you can undo/redo most actions across Sapphire modules. Now in Echo, when you undo creating an Echo module, then redo it, it no longer automatically re-creates the Echo Out to the right. This is because doing so destroys any future actions that still could be redone. You can redo creating the Echo Out, followed by redoing anything that happened after that. Echo used to only support panning when there were exactly 2 channels of audio. Now you can pan any even number of polyphonic channels arranged in the order (L0, R0, L1, R1, ..., L7, R7). Now when a Sapphire module is initialized, any low-sensitivity attenuverters are reset to normal sensitivity. I also fixed some other miscellaneous things that weren't being reset to their default on initialize. Sapphire Pop now has two new buttons: - Pulse mode: toggles output between triggers/gates - Sync: press the button to sync polyphonic channels The option to enable/disable the output limiter warning light now appears on the gain knob itself in the following modules: Elastika, Nucleus, Polynucleus, Sauce, Gravy. The option still exists in the main menu. Display a gate/trigger symbol over the REV label and FRZ label. You can click on it to toggle the gate/trigger mode. Sapphire Gravy no longer makes a click/pop sound when you press the 3-way band mode switch (LP, BP, HP). When you click on the GATE/TRIGGER label in Moots, it now toggles between GATE and TRIGGER. Before, you had to use a menu option to toggle. The menu option is still there, but the new way is much easier. * Second attempt at merging Sapphire v2.6.000 : C++ template help for some compilers. * Third attempt to merge Sapphire v 2.6.000. The use of a deduction hint did not help build Sapphire. This one compiler is not able to figure out the template parameters, so I added explicit template parameters in every case that caused an error. --- plugins/Sapphire | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index a1f7deb..e2bcefc 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit a1f7deb7931b7ef0fc4fa9f8a3871d9e37e81e73 +Subproject commit e2bcefcaa7753f017cd131a28aae0e5e346aafec From 5a0b783fbef7e55265e8f8e2d4f75067ae63a565 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Tue, 17 Jun 2025 17:00:27 +0200 Subject: [PATCH 18/26] use WSTD-Drums (#836) * use WSTD-Drums --- .gitmodules | 7 ++--- README.md | 2 +- docs/LICENSES.md | 2 +- plugins/DrumKit | 1 - plugins/Makefile | 46 ++++++++++++++-------------- plugins/WSTD-Drums | 1 + plugins/plugins.cpp | 60 ++++++++++++++++++------------------- src/CardinalRemote/Makefile | 2 +- src/Makefile.cardinal.mk | 2 +- src/custom/dep.cpp | 35 ++++++++++------------ src/override/plugin.cpp | 13 ++++++++ 11 files changed, 89 insertions(+), 82 deletions(-) delete mode 160000 plugins/DrumKit create mode 160000 plugins/WSTD-Drums diff --git a/.gitmodules b/.gitmodules index b054833..fadc093 100644 --- a/.gitmodules +++ b/.gitmodules @@ -49,9 +49,9 @@ [submodule "plugins/ValleyAudio"] path = plugins/ValleyAudio url = https://github.com/ValleyAudio/ValleyRackFree.git -[submodule "plugins/DrumKit"] - path = plugins/DrumKit - url = https://github.com/SVModular/DrumKit.git +[submodule "plugins/WSTD-Drums"] + path = plugins/WSTD-Drums + url = https://github.com/Wasted-Audio/WSTD-Drums.git [submodule "carla"] path = carla url = https://github.com/falkTX/Carla.git @@ -263,4 +263,3 @@ [submodule "plugins/eightfold"] path = plugins/eightfold url = https://github.com/scanner-darkly/eightfold.git - diff --git a/README.md b/README.md index a216d0e..2f6bdb7 100644 --- a/README.md +++ b/README.md @@ -145,7 +145,6 @@ At the moment the following 3rd-party modules are provided: - [CVfunk](https://github.com/codygeary/CVfunk-Modules) - [dBiz](https://github.com/dBiz/dBiz) - [DHE Modules](https://github.com/dhemery/DHE-Modules) -- [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html) - [eightfold](https://github.com/scanner-darkly/eightfold) - [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack) - [E-Series](https://github.com/VCVRack/ESeries) @@ -199,6 +198,7 @@ At the moment the following 3rd-party modules are provided: - [Valley](https://github.com/ValleyAudio/ValleyRackFree) - [Voxglitch](https://github.com/clone45/voxglitch) - [WhatTheRack](https://github.com/korfuri/WhatTheRack) +- [WSTD-Drums](https://github.com/Wasted-Audio/WSTD-Drums) - [ZetaCarinae](https://github.com/mhampton/ZetaCarinaeModules) - [ZZC](https://github.com/zezic/ZZC) diff --git a/docs/LICENSES.md b/docs/LICENSES.md index 671f0e3..abd1431 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -39,7 +39,6 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | CVfunk | MIT | | | dBiz | GPL-3.0-or-later | | | DHE-Modules | MIT | | -| DrumKit | CC0-1.0 | | | eightfold | GPL-3.0-or-later | | | EnigmaCurry | GPL-3.0-or-later | | | E-Series | GPL-3.0-or-later | | @@ -92,6 +91,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | unless_modules | GPL-3.0-or-later | | | Valley | GPL-3.0-or-later | | | Voxglitch | GPL-3.0-or-later | | +| WSTD-Drums | CC0-1.0 | | | WhatTheRack | WTFPL | | | ZetaCarinae | GPL-3.0-or-later | | | ZZC | GPL-3.0-or-later | | diff --git a/plugins/DrumKit b/plugins/DrumKit deleted file mode 160000 index b94c5de..0000000 --- a/plugins/DrumKit +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b94c5deb9b93d810f582221f03db8a6feaee6679 diff --git a/plugins/Makefile b/plugins/Makefile index 53088e9..a97ac9f 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -694,19 +694,6 @@ DBIZ_CUSTOM_PER_FILE = LERP MultiFilter Oscillator calcOutput sineOsc subBank PLUGIN_FILES += $(filter-out DHE-Modules/src/plugin.cpp,$(wildcard DHE-Modules/src/modules/*/init.cpp)) -# -------------------------------------------------------------- -# DrumKit - -PLUGIN_FILES += $(wildcard DrumKit/src/*.cpp) -PLUGIN_FILES += $(wildcard DrumKit/src/controller/*.cpp) -PLUGIN_FILES += $(wildcard DrumKit/src/view/*.cpp) -PLUGIN_FILES += $(wildcard DrumKit/src/model/*.cpp) -PLUGIN_FILES += $(wildcard DrumKit/deps/*.cpp) -PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp) - -# modules/types which are present in other plugins -DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator - # -------------------------------------------------------------- # eightfold @@ -1338,6 +1325,19 @@ VOXGLITCH_CUSTOM_PER_FILE = AudioBuffer GateSequencer Grain SamplePlayer Sequenc PLUGIN_FILES += $(filter-out WhatTheRack/src/WhatTheRack.cpp,$(wildcard WhatTheRack/src/*.cpp)) +# -------------------------------------------------------------- +# WSTD-Drums + +PLUGIN_FILES += $(wildcard WSTD-Drums/src/*.cpp) +PLUGIN_FILES += $(wildcard WSTD-Drums/src/controller/*.cpp) +PLUGIN_FILES += $(wildcard WSTD-Drums/src/view/*.cpp) +PLUGIN_FILES += $(wildcard WSTD-Drums/src/model/*.cpp) +PLUGIN_FILES += $(wildcard WSTD-Drums/deps/*.cpp) +PLUGIN_FILES += $(wildcard WSTD-Drums/deps/SynthDevKit/src/*.cpp) + +# modules/types which are present in other plugins +WSTD_DRUMS_CUSTOM = ADSR Envelope LowFrequencyOscillator + # -------------------------------------------------------------- # ZetaCarinaeModules @@ -1487,7 +1487,7 @@ RESOURCE_FILES += BaconPlugs/res/midi/goldberg RESOURCE_FILES += Befaco/res/SpringReverbIR.f32 RESOURCE_FILES += cf/playeroscs RESOURCE_FILES += DHE-Modules/svg -RESOURCE_FILES += DrumKit/res/samples +RESOURCE_FILES += WSTD-Drums/res/samples RESOURCE_FILES += Meander/res RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityPresets RESOURCE_FILES += MindMeldModular/res/ShapeMaster/CommunityShapes @@ -2350,15 +2350,6 @@ $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp -DpluginInstance=pluginInstance__DHE \ -IDHE-Modules/src -$(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp - -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" - @echo "Compiling $<" - $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ - $(foreach m,$(DRUMKIT_CUSTOM),$(call custom_module_names,$(m),DrumKit)) \ - -DpluginInstance=pluginInstance__DrumKit \ - -Dinit=init__DrumKit \ - -Wno-sign-compare - $(BUILD_DIR)/eightfold/src/%.cpp.o: eightfold/src/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" @@ -2846,6 +2837,15 @@ $(BUILD_DIR)/WhatTheRack/%.cpp.o: WhatTheRack/%.cpp $(foreach m,$(WHATTHERACK_CUSTOM),$(call custom_module_names,$(m),WhatTheRack)) \ -DpluginInstance=pluginInstance__WhatTheRack +$(BUILD_DIR)/WSTD-Drums/%.cpp.o: WSTD-Drums/%.cpp + -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" + @echo "Compiling $<" + $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ + $(foreach m,$(WSTD_DRUMS_CUSTOM),$(call custom_module_names,$(m),WSTD_Drums)) \ + -DpluginInstance=pluginInstance__WSTD_Drums \ + -Dinit=init__WSTD_Drums \ + -Wno-sign-compare + $(BUILD_DIR)/ZamAudio/%.cpp.o: ZamAudio/%.cpp -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" @echo "Compiling $<" diff --git a/plugins/WSTD-Drums b/plugins/WSTD-Drums new file mode 160000 index 0000000..05330ce --- /dev/null +++ b/plugins/WSTD-Drums @@ -0,0 +1 @@ +Subproject commit 05330ce99f4ec742f906c77ab5d8758a15decb4c diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 6f73b37..bc11224 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -395,10 +395,6 @@ namespace truth { void init(Plugin*); } namespace xycloid { void init(Plugin*); } } -// DrumKit -#include "DrumKit/src/DrumKit.hpp" -void setupSamples(); - // eightfold #include "eightfold/src/plugin.hpp" @@ -900,6 +896,10 @@ void surgext_rack_update_theme(); // WhatTheRack #include "WhatTheRack/src/WhatTheRack.hpp" +// WSTD-Drums +#include "WSTD-Drums/src/WSTD_Drums.hpp" +void setupSamples(); + // ZetaCarinaeModules #include "ZetaCarinaeModules/src/plugin.hpp" @@ -957,7 +957,6 @@ Plugin* pluginInstance__Computerscare; Plugin* pluginInstance__CVfunk; Plugin* pluginInstance__dBiz; Plugin* pluginInstance__DHE; -extern Plugin* pluginInstance__DrumKit; Plugin* pluginInstance__eightfold; Plugin* pluginInstance__EnigmaCurry; Plugin* pluginInstance__ESeries; @@ -1010,6 +1009,7 @@ Plugin* pluginInstance__unless_modules; Plugin* pluginInstance__ValleyAudio; Plugin* pluginInstance__Voxglitch; Plugin* pluginInstance__WhatTheRack; +extern Plugin* pluginInstance__WSTD_Drums; Plugin* pluginInstance__ZetaCarinaeModules; Plugin* pluginInstance__ZZC; @@ -2147,30 +2147,6 @@ static void initStatic__DHE() } } -static void initStatic__DrumKit() -{ - Plugin* const p = new Plugin; - pluginInstance__DrumKit = p; - - const StaticPluginLoader spl(p, "DrumKit"); - 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__eightfold() { Plugin* const p = new Plugin; @@ -3538,6 +3514,30 @@ static void initStatic__WhatTheRack() } } +static void initStatic__WSTD_Drums() +{ + Plugin* const p = new Plugin; + pluginInstance__WSTD_Drums = p; + + const StaticPluginLoader spl(p, "WSTD-Drums"); + if (spl.ok()) + { + setupSamples(); + p->addModel(modelBD9); + p->addModel(modelSnare); + p->addModel(modelClosedHH); + p->addModel(modelOpenHH); + p->addModel(modelDMX); + p->addModel(modelCR78); + p->addModel(modelSBD); + p->addModel(modelGnome); + p->addModel(modelSequencer); + p->addModel(modelTomi); + p->addModel(modelBaronial); + p->addModel(modelMarionette); + } +} + static void initStatic__ZetaCarinaeModules() { Plugin* p = new Plugin; @@ -3610,7 +3610,6 @@ void initStaticPlugins() initStatic__CVfunk(); initStatic__dBiz(); initStatic__DHE(); - initStatic__DrumKit(); initStatic__eightfold(); initStatic__EnigmaCurry(); initStatic__ESeries(); @@ -3663,6 +3662,7 @@ void initStaticPlugins() initStatic__ValleyAudio(); initStatic__Voxglitch(); initStatic__WhatTheRack(); + initStatic__WSTD_Drums(); initStatic__ZetaCarinaeModules(); initStatic__ZZC(); diff --git a/src/CardinalRemote/Makefile b/src/CardinalRemote/Makefile index 8c89164..6e53f44 100644 --- a/src/CardinalRemote/Makefile +++ b/src/CardinalRemote/Makefile @@ -229,7 +229,6 @@ SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/chopin SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/debussy SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg SYMLINKED_DIRS_RESOURCES += cf/playeroscs -SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples SYMLINKED_DIRS_RESOURCES += Fundamental/presets SYMLINKED_DIRS_RESOURCES += GrandeModular/presets SYMLINKED_DIRS_RESOURCES += LyraeModules/presets @@ -247,6 +246,7 @@ SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables SYMLINKED_DIRS_RESOURCES += surgext/patches SYMLINKED_DIRS_RESOURCES += surgext/presets +SYMLINKED_DIRS_RESOURCES += WSTD-Drums/res/samples LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) endif LINK_FLAGS += -sALLOW_MEMORY_GROWTH diff --git a/src/Makefile.cardinal.mk b/src/Makefile.cardinal.mk index 0cc66af..576a893 100644 --- a/src/Makefile.cardinal.mk +++ b/src/Makefile.cardinal.mk @@ -317,7 +317,6 @@ SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/debussy SYMLINKED_DIRS_RESOURCES += BaconPlugs/res/midi/goldberg SYMLINKED_DIRS_RESOURCES += cf/playeroscs SYMLINKED_DIRS_RESOURCES += DHE-Modules/svg -SYMLINKED_DIRS_RESOURCES += DrumKit/res/samples SYMLINKED_DIRS_RESOURCES += GrandeModular/presets SYMLINKED_DIRS_RESOURCES += LyraeModules/presets SYMLINKED_DIRS_RESOURCES += Meander/res @@ -332,6 +331,7 @@ SYMLINKED_DIRS_RESOURCES += Orbits/presets SYMLINKED_DIRS_RESOURCES += stoermelder-packone/presets SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/fx_presets SYMLINKED_DIRS_RESOURCES += surgext/build/surge-data/wavetables +SYMLINKED_DIRS_RESOURCES += WSTD-Drums/res/samples endif LINK_FLAGS += $(foreach d,$(SYMLINKED_DIRS_RESOURCES),--preload-file=../../bin/CardinalNative.lv2/resources/$(d)@/resources/$(d)) diff --git a/src/custom/dep.cpp b/src/custom/dep.cpp index e99f2ba..74bbebf 100644 --- a/src/custom/dep.cpp +++ b/src/custom/dep.cpp @@ -54,7 +54,6 @@ enum DarkMode { kModeCf, kModeComputerscare, kModeDHE, - kModeDrumKit, kModeESeries, kModeLilacLoop, kModeLittleUtils, @@ -258,19 +257,6 @@ static const struct { { kModeDHE, "/DHE-Modules/svg/truth-4.svg", {}, -1 }, { kModeDHE, "/DHE-Modules/svg/upstage.svg", {}, -1 }, { kModeDHE, "/DHE-Modules/svg/xycloid.svg", {}, -1 }, - // CC0-1.0 - { kModeDrumKit, "/DrumKit/res/Baronial.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/BD9.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/ClosedHH.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/CR78.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/DMX.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/Gnome.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/Marionette.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/OpenHH.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/SBD.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/Sequencer.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/Snare.svg", {}, -1 }, - { kModeDrumKit, "/DrumKit/res/Tomi.svg", {}, -1 }, // Custom, runtime dark mode used with permission { kModeESeries,"/ESeries/res/E340.svg", {}, -1 }, // GPL3.0-or-later @@ -374,6 +360,7 @@ enum LightMode { kModePrism, kModeRepelzen, kModeSonusmodular, + kModeWSTDDrums, }; static const struct { @@ -594,6 +581,20 @@ static const struct { { kModeSonusmodular, "/sonusmodular/res/tropicana.svg" }, { kModeSonusmodular, "/sonusmodular/res/twoff.svg" }, { kModeSonusmodular, "/sonusmodular/res/yabp.svg" }, + // CC0-1.0 + { kModeWSTDDrums, "/WSTD-Drums/res/Baronial.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/BD9.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/ClosedHH.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/CR78.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/DMX.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/Gnome.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/Marionette.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/OpenHH.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/SBD.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/Sequencer.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/Snare.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/Tomi.svg" }, + { kModeWSTDDrums, "/WSTD-Drums/res/component/Knob.svg" }, }; static inline @@ -630,12 +631,6 @@ bool invertPaintForDarkMode(const DarkMode mode, NSVGshape* const shape, NSVGpai { switch (mode) { - // Special case for DrumKit background gradient - case kModeDrumKit: - std::free(paint.gradient); - paint.type = NSVG_PAINT_COLOR; - paint.color = 0xff191919; - return true; // Special case for PathSet shifty gradient case kModePathSet: paint.gradient->stops[0].color = 0xff7c4919; // 50% darker than main blue diff --git a/src/override/plugin.cpp b/src/override/plugin.cpp index 957fe9d..7b059e4 100644 --- a/src/override/plugin.cpp +++ b/src/override/plugin.cpp @@ -48,6 +48,7 @@ static const std::map pluginSlugFallbacks = { {"AudibleInstrumentsPreview", "AudibleInstruments"}, {"SequelSequencers", "DanielDavies"}, {"DelexanderVol1", "DelexandraVol1"}, + {"DrumKit", "WSTD-Drums"} // {"", ""}, }; @@ -102,6 +103,18 @@ static const std::map moduleSlugFallbacks = {{"Core", "Notes"}, {"Cardinal", "TextEditor"}}, {{"Core", "Blank"}, {"Cardinal", "Blank"}}, {{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}}, + {{"DrumKit", "BassDrum9"}, {"WSTD-Drums", "BassDrum9"}}, + {{"DrumKit", "ClosedHiHat"}, {"WSTD-Drums", "ClosedHiHat"}}, + {{"DrumKit", "CR78"}, {"WSTD-Drums", "CR78"}}, + {{"DrumKit", "DMX"}, {"WSTD-Drums", "DMX"}}, + {{"DrumKit", "OpenHiHat"}, {"WSTD-Drums", "OpenHiHat"}}, + {{"DrumKit", "SyntheticBassDrum"}, {"WSTD-Drums", "SyntheticBassDrum"}}, + {{"DrumKit", "SnareDrumN"}, {"WSTD-Drums", "SnareDrumN"}}, + {{"DrumKit", "Tomi"}, {"WSTD-Drums", "Tomi"}}, + {{"DrumKit", "Gnome"}, {"WSTD-Drums", "Gnome"}}, + {{"DrumKit", "Sequencer"}, {"WSTD-Drums", "Sequencer"}}, + {{"DrumKit", "Baronial"}, {"WSTD-Drums", "Baronial"}}, + {{"DrumKit", "MarionetteBass"}, {"WSTD-Drums", "MarionetteBass"}}, // {{"", ""}, {"", ""}}, }; From f28288899f57a78ba4da0f12f634afe1ae49277a Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 20 Jun 2025 18:05:41 +0200 Subject: [PATCH 19/26] Update dpf and PawPaw deps, rebuild CI cache Signed-off-by: falkTX --- .github/workflows/build.yml | 3 ++- deps/PawPaw | 2 +- dpf | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index aef017e..0c8684e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,11 +3,12 @@ name: build on: [push, pull_request] env: - CACHE_VERSION: 11 + CACHE_VERSION: 12 CARDINAL_UNDER_WINE: 1 CIBUILD: true DEBIAN_FRONTEND: noninteractive LIBGL_ALWAYS_SOFTWARE: true + PAWPAW_CI: 1 PAWPAW_FAST_MATH: 1 PAWPAW_SKIP_GLIB: 1 PAWPAW_SKIP_LTO: 1 diff --git a/deps/PawPaw b/deps/PawPaw index 0946f78..f6eaed1 160000 --- a/deps/PawPaw +++ b/deps/PawPaw @@ -1 +1 @@ -Subproject commit 0946f783f0e9e230bca893289325f91144a3429f +Subproject commit f6eaed13bdeccec013d81ba2261f98aa8f452702 diff --git a/dpf b/dpf index f3be5ae..6d4bf6b 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit f3be5aee081d87cc7a6795110525569670ff0907 +Subproject commit 6d4bf6b47e69516b3e9a8925279364f98456d959 From 713cb6b2a55e5c1288795f5fa4d40764d16a579f Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 20 Jun 2025 18:23:23 +0200 Subject: [PATCH 20/26] Fix shell basename command used for building plugins Signed-off-by: falkTX --- plugins/Makefile | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/plugins/Makefile b/plugins/Makefile index a97ac9f..e641c00 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -2210,7 +2210,7 @@ $(BUILD_DIR)/AS/%.cpp.o: AS/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(AS_CUSTOM),$(call custom_module_names,$(m),AS)) \ - $(foreach m,$(AS_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),AS_$(shell basename $*))) \ + $(foreach m,$(AS_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),AS_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__AS \ -Wno-unused-private-field @@ -2266,7 +2266,7 @@ $(BUILD_DIR)/Bidoo%.cpp.o: Bidoo%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(BIDOO_CUSTOM),$(call custom_module_names,$(m),Bidoo)) \ - $(foreach m,$(BIDOO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bidoo_$(shell basename $*))) \ + $(foreach m,$(BIDOO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bidoo_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__Bidoo \ -DSKIP_MINGW_FORMAT \ -IBidoo/src/dep/gverb/include \ @@ -2286,7 +2286,7 @@ $(BUILD_DIR)/BogaudioModules%.cpp.o: BogaudioModules%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(BOGAUDIO_CUSTOM),$(call custom_module_names,$(m),Bogaudio)) \ - $(foreach m,$(BOGAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bogaudio_$(shell basename $*))) \ + $(foreach m,$(BOGAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Bogaudio_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__BogaudioModules \ -DRACK_SIMD=1 \ -DSKIP_MINGW_FORMAT \ @@ -2339,7 +2339,7 @@ $(BUILD_DIR)/dBiz/src/%.cpp.o: dBiz/src/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(DBIZ_CUSTOM),$(call custom_module_names,$(m),dBiz)) \ - $(foreach m,$(DBIZ_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),dBiz_$(shell basename $*))) \ + $(foreach m,$(DBIZ_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),dBiz_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__dBiz $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp @@ -2499,7 +2499,7 @@ $(BUILD_DIR)/ImpromptuModular%.cpp.o: ImpromptuModular%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(IMPROMPTUMODULAR_CUSTOM),$(call custom_module_names,$(m),ImpromptuModular)) \ - $(foreach m,$(IMPROMPTUMODULAR_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ImpromptuModular_$(shell basename $*))) \ + $(foreach m,$(IMPROMPTUMODULAR_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ImpromptuModular_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__ImpromptuModular \ -Wno-format-truncation @@ -2508,7 +2508,7 @@ $(BUILD_DIR)/ihtsyn/%.cpp.o: ihtsyn/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(IHTSYN_CUSTOM),$(call custom_module_names,$(m),ihtsyn)) \ - $(foreach m,$(IHTSYN_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ihtsyn_$(shell basename $*))) \ + $(foreach m,$(IHTSYN_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ihtsyn_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__ihtsyn $(BUILD_DIR)/JW-Modules/src/WavHead.cpp.o: JW-Modules/src/WavHead.cpp @@ -2629,7 +2629,7 @@ $(BUILD_DIR)/mscHack/%.cpp.o: mscHack/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(MSCHACK_CUSTOM),$(call custom_module_names,$(m),mscHack)) \ - $(foreach m,$(MSCHACK_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),mscHack_$(shell basename $*))) \ + $(foreach m,$(MSCHACK_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),mscHack_$(shell basename -- $*))) \ -DthePlugin=pluginInstance__mscHack \ -Dinit=init__mscHack \ -Wno-class-memaccess \ @@ -2710,7 +2710,7 @@ $(BUILD_DIR)/Prism/%.cpp.o: Prism/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(PRISM_CUSTOM),$(call custom_module_names,$(m),Prism)) \ - $(foreach m,$(PRISM_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Prism_$(shell basename $*))) \ + $(foreach m,$(PRISM_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Prism_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__Prism \ $(BUILD_DIR)/rackwindows/%.cpp.o: rackwindows/%.cpp @@ -2784,7 +2784,7 @@ $(BUILD_DIR)/stoermelder-packone/%.cpp.o: stoermelder-packone/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(STOERMELDER_PACKONE_CUSTOM),$(call custom_module_names,$(m),stoermelder_p1)) \ - $(foreach m,$(STOERMELDER_PACKONE_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),stoermelder_p1_$(shell basename $*))) \ + $(foreach m,$(STOERMELDER_PACKONE_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),stoermelder_p1_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__stoermelder_p1 \ -Dinit=init__stoermelder_p1 @@ -2814,7 +2814,7 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(VALLEYAUDIO_CUSTOM),$(call custom_module_names,$(m),ValleyAudio)) \ - $(foreach m,$(VALLEYAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ValleyAudio_$(shell basename $*))) \ + $(foreach m,$(VALLEYAUDIO_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),ValleyAudio_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__ValleyAudio \ -DSTDIO_OVERRIDE=ValleyAudio \ -IValleyAudio/src \ @@ -2826,7 +2826,7 @@ $(BUILD_DIR)/voxglitch/%.cpp.o: voxglitch/%.cpp @echo "Compiling $<" $(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \ $(foreach m,$(VOXGLITCH_CUSTOM),$(call custom_module_names,$(m),Voxglitch)) \ - $(foreach m,$(VOXGLITCH_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Voxglitch_$(shell basename $*))) \ + $(foreach m,$(VOXGLITCH_CUSTOM_PER_FILE),$(call custom_per_file_names,$(m),Voxglitch_$(shell basename -- $*))) \ -DpluginInstance=pluginInstance__Voxglitch \ -DSKIP_MINGW_FORMAT From 5bd2f87cf3760ecfdde626cbfff19c8edca892eb Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 20 Jun 2025 18:27:07 +0200 Subject: [PATCH 21/26] Bump version to 25.06 Signed-off-by: falkTX --- .github/ISSUE_TEMPLATE/bug.yaml | 2 +- Makefile | 2 +- src/CardinalCommon.cpp | 4 ++-- src/CardinalPlugin.cpp | 4 ++-- utils/macOS/Info_JACK.plist | 4 ++-- utils/macOS/Info_Native.plist | 4 ++-- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index e04dd50..c8e1ced 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -5,7 +5,7 @@ body: id: version attributes: label: Version - value: "24.12" + value: "25.06" validations: required: true - type: dropdown diff --git a/Makefile b/Makefile index 507cd76..ce97c4b 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ include $(ROOT)/Makefile.base.mk # src/CardinalPlugin.cpp `getVersion` # utils/macOS/Info_{JACK,Native}.plist # .github/ISSUE_TEMPLATE/bug.yaml src/CardinalCommon.cpp src/CardinalPlugin.cpp utils/macOS/Info_{JACK,Native}.plist -VERSION = 24.12 +VERSION = 25.06 # -------------------------------------------------------------- # Build targets diff --git a/src/CardinalCommon.cpp b/src/CardinalCommon.cpp index 1c4cc46..afe2594 100644 --- a/src/CardinalCommon.cpp +++ b/src/CardinalCommon.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Cardinal Plugin - * Copyright (C) 2021-2024 Filipe Coelho + * Copyright (C) 2021-2025 Filipe Coelho * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -99,7 +99,7 @@ void destroyStaticPlugins(); } } -const std::string CARDINAL_VERSION = "24.12"; +const std::string CARDINAL_VERSION = "25.06"; // ----------------------------------------------------------------------------------------------------------- diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index b69ab28..f154871 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -1,6 +1,6 @@ /* * DISTRHO Cardinal Plugin - * Copyright (C) 2021-2024 Filipe Coelho + * Copyright (C) 2021-2025 Filipe Coelho * SPDX-License-Identifier: GPL-3.0-or-later */ @@ -414,7 +414,7 @@ protected: uint32_t getVersion() const override { - return d_version(0, 24, 12); + return d_version(0, 25, 6); } int64_t getUniqueId() const override diff --git a/utils/macOS/Info_JACK.plist b/utils/macOS/Info_JACK.plist index c97c0e1..80a5cf1 100644 --- a/utils/macOS/Info_JACK.plist +++ b/utils/macOS/Info_JACK.plist @@ -11,11 +11,11 @@ CFBundleIdentifier studio.kx.distrho.cardinal.jack CFBundleShortVersionString - 24.12 + 25.06 LSMinimumSystemVersion 10.15 NSHumanReadableCopyright - (C) 2011-2024 Filipe Coelho. + (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. NSHighResolutionCapable diff --git a/utils/macOS/Info_Native.plist b/utils/macOS/Info_Native.plist index 5051b55..b9c5068 100644 --- a/utils/macOS/Info_Native.plist +++ b/utils/macOS/Info_Native.plist @@ -11,11 +11,11 @@ CFBundleIdentifier studio.kx.distrho.cardinal.native CFBundleShortVersionString - 24.12 + 25.06 LSMinimumSystemVersion 10.15 NSHumanReadableCopyright - (C) 2011-2024 Filipe Coelho. + (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. NSHighResolutionCapable From bc287aaadd0951887c5e148ccad5baaf4ef885d0 Mon Sep 17 00:00:00 2001 From: falkTX Date: Fri, 20 Jun 2025 20:00:40 +0200 Subject: [PATCH 22/26] Update carla and dpf deps Signed-off-by: falkTX --- carla | 2 +- dpf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/carla b/carla index 17000e7..154047d 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc +Subproject commit 154047d9e203d3e6de472d1a1c9ad1e7531176b0 diff --git a/dpf b/dpf index 6d4bf6b..2ba9bea 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 6d4bf6b47e69516b3e9a8925279364f98456d959 +Subproject commit 2ba9bea2871bf4c37b102e88b1ec6219fa513950 From 4bb5c804b7f2619ca29499132d460b2533a90f6d Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 21 Jun 2025 11:10:45 +0200 Subject: [PATCH 23/26] Fix macOS builds Signed-off-by: falkTX --- dpf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dpf b/dpf index 2ba9bea..889681f 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 2ba9bea2871bf4c37b102e88b1ec6219fa513950 +Subproject commit 889681f58e5426e99a61d0c569f963e46cf0cce3 From 54b481356cba3d7a091d593267a502ad293879f4 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 21 Jun 2025 12:16:44 +0200 Subject: [PATCH 24/26] Fix Windows builds Signed-off-by: falkTX --- carla | 2 +- dpf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/carla b/carla index 154047d..c9b6055 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit 154047d9e203d3e6de472d1a1c9ad1e7531176b0 +Subproject commit c9b60551497a7a9b76d86d694b6af08afe96335c diff --git a/dpf b/dpf index 889681f..8c30f9f 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit 889681f58e5426e99a61d0c569f963e46cf0cce3 +Subproject commit 8c30f9f1eddba89805f4131aeb2d6ca3e31a46b1 From 51dd5be9143eec98842ecaf94c66347b6aee9809 Mon Sep 17 00:00:00 2001 From: markterm Date: Sat, 21 Jun 2025 15:04:30 +0100 Subject: [PATCH 25/26] Support triggering bar phase/clock every 4/8 bars (#798) * Support triggering bar phase/clock every 4/8 bars * Fixed kHostTimeBeatPhase * Fixed barPhase calculation --- plugins/Cardinal/src/HostTime.cpp | 46 +++++++++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/plugins/Cardinal/src/HostTime.cpp b/plugins/Cardinal/src/HostTime.cpp index a28c4cd..f6c2f9d 100644 --- a/plugins/Cardinal/src/HostTime.cpp +++ b/plugins/Cardinal/src/HostTime.cpp @@ -40,11 +40,18 @@ struct HostTime : TerminalModule { kHostTimeCount }; + enum BarDivisions { + Bars1 = 1, + Bars4 = 4, + Bars8 = 8 + }; + const CardinalPluginContext* const pcontext; rack::dsp::PulseGenerator pulseReset, pulseBar, pulseBeat, pulseClock; float sampleTime = 0.0f; uint32_t lastProcessCounter = 0; + BarDivisions barDivision = Bars1; // cached time values struct { bool reset = true; @@ -122,7 +129,9 @@ struct HostTime : TerminalModule { { timeInfo.beat = 1; ++timeInfo.bar; - pulseBar.trigger(); + + if (timeInfo.bar % barDivision == 1) + pulseBar.trigger(); } } @@ -148,9 +157,10 @@ struct HostTime : TerminalModule { ? tick / pcontext->ticksPerBeat : 0.0f; const float barPhase = playingWithBBT && pcontext->beatsPerBar > 0 - ? ((float) (timeInfo.beat - 1) + beatPhase) / pcontext->beatsPerBar + ? ((float)((timeInfo.bar - 1) % barDivision) + (timeInfo.beat - 1) + beatPhase) + / (pcontext->beatsPerBar * barDivision) : 0.0f; - + lights[kHostTimeRolling].setBrightness(playing ? 1.0f : 0.0f); lights[kHostTimeReset].setBrightnessSmooth(hasReset ? 1.0f : 0.0f, args.sampleTime * 0.5f); lights[kHostTimeBar].setBrightnessSmooth(hasBar ? 1.0f : 0.0f, args.sampleTime * 0.5f); @@ -170,6 +180,20 @@ struct HostTime : TerminalModule { void processTerminalOutput(const ProcessArgs&) override {} + + json_t* dataToJson() override { + json_t* rootJ = json_object(); + json_object_set_new(rootJ, "barDivision", json_integer(barDivision)); + return rootJ; + } + + void dataFromJson(json_t* rootJ) override { + if (json_t* bdJ = json_object_get(rootJ, "barDivision")) { + int value = json_integer_value(bdJ); + if (value == Bars1 || value == Bars4 || value == Bars8) + barDivision = static_cast(value); + } + } }; // -------------------------------------------------------------------------------------------------------------------- @@ -286,6 +310,22 @@ struct HostTimeWidget : ModuleWidgetWith8HP { ModuleWidget::drawLayer(args, layer); } + + void appendContextMenu(Menu* menu) override { + struct BarDivisionItem : MenuItem { + HostTime* module; + HostTime::BarDivisions value; + void onAction(const event::Action& e) override { + module->barDivision = value; + } + }; + + menu->addChild(new MenuSeparator); + menu->addChild(construct(&MenuLabel::text, "Bar Division")); + menu->addChild(construct(&BarDivisionItem::text, "Bars/1", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars1)); + menu->addChild(construct(&BarDivisionItem::text, "Bars/4", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars4)); + menu->addChild(construct(&BarDivisionItem::text, "Bars/8", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars8)); + } }; #else struct HostTimeWidget : ModuleWidget { From 47e2db19a3eaa66758889bc97909ad3fad9a851b Mon Sep 17 00:00:00 2001 From: dreamer Date: Sat, 21 Jun 2025 16:48:32 +0200 Subject: [PATCH 26/26] update HetrickCV --- plugins/HetrickCV | 2 +- plugins/plugins.cpp | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugins/HetrickCV b/plugins/HetrickCV index 52b1e03..8c46fbe 160000 --- a/plugins/HetrickCV +++ b/plugins/HetrickCV @@ -1 +1 @@ -Subproject commit 52b1e03c34bd1baa264395c150cd62d8e192b12f +Subproject commit 8c46fbe13acdcb87991719bddcc6ec8abcf152ef diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index bc11224..e012e94 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -464,6 +464,7 @@ extern Model* modelChaos2Op; extern Model* modelChaos3Op; extern Model* modelChaoticAttractors; extern Model* modelClockedNoise; +extern Model* modelClockToPhasor; extern Model* modelComparator; extern Model* modelContrast; extern Model* modelCrackle; @@ -482,6 +483,7 @@ extern Model* modelGingerbread; extern Model* modelLogicCombine; extern Model* modelMidSide; extern Model* modelMinMax; +extern Model* modelNormals; extern Model* modelPhaseDrivenSequencer; extern Model* modelPhaseDrivenSequencer32; extern Model* modelPhasorAnalyzer; @@ -511,8 +513,10 @@ extern Model* modelPhasorSubstepShape; extern Model* modelPhasorSwing; extern Model* modelPhasorTimetable; extern Model* modelPhasorToClock; +extern Model* modelPhasorToRandom; extern Model* modelPhasorToLFO; extern Model* modelPhasorToWaveforms; +extern Model* modelPolymetricPhasors; extern Model* modelProbability; extern Model* modelRandomGates; extern Model* modelRotator; @@ -2406,6 +2410,7 @@ static void initStatic__HetrickCV() p->addModel(modelChaos3Op); p->addModel(modelChaoticAttractors); p->addModel(modelClockedNoise); + p->addModel(modelClockToPhasor); p->addModel(modelComparator); p->addModel(modelContrast); p->addModel(modelCrackle); @@ -2424,6 +2429,7 @@ static void initStatic__HetrickCV() p->addModel(modelLogicCombine); p->addModel(modelMidSide); p->addModel(modelMinMax); + p->addModel(modelNormals); p->addModel(modelPhaseDrivenSequencer); p->addModel(modelPhaseDrivenSequencer32); p->addModel(modelPhasorAnalyzer); @@ -2453,8 +2459,10 @@ static void initStatic__HetrickCV() p->addModel(modelPhasorSwing); p->addModel(modelPhasorTimetable); p->addModel(modelPhasorToClock); + p->addModel(modelPhasorToRandom); p->addModel(modelPhasorToLFO); p->addModel(modelPhasorToWaveforms); + p->addModel(modelPolymetricPhasors); p->addModel(modelProbability); p->addModel(modelRandomGates); p->addModel(modelRotator);