THIS IS A FAKE PAGE, KXSTUDIO NEWS USES A DYNAMIC MODULE NOW

> Another DISTRHO-Ports update
On 2020-12-28 by falkTX

Hello again, another release of the DISTRHO-Ports project is here.
DISTRHO is an open-source project with the goal of making cross-platform audio plugins and GNU/Linux + LV2 ports.
This release relates to the GNU/Linux and LV2 ports.

Just like last time, this is yet again a more packager-focused release rather than user-focused.
The biggest changes this time relate to bringing DISTRHO's JUCE fork up to date with upstream, together with updating the LV2 wrapper.
Additionally, macOS and Windows support was fixed and tested to work, at least for LV2 plugins.
(most of these plugins already have VST2 or AU for those 2 platforms, so the focus in on LV2 here)

A new plugin was added, CHOW, but mostly only because I required a fresh plugin to test the new JUCE codebase.
Do note that new plugins can now build as LV2, VST2 and VST3 for GNU/Linux, which is nice to see.
I want to create a little article/tutorial explaining how to port existing plugins into this project, but that will come at a later date.

For now, the intention is to have all the ground-work needed for fresh plugins and LV2 ports.
This ties up nicely with the upcoming PawPaw project, as we will soon have all these ports working as LV2 in macOS and Windows.

Here is a quick screenshot I just took on macOS, Ardour loading a couple LV2 versions of DISTRHO-Ports.
PS: This is a arm64/M1 build.

distrho-ports-lv2-macos

Because everyone loves changelogs, here it is for the full changes since last release 5 months ago:

There are no pre-compiled binaries for this release, though the plugins are fully up-to-date in the KXStudio repositories.
You can find this 2020-12-27 release at github.com/DISTRHO/DISTRHO-Ports/releases.


> DIE-Plugins v1.0 released
On 2020-12-25 by falkTX

Hello everyone, I would like to announce a new project: DIE-Plugins.
This is a collection of plugins imported into the DISTRHO project for easy packaging.

"DIE" stands for DISTRHO Imported Effect.
It is a play on words from the first imported plugins, "ACE", from the Ardour project.
These are LV2 plugins only. License is the same as the original plugins, so GPLv2+.
They are simply to die for ;)

Now, on a serious note, this project was created when I was looking to package the Ardour built-in plugins (a.k.a. Ardour Community Effect) for MOD and the (still to be announced) cross-platform LV2 plugin project PawPaw.
The biggest difficulty was having to build the entire Ardour codebase to get these plugins.
While it seems possible to force the build of only the plugins, the build system still expects all sort of libraries for the main Ardour codebase.
Since I am quite comfortable setting up custom Makefiles for quick little projects, that is how it started...

Worth noting that all imported plugins have their bundle and URIs renamed, in order to make them compatible with the originals.
The source code fetching and patching is also scripted, so it is easy to keep in sync with upstream.

Downloads

The source code plus issue tracker is hosted at https://github.com/DISTRHO/DIE-Plugins.
Only glib2.0 and sndfile are required to build.
If you have the KXStudio repositories enabled, you can install these with the package name "die-plugins".
They are not available in binary form anywhere else at the moment, as the project is brand new.


> KXStudio Monthly Report (November 2020)
On 2020-11-30 by falkTX

Hello all, another "monthly" report about the KXStudio project is here.
There has not been once since July and even though there are not many new details to share, I did not want to let another month pass without one.

The main reason for the delay on writing is that my attention has been mostly focused on getting the MOD Dwarf software all ready for release, including new LV2 features on the MOD software stack.
This usually does not affect me working on other open-source stuff, but the race to get everything ready on time drains more energy than usual.
In order to not stress myself out, progress on other fronts has been a bit slower, though stuff like Carla 2.2 final release still happened.
Some of this MOD work involved understanding the LV2 spec better and fixing or making new test plugins, so this will be useful outside the MOD platform too.
(I already learned that the way Carla handles some LV2 features is wrong and started some work towards fixing that)

