Home KXStudio > News

KXStudio : News

> Cardinal 22.06 released
On 2022-06-29 by falkTX

Hello everyone, yet another release of Cardinal is here, with a few new modules and a bunch of bugfixes.
Cardinal is a free and open-source virtual modular synthesizer plugin.
It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.


Module changes

  • Add AS modules
  • Add forsitan modulare
  • Add Myth modules
  • Add Host Parameters Map core module
  • Add Sassy Scope core module
  • Implement custom plugin GUIs for internal Ildaeil plugins
  • Implement JSFX plugin support in Ildaeil
  • Make Host Parameters smoothing optional
  • Fix Fundamental flipped noise outputs
  • Fix Fundamental wavetable garbage reads
  • Fix Host Time trigger (tolerate max 2 frames of deviation, dont trigger on tick == 0)
  • Fix Lilac export file dialog
  • Update voxglitch

Cardinal core changes

  • Fix FX and Synth VST3 versions not running under Ableton Live
  • Fix macOS universal installer for M1/M2systems without rosetta2
  • Fix mouse up event for imgui based widgets
  • Fix scroll speed on macOS
  • Fix VST2 plugin cleanup (crash on close)
  • Fix VST3 MIDI CC input handling
  • Fix VST3 UI initial size
  • Fix VST3 UI resizing from host side
  • Fix X11 file browser dialog not picking files with special characters or spaces
  • Implement glfwCreateStandardCursor, allowing custom cursors from modules
  • Show demo patches in file menu
  • Several optimizations
  • Update to Rack 2.1.1

Other changes

  • Add VT_-_Jupiter_Ascent.vcv demo patch
  • Change synth template to use Fundamental instead of Bogaudio modules
  • Implement more details for lv2 export (category, unipolar/bipolar CV, lights as control outputs)


The source code plus Linux, macOS and Windows binaries can be downloaded at https://github.com/DISTRHO/Cardinal/releases/tag/22.06.
Cardinal is released as LV2, VST2 and VST3 plugin, plus AudioUnit and JACK standalone for certain systems.

> Cadence 0.9.2 release
On 2022-06-19 by falkTX

Cadence 0.9.2 has just been tagged.
No new features have been added to the code-base.
The release is focused on fixing compatibility with new systems, specially for Python 3.10.

This release is quite late, all things considered.
Until a few days ago I was still running an Ubuntu 20.04 based OS, so I couldn't reproduce any crashes.
A few people submitted fixes for Python 3.10 compatibility, but I did not want to tag a new release before running a few tests myself.
I am now on a Ubuntu 22.04 based OS, so finally I was able to reproduce the reported issues and fix any extra ones that popped up.

I still hope to give Cadence an overhaul, splitting into separate projects so it is easier to manage and package.
The project started 12 years ago, there is some ugly code in there, nowadays I would have done a lot of stuff there differently.
Splitting Cadence into subprojects will also help on this overhaul, because it is less code to update and maintain each time.
But in any case, it is not something that will happen now, more like an idea/plan for later.

> KXStudio Monthly Report (May 2022)
On 2022-05-31 by falkTX

Hello all, it has been a while since the last time I wrote one of the "monthly" reports, but now back again.
Typically I would write about stuff that was happening behind-the-scenes or to be released soon,
but last couple of months have been mostly releases of stuff that was already in progress and was reported on already, or quick enough releases that could be done in a single month.
Also, there was quite a lot of Cardinal, like a lot of it. :)

Continuing with efforts torwards VST3

VST3 support in DPF is not going as quickly as I hoped, with the last few details being hard to get right.
As a way to learn more about VST3 specifics, and also because I promised to do so, I began doing a host-side implementation for Carla.

While Carla can already do VST3 plugins, it relies on JUCE for it which I am not totally happy with.
Having JUCE built on Carla + Linux just to get VST3 support is something that has always bothered me.
Because Linux does not have the concept of a OS-level event loop, a special way of mixing Qt and JUCE is in place, and feels very dirty.
There are other technical reasons for disliking the approach, but I will skip the details here.

Do note that, alike for VST2, I will keep using VST3 through JUCE for macOS and Windows.
Mostly because I rarely use those systems, so overall it is safer to rely on JUCE for them.
Maybe at some point the Carla VST3 implementation will be good enough to consider enabling the native approach on those systems too, but that can take a while.

Carla related things

Speaking of Carla, I merged the Jean Pierre Cimalando's JSFX plugin support pull request, though still in the process of cleaning things up (in particular non-x64 builds are broken at the moment).
Next release will have the feature enabled, which also propagates to stuff like Ildaeil and its use in Cardinal. :D

Also on Carla, I updated the in-tree JUCE to version 7.
JUCE 7 can now host LV2 plugins too, but for that I will keep Carla's native implementation which is more complete (JUCE does not support CV ports or external UIs, for example).
The update to JUCE also serves to help bring JUCE-based plugins into DISTRHO-Ports and KXStudio packaging, since I reuse the same JUCE version for everything.
My usual set of patches are complete now, and everything was ready to update DISTRHO-Ports main branch to it except it completely breaks Vital[ium] :/

