Home KXStudio > News
RSS

KXStudio : News

> KXStudio Monthly Report (February 2021)
On 2021-02-28 by falkTX

Hello all, another "monthly" report about the KXStudio project is here.
There is not a whole lot of stuff this time around, this being a short month and also me moving to a different place.
But there are still some things worth reporting, so let's get to that.

First, in case you missed it, Carla v2.3-RC1 was tagged and released, marking the first PyQt-based project of mine to have automated release binaries.
This is crucial for having more frequent releases, as it reduces the workload that each release requires.
It is now basically just setting the commit hash in the Carla-Releases project, and wait for the builds to be done.
And speaking of Carla, a few small issues were found and already fixed, so you can expect RC2 to be out very soon.

On non-KXStudio related news, Vital is now open-source.
Obviously I have interest on packaging it in the KXStudio repositories but, even though the project is released under GPLv3, there are restrictions on the use of the name and its trademarks.
So the idea right now is to (im)port it over to DISTRHO-Ports project, with a change of name to Vitalium and an alternative icon made by unfa.
This is already on-going, with one change required which was to update the DISTRHO JUCE fork to the latest upstream v6.0.7 - this is done now (including rebasing all of DISTRHO JUCE patches).
I will write something when the porting process is over, likely doing another release of PawPaw since simply having Vitalium as cross-platform LV2 plugin is worth an update.

Package updates in the KXStudio repositories are very few this time.
Basically soundtracker was added (as a special request from a friend) and Helio was updated to v3.3 (which served as a way to test the updated JUCE).

On a final note, I am experimenting with a public kanban-style board.
Not just to organize myself a bit better, but also as a way to let everyone know what I am working on at the moment and things that I will start to do relatively soon.
You can see what has already been done this month so far (let's pretend we are already in March) and what might be coming soon.
I am still playing with colors and tags, but general idea on the colors at the moment is:

  • yellow: packaging stuff or something related to kxstudio repositories
  • orange: articles or things to write (usually releases or news)
  • green: coding task which is similar to something I did before, so "easy" to do
  • red: bug-fixes
  • blue: porting over something that already exists/was done before. involves boring, copy, paste and adjust work
  • pink: brand new projects or things to do, which usually involve learning, research, testing, etc. can take long

I have recently been trying to get some sort of crowd-funding going (to help in terms of financial support).
If you are a sponsor/subscriber, you might have felt that these monthly updates are too spread out and too few.
So a public work-tracking board seems like a nice middle-ground, a way to indicate what is happening on a specific moment without having to wait for monthly reports or big splashy news.
For now you can access the board at board.kx.studio; later on I will see if it can be embed into the main website.

If you see anything you like in there or just simply appreciate the kind of work I do, please consider a donation.
I am not taking feature requests at the moment, as there is quite a few things in the backlog already, but once most of the DPF-related work is complete, I will revisit this idea.
Thank you in advance for your support, stay safe out there!


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


← PreviousNext →