Last month (October 2020) marks the first release of JACK2 with me as maintainer that provides macOS and Windows binaries.
I have been setting up automated builds for a few open-source projects for a bit of time now, and that is now re-used for JACK2.
There is progress to make this usable for cross-platform plugins, which I was hoping to have a release for by now, but the travis-ci is having some issues against homebrew...
Whenever that works again, I will make the official announcement of that new project.
Later on this will be used for automating the builds of my PyQt projects like Carla and Catia.

On the Cadence project, I began the work for splitting it into smaller, easier to maintain projects.
The idea is to allow Catia (the patchbay-only application) and the small tools to be packaged and maintained separately.
This will allow to have new releases of Catia, Cadence and its tools all separately.
There is only 1 nasty bug to fix in Catia use of JACK2 meta-data before an official release is made, but it is not an easy one, so I am leaving it for later.
Likely no public release on this until next year.

And that is it for now.
Usually I would write about the KXStudio repositories package update list, but there really has not been much happening there at all..
Christmas holidays are not too far off, which will bring some time to try to get a few more things out.
So expect some proper news again after that.


> 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:

Other notable changes

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.


> Carla 2.2 RC2 is here!
On 2020-09-07 by falkTX

Hello everyone, this is an announcement for the next release candidate for Carla v2.2.
Comes after a few issues were reported and fixed, and as an exception a new plugin is added.

The new plugin is actually "XY Controller" from the Cadence project.
It works pretty much the same way, except that received MIDI data will not change the UI elements.
This is because this is a plugin now, not a standalone application anymore. But everything else remains.
As a bonus, the X and Y are now plugin parameters, and work as parameter outputs too, so they can control other stuff in Carla.

Why the plugin was added so suddenly will be explained in detail in a future Cadence release.
But in short, I am splitting Cadence into easier to manage sub-projects.
The "Meter" and "XY Controller" tools are now part of Carla, so they can be removed from Cadence.

Besides the new plugin (which again is an exception, due to Carla v2.2 already being in Release-Candidate state) we only have bug-fixes.
The full list of changes is:

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.

Final note

Just a reminder that this is a release candidate, and not the final release yet.
There are still a few known issues, but since they are specific to certain workflows, the amount of users affected is limited.
If you find any more of them, please let me know in the github issue tracker, thanks!


> KXStudio Monthly Report (July 2020)
On 2020-07-31 by falkTX

Hello all, another monthly report about the KXStudio project is here.
This actually covers June and July, since there was not much to tell during June.

So... first, for those that did not notice, there was quite a few linux/opensource-audio releases on July 15, for the Quarterly Release Pact.
The "Quarterly Release Pact" is an informal agreement between developers to do releases of as much software as possible on a common day.
This is a nice way to:

I can speak for myself that the release day is a great motivator to push releases.
When such date is near, everything that has reached a certain point where a release is perhaps worth doing (but usually would be hold-off due to not being "perfect enough"), just gets released.
Because to be fair, there is no point on holding off a release for long periods of time.
If something really goes wrong, a quick bug-fix can be done, so why not. It is software, these things happen sometimes..

With that in mind, the DISTRHO-Ports and WineASIO projects got new releases.
I worked (with some help) to move the DISTRHO-Ports build system from the super-old premake3 build system to meson.
While irrelevant for users, it is very important for Linux distribution packagers because premake3 is simply no longer maintained (and thus not even installable in some cases).
The other changes were not really that substantial in my view, but why not release anyway?
As someone who has done a few packages myself, I can understand the pain of those that want to package something but have their work made difficult by this kind of problem.
(If all goes well, DISTRHO-Ports provided plugins will be installable as packages in the next Ubuntu version already!)

DISTRHO-Ports has been reworked in a way so that we can keep the existing plugins untouched, while adding/supporting new plugins made with JUCE6.
The "legacy" plugins will have LV2 and VST2 formats, while new ones will support LV2, VST2 and VST3.
I plan to write a tutorial on how to add a plugin to this project, so that other people than me can contribute.
This will increase the number of ported plugins drastically, as it does not have to wait on me to to do it. (I have a lot on my plate already..)
Once we have a good number of new plugins, or the next release day comes (in 3 months), you can count on yet another release! :)

