Browse Source

Merge branch 'DISTRHO:main' into update-voxglitch

pull/787/head
rl2939 GitHub 7 months ago
parent
commit
e52a431e21
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
29 changed files with 252 additions and 113 deletions
  1. +1
    -1
      .github/ISSUE_TEMPLATE/bug.yaml
  2. +14
    -11
      .github/workflows/build.yml
  3. +6
    -4
      .gitmodules
  4. +1
    -1
      Makefile
  5. +2
    -1
      README.md
  6. +1
    -1
      carla
  7. +1
    -0
      deps/Makefile
  8. +1
    -1
      deps/PawPaw
  9. +4
    -1
      docs/LICENSES.md
  10. +1
    -1
      dpf
  11. +1
    -1
      plugins/Befaco
  12. +43
    -3
      plugins/Cardinal/src/HostTime.cpp
  13. +0
    -1
      plugins/DrumKit
  14. +1
    -1
      plugins/HetrickCV
  15. +1
    -1
      plugins/JW-Modules
  16. +50
    -30
      plugins/Makefile
  17. +1
    -1
      plugins/Sapphire
  18. +1
    -0
      plugins/WSTD-Drums
  19. +1
    -0
      plugins/eightfold
  20. +1
    -1
      plugins/kocmoc
  21. +76
    -22
      plugins/plugins.cpp
  22. +2
    -2
      src/CardinalCommon.cpp
  23. +2
    -2
      src/CardinalPlugin.cpp
  24. +1
    -1
      src/CardinalRemote/Makefile
  25. +1
    -1
      src/Makefile.cardinal.mk
  26. +21
    -20
      src/custom/dep.cpp
  27. +13
    -0
      src/override/plugin.cpp
  28. +2
    -2
      utils/macOS/Info_JACK.plist
  29. +2
    -2
      utils/macOS/Info_Native.plist

+ 1
- 1
.github/ISSUE_TEMPLATE/bug.yaml View File

@@ -5,7 +5,7 @@ body:
id: version
attributes:
label: Version
value: "24.12"
value: "25.06"
validations:
required: true
- type: dropdown


+ 14
- 11
.github/workflows/build.yml View File

@@ -3,11 +3,12 @@ name: build
on: [push, pull_request]

env:
CACHE_VERSION: 11
CACHE_VERSION: 12
CARDINAL_UNDER_WINE: 1
CIBUILD: true
DEBIAN_FRONTEND: noninteractive
LIBGL_ALWAYS_SOFTWARE: true
PAWPAW_CI: 1
PAWPAW_FAST_MATH: 1
PAWPAW_SKIP_GLIB: 1
PAWPAW_SKIP_LTO: 1
@@ -23,7 +24,7 @@ jobs:
target: [aarch64, armhf, i686, riscv64, x86_64]
runs-on: ubuntu-latest
container:
image: ubuntu:20.04
image: ubuntu:22.04
steps:
- name: Install git
run: |
@@ -125,7 +126,7 @@ jobs:
*.tar.gz

linux-x86_64-debug:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -228,10 +229,12 @@ jobs:
files: |
${{ github.event.repository.name }}-*.pkg

modaudio:
mod-plugin-builder:
strategy:
matrix:
include:
- name: darkglass-anagram
target: darkglass-anagram
- name: modduo
target: modduo-static
extraflags: MODDUO=true
@@ -239,7 +242,7 @@ jobs:
target: modduox-static
- name: moddwarf
target: moddwarf
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -254,7 +257,7 @@ jobs:
- name: Set up dependencies
run: |
sudo apt-get update -qq
sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python libtool-bin liblo-dev qemu-user-static
sudo apt-get install -yqq acl bc curl cvs git mercurial rsync subversion wget bison bzip2 flex gawk gperf gzip help2man nano perl patch tar texinfo unzip automake binutils build-essential cpio libtool libncurses-dev pkg-config python3 libtool-bin liblo-dev qemu-user-static
sudo apt-get install -yqq pandoc texlive-latex-recommended texlive-latex-extra
sudo apt-get clean
- name: Bootstrap toolchain
@@ -471,7 +474,7 @@ jobs:
Cardinal-*.zip

headless:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -488,7 +491,7 @@ jobs:
make HEADLESS=true -j $(nproc)

