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/.github/workflows/build.yml b/.github/workflows/build.yml index c5c9785..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 @@ -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 diff --git a/.gitmodules b/.gitmodules index 8460a09..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 @@ -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 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/README.md b/README.md index 3de00ba..2f6bdb7 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/carla b/carla index 17000e7..c9b6055 160000 --- a/carla +++ b/carla @@ -1 +1 @@ -Subproject commit 17000e7fe99459b25a50094a8b00bdfa12f2bfbc +Subproject commit c9b60551497a7a9b76d86d694b6af08afe96335c 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 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/docs/LICENSES.md b/docs/LICENSES.md index 7e17118..abd1431 100644 --- a/docs/LICENSES.md +++ b/docs/LICENSES.md @@ -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 | diff --git a/dpf b/dpf index d2f31da..8c30f9f 160000 --- a/dpf +++ b/dpf @@ -1 +1 @@ -Subproject commit d2f31dadba31dcd33feaac7c26587491f796ab87 +Subproject commit 8c30f9f1eddba89805f4131aeb2d6ca3e31a46b1 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 { 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/HetrickCV b/plugins/HetrickCV index 49e2bc0..8c46fbe 160000 --- a/plugins/HetrickCV +++ b/plugins/HetrickCV @@ -1 +1 @@ -Subproject commit 49e2bc0f6a3ef4d1616b78d6280a6d4e7ee222d3 +Subproject commit 8c46fbe13acdcb87991719bddcc6ec8abcf152ef 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 ff10677..e641c00 100644 --- a/plugins/Makefile +++ b/plugins/Makefile @@ -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 $<" diff --git a/plugins/Sapphire b/plugins/Sapphire index c65bf21..e2bcefc 160000 --- a/plugins/Sapphire +++ b/plugins/Sapphire @@ -1 +1 @@ -Subproject commit c65bf21e00c984613749ce76ba07633f3eb8d61f +Subproject commit e2bcefcaa7753f017cd131a28aae0e5e346aafec 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/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/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 fd858a3..90a18c4 100644 --- a/plugins/plugins.cpp +++ b/plugins/plugins.cpp @@ -395,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 @@ -454,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; @@ -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; @@ -570,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" @@ -894,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" @@ -951,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; @@ -1003,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; @@ -2140,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); } } @@ -2396,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); @@ -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); @@ -2539,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); @@ -2574,7 +2583,9 @@ static void initStatic__JW() #else spl.removeModule("Str1ker"); #endif + p->addModel(modelArrange); #undef modelQuantizer +#undef modelArrange } } @@ -2591,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); @@ -3186,6 +3198,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); @@ -3508,6 +3523,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; @@ -3580,7 +3619,7 @@ void initStaticPlugins() initStatic__CVfunk(); initStatic__dBiz(); initStatic__DHE(); - initStatic__DrumKit(); + initStatic__eightfold(); initStatic__EnigmaCurry(); initStatic__ESeries(); initStatic__ExpertSleepersEncoders(); @@ -3632,6 +3671,7 @@ void initStaticPlugins() initStatic__ValleyAudio(); initStatic__Voxglitch(); initStatic__WhatTheRack(); + initStatic__WSTD_Drums(); initStatic__ZetaCarinaeModules(); initStatic__ZZC(); 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/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 12feb52..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 @@ -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 { @@ -593,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 @@ -629,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"}}, // {{"", ""}, {"", ""}}, }; 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