Home KXStudio > News

KXStudio : News

> Cardinal 22.03 released
On 2022-03-21 by falkTX

Hello everyone, a new release of Cardinal is here.
This brings quite a few new extra modules, updates the existing ones and adds a few nice features as requested by users.
This is what changed compared to the (initial) 22.02 release:

  • Add Windows installer, shipping with optional Carla Plugin Host integration and JACK Standalone
  • Add AudioUnit plugin format for macOS
  • Fix build for HaikuOS (only headless possible for now)
  • Fix crash in headless build when loading certain modules
  • Fix GUI resize in high-dpi systems
  • Fix Host MIDI-CC channel pressure and pitchbend interfering with CCs
  • Fix repaints in macOS, allow to set update rate limit (only works in some hosts)
  • Fix VST2 keyboard input always in uppercase in some hosts
  • Force 32bit alignment for vectorized operations, fixes 32bit build
  • Initial bypass implementation, MIDI only for now
  • Make host audio meters independent from each other
  • Merge CardinalFX and CardinalSynth VST2 folders as single Cardinal.vst
  • Update VCV Rack base to v2.1

New modules

There's quite a few modules in this release, below follows a link to each project.
Same as in the previous release, all modules were checked for compatibility with GPLv3+ license. More details here.


The source code plus Linux, macOS and Windows binaries can be downloaded at https://github.com/DISTRHO/Cardinal/releases/tag/22.03.
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.

> Ildaeil v1.0 released
On 2022-02-21 by falkTX

Hello everyone, another release is here, this time it is Ildaeil.
Something that was initially done as a test for Carla and ImGui usage within DPF, but turns out to be actually quite useful!
To those that are not up to date on KXStudio developments, let's recap this little new project...


Ildaeil is mini-plugin host working as a plugin allowing one-to-one plugin format reusage.
The idea is to load it as a plugin inside your DAW and then the other "real" plugin inside Ildaeil.
This allows, for example, a VST3 host to load LV2 plugins.

For the more technically-minded people, this is basically a combination of Carla, DPF and DPF-Widgets.
There is some small code of its own for handling the drawing of the plugin list, generic GUI and offset the embed GUIs, but everything else is done by these other projects.
Nothing that Ildaeil does is special, that Carla can't do, but using Carla means always having to deal with an extra window.
When wanting to load a single LV2 plugin on a non-LV2 supported host for example, this becomes quite cumbersome.
With a little bit of glue code to tie up Carla, DPF and a little GUI, this project becomes possible.


Here is an example, loading the LV2-specific plugin Aether inside Renoise, which does not support LV2 plugins.


You can see more of these screenshots here.


The Ildaeil name comes from the korean 일대일, which means "one to one".
It is one plugin exposed to the host (Ildaeil itself) and one plugin loaded inside Ildaeil.

When open, Ildaeil will show a list of plugins to pick from or the plugin editor if one is already selected.
If the plugin provides an embedable UI, Ildaeil show will that by default, otherwise it shows a generic parameter list.
Toggling between generic vs custom/embed view is possible.
In the case of a plugin providing a custom UI that is not embedable, Ildaeil will show the generic view by default.
You can press "Show Custom GUI" to open the plugin UI in an external window.

For version 1.0, this is what we have:

  • Available as JACK/Standalone, LV2, VST2 and VST3 (with VST3 being experimental)
  • Can load internal (from Carla) and LV2 plugins
  • Comes in Synth, FX and MIDI variants
  • LV2 plugins can run in-process or bridged
  • Works on macOS, Windows and Linux/X11 systems

And these are the current limitations:

  • Plugin parameters are not exposed to the host
  • UI is not resizable by the host

Later on, in theory, it should be able to load the other plugin formats supported by Carla (that being LADSPA, DSSI, VST2, VST3 and AU).
There are some technical limitations that prevent this from happening right now, Carla will need some backend changes before this can happen.

Note that exposing the parameters to the host is not in the immediate plans.