lto:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -505,7 +508,7 @@ jobs:
make WITH_LTO=true -j $(nproc) native

sysdeps:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -521,7 +524,7 @@ jobs:
make SYSDEPS=true -j $(nproc)

source-tarball:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
@@ -561,7 +564,7 @@ jobs:
/home/runner/*/*/cardinal*.tar.xz

plugin-validation:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:


+ 6
- 4
.gitmodules View File

@@ -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
@@ -260,4 +260,6 @@
[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

+ 1
- 1
Makefile View File

@@ -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


+ 2
- 1
README.md View File

@@ -145,7 +145,7 @@ At the moment the following 3rd-party modules are provided:
- [CVfunk](https://github.com/codygeary/CVfunk-Modules)
- [dBiz](https://github.com/dBiz/dBiz)
- [DHE Modules](https://github.com/dhemery/DHE-Modules)
- [DrumKit](https://svmodular.com/plugin/vcv/drumkit.html)
- [eightfold](https://github.com/scanner-darkly/eightfold)
- [EnigmaCurry](https://github.com/EnigmaCurry/EnigmaCurry-vcv-pack)
- [E-Series](https://github.com/VCVRack/ESeries)
- [ExpertSleepers Encoders](https://expert-sleepers.co.uk/vcvrack_encoders.html)
@@ -198,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)



+ 1
- 1
carla

@@ -1 +1 @@
Subproject commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc
Subproject commit c9b60551497a7a9b76d86d694b6af08afe96335c

+ 1
- 0
deps/Makefile View File

@@ -57,6 +57,7 @@ SPACE +=
CMAKE = cmake
CMAKE += -DCMAKE_INSTALL_LIBDIR=lib
CMAKE += -DCMAKE_INSTALL_PREFIX='$(RACK_DEP_PATH)'
CMAKE += -DCMAKE_POLICY_VERSION_MINIMUM=3.5
CMAKE += -DBUILD_SHARED_LIBS=OFF

# make sure debug/release matches


+ 1
- 1
deps/PawPaw

@@ -1 +1 @@
Subproject commit 0985cf8d1c3a00b1958ef90e0f1aa511b865241a
Subproject commit f6eaed13bdeccec013d81ba2261f98aa8f452702

+ 4
- 1
docs/LICENSES.md View File

@@ -39,7 +39,7 @@ Below follows a list of all code licenses used in Cardinal and linked submodules
| CVfunk | MIT | |
| dBiz | GPL-3.0-or-later | |
| DHE-Modules | MIT | |
| DrumKit | CC0-1.0 | |
| eightfold | GPL-3.0-or-later | |
| EnigmaCurry | GPL-3.0-or-later | |
| E-Series | GPL-3.0-or-later | |
| ExpertSleepers Encoders | MIT | |
@@ -91,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 | |
@@ -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 | |
@@ -201,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 |


+ 1
- 1
dpf

@@ -1 +1 @@
Subproject commit 32d911c1decd721520e44adce2ca7a92ca0ec4f0
Subproject commit 8c30f9f1eddba89805f4131aeb2d6ca3e31a46b1

+ 1
- 1
plugins/Befaco

@@ -1 +1 @@
Subproject commit 5a80023d86e0f67ead3e27385170310cd430d44c
Subproject commit 5914634cd91cf11cc32394616252beb19c5c934c

+ 43
- 3
plugins/Cardinal/src/HostTime.cpp View File

@@ -40,11 +40,18 @@ struct HostTime : TerminalModule {
kHostTimeCount
};

enum BarDivisions {
Bars1 = 1,
Bars4 = 4,
Bars8 = 8
};

const CardinalPluginContext* const pcontext;

rack::dsp::PulseGenerator pulseReset, pulseBar, pulseBeat, pulseClock;
float sampleTime = 0.0f;
uint32_t lastProcessCounter = 0;
BarDivisions barDivision = Bars1;
// cached time values
struct {
bool reset = true;
@@ -122,7 +129,9 @@ struct HostTime : TerminalModule {
{
timeInfo.beat = 1;
++timeInfo.bar;
pulseBar.trigger();

if (timeInfo.bar % barDivision == 1)
pulseBar.trigger();
}
}

@@ -148,9 +157,10 @@ struct HostTime : TerminalModule {
? tick / pcontext->ticksPerBeat
: 0.0f;
const float barPhase = playingWithBBT && pcontext->beatsPerBar > 0
? ((float) (timeInfo.beat - 1) + beatPhase) / pcontext->beatsPerBar
? ((float)((timeInfo.bar - 1) % barDivision) + (timeInfo.beat - 1) + beatPhase)
/ (pcontext->beatsPerBar * barDivision)
: 0.0f;
lights[kHostTimeRolling].setBrightness(playing ? 1.0f : 0.0f);
lights[kHostTimeReset].setBrightnessSmooth(hasReset ? 1.0f : 0.0f, args.sampleTime * 0.5f);
lights[kHostTimeBar].setBrightnessSmooth(hasBar ? 1.0f : 0.0f, args.sampleTime * 0.5f);
@@ -170,6 +180,20 @@ struct HostTime : TerminalModule {

void processTerminalOutput(const ProcessArgs&) override
{}

json_t* dataToJson() override {
json_t* rootJ = json_object();
json_object_set_new(rootJ, "barDivision", json_integer(barDivision));
return rootJ;
}

void dataFromJson(json_t* rootJ) override {
if (json_t* bdJ = json_object_get(rootJ, "barDivision")) {
int value = json_integer_value(bdJ);
if (value == Bars1 || value == Bars4 || value == Bars8)
barDivision = static_cast<BarDivisions>(value);
}
}
};

// --------------------------------------------------------------------------------------------------------------------
@@ -286,6 +310,22 @@ struct HostTimeWidget : ModuleWidgetWith8HP {

ModuleWidget::drawLayer(args, layer);
}

void appendContextMenu(Menu* menu) override {
struct BarDivisionItem : MenuItem {
HostTime* module;
HostTime::BarDivisions value;
void onAction(const event::Action& e) override {
module->barDivision = value;
}
};

menu->addChild(new MenuSeparator);
menu->addChild(construct<MenuLabel>(&MenuLabel::text, "Bar Division"));
menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/1", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars1));
menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/4", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars4));
menu->addChild(construct<BarDivisionItem>(&BarDivisionItem::text, "Bars/8", &BarDivisionItem::module, module, &BarDivisionItem::value, HostTime::Bars8));
}
};
#else
struct HostTimeWidget : ModuleWidget {


+ 0
- 1
plugins/DrumKit

@@ -1 +0,0 @@
Subproject commit b94c5deb9b93d810f582221f03db8a6feaee6679

+ 1
- 1
plugins/HetrickCV

@@ -1 +1 @@
Subproject commit 49e2bc0f6a3ef4d1616b78d6280a6d4e7ee222d3
Subproject commit 8c46fbe13acdcb87991719bddcc6ec8abcf152ef

+ 1
- 1
plugins/JW-Modules

@@ -1 +1 @@
Subproject commit 9d8f8515deb20d7e14ca85b4c1d04ec6b66b3e8d
Subproject commit 72c8b569dd2cc12ce16abe2da582fc58e07c3d54

+ 50
- 30
plugins/Makefile View File

@@ -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
@@ -695,17 +695,15 @@ DBIZ_CUSTOM_PER_FILE = LERP MultiFilter Oscillator calcOutput sineOsc subBank
PLUGIN_FILES += $(filter-out DHE-Modules/src/plugin.cpp,$(wildcard DHE-Modules/src/modules/*/init.cpp))

# --------------------------------------------------------------
# DrumKit

PLUGIN_FILES += $(wildcard DrumKit/src/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/src/controller/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/src/view/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/src/model/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/deps/*.cpp)
PLUGIN_FILES += $(wildcard DrumKit/deps/SynthDevKit/src/*.cpp)
# eightfold

PLUGIN_FILES += $(filter-out eightfold/src/plugin.cpp,$(wildcard eightfold/src/*.cpp))
# modules/types which are present in other plugins
DRUMKIT_CUSTOM = ADSR Envelope LowFrequencyOscillator
EIGHTFOLD_CUSTOM = Comparator comparator


EIGHTFOLD_FLAGS = $(filter-out -std=gnu++11,$(BUILD_CXX_FLAGS))
EIGHTFOLD_FLAGS += -std=gnu++17

# --------------------------------------------------------------
# EnigmaCurry
@@ -824,7 +822,7 @@ endif
endif

# modules/types which are present in other plugins
JW_CUSTOM = PlayHead Quantizer
JW_CUSTOM = PlayHead Quantizer Arrange

# --------------------------------------------------------------
# kocmoc
@@ -832,7 +830,7 @@ JW_CUSTOM = PlayHead Quantizer
PLUGIN_FILES += $(filter-out kocmoc/src/plugin.cpp,$(wildcard kocmoc/src/*.cpp))

# modules/types which are present in other plugins
KOCMOC_CUSTOM = Phasor __ct_base __ct_comp
KOCMOC_CUSTOM = Diode Phasor __ct_base __ct_comp

# --------------------------------------------------------------
# LifeFormModular
@@ -1327,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

@@ -1446,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/*/*)
@@ -1475,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
@@ -2198,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

@@ -2254,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 \
@@ -2274,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 \
@@ -2327,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
@@ -2338,14 +2350,12 @@ $(BUILD_DIR)/DHE-Modules/src/%.cpp.o: DHE-Modules/src/%.cpp
-DpluginInstance=pluginInstance__DHE \
-IDHE-Modules/src

$(BUILD_DIR)/DrumKit/%.cpp.o: DrumKit/%.cpp
$(BUILD_DIR)/eightfold/src/%.cpp.o: eightfold/src/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@echo "Compiling $<"
$(SILENT)$(CXX) $< $(BUILD_CXX_FLAGS) -c -o $@ \
$(foreach m,$(DRUMKIT_CUSTOM),$(call custom_module_names,$(m),DrumKit)) \
-DpluginInstance=pluginInstance__DrumKit \
-Dinit=init__DrumKit \
-Wno-sign-compare
$(SILENT)$(CXX) $< $(EIGHTFOLD_FLAGS) -c -o $@ \
$(foreach m,$(EIGHTFOLD_CUSTOM),$(call custom_module_names,$(m),eightfold)) \
-DpluginInstance=pluginInstance__eightfold

$(BUILD_DIR)/EnigmaCurry/src/%.cpp.o: EnigmaCurry/src/%.cpp
-@mkdir -p "$(shell dirname $(BUILD_DIR)/$<)"
@@ -2489,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

@@ -2498,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
@@ -2619,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 \
@@ -2700,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
@@ -2744,6 +2754,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
@@ -2773,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

@@ -2803,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 \
@@ -2815,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

@@ -2826,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 $<"


+ 1
- 1
plugins/Sapphire

@@ -1 +1 @@
Subproject commit 9665f4bddb59841ef74ff206fe91345c146fed52
Subproject commit e2bcefcaa7753f017cd131a28aae0e5e346aafec

+ 1
- 0
plugins/WSTD-Drums

@@ -0,0 +1 @@
Subproject commit 05330ce99f4ec742f906c77ab5d8758a15decb4c

+ 1
- 0
plugins/eightfold

@@ -0,0 +1 @@
Subproject commit a541c5cfdc3fb9ad8e4f345470f817eaf576b987

+ 1
- 1
plugins/kocmoc

@@ -1 +1 @@
Subproject commit eaf7cbf3af0a8525d3c649c53eab476c3052d41b
Subproject commit ea69acab96db49c32601b609cdfe06444ecee0e8

+ 76
- 22
plugins/plugins.cpp View File

@@ -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"
@@ -391,9 +395,8 @@ namespace truth { void init(Plugin*); }
namespace xycloid { void init(Plugin*); }
}

// DrumKit
#include "DrumKit/src/DrumKit.hpp"
void setupSamples();
// eightfold
#include "eightfold/src/plugin.hpp"

// EnigmaCurry
#define modelPulse modelEnigmaCurryPulse
@@ -450,6 +453,7 @@ void saveGtgPluginDefault(const char*, int) {}
extern Model* modelTwoToFour;
extern Model* modelAnalogToDigital;
extern Model* modelASR;
extern Model* modelBinaryCounter;
extern Model* modelBinaryGate;
extern Model* modelBinaryNoise;
extern Model* modelBitshift;
@@ -460,6 +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;
@@ -478,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;
@@ -507,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;
@@ -566,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"
@@ -890,6 +900,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"

@@ -947,7 +961,7 @@ Plugin* pluginInstance__Computerscare;
Plugin* pluginInstance__CVfunk;
Plugin* pluginInstance__dBiz;
Plugin* pluginInstance__DHE;
extern Plugin* pluginInstance__DrumKit;
Plugin* pluginInstance__eightfold;
Plugin* pluginInstance__EnigmaCurry;
Plugin* pluginInstance__ESeries;
Plugin* pluginInstance__ExpertSleepersEncoders;
@@ -999,6 +1013,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;

@@ -1614,6 +1629,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 +1657,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 +2068,7 @@ static void initStatic__CVfunk()
p->addModel(modelStepWave);
p->addModel(modelPreeeeeeeeeeessedDuck);
p->addModel(modelArrange);
p->addModel(modelTriDelay);
p->addModel(modelTriDelay);
#undef modelSteps
}
}
@@ -2127,27 +2151,19 @@ static void initStatic__DHE()
}
}

static void initStatic__DrumKit()
static void initStatic__eightfold()
{
Plugin* const p = new Plugin;
pluginInstance__DrumKit = p;
pluginInstance__eightfold = p;

const StaticPluginLoader spl(p, "DrumKit");
const StaticPluginLoader spl(p, "eightfold");
if (spl.ok())
{
setupSamples();
p->addModel(modelBD9);
p->addModel(modelSnare);
p->addModel(modelClosedHH);
p->addModel(modelOpenHH);
p->addModel(modelDMX);
p->addModel(modelCR78);
p->addModel(modelSBD);
p->addModel(modelGnome);
p->addModel(modelSequencer);
p->addModel(modelTomi);
p->addModel(modelBaronial);
p->addModel(modelMarionette);
p->addModel(modelSDOrcasHeartV2);
p->addModel(modelSDFormation);
p->addModel(modelSDLines);
p->addModel(modelSDTransgate);
p->addModel(modelSDComparator);
}
}

@@ -2383,6 +2399,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);
@@ -2393,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);
@@ -2411,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);
@@ -2440,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);
@@ -2526,6 +2547,7 @@ static void initStatic__JW()
if (spl.ok())
{
#define modelQuantizer modelJWQuantizer
#define modelArrange modelJWArrange
p->addModel(modelAdd5);
p->addModel(modelAbcdSeq);
p->addModel(modelBouncyBalls);
@@ -2561,7 +2583,9 @@ static void initStatic__JW()
#else
spl.removeModule("Str1ker");
#endif
p->addModel(modelArrange);
#undef modelQuantizer
#undef modelArrange
}
}

@@ -2578,6 +2602,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);
@@ -3173,7 +3198,11 @@ static void initStatic__Sapphire()
if (spl.ok())
{
p->addModel(modelSapphireChaops);
p->addModel(modelSapphireEcho);
p->addModel(modelSapphireEchoOut);
p->addModel(modelSapphireEchoTap);
p->addModel(modelSapphireElastika);
p->addModel(modelSapphireEnv);
p->addModel(modelSapphireFrolic);
p->addModel(modelSapphireGalaxy);
p->addModel(modelSapphireGlee);
@@ -3496,6 +3525,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;
@@ -3568,7 +3621,7 @@ void initStaticPlugins()
initStatic__CVfunk();
initStatic__dBiz();
initStatic__DHE();
initStatic__DrumKit();
initStatic__eightfold();
initStatic__EnigmaCurry();
initStatic__ESeries();
initStatic__ExpertSleepersEncoders();
@@ -3620,6 +3673,7 @@ void initStaticPlugins()
initStatic__ValleyAudio();
initStatic__Voxglitch();
initStatic__WhatTheRack();
initStatic__WSTD_Drums();
initStatic__ZetaCarinaeModules();
initStatic__ZZC();



+ 2
- 2
src/CardinalCommon.cpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/

@@ -99,7 +99,7 @@ void destroyStaticPlugins();
}
}