Regarding The WineASIO, it was ready for release for some time, so I did the release in more of a "why not?" state.
You can read more about this release here, but in short, I am now maintaining the WineASIO project. :)
This is because the previous maintainer wished to step down doing so, and I was already fixing WineASIO for packaging in the KXStudio repositories anyway, which basically involves maintaining it.
It is important to note that it is really only maintaining the code (so that it keeps working on new Wine versions).
So there is not going to be any new features added to it, only bug-fixes.

In other news, Carla 2.2 Release Candidate 1 is out.
It was a bit more rushed than I wished for, with a late release because I had to fight with some macOS incompatibility issues.. but that should not happen too much in the future.
I already have in mind what to focus on for version 2.3, but I really hope that with this 2.2 release I can kinda already leave Carla a bit on the side (which was already supposed to have happened in version 2.1 by the way), because other projects really need my attention right now.
The final Carla 2.2 release is just siting on a timer now in a way.
My target is to make it available for Ubuntu 20.10, so I will fix whatever bugs I can until the time arrives for Ubuntu 20.10 package freeze. (So final release in October 2020)

Unrelated to the release pact now, I am working on automated builds for a few projects, learning along the way how that is usually handled.
This is not that useful for Linux users, because distributions can build and package up stuff quickly; it is more for macOS and Windows users for whom it is much harder to build stuff.
The automated builds will cover plugins (distrho-ports, dpf-plugins and more), Carla and even JACK.
It is not completely ready yet, but very, very close to done. Expect a few announcements regarding this in the coming weeks!

Something I need to mention... I know people have been asking about an ardour package update (in KXStudio repositories).
I will get to it eventually, yes, sorry for the delay.
Ardour is a different kind of build, so I need to find a nice way of handling it. (I want to repackage the official binary, as authors are ok with it)
Previously it was all very manual work, it is better to avoid that this time around.
My focus in the past few weeks has been on Carla and now the automated build setups, so packaging got put aside for now.

And speaking of packages, here is the list of updates and additions in regards to June and July 2020:

That is all for now, stay safe and sane out there!


> Carla 2.2 RC1 is here!
On 2020-07-16 by falkTX

Hello again everyone, it is release day! (casually late again, but only 3 days late this time, yay progress!)

This is the announcement of the first release candidate of Carla 2.2.
Carla is a fully-featured cross-platform audio plugin host, which itself can also run as a plugin.
As done with 2.1, there is no beta release for v2.2 and we are going straight into a release candidate.

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.

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:

Other notable changes

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.

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.

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.

Final note

Just a reminder that this is a release candidate, and not the final release yet.
I did my best to fix all issues that I was able to reproduce, but some can still happen.
Please let me know if find any, thanks!


> A DISTRHO-Ports update
On 2020-07-15 by falkTX

Hello again, another release for the Quarterly Release Pact is here.
This one is a "small" update of the DISTRHO-Ports project.
It is a more packager-focused release rather than user-focused, because the (super old) build system was finally updated.
This alone warrants a new release by itself, as it finally becomes possible for the project to be packaged in regular linux distributions.

There are a few new plugins and fixes with this release, bigger changes are coming at a later date.
I want to update the DISTRHO-Ports website and have "nightly builds" of the plugin binaries, but this will take time.
For now, at least we have the plugins building and working on modern distributions.

Here is a resume of the full changes since last release in 2018:

There are no pre-compiled binaries for this release, though the plugins are fully up-to-date in the KXStudio repositories.
You can find this 2020-07-14 release at github.com/DISTRHO/DISTRHO-Ports/releases.


> WineASIO v1.0.0 released
On 2020-07-15 by falkTX

Hello everyone, a perhaps unexpected release is here.
This is a release of WineASIO, as a way to announce maintainer change as well as making it up to date with current Wine.

The previous maintainer, Joakim Hernberg, publicly said that he was looking for someone to take lead on the project.
When I was doing packaging of WineASIO to the KXStudio repositories, there were a couple of fixes needed... and eventually just decided to maintain it since I was in a way already doing that.
With the green-light for taking over the project, I did a couple of changes that seemed (to me) relevant and useful.
The Cadence-specific WineASIO settings were also split off to become a standalone tool, and it is now the ASIO "control panel" for the WineASIO driver.

