Home KXStudio > News
RSS

KXStudio : News

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

  • Add CHOW plugin (used to test updated JUCE)
  • Include new and legacy JUCE in source code (legacy JUCE will only receive bug-fixes)
  • Rebase DISTRHO-Ports patches against JUCE6 codebase, available in libs/juce-current/patches
  • Fix LV2 wrapper to build against latest JUCE
  • Fix build for macOS, including universal builds
  • Fix build for Windows (using mingw)
  • General cleanup to build system

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


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

  • Add xycontroller plugin
  • Auto-select text in plugin search entry when focused via shortcut
  • Compress canvas clipboard image saving (as PNG)
  • Disable OSC by default on macOS
  • Fix crash when receiving unexpected VST2 time information
  • Fix current project filename persistence after engine stop
  • Fix deadlock when using VST3 plugins inside Carla as plugin
  • Fix listing LV2 plugins on Windows (2.2 regression)
  • Fix oddities with MIDI learn
  • Fix potential crashes when opening or hiding plugin UIs
  • Fix some plugins not having all their audio ports exposed
  • Fix some plugin UIs not in front of Carla when first shown
  • Fix wine bridge build against winehq-stable and winehq-stable
  • Overall fix to midi pattern plugin
  • Package macOS plugin version, making Carla-Plugin usable with macOS 10.15

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!


← PreviousNext →