Home KXStudio > News

KXStudio : News

> Carla Plugin Host v2.3 is here
On 2021-04-15 by falkTX

Hello everyone, this is the announcement of the 2.3 version of the Carla Plugin Host.
If you do not know, Carla is a fully-featured cross-platform audio plugin host, which can also run as a plugin.

This specific release, compared to v2.3-RC2, brings some much needed fixes to the MIDI Pattern plugin - it finally works as expected.
There were some fixes done on the patchcanvas side, and for other stuff as reported by users.
The full list of changes for v2.3 (coming from v2.3-RC2) are:

  • Fix a float vs int usage, which will break in python soon
  • Fix cancelling plugin discovery
  • Fix main client name for multiple carlas inside NSM
  • Fix missing vst3 poly aftertouch
  • Fix patchcanvas use of keyboard modifiers
  • Fix project filename/folder only set after saving once
  • Fix recursive VST2 audioMasterAutomate parameter changes
  • Fix sorting plugins by favorite
  • Do not run 2nd instance of lv2 plugin if it has event output(s)
  • Read lv2 midi:binding on control ports and parameters
  • Use Ctrl+P to open/close side panel
  • Use fixed buffers on standalone bridge mode
  • midipattern: overall fix up
  • midipattern: use Esc key to close UI

The v2.3-RC1 announcement already listed the new features that v2.3 brings (compared to v2.2), but let's go through the release highlights again.


macOS arm64/universal build support

Starting with v2.3, Carla natively supports the new macOS arm64 architecture, used in the new M1 hardware models.
The Carla macOS universal build supports x86_64 and arm64 architectures at the same time, and should run on anything 10.12 or newer.

As Carla has support for plugin bridges (even across architectures), I took care to make sure that the arm64 version can load x86_64 plugins.
When a plugin fails to load in a specific way, Carla will try to load it again but now in x86_64 mode.
This is currently working for VST2 and VST3 plugins.

Additionally, for something that kept bothering me a lot, Carla will automatically remove plugins from macOS quarentine before loading them.
This is not possible to do for AudioUnits as we do not have the full path to the plugin binary, but valid for all other formats.
No more security theatre shenanigans here! :)


General improvements to AudioFile plugin

The AudioFile internal plugin received some deserved attention this time around.
Besides basically reworking how its disk-streaming functionality (more robust and much less CPU usage),
it finally can do resampling so it will sound correctly no matter the sample rate.
Additionally mp3 support was added via dr_mp3, as libsndfile used by it does not yet officially support it.

Both Audio and MIDI file plugins are now exposed as LV2 plugins, allowing to load and use these plugins outside of Carla.
It supports file parameter plus patch Get/Set with State mapPath as expected for these kinds of plugins.
The experimental "inline-display" of the AudioFile is also exposed as an LV2 feature.


General improvements to MIDI Pattern plugin

Not just the AudioFile plugin, but the MIDI Pattern one also received some much needed attention.
The piano-roll UI code was reworked to ensure it worked well, as previously moving notes around just didn't work at all.
Many precautions were added against edge-cases.

Hovering notes will change the mouse cursor to better indicate the potential action in case of mouse press.
And as with pretty much all other plugins in Carla, using Escape key will now close the plugin UI too.


Reworked Windows builds

The infrastructure used to build Windows binaries is now through PawPaw, as done with JACK2 already.
With this, I have control over the whole toolchain and libraries that are used in Carla Windows binaries (previously msys2 packages were used).

For users, this means these binaries are more robust and with less dependencies.
(I am building with static libraries as much as possible, so no more ligcc/libstdc++6 mess).
The Windows zip file download no longer ships with a single Carla.exe, instead please run Carla.exe inside the Carla folder, should be easy to spot.

For developers, a nice side-effect is that we can finally tweak the behaviour of the startup executable, now allowing debug messages to be seen. (though you need to run it in Console/PowerShell for that)
The libraries that allow to use and talk to Carla Host API are now provided on these builds.

Finally, it should be possible to build Carla under msys2 on Windows now.
I can make a quick tutorial if that is something that interests you, let me know if that is the case.


Use system/desktop theme icons (non-macOS/Windows only)

Due to popular demand, there is now an option in the experimental settings to use system/desktop theme icons.
This will remain as experimental feature for 1 release, so we can catch potential issues in the mean time, and fix them.

Since I do not mind the default Carla icons (quite like them actually), this is not meant for me.
Feel free to use it and report back if you spot something weird or incorrect.

