| @@ -5,7 +5,7 @@ body: | |||
| id: version | |||
| attributes: | |||
| label: Version | |||
| value: "25.06" | |||
| value: "25.10" | |||
| validations: | |||
| required: true | |||
| - type: dropdown | |||
| @@ -426,7 +426,7 @@ jobs: | |||
| export PATH="/usr/lib/ccache:${PATH}" | |||
| source deps/PawPaw/local.env ${{ matrix.target }} | |||
| make features | |||
| make NOOPT=true -j $(nproc) | |||
| xvfb-run make NOOPT=true -j $(nproc) | |||
| - name: Build cross-compiled (carla) | |||
| if: steps.cache.outputs.cache-hit == 'true' | |||
| shell: bash | |||
| @@ -263,6 +263,9 @@ | |||
| [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 | |||
| [submodule "plugins/dbRackModules"] | |||
| path = plugins/dbRackModules | |||
| url = https://github.com/docb/dbRackModules.git | |||
| url = https://github.com/docb/dbRackModules.git | |||
| @@ -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.06 | |||
| VERSION = 25.10 | |||
| # --------------------------------------------------------------------------------------------------------------------- | |||
| # Build targets | |||
| @@ -197,6 +197,7 @@ At the moment the following 3rd-party modules are provided: | |||
| - [Surge XT](https://github.com/surge-synthesizer/surge-rack) | |||
| - [unless_modules](https://gitlab.com/unlessgames/unless_modules) | |||
| - [Valley](https://github.com/ValleyAudio/ValleyRackFree) | |||
| - [Venom](https://github.com/DaveBenham/VenomModules) | |||
| - [Voxglitch](https://github.com/clone45/voxglitch) | |||
| - [WhatTheRack](https://github.com/korfuri/WhatTheRack) | |||
| - [WSTD-Drums](https://github.com/Wasted-Audio/WSTD-Drums) | |||
| @@ -1 +1 @@ | |||
| Subproject commit 12bc40fd6c9c5b36481c7df55086b27ba9ae8a80 | |||
| Subproject commit 1d8dcb5aab5e0c30352e9f928ce3e40cbc86a439 | |||
| @@ -91,6 +91,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules | |||
| | Surge XT | GPL-3.0-or-later | | | |||
| | unless_modules | GPL-3.0-or-later | | | |||
| | Valley | GPL-3.0-or-later | | | |||
| | Venom | GPL-3.0-or-later | | | |||
| | Voxglitch | GPL-3.0-or-later | | | |||
| | WSTD-Drums | CC0-1.0 | | | |||
| | WhatTheRack | WTFPL | | | |||
| @@ -268,6 +269,7 @@ Below is a list of artwork licenses from plugins | |||
| | ValleyAudio/din1451alt.ttf | CC-BY-3.0-DE | | | |||
| | ValleyAudio/DSEG14Classic-*.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/ShareTechMono-Regular.ttf | OFL-1.1-RFN | | | |||
| | WhatTheRack/* | WTFPL | | | |||
| @@ -1 +1 @@ | |||
| Subproject commit ab25198ea9f361145e3f8e694d90bd2a93ee830c | |||
| Subproject commit 04eb91490c70a0c3f524e473087e263d8a9d550f | |||
| @@ -192,15 +192,6 @@ | |||
| "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", | |||
| "name": "Sassy Scope", | |||
| @@ -255,18 +255,12 @@ PLUGIN_FILES += Cardinal/src/glBars.cpp | |||
| endif | |||
| endif | |||
| ifneq ($(STATIC_BUILD),true) | |||
| ifneq ($(MOD_BUILD),true) | |||
| PLUGIN_FILES += Cardinal/src/AudioFile.cpp | |||
| ifneq ($(WASM),true) | |||
| PLUGIN_FILES += Cardinal/src/Carla.cpp | |||
| PLUGIN_FILES += Cardinal/src/Ildaeil.cpp | |||
| endif | |||
| ifneq ($(HEADLESS),true) | |||
| ifeq ($(HAVE_X11),true) | |||
| PLUGIN_FILES += Cardinal/src/EmbedWidget.cpp | |||
| PLUGIN_FILES += Cardinal/src/MPV.cpp | |||
| endif | |||
| endif | |||
| endif | |||
| ifneq ($(HEADLESS),true) | |||
| @@ -831,7 +825,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)) | |||
| ifneq ($(STATIC_BUILD),true) | |||
| ifneq ($(MOD_BUILD),true) | |||
| PLUGIN_FILES += JW-Modules/src/Str1ker.cpp | |||
| PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/ip/*.cpp) | |||
| PLUGIN_FILES += $(wildcard JW-Modules/lib/oscpack/osc/*.cpp) | |||
| @@ -1331,6 +1325,11 @@ PLUGIN_BINARIES += ValleyAudio/src/XFADE.bin | |||
| VALLEYAUDIO_CUSTOM = $(DRWAV) Chord DigitalDisplay | |||
| VALLEYAUDIO_CUSTOM_PER_FILE = TempoKnob | |||
| # -------------------------------------------------------------- | |||
| # Venom | |||
| PLUGIN_FILES += $(filter-out Venom/src/plugin.cpp,$(wildcard Venom/src/*.cpp)) | |||
| # -------------------------------------------------------------- | |||
| # Voxglitch | |||
| @@ -2853,6 +2852,15 @@ $(BUILD_DIR)/ValleyAudio/%.cpp.o: ValleyAudio/%.cpp | |||
| -Wno-sign-compare \ | |||
| -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 | |||
| -@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)" | |||
| @echo "Compiling $<" | |||
| @@ -0,0 +1 @@ | |||
| Subproject commit 1dc0e0612b75fcf4849f28cb6e569e3b6f13981a | |||
| @@ -987,6 +987,13 @@ void surgext_rack_update_theme(); | |||
| // ValleyAudio | |||
| #include "ValleyAudio/src/Valley.hpp" | |||
| // Venom | |||
| #include "Venom/src/plugin.hpp" | |||
| namespace Venom | |||
| { | |||
| void readDefaultThemes(); | |||
| } | |||
| // Voxglitch | |||
| #define modelLooper modelVoxglitchLooper | |||
| #include "voxglitch/src/plugin.hpp" | |||
| @@ -1107,6 +1114,7 @@ extern Plugin* pluginInstance__stoermelder_p1; | |||
| Plugin* pluginInstance__surgext; | |||
| Plugin* pluginInstance__unless_modules; | |||
| Plugin* pluginInstance__ValleyAudio; | |||
| Plugin* pluginInstance__Venom; | |||
| Plugin* pluginInstance__Voxglitch; | |||
| Plugin* pluginInstance__WhatTheRack; | |||
| extern Plugin* pluginInstance__WSTD_Drums; | |||
| @@ -1243,12 +1251,12 @@ static void initStatic__Cardinal() | |||
| #else | |||
| spl.removeModule("glBars"); | |||
| #endif | |||
| #ifndef STATIC_BUILD | |||
| #ifndef __MOD_DEVICES__ | |||
| p->addModel(modelAudioFile); | |||
| #else | |||
| spl.removeModule("AudioFile"); | |||
| #endif | |||
| #if !(defined(DISTRHO_OS_WASM) || defined(STATIC_BUILD)) | |||
| #if !(defined(DISTRHO_OS_WASM) || defined(__MOD_DEVICES__)) | |||
| p->addModel(modelCarla); | |||
| p->addModel(modelIldaeil); | |||
| #else | |||
| @@ -1260,11 +1268,6 @@ static void initStatic__Cardinal() | |||
| #else | |||
| spl.removeModule("SassyScope"); | |||
| #endif | |||
| #if defined(HAVE_X11) && !defined(HEADLESS) && !defined(STATIC_BUILD) | |||
| p->addModel(modelMPV); | |||
| #else | |||
| spl.removeModule("MPV"); | |||
| #endif | |||
| #ifdef HAVE_FFTW3F | |||
| p->addModel(modelAudioToCVPitch); | |||
| #else | |||
| @@ -2791,7 +2794,7 @@ static void initStatic__JW() | |||
| p->addModel(modelCoolBreeze); | |||
| p->addModel(modelPete); | |||
| p->addModel(modelTimer); | |||
| #ifndef STATIC_BUILD | |||
| #ifndef __MOD_DEVICES__ | |||
| p->addModel(modelStr1ker); | |||
| #else | |||
| spl.removeModule("Str1ker"); | |||
| @@ -3682,6 +3685,81 @@ 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(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() | |||
| { | |||
| Plugin* p = new Plugin; | |||
| @@ -3883,6 +3961,7 @@ void initStaticPlugins() | |||
| initStatic__surgext(); | |||
| initStatic__unless_modules(); | |||
| initStatic__ValleyAudio(); | |||
| initStatic__Venom(); | |||
| initStatic__Voxglitch(); | |||
| initStatic__WhatTheRack(); | |||
| initStatic__WSTD_Drums(); | |||
| @@ -99,7 +99,7 @@ void destroyStaticPlugins(); | |||
| } | |||
| } | |||
| const std::string CARDINAL_VERSION = "25.06"; | |||
| const std::string CARDINAL_VERSION = "25.10"; | |||
| // ----------------------------------------------------------------------------------------------------------- | |||
| @@ -414,7 +414,7 @@ protected: | |||
| uint32_t getVersion() const override | |||
| { | |||
| return d_version(0, 25, 6); | |||
| return d_version(0, 25, 10); | |||
| } | |||
| int64_t getUniqueId() const override | |||
| @@ -1259,20 +1259,6 @@ protected: | |||
| #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: | |||
| /** | |||
| Set our UI class as non-copyable and add a leak detector just in case. | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * 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 | |||
| * 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 void glfwSetCursor(GLFWwindow*, GLFWcursor*) {} | |||
| GLFWAPI const char* glfwGetKeyName(int, int) { return nullptr; } | |||
| GLFWAPI int glfwGetKey(GLFWwindow*, int) { return 0; } | |||
| GLFWAPI int glfwGetKeyScancode(int) { return 0; } | |||
| GLFWAPI double glfwGetTime(void) { return 0.0; } | |||
| @@ -1,6 +1,6 @@ | |||
| /* | |||
| * DISTRHO Cardinal Plugin | |||
| * Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com> | |||
| * Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com> | |||
| * | |||
| * This program is free software; you can redistribute it and/or | |||
| * modify it under the terms of the GNU General Public License as | |||
| @@ -17,6 +17,7 @@ | |||
| #include "Application.hpp" | |||
| #include "CardinalPluginContext.hpp" | |||
| #include "widget/event.hpp" | |||
| #include <GLFW/glfw3.h> | |||
| @@ -207,3 +208,12 @@ GLFWAPI const char* glfwGetKeyName(const int key, int) | |||
| 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; | |||
| } | |||
| @@ -11,7 +11,7 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.jack</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>25.06</string> | |||
| <string>25.10</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||
| @@ -11,7 +11,7 @@ | |||
| <key>CFBundleIdentifier</key> | |||
| <string>studio.kx.distrho.cardinal.native</string> | |||
| <key>CFBundleShortVersionString</key> | |||
| <string>25.06</string> | |||
| <string>25.10</string> | |||
| <key>LSMinimumSystemVersion</key> | |||
| <string>10.15</string> | |||
| <key>NSHumanReadableCopyright</key> | |||