const std::string CARDINAL_VERSION = "24.12";
const std::string CARDINAL_VERSION = "25.06";

// -----------------------------------------------------------------------------------------------------------



+ 2
- 2
src/CardinalPlugin.cpp View File

@@ -1,6 +1,6 @@
/*
* DISTRHO Cardinal Plugin
* Copyright (C) 2021-2024 Filipe Coelho <falktx@falktx.com>
* Copyright (C) 2021-2025 Filipe Coelho <falktx@falktx.com>
* SPDX-License-Identifier: GPL-3.0-or-later
*/
@@ -414,7 +414,7 @@ protected:
uint32_t getVersion() const override
{
return d_version(0, 24, 12);
return d_version(0, 25, 6);
}
int64_t getUniqueId() const override


+ 1
- 1
src/CardinalRemote/Makefile View File

@@ -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


+ 1
- 1
src/Makefile.cardinal.mk View File

@@ -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))



+ 21
- 20
src/custom/dep.cpp View File

@@ -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
@@ -284,6 +270,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 },
@@ -373,6 +360,7 @@ enum LightMode {
kModePrism,
kModeRepelzen,
kModeSonusmodular,
kModeWSTDDrums,
};

static const struct {
@@ -435,6 +423,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" },
@@ -588,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
@@ -624,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


+ 13
- 0
src/override/plugin.cpp View File

@@ -48,6 +48,7 @@ static const std::map<std::string, std::string> pluginSlugFallbacks = {
{"AudibleInstrumentsPreview", "AudibleInstruments"},
{"SequelSequencers", "DanielDavies"},
{"DelexanderVol1", "DelexandraVol1"},
{"DrumKit", "WSTD-Drums"}
// {"", ""},
};

@@ -102,6 +103,18 @@ static const std::map<PluginModuleSlug, PluginModuleSlug> moduleSlugFallbacks =
{{"Core", "Notes"}, {"Cardinal", "TextEditor"}},
{{"Core", "Blank"}, {"Cardinal", "Blank"}},
{{"MindMeld-ShapeMasterPro", "ShapeMasterPro"}, {"MindMeldModular", "ShapeMaster"}},
{{"DrumKit", "BassDrum9"}, {"WSTD-Drums", "BassDrum9"}},
{{"DrumKit", "ClosedHiHat"}, {"WSTD-Drums", "ClosedHiHat"}},
{{"DrumKit", "CR78"}, {"WSTD-Drums", "CR78"}},
{{"DrumKit", "DMX"}, {"WSTD-Drums", "DMX"}},
{{"DrumKit", "OpenHiHat"}, {"WSTD-Drums", "OpenHiHat"}},
{{"DrumKit", "SyntheticBassDrum"}, {"WSTD-Drums", "SyntheticBassDrum"}},
{{"DrumKit", "SnareDrumN"}, {"WSTD-Drums", "SnareDrumN"}},
{{"DrumKit", "Tomi"}, {"WSTD-Drums", "Tomi"}},
{{"DrumKit", "Gnome"}, {"WSTD-Drums", "Gnome"}},
{{"DrumKit", "Sequencer"}, {"WSTD-Drums", "Sequencer"}},
{{"DrumKit", "Baronial"}, {"WSTD-Drums", "Baronial"}},
{{"DrumKit", "MarionetteBass"}, {"WSTD-Drums", "MarionetteBass"}},
// {{"", ""}, {"", ""}},
};



+ 2
- 2
utils/macOS/Info_JACK.plist View File

@@ -11,11 +11,11 @@
<key>CFBundleIdentifier</key>
<string>studio.kx.distrho.cardinal.jack</string>
<key>CFBundleShortVersionString</key>
<string>24.12</string>
<string>25.06</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>NSHumanReadableCopyright</key>
<string>(C) 2011-2024 Filipe Coelho.
<string>(C) 2011-2025 Filipe Coelho.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.</string>
<key>NSHighResolutionCapable</key>
<true/>


+ 2
- 2
utils/macOS/Info_Native.plist View File

@@ -11,11 +11,11 @@
<key>CFBundleIdentifier</key>
<string>studio.kx.distrho.cardinal.native</string>
<key>CFBundleShortVersionString</key>
<string>24.12</string>
<string>25.06</string>
<key>LSMinimumSystemVersion</key>
<string>10.15</string>
<key>NSHumanReadableCopyright</key>
<string>(C) 2011-2024 Filipe Coelho.
<string>(C) 2011-2025 Filipe Coelho.
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or any later version.</string>
<key>NSHighResolutionCapable</key>
<true/>


Loading…
Cancel
Save