Other notable changes

  • Allow to run CV plugins in rack mode, with CV connected to a dummy port
  • Carla-Control no longer has return remote url option, not needed after some fixes
  • Clear up situation with nogui and carla-osc-gui script (explanation article to come later)
  • Disable OSC by default on macOS (needs to ask permission to use network, which may look suspicious)
  • Do not build external plugins by default
  • General improvement to LV2 parameter API support
  • Many, many, many bug-fixes


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-git" (plus "carla-lv2" and "carla-vst" if you're so inclined).
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 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.
Note that the "extras" KXStudio repository (which provides an updated JACK2) supports both Ubuntu 18.04 and 20.04.
The UbuntuStudio backports PPA also provides updated JACK2 packages.

There are no official Linux binary builds for v2.3 at this point.
Since v2.3 the official builds are automated, but I did not bother setting that up for Linux yet as it is easier to get a working Linux build compared to macOS and Windows.
Carla v2.3 is provided in the KXStudio repositories and in many official Linux distribution repositories too anyway.

> KXStudio Monthly Report (March 2021)
On 2021-03-31 by falkTX

Hello all, another monthly report about the KXStudio project is here.

If you have been paying attention to these reports, you likely already know what is going to be covered here.
Starting late February, I began using a public kanban-style board in order to show/list the things I am working on and plan to do on the short and medium term.
In a few days I will delete the "done" items related to March, so that the "done" stuff actually relates to the current month.

Now getting to the news..
First, in case you missed it, DISTRHO-Ports and PawPaw had a new release, which finalizes the custom/redistributable Vitalium fork of Vital.
While testing, a few issues on the JUCE LV2 wrapper were found and fixed.
To the point of, at least on Linux, we now have the LV2 version behaving better than the VST3 one.
Additionally, this PawPaw release automates the macOS-universal builds, something that is being applied for Carla and jack2 next releases.

Speaking of Carla, the 2.3-RC2 version was tagged, with the final v2.3 release scheduled for April 15.
The remaining things to check and fix are all very minor, so we are all good for a release anyway.

And speaking of jack2, current plans are to fix the macOS-universal meta-data situation among other minor things where possible.
I began fetching the zita-a2j/j2a code to work as internal client (just like jack1 does) but found a few issues while testing.
It already works well if the internal client is not unloaded, which is good enough for the setup I had in mind for it first - using it to expose USB audio gadget mode in a MOD device.
You can already grab the code from moddevices jack2 fork though I will try fix the last things so it is good to add in next jack2 release, expected at April 15 as well.

There is a big DPF overhaul of its graphic handling, mostly triggered from updating to latest pugl (used for window and event handling).
There is nothing to show just yet, as the code does not even build right now.
I am still on the phase of reworking some core C++ code, so yeah, nothing to show yet.

On a small note, I also patched eg-sampler (LV2 example sampler) to be able to load non-mono files and resample the audio sample to the host sample-rate.
There was a race condition when loading new files, which is now fixed and merged upstream.
This work was mainly done in order to have a quick usable plugin using files for MOD, but overall everyone benefits.

Regarding packages in the KXStudio repositories, there are a few updates. Those are:

  • airwindows added
  • melmatcheq.lv2 added (reusing LibraZik package, much appreciated!)
  • distrho-ports updated to 2021-03-15
  • lsp-plugins updated to 1.1.29
  • sequencer64 updated to latest git

And that is it for now.
If you appreciate the kind of work I do, please consider a donation.
Thank you in advance for your support and stay safe out there!

PS: 2 of the package updates above appear as a result of a Patreon perk ;)

> Carla 2.3 RC2 is here!
On 2021-03-17 by falkTX

Hello all, this is an announcement for the next release candidate for Carla v2.3.
Comes after a few issues were reported and fixed, specially important for Windows users where plugin discovery did not work.
The audiofile and midifile plugins were also finalized, the task I was waiting to finish before publishing this RC2.

For the changes made in v2.3 (compared to v2.2) please see the Carla v2.3-RC1 announcement.
The full list of changes in v2.3-RC2 is:

  • Add audio and MIDI file information as parameter outputs
  • Make audio and MIDI file host sync optional, enabled by default
  • Accept oga and opus audio files
  • Fix wine bridge build for certain systems
  • Fix (native) plugin discovery under Windows
  • Fix plugin search listing AU as possible type on Windows
  • Fix loading project with VST3 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-git" (plus "carla-lv2" and "carla-vst" if you're so inclined).
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.

Final note

