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.