screenshot

I do not plan to make new development for WineASIO, only maintain it to keep it alive and working.
The new "control panel" was an exception due to it being, in my opinion, a user experience fix.
(understanding the Windows registry can be hard, so the "panel" allows us to skip on having to deal with that)

This is what changed compared to the previous official release:

There are no pre-compiled binaries for WineASIO, though it is available as a package in the KXStudio repositories.
You can find this v1.0.0 release at github.com/wineasio/wineasio.


> Carla 2.1.1 has been released
On 2020-06-11 by falkTX

This is a bugfix for Carla version v2.1 series, fixing many bug reports and stuff I found along the way.

Carla is an audio plugin host, with support for many audio drivers and plugin formats.
It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control.

Changelog

Downloads

To download Carla binaries or source code, jump on over to the KXStudio downloads section.
Carla v2.1 is available pre-packaged in the KXStudio repositories, ArchLinux and Ubuntu since 20.04. On those you can simply install the carla package.
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.


> KXStudio Monthly Report (May 2020)
On 2020-05-31 by falkTX

Hello all, another monthly report about the KXStudio project is here.
It has been a few months since one of these, which I apologise for.
It was wrong of me to assume I will have news every single month, some are just a bit slow on news due to external circumstances.

Anyway, a lot of work is going into Carla, lots of bug-fixes.
A good collection of them are piling up, which makes a v2.1.1 release worthy, so expect that in the next few days.

One of the new features in Carla is Linux VST3 support, already available if you use carla-git.
There is also a category filter in the add-plugin dialog now, and better handling of high-dpi mode.
That is basically it in regards to frontend/GUI changes, everything else is on the backend/audio-host side.
All of this will be in Carla v2.2, with a tentative release date of July 15.

Other developments happening behind the scenes are a DISTRHO-Ports update (setting old JUCE aside and using new juce6 branch for Linux VST3 plugins), plus updating its build system to meson.
The WineASIO project was finally given to me officially, so expect a release soon for that too.
There is also a big DPF rework going on, and a new project for cross-platform LV2 plugin binaries.
Those will be announced at a later point in time, once ready.

Regarding package updates in the repositories, there have been a few since the last monthly report. Those are:

Not so much work got done in regards to the website and documentation.
Perhaps for next time.

That is all for now, stay safe out there.


> Carla 2.1 is here!
On 2020-04-15 by falkTX

Exactly one year after 2.0, Carla version 2.1 is here!

Carla is an audio plugin host, with support for many audio drivers and plugin formats.
It has some nice features like automation of parameters via MIDI CC (and send output back as MIDI too) and full OSC control.

This is a small but significant update that builds up on top of what was released in 2.0.
Please see the 2.1-RC1 announcement for details on what is is new in 2.1.

Unlike last time, there are no official plans for version 2.2 just yet, my focus will now be going into the DPF and JACK projects instead.
The master branch of Carla's code repository is now for 2.1, while the previous 2.0 master got renamed "hotfix-2.0.0".
No new features will be added to 2.1 series, only bugfixes.

Changes since 2.1-RC2

Changes between 2.1-RC2 and 2.1-RC1

Downloads

To download Carla binaries or source code, jump on over to the KXStudio downloads section.
Carla v2.1 is available pre-packaged in the KXStudio repositories, ArchLinux and Ubuntu since 20.04. On those you can simply install the carla package.
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.


> KXStudio Monthly Report (February 2020)
On 2020-02-29 by falkTX

Hello everyone, it is time for another monthly report in regards to the KXStudio project.

First, there were many bugfixes made to Carla, we are very close to RC2.
I only have 2 things that I want to do before the RC2, first being fixing multi-instance under multi-client mode and second is to finalize the last couple of bugfixes.
So the RC2 should be out in a few days, maximum weeks.

Second, something that came out of (re-)packaging WineASIO (and moving away from Cadence, but that is a story for another day...).
I am taking over as maintainer of the WineASIO project.

WineASIO is something that is mostly "done", there is not much that we can add to it.
Since I have to keep it building in order to package it, I spoke with upstream and let them know I was available to take over.
(maintaince work is pretty minimal, just got to make it build basically)

