From 4cadcede8ac7bcf0787827ac7859bb6a91881f3c Mon Sep 17 00:00:00 2001 From: Don Cross Date: Tue, 25 Nov 2025 01:46:48 -0500 Subject: [PATCH 1/9] Sapphire 2.6.002: various user interface improvements (#870) - Echo now has a GAIN control group to adjust the input audio level. - Chaos modules now have buttons to insert Chaops, Tricorder expanders. - Tricorder has buttons to insert Tin, Tout expanders. - Galaxy, Gravy, Elastika now have buttons to configure stereo port behavior. More details in changelog: https://github.com/cosinekitty/sapphire/blob/main/CHANGELOG.md Screen shots and examples: https://github.com/cosinekitty/sapphire/releases/tag/rc2.6.002.10 --- plugins/Sapphire | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index ef10da4..8d33556 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit ef10da4e2578162b2db2f6534857d6504491daf4 +Subproject commit 8d335560fee339b212515ca24581239f4021f634 From 9935517643110dd08cf925f45bcb2362a66d2ca6 Mon Sep 17 00:00:00 2001 From: Don Cross Date: Fri, 5 Dec 2025 09:38:01 -0500 Subject: [PATCH 2/9] Sapphire v2.6.003 (#878) - Added "wait for sync" button to Sapphire Pop that makes it silent until the next SYNC button/trigger. - Sapphire Galaxy now includes a button and a trigger input port to clear the reverb tank. - Added an "insert Tricorder" button to Split/Add/Merge. - Fixed minor bugs with undo/redo of stereo split/merge buttons. --- plugins/Sapphire | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/Sapphire b/plugins/Sapphire index 8d33556..191fbee 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit 8d335560fee339b212515ca24581239f4021f634 +Subproject commit 191fbee21a6be7d9c18eacc6f3a1804455d5358d From 6bd905d6c910b1301809c3ce09923b2b4b96e7b1 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:19:54 -0500 Subject: [PATCH 3/9] Update Venom. (#880) --- plugins/Venom | 2 +- plugins/plugins.cpp | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/plugins/Venom b/plugins/Venom index 1dc0e06..ba95ede 160000 --- a/plugins/Venom +++ b/plugins/Venom @@ -1 +1 @@ -Subproject commit 1dc0e0612b75fcf4849f28cb6e569e3b6f13981a +Subproject commit ba95ede2370d340e0f7143dd897ff7e089bda336 diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index bde0d12..019db5f 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -3525,6 +3525,7 @@ static void initStatic__Venom() p->addModel(modelVenomMousePad); p->addModel(modelVenomMultiMerge); p->addModel(modelVenomMultiSplit); + p->addModel(modelVenomSVF); p->addModel(modelVenomOscillator); p->addModel(modelVenomNORS_IQ); p->addModel(modelVenomNORSIQChord2Scale); From 71d4032bdf1179c6d22d0112ba16ee2945219776 Mon Sep 17 00:00:00 2001 From: dreamer Date: Thu, 11 Dec 2025 13:42:18 +0100 Subject: [PATCH 4/9] bump cache version --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 19fb6c8..adab6d1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,7 +3,7 @@ name: build on: [push, pull_request] env: - CACHE_VERSION: 12 + CACHE_VERSION: 13 CARDINAL_UNDER_WINE: 1 CIBUILD: true DEBIAN_FRONTEND: noninteractive From 9e26f982d8592a9b6fb2942b07c83536e819f082 Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Thu, 11 Dec 2025 19:00:28 +0100 Subject: [PATCH 5/9] use macos-14 (#882) * use macos-14 * bump cache version --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index adab6d1..455397b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,7 +3,7 @@ name: build on: [push, pull_request] env: - CACHE_VERSION: 13 + CACHE_VERSION: 14 CARDINAL_UNDER_WINE: 1 CIBUILD: true DEBIAN_FRONTEND: noninteractive @@ -158,7 +158,7 @@ jobs: *.tar.xz macos: - runs-on: macos-13 + runs-on: macos-14 steps: - uses: actions/checkout@v4 with: From de385782f047945aabb1de5651a8c9e5d82c239d Mon Sep 17 00:00:00 2001 From: dreamer <1185977+dromer@users.noreply.github.com> Date: Fri, 12 Dec 2025 15:52:12 +0100 Subject: [PATCH 6/9] only force APP_VERSION_MAJOR in modules as necessary (#884) * force APP_VERSION_MAJOR to module version * compare first digit before forcing * compare like in Rack * Cleanup Signed-off-by: falkTX * use rack-like var names Signed-off-by: falkTX --------- Signed-off-by: falkTX Co-authored-by: falkTX --- plugins/plugins.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/plugins/plugins.cpp b/plugins/plugins.cpp index 019db5f..80759e2 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -1069,10 +1069,17 @@ struct StaticPluginLoader { 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 p->fromJson(rootJ); From 3e0de89ba8eb7e01d68f49071f200c736254fc42 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sun, 21 Dec 2025 12:15:25 +0100 Subject: [PATCH 7/9] Bump version to 25.12 Signed-off-by: falkTX --- .github/ISSUE_TEMPLATE/bug.yaml | 2 +- Makefile | 2 +- src/CardinalCommon.cpp | 2 +- src/CardinalPlugin.cpp | 2 +- utils/macOS/Info_JACK.plist | 2 +- utils/macOS/Info_Native.plist | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug.yaml b/.github/ISSUE_TEMPLATE/bug.yaml index 371cd2e..d065fb3 100644 --- a/.github/ISSUE_TEMPLATE/bug.yaml +++ b/.github/ISSUE_TEMPLATE/bug.yaml @@ -5,7 +5,7 @@ body: id: version attributes: label: Version - value: "25.10" + value: "25.12" validations: required: true - type: dropdown diff --git a/Makefile b/Makefile index 080bd4d..28ac96c 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 = 25.10 +VERSION = 25.12 # --------------------------------------------------------------------------------------------------------------------- # Build targets diff --git a/src/CardinalCommon.cpp b/src/CardinalCommon.cpp index 415e9d8..5fa78a9 100644 --- a/src/CardinalCommon.cpp +++ b/src/CardinalCommon.cpp @@ -99,7 +99,7 @@ void destroyStaticPlugins(); } } -const std::string CARDINAL_VERSION = "25.10"; +const std::string CARDINAL_VERSION = "25.12"; // ----------------------------------------------------------------------------------------------------------- diff --git a/src/CardinalPlugin.cpp b/src/CardinalPlugin.cpp index dfe19a7..2b39c60 100644 --- a/src/CardinalPlugin.cpp +++ b/src/CardinalPlugin.cpp @@ -414,7 +414,7 @@ protected: uint32_t getVersion() const override { - return d_version(0, 25, 10); + return d_version(0, 25, 12); } int64_t getUniqueId() const override diff --git a/utils/macOS/Info_JACK.plist b/utils/macOS/Info_JACK.plist index 8071faf..b5f832a 100644 --- a/utils/macOS/Info_JACK.plist +++ b/utils/macOS/Info_JACK.plist @@ -11,7 +11,7 @@ CFBundleIdentifier studio.kx.distrho.cardinal.jack CFBundleShortVersionString - 25.10 + 25.12 LSMinimumSystemVersion 10.15 NSHumanReadableCopyright diff --git a/utils/macOS/Info_Native.plist b/utils/macOS/Info_Native.plist index 73bfbe8..f7ac992 100644 --- a/utils/macOS/Info_Native.plist +++ b/utils/macOS/Info_Native.plist @@ -11,7 +11,7 @@ CFBundleIdentifier studio.kx.distrho.cardinal.native CFBundleShortVersionString - 25.10 + 25.12 LSMinimumSystemVersion 10.15 NSHumanReadableCopyright From 6d072780d101ced51176342bd519436f7df1bdb1 Mon Sep 17 00:00:00 2001 From: rl2939 <60378449+rl2939@users.noreply.github.com> Date: Tue, 18 Nov 2025 21:52:03 -0500 Subject: [PATCH 8/9] Add tuner tag to AudioToCVPitch. --- plugins/Cardinal/plugin.json | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/Cardinal/plugin.json b/plugins/Cardinal/plugin.json index 1765211..003ff9f 100644 --- a/plugins/Cardinal/plugin.json +++ b/plugins/Cardinal/plugin.json @@ -171,6 +171,7 @@ "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", "tags": [ + "Tuner", "Utility" ] }, From 7c589fe6114bf3103a3a6ac6da39a842fd374e97 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 1 Dec 2025 15:15:55 +0800 Subject: [PATCH 9/9] Add command line example for startup in headless builds Can potentially help address #796 Signed-off-by: falkTX --- docs/OSC-REMOTE-CONTROL.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/OSC-REMOTE-CONTROL.md b/docs/OSC-REMOTE-CONTROL.md index 6867317..ccdede8 100644 --- a/docs/OSC-REMOTE-CONTROL.md +++ b/docs/OSC-REMOTE-CONTROL.md @@ -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. 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 A TouchOSC compatible file is available [here](https://github.com/DISTRHO/Cardinal/raw/main/patches/touchosc/24-direct-fader-params.tosc).