There are pre-compiled binaries for Linux, macOS and Windows which can downloaded at https://github.com/DISTRHO/Ildaeil/releases/tag/v1.0.
You can also find it in the KXStudio repositories as ildaeil package.

Have fun!

> Carla 2.4.2 has been released
On 2022-02-19 by falkTX

This is a bugfix release for Carla version v2.4 series, with some extra user-experience related changes.


Carla is an audio plugin host, with support for many audio drivers and plugin formats.
It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control.


  • Fix a few crashes with JACK applications inside Carla
  • Fix build on non-supported systems by JUCE
  • Fix crash when LV2 X11 UI has non-mapped child window
  • Fix compatibility with Python 3.10
  • Fix default SF2/3 path
  • Fix LV2 UI resizing on macOS
  • Fix missing VST3 plugins not being searched recursively
  • Disable GraphicsScene indexing method to prevent crashes
  • Ensure custom data state save and restore always match


  • Add "[carla]" prefix to printed messages
  • Add appdata metadata information
  • Add notice when Carla needs to be restarted after an LV2 rescan
  • Add VST3 Windows common files to the default path (required by the latest VST3 spec)
  • Default to JACK backend if pipewire-jack replacement is installed
  • Implement dry/wet, volume and balance on JUCE hosted plugins
  • Reload audio file if sample rate changes
  • Use temporary files for big custom data values in bridges

Changes for using Carla as library

  • Add 8 CV, 32 IO and 64 IO CarlaPatchbay variants
  • Add audio port hints to backend, starting with lv2 sidechain
  • Add static plugin build target
  • Add WITH_LTO build option, disabled by default
  • Allow setting a custom C++ namespace
  • More work on experimental embed plugin UIs, now also possible on plugin bridges


To download Carla binaries or source code, jump on over to the KXStudio downloads section.
If you're using the KXStudio repositories, you can simply install "carla".
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.

Notes for users

This was already the case for v2.2 and v2.3 but it is worth reiterating:
When using JACK2, the canvas - plugin integrations requires at least JACK2 v1.9.13.
This is because Carla relies on JACK meta-data in order to store information about each plugin/client, and meta-data was only added to JACK2 in version 1.9.13.
Alternatively, you can use JACK1 instead of JACK2, which has meta-data support since a long time.

Also there are still no official Linux binary builds for v2.4.2.
Carla v2.4.2 is provided in the KXStudio repositories and in many official Linux distribution repositories anyway.

> WineASIO v1.1.0 released
On 2022-02-18 by falkTX

Hello everyone, a new release of WineASIO is here.
This is mostly for Wine >= 6.5 compatibility, and a few small fixes here and there.
Check the git log for the precise changes.

Details are explained in the README file, but in short we now need to build an extra fake dll and use full paths when calling regsvr32.
Where we previously needed:
wine64 regsvr32 wineasio.dll
Now we require the full path, on Ubuntu for example it is:
wine64 regsvr32 /usr/lib/x86_64-linux-gnu/wine/x86_64-windows/wineasio.dll

As was the case with v1.0.0, there are no pre-compiled binaries for WineASIO, though it is available as a package in the KXStudio repositories.
You can find this v1.1.0 release at github.com/wineasio/wineasio.

Small warning: WineASIO is not compatible with PipeWire.
This is under investigation, it is not known at this point why it does not work for PipeWire's JACK implementation.

> Cardinal 22.02 is now released
On 2022-02-14 by falkTX

It is finally here, the first release of Cardinal.
Has been slowly brewing behind the scenes, and now ready for the masses.
First, some introductions...


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.