We are trying to take over github.com/WineASIO organization, so we can place the source code repository in there.
If that takes too long, the repository will just end up at github.com/falkTX/WineASIO as it is for the moment.
In any case, we will see v1.0.0 release of WineASIO quite soon!

The KXStudio repositories' armhf build of surge has been fixed.
I have opened a pull request on upstream surge to discuss the armhf/arm64 needed changes (basically a SSE2 to NEON conversion).
They are quite open to it, which is nice to see.
We just need to fix some minor things now and that could likely be part of 1.7.0 release later on.

Finally, these are the package updates made in the repositories:

That is all for now. Have a great weekend everyone! :)


> KXStudio Monthly Report (January 2020)
On 2020-01-28 by falkTX

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

A few days ago, Carla 2.1-RC1 was announced.
As mentioned in that post, Carla's frontend move to C++ has started, for performance, reliability and debugging reasons.
It is going to be something that, even though means a lot behind the scenes, visibly nothing will change. (except performance)
Because of this, do not expect many UI related changes in Carla for the time being.

There were more package updates in the repositories. Those are:

A few of those were made possible thanks to LibraZik project, from which I imported a few.
I am quite grateful for them, and you should be too! :)

On a more personal side of things, I have started renting an office for work (both for employer and FLOSS stuff).
Its setup took most of the time on the holidays, and quite a fair bit in January too.
It is mostly done now, only final touches needed. It certainly helps as a kind of motivation boost, and as a way to keep focus too.

Next month will be slower than usual, as I plan to focus more on "boring" stuff like updating the website and documentation.
That is all for now.

Since I mentioned it, I leave you with a picture of the office (the working area).
See you next month!

office


> Carla 2.1 RC1 is here!
On 2020-01-19 by falkTX

Hello again everyone, it is release day! (kinda, just a casual 4 days late...)

This is the announcement of the first release candidate of Carla 2.1.
I am skipping the beta phase as done for the 2.0 release and going straight into a Release Candidate.
This means there will be no more changes in the graphical user interface or engine/backend features, except when required for fixing bugs.

Carla projects/sessions are meant to be fully compatible between between 2.0 and 2.1 versions, except for features marked experimental.
The "native" API to access carla as plugin (as used by LMMS) is ABI and API-wise backwards compatible compatible with 2.0.
If this is not the case, consider it a bug that needs to be fixed.

As with the v2.0 release, the list of changes is a little big, so let's split it by parts.
First, the highlights and major changes, in no particular order of relevance.


settings

Better CV Support

CV ports are now supported in the internal patchbay mode, meaning you do not need to use JACK with Carla in order to use CV plugins.

Automable parameters can now be exposed as a CV port, so they can be controlled by regular CV sources or other plugins.
This is a kinda feature preview, as there are some limitations at the moment:

  • Parameter changes are not sample accurate
    (in a later version, Carla will split buffer up to 32 frames for more fine-grained control changes)
  • Not all plugin formats and parameter types are allowed to be controlled this way
    (to be extended as I test more compatibility)
  • Only available for parameter inputs, not outputs

In order to make CV more useful by default, a new internal "MIDI to CV" plugin was added, originally created by Bram Giesen.
More plugins will be added as needed, for now I recommend to use ams-lv2 and mod-cv-plugins as they already do a lot.

Also, a new variant of Carla as plugin was created that provides audio, MIDI and 5 CV ports (for each side).
This allows CV signals to flow in and out of Carla as a plugin.


settings

High-DPI support (work in progress)

Initial work was done to support high-DPI screens.
Note that this was not tested very extensively, due to lack of proper hardware, but the requirements in terms of code are all there.
There are still a few "normal" resolution bitmaps in use, to be replaced in future releases.
You can click on the screenshot on the left to see Carla rendered at 3x the resolution.

So for now, the situation is:

  • Most of the icons changed to scalable format
  • UI will scale with the desktop automatically, as Qt takes care of that for us
  • Some bitmaps still remain, to be replaced by vector images in a future release
  • Not extensively tested, feedback is welcome