The best approach is likely to have Vitalium be separate from DISTRHO-Ports, but setting that up takes a fair bit of time, so we won't see that so soon.
Perhaps the updated Vital source (whenever that drops..) will have better compatibility with newer JUCE versions, unknown at this point.
In any case, updates to DISTRHO-Ports are blocked at the moment because of this, but there is enough to do on other projects anyway.

Still on Carla, I also updated its in-tree DPF, bringing over the UI code restructure from a while ago.
This is important for the JSFX support, for possibily having their custom GUIs.
I will probably skip them for the first Carla version with JSFX enabled, but it is good to have this in place early so there are less blockers for the implementation.
The update also means being able to refresh the DPF-based internal plugins, which have been ignored for a while.

Sassy Spreadsheet and Scope

A little fancy tool caught my attention recently - the sassy spreadsheet.
It was recently open-sourced and with the GUI widgets being familiar (it uses imgui) there were very high chances of it working on Linux.
There were no official Linux builds or ways to build for Linux, but not for long!
So while we can build and run it now, sadly any operation results in a crash :(
I did some investigation but couldn't find why, author also couldn't tell.

That said, because it is based on imgui and I have worked with it and implemented in a few places, I wondered about taking advantage of it..
Can we take the very nice and properly behaving scope and use it somewhere else?
Yes we can. Yay for open-source!


KXStudio Repositories

On Repository related updates, I finally began to update some packages.
This really goes slow compared to previous times, as the newly introduced automated plugin tests fail.
I should have expected that..
It is great that we catch things early, but that also means updates can be blocked because of it.
Sometimes errors are falsely reported, but sometimes actual plugin issues are found too.
Kind of a pain to deal with when things fail, though in the long term it is for the best.

Because it was just too old and even non-working for some users, the use of the external, non-PPA based repository has been removed.
This basically means the the removal of the ardour package from the KXStudio repositories.
My idea for it was to update it to version 7 and find a way to automate the whole split build (amd64, armhf and arm64 packages).
Easier said than done, and there is too much I am doing already, it is hard to justify maintaining an extra repository just for a few packages.
Apologies for taking so long for taking a decision on this, I always hope to be able to do everything and more, but always fall short.
Doing less things is fine too.

Another small removal is the "recommended" meta-packages, which I had setup as a way for users to easily install a few extra useful programs from outside the KXStudio repositories.
Turns out, making a meta-package that can properly depend/install things across many debian versions and variants is hard.
Packages get removed or renamed, and makes a whole mess of optional dependencies that is just best to simply not care about.
And so it is now.

Related to actual package updates, we have these for this month:

  • airwindows-lv2 added (version 1.3)
  • dragonfly-reverb updated to 3.2.6
  • lsp-plugins updated to 1.2.1


That is all for now, see you next time!

> Cardinal 22.05 has been released
On 2022-05-15 by falkTX

Hello everyone, yet another release of Cardinal is here.
Cardinal is a free and open-source virtual modular synthesizer plugin.
It is based on the popular VCV Rack but with a focus on being a fully self-contained plugin version.

This is a big update with not just bug-fixes but also new modules and a few behaviour changes too.
Particularly interesting for existing Rack users is the inclusion of the popular Fundamental modules, though in customized fashion.
A new Audio to CV Pitch module also makes a debut, based on DISTRHO PitchTrackingSeries which was a shared effort for pushing the feature into hardware units.



  • Add macos-intel build (smaller in size and better fit for intel-based macs)
  • Add main Cardinal variant for MOD builds
  • Add Audio to CV Pitch Core module
  • Fix buffer size not always correct in the Audio Unit plugin
  • Force UI keyboard focus (delayed focus grab after UI is open)
  • Mute audio output if bypassed
  • Remap Ctrl key + mouse clicks to right-click on macOS to better deal with its silly "one button" UX
  • Store a few more properties as plugin state, including favorites

Added plugins

Updated modules

Module fixes

  • Fix Core Audio2 meters stuck state when both L & R are disconnected
  • Fix Core Blank panel tags
  • Fix Core Host-MIDI-Map flooding console logs in case of error (only print the same error once)
  • Fix Core Host-Time reset trigger for hosts with non-static buffer sizes
  • Fix DrumKit Sequencer memory corruption
  • Fix mscHack PingPong filter cutoff value when loaded without GUI

Extra Notes

For packagers: fftw3f is now an optional dependency, required for "Audio to CV Pitch" module.
The module will built if fftw3f is available during build, otherwise disabled.

The "lv2export" stuff has been reworked and works now, includes 3 test plugins.
This allows to export individual modules as single lv2 plugins, with very minimal binaries and no UI.
For now it is still quite experimental, just to mess around with.
Future releases might enable them by default, still undecided.


The source code plus Linux, macOS and Windows binaries can be downloaded at https://github.com/DISTRHO/Cardinal/releases/tag/22.05.
Cardinal is released as LV2, VST2 and VST3 plugin, plus AudioUnit and JACK standalone for certain systems.
The VST3 version is still considered experimental, prefer to use LV2 or VST2 if possible at this time.

> Correction: Changes in KXStudio repositories
On 2022-04-25 by falkTX

This is a quick correction to yesterday's post regarding changes in the KXStudio repositories.
I mentioned that the minimum required version was Debian 12 / Bookworm.
This is incorrect, the minimum is actually Debian 11 / Bullseye.

Apologies for the lapse, have a good day! :)

Next →