Cardinal was created first and foremost as a way to have Rack as a proper open-source audio plugin.
A proper audio plugin should be self-contained as much as possible, as to not interfere with the DAW/Host. Loading external modules clearly goes against this idea.
Not to mention being open-source, otherwise we are at the mercy of the wishes of a company for what we can and cannot do, which is not that great...
(in case you were not aware, VCV's Rack plugin version, called "Rack Pro", is a commercial closed-source product)

It needs to be said that Cardinal project and its authors do not wish anything bad to the original/official Rack project.
In fact, Cardinal wouldn't exist if not for Rack v2 release. (which has many needed things to make a plugin version work)
Cardinal and Rack should be able to co-exist friendly and peacefully, as they clearly have different targets.
It is likely most people will prefer to use Rack Pro for its official support and its big module collection (including commercial ones).
A feature comparison between Cardinal and Rack Pro can be seen here.

With that out of the way, let's go through a quick overview.

Plugin variants

Cardinal provides 3 plugin variants - Main, Synth and FX.
They are all equivalent in performance and behaviour, with only the IO and metadata that changes.
This is because some hosts are very strict on which plugins are allowed as instruments vs FX, so separate variants of the same plugin are needed.

FX and Synth variants both have 2 audio outputs, while Main has 8.
All variants have MIDI input and output support.

Main provides 8 audio inputs and outputs and 10 CV inputs and outputs.
Note that due to VST2 format not supporting CV ports, this variant is not available for VST2.

Synth provides 2 audio outputs but no audio inputs or CV ports.
Plugin type is set as "instrument".

And finally FX provides 2 audio inputs and outputs, but no CV ports.
Plugin type is set as regular "effect".

Included modules

At the moment the following 3rd-party modules are provided:

Additionally Cardinal provides its own modules for DAW/Host automation, time position and internal plugin hosting.

Current status and future plans

With the exception of a few bugs, Cardinal can be considered stable.
Though currently the following should be noted:

  • Keyboard input does not always work in some hosts #24
  • VST3 support incomplete/experimental #41
  • Windows 32bit builds do not work well #80

A parameter expander module was not ready on time for this release, but will come soon in a future release.
Fundamental is on a similar situation, there are some artwork license issues that prevent us from using Fundamental exactly as we want.
We plan to redo Fundamental's panel graphics in a more liberal license, so it then can be included in Cardinal.

There are a few modules we want to add, but they are being evaluated carefully as going forward anything we add in Cardinal needs to remain there forever, for backwards compatibility.
They must also have a GPLv3+ compatible license, which not all of them do.
Not to mention a clear artwork/graphics license... it is amazing how many of these projects do not care or understand about software licenses :(
Overall it makes packaging quite difficult, so it is natural that new modules are not added as fast as we wished for.

Something I hope to try soon is an alternative way to handle MIDI to CV conversion, as I don't like the way Rack does it at the moment.
The current Cardinal "core" modules follow the same exact approach as the official Rack, to make the transition easier, but some kind of "MIDI v2" modules will be done eventually.


If you like the project and want to help out, there are basic building instructions here,
And an overview of the source code is available here.

Currently we are all on #cardinal IRC room in irc.libera.chat server.
Come join us in your favorite IRC client or through a Matrix bridge.

Installing new modules on an existing Cardinal binary is not possible at run-time, but we can add new modules to the build.
Details on this are available here.
Also check this wiki page where we discuss possible modules to include.

Installing and using

Install instructions are available on this wiki page.
If you are using the KXStudio repositories you can simply install cardinal-lv2, cardinal-vst2 or cardinal-vst3 packages as usual.
Consult the wiki page linked above for details on other distributions, or otherwise use the prebuilt binaries on the Cardinal releases page.

There is no Cardinal official media content as of yet, but if you are looking for tutorials just look for "VCV Rack" stuff which pretty much applies to Cardinal unchanged.
Some modules will appear slightly different, or not be available, but the overall idea on how to use it is the same.

A few CC-0 / public domain Cardinal patches are present directly in the source code.
You can use those as your starting point, they are fully free to do what you want with.

And that is it, go download, install and have fun!
If you find an issue or want to request a potentially useful feature, please use the Cardinal issue tracker.
And happy Valentine's day too. \o/

← PreviousNext →