settings

Proper theme and Carla-Control for Windows

The Windows build stack changed from using official Python and PyQt5 packages to msys ones, allowing us to link against them using mingw (Carla does not support MSVC)
This makes it possible to use the proper "pro" theme like Linux and macOS already did, and also get Carla-Control finally working on Windows.

Previously, the Carla Windows builds were using Qt's "fusion" theme (which the Carla "pro" theme is based on), which looks very similar but misses all of custom tweaks made for Carla.
This includes, for example, preventing pop-up menus from taking the entire screen or ugly thick lines being drawn where a small one was expected.

A small but important step towards cross-platform feature parity. \o/


settings

VST2 plugin for macOS and Windows, plus exposed parameters

This is the final item that was missing for cross-platform feature parity.
We now have Carla as VST2 plugin running on both macOS and Windows!

Embedding of the full GUI on these systems is not possible, so a small "middleware" window is shown as the plugin custom UI.
Not the best experience, but allows Carla to finally work as VST2.

Additionally, 100 parameters are exposed to the host, dynamically used in the order of the plugins loaded.
So for example, if the first plugin in the rack has 20 parameters, the first 20 parameters of carla-vst will be mapped to that plugin.
This continues in order for the remaining plugin parameters until we reach 100 of them.

When Carla is loaded as an internal plugin, parameters will be dynamically available too.
This feature is not available in the LV2 version of Carla though, at least not yet.

Note: Carla plugins are not "notarized" yet, so they will not run under latest macOS 10.15/Catalina where this is a requirement.


settings

Wine-native bridge, sorta experimental

This is a way to load Linux binaries under Windows applications running with Wine, in case you need that for some reason
Personally I made it so that I could run the native Carla inside FL Studio, which allows me to use its sequencer but not have to deal with Windows plugins.

This is available in the KXStudio repositories as "carla-vst-wine" package, you need to copy /usr/lib/winvst/Carla* into your Wine VST dll folder to make it work.
It requires Carla to be installed system-wide, so it cannot work if Carla is downloaded manually.

Building it is kinda tricky, as it requires building a native-windows dll first, and then a few things with winegcc...
Packager documentation will be added soon to Carla's source code repository, so other Linux distributions can pick it up.

I demoed this feature at Sonoj last year (2019), you can watch it as the 3rd part of this video.

settings

Refreshed add-plugin dialog and favorite plugins

The add-plugin dialog had a major overhaul, now looking much better and with more content visible at once.
Target was to improve the user experience, making clear that there are filters available. (it was not so obvious in previous versions)

The star on the most-left section of the table is to mark a plugin as a favorite, which will add it as a shortcut to the right-click menus on empty rack and patchbay areas.

settings

Single-page and grouped plugin parameters

The dialog for the generic plugin parameter view also had an update.
All parameters are now placed in the same tab (separated only by input and output types), and grouped when supported by the plugin.
The options for mapping a parameter to a MIDI CC were taken out and replaced by a button that triggers a menu with the relevant options.

Note that, at the moment, only a few LV2 plugins support parameter groups.
This is because most hosts do not support this feature, so plugins do not have many incentives to support such a thing.
And with not a lot of plugins supporting it, hosts also do not care that much. The usual circular dependency deal...
But since the feature applies quite nicely to Carla, made sense to add it.

The group can be collapsed by clicking on it.

A similar feature will be added to the patchbay in a later release, so we can group audio ports too. :)

More UI changes

The rack items will dynamically show as many knobs as possible
You can now change the "skin" and color of any rack item, making it easy to identify certain plugins
Added buffer-size, sample-rate and xrun information to the status; clicking on the xrun counter will reset it to zero

Canvas changes

Right-clicking on a canvas group will show options for quickly connecting all ports to another group
Many small tweaks and fixes, plus a few extra actions, as contributed by Nikita Zlobin (to be documented on the user manual)
Support for Ardour-style inline-displays, marked experimental in this release (sadly cannot be made stable until Carla v3.0)

Carla-control and OSC rework

Carla's OSC support has been reworked, now has its own dedicated page in the settings.
Carla-Control has been extended to support all non-local-dependent features of the main Carla (like patchbay management and transport controls).
This will be extended even further in future releases.

