Home KXStudio > News

KXStudio : News

> Introducing master_me
On 2022-09-18 by falkTX

Hello everyone, this is a release announcement/introduction for a new audio plugin: master_me.


master_me is an automatic audio mastering plugin for live-streaming, podcasting and internet radio stations.
It takes care of master levels and "polishes" the sound with a chain of effects while introducing no latency.
master_me is closely modeled after the audio chain of Klaus Scheuermann's mastering studio in Berlin, Germany.
See https://github.com/trummerschlunk/master_me for more details on the project, including documentation.

Klaus is main author of this plugin, using faust to set up the various DSP components and also to generate an audio plugin.
Using faust provided tools was deemed not enough, as there was a wish for something more custom, specially on the GUI side.
I was contacted to help with this part, so obviously I went with DPF for dealing with all the plugin implementation details.
And that is how we got here :)

master_me is now at version 1.1.0 actually, as we found a few bugs shortly after release which were important enough to hold before going on sharing/"marketing" the plugin.
The plugin was actually quite valuable in ironing out some issues from DPF side, specially for dealing with VST3.
So future releases of DPF-based plugins will improve because of it, and we get a cool new plugin too. Good stuff :)


There are pre-compiled binaries for Linux, macOS and Windows which can downloaded at https://github.com/trummerschlunk/master_me/releases.
You can also find it in the KXStudio repositories as master-me package.

Enjoy and have fun!

> Carla 2.4.4 and 2.5.0 released
On 2022-07-16 by falkTX

Hello again everyone, it is 2 Carla releases on the same day!

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.

The reason for 2 releases is so there is an update to the 2.4.x series, being shipped in some Linux distributions that do not update packages to new versions.
Hopefully the bugfix is possible to push-through for such cases.
The 2.4.4 version does not have prebuilt binaries, it is meant only for those building from source.
For the 2.5.0 version, we have a couple new things.


JSFX (those nice little FX from REAPER) make an appearance, contributed by Jean Pierre Cimalando.
Alike LV2 handling on Carla, you do not need to manually scan for these, Carla will automatically find them if you have some paths set.
If you have run REAPER before, you most likely will have a bunch of new plugins available to use right away.
Note that custom UIs for those are not supported yet, to be implemented later.

SDL engine driver

A new engine driver makes an appearance, for SDL (both v1 and v2) which is handy when building for systems where neither JACK or RtAudio works.
The main targets for this driver are HaikuOS and Web-Assembly, the latter one which has already been verified to work.
I am sure there will still be more tweaks needed, but at least audio should now work on HaikuOS too. I will investigate more in depth later.

Updated core modules

And finally, built-in DPF and JUCE have been updated to their latest versions.
This required changing some deep internal code to match the updated APIs, so it cannot be pushed as bugfix.


That is mostly it for now, there are a few other minor changes and fixes too, changelog follows below.

  • Add JSFX plugin support
  • Add SDL engine driver
  • Adapt engine code to allow single-threaded web-assembly builds
  • Fix macOS installer to run without rosetta2
  • Do not use -fno-gnu-unique on BSD
  • Fix inaccurate MIDI CC rounding
  • Fix one more python3.10 compatibility issue
  • Fix one more Windows UTF-16 issue
  • Support mod:volts as LV2 unit
  • Update dependency list in INSTALL.md
  • Use full driver settings dialog if opened via menu and engine is not running
  • Update built-in DPF
  • Update built-in JUCE to 7.0.1


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.

> Cardinal 22.07 released
On 2022-07-16 by falkTX

Greetings everyone, we have another release of Cardinal, mostly with bugfixes and a new surprise feature.
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.

The main changes on this release are related to keyboard input focus and VST3 fixes.
For the keyboard input issue (basically in some hosts it was/is impossible to type in anything) I created a meta-issue to track all other issues, with a table for each DAW, OS and plugin varant being tested.
This helped me understand the situation better, which is pretty much:

  • Linux/X11 support is hit or miss, depends on how well the DAW supports Linux, those that give proper attention to Linux generally work fine
  • macOS support is almost a non-issue, every DAW works except REAPER that does not give focus automatically to the UI but we can easily work around it
  • Windows is a mess

While I was in the process of testing for Windows, I broke my desktop PC, actual broken hardware.. oops :/
So that got cut short, but I still added in a way that supposedly works better.
Previously the UI would try to give itself focus shortly after appearing on screen, obviously this didn't work as lots of users still reported not being able to type anything.
Now the UI will try to get keyboard input focus on every mouse press, which yes it is a bit ugly but let's see if that works.

More attention was given to the VST3 version, specially testing in many new DAWs.
It is very frustrating with VST3 as pretty much all DAWs initialize the plugin and UI in a different way. For example:

  • Cubase creates an Edit Controller instance using the "FUnknown" uid type (only Steinberg DAWs do this, everyone else uses the proper Component/Controller uid types)
  • Some DAWs (Ableton and Steinberg stuff at least) refuse to load plugins with separate Component and Edit Controller, even though this is an official VST3 feature
  • Some DAWs require a valid initial size before attaching the UI (resulting in 0x0 UI size if not provided), while others don't care
  • The way to have access to the "Host Context" varies between hosts, with Cardinal (using DPF) now having 5 places where it can possibly come from

I was meant to have a release of DPF-Plugins today alongside Cardinal, but due to finding so many VST3 related issues I decided to postpone it.

On the Browser

One of the big highlights of this release, which may come as a surprise if you are not following the project too closely, is the whole of Cardinal running directly in a Web Browser.
Yes it is a thing, and yes it works. You can try it at cardinal.kx.studio.
(Requires web-assembly support with SIMD, WebMIDI only works in Chrome-based browsers)


This was mostly meant as a research effort from my side to see how feasible it would be to run DPF-based plugins on the browser, using emscripten to compile things into web-assembly.
By my own surprise, the initial tests proved quite sucessful so I ended up going all the way in.

It is still not complete, for example clipboard support is missing, and I noticed a few crashes, so it should still be considered experimental.
Most of the crashes comes from Rack code and modules never having supported a 32bit build, which is the web-assembly target.
Still, as Cardinal already had some work done for Linux and Windows 32bit support, most things just work as-is in the end.

It is awesome, and perhaps ridiculous too, that this is even a thing that can exist and work so well.
Starting with 22.07, wasm (web-assembly) builds are going to be part of the release binaries, and in the nightly/action builds too.

Note that I purposefully did not use the new AudioWorklet APIs, as that requires special server setup.
Everything is single-threaded but in turn it all works by simply hosting the files as-is.
If you want to build it yourself, just setup emscripten and use

make USE_GLES2=true

No source code modifications are necessary.
Build has only been successfully made within a Linux host.


  • Adjust view menu similar to VCV Rack 2.1.2
  • Allow building using OpenGL ES2 (with USE_GLES=true build flag, disables glBars module)
  • Do not install JACK standalone on Windows by default
  • Fix example patches not working as templates
  • Fix file dialogs not working in macos-intel builds
  • Fix missing opus as supported extension in audio file module
  • Fix missing time information in AU version (regression in 22.06)
  • Fix VST3 keyboard input through host keycodes
  • Fix VST3 not loading under Cubase
  • Fix VST3 UI not appearing under Studio One
  • Give keyboard focus to UI on each mouse click
  • Make X11 clipboard handling more robust
  • Update all modules that use file browser dialogs
  • Update internal Cardinal async file dialog API to add default filename
  • Update to Rack 2.1.2


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

> 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 systems 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.

← PreviousNext →