Just a reminder that this is a release candidate, and not the final release yet.
There are a few known issues I want to fix before tagging v2.3 as stable, but it is very very close.
And of course, if you appreciate the kind of work I do, please consider a donation.
Thank you.

> DISTRHO-Ports 2021-03-15 and PawPaw v1.1 releases
On 2021-03-16 by falkTX

Hello everyone, I am happy to announce a new release for DISTRHO-Ports, and subsequently an update to PawPaw that adds the new plugins.
In this DISTRHO-Ports release we now have 2 new plugins: SwankyAmp and Vitalium.

SwankyAmp appears as a direct port contribution from Jean Pierre Cimalando, you can find the original plugin here.

As for Vitalium, this is an open-source and redistributable version of Vital, a spectral warping wavetable synth that has recently being made open-source.
We cannot use the Vital brand or connect to its vital.audio online services, so this is completely removed from the Vitalium source code, with an alternative name and icon.

So with this release, I updated PawPaw so it now includes SwankyAmp and Vitalium.
In case you forgot or are not aware, PawPaw is a little project to build and package LV2 plugins for macOS and Windows.
Sadly due to technical difficulties I had to drop Windows 32-bit builds, which I imagine most will not care anyway.

So now you can enjoy 2 new plugins, no matter if you use Linux, macOS or Windows.
(for Linux builds, please refer to your distribution of choice, or grab them from the KXStudio repositories)

Oh, and some screenshots of course, everybody loves those.

Reaper with SwankyAmp on Windows


Zrythm with Vitalium on macOS


PS: Yes, Reaper supports LV2 now. And yes, Zrythm is quickly becoming a nice DAW too.

> KXStudio Monthly Report (February 2021)
On 2021-02-28 by falkTX

Hello all, another "monthly" report about the KXStudio project is here.
There is not a whole lot of stuff this time around, this being a short month and also me moving to a different place.
But there are still some things worth reporting, so let's get to that.

First, in case you missed it, Carla v2.3-RC1 was tagged and released, marking the first PyQt-based project of mine to have automated release binaries.
This is crucial for having more frequent releases, as it reduces the workload that each release requires.
It is now basically just setting the commit hash in the Carla-Releases project, and wait for the builds to be done.
And speaking of Carla, a few small issues were found and already fixed, so you can expect RC2 to be out very soon.

On non-KXStudio related news, Vital is now open-source.
Obviously I have interest on packaging it in the KXStudio repositories but, even though the project is released under GPLv3, there are restrictions on the use of the name and its trademarks.
So the idea right now is to (im)port it over to DISTRHO-Ports project, with a change of name to Vitalium and an alternative icon made by unfa.
This is already on-going, with one change required which was to update the DISTRHO JUCE fork to the latest upstream v6.0.7 - this is done now (including rebasing all of DISTRHO JUCE patches).
I will write something when the porting process is over, likely doing another release of PawPaw since simply having Vitalium as cross-platform LV2 plugin is worth an update.

Package updates in the KXStudio repositories are very few this time.
Basically soundtracker was added (as a special request from a friend) and Helio was updated to v3.3 (which served as a way to test the updated JUCE).

On a final note, I am experimenting with a public kanban-style board.
Not just to organize myself a bit better, but also as a way to let everyone know what I am working on at the moment and things that I will start to do relatively soon.
You can see what has already been done this month so far (let's pretend we are already in March) and what might be coming soon.
I am still playing with colors and tags, but general idea on the colors at the moment is:

  • yellow: packaging stuff or something related to kxstudio repositories
  • orange: articles or things to write (usually releases or news)
  • green: coding task which is similar to something I did before, so "easy" to do
  • red: bug-fixes
  • blue: porting over something that already exists/was done before. involves boring, copy, paste and adjust work
  • pink: brand new projects or things to do, which usually involve learning, research, testing, etc. can take long

I have recently been trying to get some sort of crowd-funding going (to help in terms of financial support).
If you are a sponsor/subscriber, you might have felt that these monthly updates are too spread out and too few.
So a public work-tracking board seems like a nice middle-ground, a way to indicate what is happening on a specific moment without having to wait for monthly reports or big splashy news.
For now you can access the board at board.kx.studio; later on I will see if it can be embed into the main website.

If you see anything you like in there or just simply appreciate the kind of work I do, please consider a donation.
I am not taking feature requests at the moment, as there is quite a few things in the backlog already, but once most of the DPF-related work is complete, I will revisit this idea.
Thank you in advance for your support, stay safe out there!

Next →