AU and VST3 support is back, by leveraging JUCE

Disabled during a previous 2.0 beta release, support for the JUCE library was removed and replaced by a heavily stripped-down version of it. (while it was still GPlv2 licensed)
The reasons for that decision still remain relevant, but in order to keep in mind with Carla's goals, I decided to add back JUCE support - but now completely optional.
It will always be possible to build Carla without JUCE, it is only used for extra hardware and plugin format support.
In fact, Linux builds by default do not use it, as there is no need for it.

Anyway, the published macOS and Windows Carla builds do use JUCE, which means Carla supports VST3 under macOS and Windows, and AU under macOS.
As a bonus, it is now possible to show the custom control panel of ASIO devices. :)

Worth noting is that JUCE does not support VST3 under Linux at this point, so neither does Carla even if you build it yourself with JUCE enabled.

Other changes

Within a bunch of small fixes and new implementations, here are some changes that deserve to be mentioned:

Notes for developers and packagers

Notes for users

The code for scanning plugins had a little rework, again, making some internal data structures change.
Because of this, a full rescan of your plugins is needed after the update.

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.

Future and final notes

I have started a change of the Carla's frontend coding language, from Python to C++ (for performance, reliability and debugging reasons).
There are a few canvas related things, currently experimental, that can never be made stable or fast due to how Python/PyQt works.
Also Carla is not scaling very well at the moment, and the addition of CV controlled parameters and inline-displays does not help its case.
So a move of the entire frontend to C++ makes quite a lot of sense.
Whenever this is finished a new release will be made.
But it is going to be something that, even though means a lot behind the scenes, visibly nothing will change. (except performance)
Because of this, do not expect many UI related changes in Carla for the time being.

A user manual for Carla has been started.
It proved to be quite helpful for development too, as I had to justify why things are the way they are, and explain how they work too.
Now that Carla UI should not change too much for a while, it is the right time for such thing.
I personally dislike writing such things, but understand it can be quite useful.
The work-in-progress manual is at https://kx.studio/Documentation:Manual:Carla.
(Not much to see there at the moment though, give me time)

That's it.
Please remember that this is a release candidate, and not the final release.
Some issues are expected, I will do my best to fix all reports that get to me.
If I don't know about the issues though, I can't fix them. So please report any issues you find, thanks!


> KXStudio Monthly Report (December 2019)
On 2019-12-16 by falkTX

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

There is not a whole lot of new exciting stuff this time around, as most of the time was spent on Carla new features and bug-fixing.
I am doing a push towards CV support in Carla (a "MIDI to CV" internal plugin was added, for example),
with only 1 new feature to be implemented - allowing to automate any regular parameter with CV.
The idea is to make it easier to automate things in Carla, by exposing individual parameters in the patchbay as CV ports.
There is only 1 month left for the planned release, so going to be tight on time, but still seems doable, specially with holidays coming.
(so more free time to work on this)

There were a few minor package updates in the repositories. Those are:

A new small extra repository has been created, one I have been using for some time now.
This came out of the necessity to update JACK2, but JACK not being something we can distribute in generic packages like KXStudio does for applications and plugins.
A few pieces of software, like JACK2 and other libraries, cannot be made into generic deb packages.
So, I want to create a few small but nice repositories for basic utilities and nice-to-have things.
For now, I have created a first, small one for Ubuntu 18.04 users (which includes me, obviously :P) which contains an updated JACK2, Wine-RT, among other small things.
You can find more details about this repository and all future ones coming soon at https://kx.studio/Repositories:Extras.

In some news regarding the JACK2 project, it has its own news page now, so I won't be posting JACK2 related stuff here anymore.
The latest about it, which is worth mentioning, is that its mailing list is back online once again! \o/

Cadence v0.9.1 was released, just tagging it in its git repo so distributions can pick it up.
It was mostly needed due to an incompatibility with Python 3.8.

