Home KXStudio > News
RSS

KXStudio : News

> Carla Plugin Host v2.2 is finally here!
On 2020-10-12 by falkTX

Hello everyone, this is the announcement of the 2.2 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 release announcement comes quite a few days after it was initially tagged and builds uploaded.
I moved to a different place, everything got a bit delayed with that, and also me getting a small but well-needed break.
Anyway, back to the topic at hand...

Contrary to previous releases, there were not many graphical changes this time, but lots of stuff under the hood.
One very important note for developers is that the "native" API to access carla as plugin (as used by LMMS) is still ABI and API-wise backwards compatible with 2.0, but the ABI and API of Carla as a library is not.
This is because all host functions now have a "handle" prefix, so they can be reused for standalone, plugin and other variants.

Special thanks to everyone that did testing during the release candidate phase, some with very complex setups! (as seen below)
settings

Now with that said, let's go through what's new, first the bigger changes and smaller stuff for last.

settings

Multi-Client + multi-instance improvements

In order to allow multiple instances of Carla to work without conflicts, proper JACK multi-client multi-instance support was implemented.
What this means is that you can have a name prefix for all plugins when in JACK multi-client mode, so that it is easier to understand where a plugin belongs to.

Starting with v2.2, extra Carla instances will get a dedicated JACK client name suffix.
On projects created with v2.2 and above, Carla will know which saved connections belong to which plugins, making it possible to load a session correctly where multiple Carla instances are involved.

As a way to make this easier to manage and control, a new command-line argument was added, "--cnprefix=...".
So now you can have a dedicated Carla instance that has its created JACK clients more globally recognisable.

Also, when Carla runs under NSM, the JACK client name prefix is set automatically (coming from NSM).
This is not enabled when loading pre-2.2 projects though, in order to keep backwards compatibility.


settings

Linux VST3 plugin support

As new VST2 plugins can no longer be officially licensed and VST2 is very, very, very slowing being phased out, it is important to have VST3 support.

So now you can now scan and load Linux VST3 plugins under Carla.
It is no longer limited to macOS and Windows.

Worth noting is that this is not a custom implementation, but leveraging JUCE VST3 host support on Linux.
It recently got supported as part of their JUCE6 update.
There are no plans for a custom implementation at this point.


Small UI/UX improvements all around

settings

The built-in keyboard right-click menu got a bit better.
Everything is presented in a single menu, no more sub-menus are used.

settings

The plugin built-in editor dialog now shows the currently mapped parameter type+value directly.
No more clicking around needed to find out what the parameter is mapped to.

settings

MIDI learn implemented, triggered via parameter mapping menu.
Note that this is per plugin, not global, due to how Carla handles each plugin individually.

Other "quality of life" improvements:
  • Added a 12400x9600 canvas size
  • Added a 2x and 4x canvas image export mode
  • Added a menu action to save current Carla canvas as image in the clipboard
  • Added "Send MIDI notes" option to plugin built-in editor dialog
  • Canvas positions are now always saved and restored, including in the plugin version
  • Canvas positions are kept in sync across multiple Carla JACK instances and even Carla-Control
  • Built-in plugin edit dialog tab state is kept when parameters are reloaded
  • Implemented NSM "optional-gui"
  • Plugin custom GUI Window title changes dynamically when renamed
  • Package macOS plugin version, making Carla-Plugin usable with macOS 10.15

Other notable changes

  • Added new xycontroller plugin
  • Added a "carla-osc-gui" script that starts a Carla instance in the background and connects to it using OSC.
    Closing the GUI does not close the engine, and it can be run again to reconnect later on.
  • Always use maximum amount of channels for VST2 plugins
  • Better handle the case of JACK server stop (or killed)
  • Better implementation of LV2 state path, now saving files in the same directory as the Carla project
  • Changed the way plugins are deleted, so they are now safely deleted only when no longer in use
  • Implement MIDI CC and CV source parameter changes for bridges
  • Improve the (still experimental) JACK-apps-as-plugins implementation, now mapping show/hide gui to NSM commands, sending arbitrary MIDI events and making it work on more systems
  • Increase max value of the internal LFO plugin, so we can get reeeeeeeal slow
  • Raise limit of plugins that can be loaded (512 default, 64 in rack)
  • Tweaks for automatically converting internal Patchbay mode projects in JACK multi-client mode and vice-versa
  • Working HaikuOS build, but no audio support yet

Many other bug-fixes and small under-the-hood improvements (too many to list here).
See the git log for the full list of changes.

Notes for users

When using JACK, the newly added features around the canvas require at least JACK 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) now supports Ubuntu 20.04 along-side 18.04.

The code for scanning plugins had a little rework yet again, making some internal data structures change.
Because of this, a full rescan of your plugins is needed after the update.
This should fix previously missing plugins that happened in v2.1.

The official Linux binary build does not provide native Linux-VST3 support.
Packages from regular Linux distributions do not have this issue.

Downloads

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.