Home KXStudio > News
RSS

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

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


audiofile

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.


windows

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.


icons

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.

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

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.


> KXStudio Monthly Report (January 2021)
On 2021-01-31 by falkTX

Hello all, another monthly report about the KXStudio project is here.
Last month I completely forgot to write a report, with the end of year and preparations for all the releases.
Speaking of releases...

A few things were released just 2 weeks ago.
From a quick update to DISTRHO/DPF-related plugins, to announcing PawPaw for cross-platform LV2 plugin builds.
I had an idea to release Carla v2.3 also at the same time, but a few things are still not ready.

And speaking of Carla now, good progress has been made to setup automated builds, at least for macOS and Windows (as those are the more annoying to build for, compared to Linux or BSD).
The dreadful issue of DLL hell causing Carla not to start on Windows seems to be fixed with this new updated build setup.
There are a few things in progress that I plan to finish before calling it final:

  • macOS arm64 build loading Intel 64bit plugins (already working for VST2, but not VST3)
  • revised and rechecked LV2 patch/parameter support (seems good to me, just needs more testing)
  • expose/export the internal audio and midi file players as lv2 plugins (almost there, some bugs still present)
  • allow to use desktop theme icons (mostly finished, just a few dialogs need to be adjusted)
  • translations (but as other things take priority for me, this might skip v2.3)

I am not mentioning here things that are already completed, it is just to give you an overview of what is left.
Plan was to have it finished by the end of January, but obviously didn't happen, so we can say "coming soon", again. :P

Once more Carla stuff is finished and mostly only testing is left, I will begin some very much needed work and attention for DPF.
DPF is using a very old pugl version, modified along the way but mostly matching the version used in x42-plugins.
pugl API got revised and improved so much that feels worth the update.
I started this already, but had to dedicate my attention to other things in the mean time.
Target is to not only update pugl, but an overall cleanup and minor reworks of the API where suitable/needed.
By end of next month I will try to give a summarized report of the update status.

Regarding packages in the KXStudio repositories, finally there has been some updates. Those are:

  • die-plugins added
  • adlplug updated to 1.0.2
  • dpf-plugins updated to 1.4
  • distrho-ports updated to 2021-01-14
  • drumgizmo updated to 0.9.19
  • lsp-plugins updated to 1.1.28
  • new-session-manager updated to 1.5.0
  • x42-plugins updated to 20210114
  • zam-plugins updated to 3.14
  • cmt fixed (symbol visibility issue)
  • setbfree small fix (removed unused b_conv vst)
  • whysynth fixed for newer distros

That is all for now, stay safe out there.


> Announcing PawPaw: cross-platform LV2 ports for macOS and Windows
On 2021-01-15 by falkTX

PawPaw is an open-source project that builds and packages cross-platform LV2 audio plugins (among other things, but let's focus on this now).

It was created out of the need of many open-source developers to easily build their stuff for macOS and Windows, where usually dependencies are involved which need to be built manually.
In order to make audio plugins self-contained, these dependencies/libraries need to be built statically, which most packaging projects do not do.
Also, most open-source audio plugin projects do not have binaries for macOS or Windows, making it very difficult for users in these platforms to enjoy them.

That last part is crucial.
While on Linux LV2 is king, with so many plugins released as LV2, the same is not true for other platforms.
I want to change that, so that the usual excuse "but there are no plugins, we won't bother with LV2" of audio developers can no longer be used.
It is the typical circular-dependency problem. There are no hosts because there are no plugins and vice-versa.
Hopefully with a big set of plugins, the situation will change.

For the first release of PawPaw we have the following LV2 plugins: (note some of these are big collections of many plugins themselves)

  • abgate
  • artyfx
  • blop
  • caps
  • die-plugins
  • distrho-ports (arctican, dexed, drowaudio, klangfalter, luftikus, obxd, pitched-delay, refine, tal, temper, vex, wolpertinger)
  • dpf-plugins (glBars, kars, max-gen, mini-series, mverb, ndc-plugs, nekobi)
  • fomp
  • mda

Every single plugin has automated meta-data validation and runtime testing to make sure they work correctly.
The quality of the plugins depends on the respective developer and project of course, but they should be safe from crashes.

A big question now is "how can I use them?".
At this moment, from what I am aware, only Ardour/ Mixbus and Carla support LV2 plugins on these platforms.
Some applications like Audacity, Kushview Element and Mixxx support LV2, but usually only in Linux builds.
Carla works as a VST2 plugin, so you can use it as a way to bridge these to regular hosts, but obviously not ideal.
But hey, one step at a time. We have a few more LV2 plugins now on these platforms, and moving forward the list is only going to grow.

Screenshots

Ardour + Windows

pawpaw-1.0-win

Mixxx + macOS, loading ArtyFX plugins

pawpaw-1.0-mixxx

Downloads

You can find the macOS and Windows installers at https://github.com/DISTRHO/PawPaw/releases.
For macOS, 10.12 is required. These are universal builds that already support x64 and arm64 combined.
For Windows, Windows 7 or superior is recommended, and a CPU capable of doing SSE2 operations is required.

Future plans

For the future, I plan to rework the DISTRHO website so it contains all these details.
Mainly so that it is a better overall presentation.
And of course more plugins, though pull-requests are also very welcome for those.
Carla is slowly in the process of using PawPaw for automated release builds, more on that at a later time.


> A small set of plugin updates
On 2021-01-15 by falkTX

Hello hello, it is release day again!
Keeping up with the cool people, here is a set of plugin updates for the Quarterly Release Pact.
Do note that these are all source-only releases. For binaries, use your Linux distribution packages or the PawPaw project.
With that said, let's begin...

DISTRHO-Ports 2021-01-14

DISTRHO-Ports is a set of GNU/Linux and LV2 ports, imported into the codebase for easy packaging, maintaince and all that.
This is a bug-fix release, getting the project ready for cross-platform builds and automated validation/testing.
Changelog:

  • Fix out of bounds buffer write in drowaudio-reverb (leading to memory corruption and/or crashes)
  • Fix lv2 export preset meta-data validation
  • Fix lv2 ttl generation when cross-compiling (e.g. using mingw and wine within linux)
  • Fix exported symbols
  • Fix build/compatibility with macOS 11 / arm64

DIE-Plugins v1.1

DIE-Plugins is a collection of plugins imported into the DISTRHO project for easy packaging.
Currently has only Ardour (Community Effect) plugins, mainly so you no longer need to build the entire Ardour codebase to get these plugins.
Changelog:

  • Fix a-fluidsynth port names
  • Sync with upstream, now features are listed in ttl thus passing plugin checks/validation
  • Use -fopenmp for building internal fluidsynth (where possible)

DPF-Plugins v1.4

DPF-Plugins is a collection of DPF-based plugins, including Kars, MVerb and Nekobi.
This is yet another bug-fix release, tagging a release before a big DPF overhaul planned for next month.
Changelog:

DPF:

  • Auto-detect compiler target, fixing as-is build with ARM systems
  • Allow to use EXE_WRAPPER as makefile option, to help cross-compilation
  • Fix build with headers in custom path
  • Fix "make install" for macOS and Windows
  • Fix exported LV2 metadata to pass checks/validation
  • Make mouse-wheel delta independent of window size

Kars:

  • Fix audio buffer reuse, causing bad audio in some hosts

Nekobi:

  • Set default MIDI CC for all parameters

More releases coming soon, stay tuned!


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


← PreviousNext →