Home KXStudio > News

KXStudio : News

> Carla 2.3 RC1 is here!
On 2021-02-17 by falkTX

Hello again everyone, a somewhat small but important Carla update is here!
As there were many changes behind the scenes (specially for Windows builds) I am tagging it as Release Candidate for now.

So this is the announcement of the first release candidate of Carla version 2.3.
Carla is a fully-featured cross-platform audio plugin host, which itself can also run as a plugin (LV2 and VST2).
It is a project slowly growing and maturing for over 10 years now!

This release is the first step for automated releases of Carla, and other PyQt projects. Might not seem like big news, but it is!
I don't make Carla releases very often as it tends to consume a lot of time, besides writing the release announcement (like this one), there is a lot of manual building and uploading.
The situation got worse with 1 more build type for macOS universal support..
This makes it more difficult to do quick bug-fixes than it should, and thus they tend to not happen much.
There are still no automated Linux builds though, I will take care of that at a later point.
In any case, I always keep the Carla package on the KXStudio repositories up to date, and ArchLinux is usually very quick on the updates too, so for Linux users this is not that big of a deal.

With that said, let's go through some of this release highlights.


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.


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, no longer 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 bug-fixes (not listed here, see the git commit history for the raw changes, including bug-fixes)

Notes for users

There are no binary releases for Linux at the moment, and the old Windows 32bit No-SSE builds are gone.
On Linux, use the packages from your distribution or ask the package maintainer to update.

The macOS and Windows binaries are not signed/notarized.
Carla-Control on macOS M1 fails to run natively, but is okay under rosetta2.


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

With finally the Carla release out of the way, I will start work on DPF very soon, as mentioned on the last monthly report.
If you appreciate the kind of work I do here, please consider a donation.
You can help to keep these projects alive and enthusiasm and motivation high by giving your support.
Thank you.