And finally, donations for the KXStudio project (basically myself) are open once again, now even with a Patreon page.
In the past I mentioned that, due to legal costs, it was not worth having them while in Germany and I would open them again once I moved.
That happened a few months ago, but I dislike dealing with these things, so it took some time...
They are open once again now, though I removed the PayPal subscription option and counter for now.
(I am intentionally not posting the link here, I trust that if you care enough, you know where to find it)

Next month hopefully a new Carla release will be here.
Catia will be made into a standalone project, leaving Cadence behind. But that is news for another time... :)


> KXStudio Monthly Report (November 2019)
On 2019-11-16 by falkTX

Hello everyone, it is time for another monthly report in regards to the KXStudio project.

First, the most important I think, some small repository changes have been made.
I added a "KXStudio" suffix to the repository names, so you get stuff like "KXStudio Plugins" in your package manager now.
This was requested by a user, and makes a lot of sense.
The bad news is that your package manager is likely to complain about the changes, as it thinks it is a sign of trouble.
That is not the case though, as I am here just informing you of that. :)
A quick "solution" to this is to simply delete the cached apt list information, so the package manager will not have the previous repository title, like so:
sudo rm -rf /var/lib/apt/lists/*

There were a few new packages added to the repositories.
First, for the basic infrastructure, we got meson 0.51.2 and premake5. A few projects need this in order to build, so we got to have them first.
The more exciting ones are added and updated application and plugins, the changes on that are:

Lastly, preparations for the next Carla release are well under way.
I was able to update and build generic Windows and Linux binaries (with Qt 5.9), and macOS is mostly working but still needs some fixing.
In the past I used to do a bunch of beta releases until the final one was declared stable.
I am going against this now, and will directly do a "Release Candidate" where no more new stuff can be added, only bug-fixing.
The next "Linux Audio release day" is January 15, so that will be the target date.

PS: Many of the new packages were imported from the LibraZik project, for which I am extremely grateful for.
The surge armhf build fails at this point, to be fixed soon.


> KXStudio Monthly Report (October 2019)
On 2019-10-15 by falkTX

Hello all, today is October 15, a Linux/Libre-Audio release day.
I do not have anything to actually release (that is ready anyway), so I thought to instead start something new.

Every month, starting with this one, we will have a monthly report regarding the latest stuff in KXStudio.
This will involve new releases, package updates to its repositories, important bug-fixes and short-term plans.
So let's begin...

First of all, in case you somehow missed it, a new JACK2 release is here!
This finally brings meta-data support into JACK2. More information about meta-data in JACK can be found here.

On the repositories, "helm" package had an issue where the plugin could not find its own presets.
(This was caused due to KXStudio repositories going ahead on renaming "helm" to "Helm" as the former already exists)

ZynAddSubFX got (re-)added, using its nice and fancy Zyn-Fusion UI.
In the old repositories there was "zynaddsubfx" for old UI, and "zynaddsubfx-git" for the new one.
The "git" package is gone, only "zynaddsubfx" is there now and it has the new UI. +1 for progress!

x42-plugins got updated to 20191013 release.

Fluajho, Patroneo and Vico were added. (nice simple tools from Nils Hilbricht)
These last ones were tricky since they use python libraries.
In order to make it a generic package I resorted to cxfreeze which makes it run independent of the system python.

Coming soon is Carla 2.1-beta1.
The actual software is ready for the beta1 release, but setting up the infrastructure for an updated Qt5 build is taking longer than expected.
The current 2.0 builds use quite an old Qt version: Qt5.5 on macOS, Qt4(!) on Linux, which I do not accept for new releases going forward.
Windows builds are ready to go though, you can find test binaries on Carla's github.
Once I finish setting up the builds for Linux and macOS, I will make the announcement. Very likely in mid-November.

Finally, Sonoj is coming!
Sonoj is an annual event/convention in Cologne, Germany, about music production with free and open source software.
It features demonstrations, talks and hands-on workshops.
You can meet like-minded people, learn insider knowledge and tricks, participate in their one-hour production challenge!
It is only a few days from now, so please get ready! :)
I will be doing a talk in Sonoj about the past, present and future of JACK.
So please come and say hi, registration is free!


Note: Since the KXStudio website has been internally reworked (removed mediawiki, much simpler PHP code now), the old news have been removed.