Home KXStudio > News
RSS

KXStudio : News

> Carla 2.0 development progress report
On 2013-12-17 by falkTX

This is a progress report for the new Carla, version 2.0.
It will take a while to get a release ready, but there are already a few things done and stuff to show.

Backend

First, the backend is being rewritten to not use any system toolkit.
In 1.x series I've used Qt4 to handle graphics, but that might be a problem soon with Qt5 (cannot mix Qt4 and Qt5 stuff together).
Plus I want the Carla backend to be toolkit agnostic, so that in the future it may be re-usable for others no matter what their main toolkit is.
The main backend header files are now ANSI C compatible, thus increasing the chances of re-usability (as some Linux developers have a weird aversion to C++...).

Because Qt is no longer used in the backend code, I needed something else to handle graphics and other advanced stuff - Juce was selected for this.
Juce is a C++ framework focused on audio applications and plugins, which suits Carla nicely.
There's a lot of useful things inside it that will make developing new features much easier (like the internal patchbay mode).
Other things like AU and VST3 plugin hosting will be possible too thanks to Juce, although they are not relevant to Linux.

Loading Carla as a plugin is also being worked on.
There target two main targets with this:

  • Load entire Carla projects - rack or patchbay - as a single plugin in the graph (avoiding clutter);
  • Carla itself as an LV2 plugin;

If you been following the LinuxMusicians forums you know that internal Carla plugins are already available as LV2 plugins (yes, that includes zynaddsubfx-lv2!).
Once the Carla internal plugin work is complete, you automatically get an LV2 version of it as well! :D

Front-end

There has been a few changes on the UI side as well.
For example, the plugin edit dialog now looks like this:

As seen the image, the user will be able to use "Stereo Balance" or "Mono Panning".
The new layout also allows for a much smaller window size.

Lastly, there's plans to bring custom skins to plugin "slots", in a similar way to Reason.
This is something I still have to investigate to find the best possible way to do it.
It should be expandable so that random plugins can also use skins, probably via a new LV2 extension.
More on this later.


That's all for now.
Soon there will be a new DISTRHO release, so stay tuned!