THIS IS A FAKE PAGE, KXSTUDIO NEWS USES A DYNAMIC MODULE NOW
> KXStudio Monthly Report (August 2021)
On 2021-08-31 by falkTX
Hello all, another one of those monthly reports about the KXStudio project is here.
This month as you might have seen we had
not one
but
two Carla releases.
Mostly bugfixes as expected, the new stuff was all very minor compared to past releases.
A few additonal things were added/fixed in Carla already since then, but all still very minor.
Whatever is ready by next release day (October 15) will be what gets in next, just to get a nice pace of releases going.
DPF got a lot of attention once again.
It is now on a state where I can focus on bugfixes rather than new things,
even though I still want to try official SVG support.
Everything that was in the previous DPF (that is, the git
master branch)
should now be in the develop branch.
I am confident enough in this that made a new
"main" branch
to be the default clone target (I will keep the old master branch untouched, as there are a few minor things that can't be made backwards compatible).
Something that got a fair bit of attention was high-dpi support.
Previously DPF read the scale factor from the host (if provided, most do not) but now it can also figure it out on its own as fallback.
There was a lot of
back and forth
until
it was verified
to
work on all major OSes and formats.
I also updated the DPF-Plugins project so that all plugins contained within it support this.
Even though some being bitmap-based causes their UI to look blurry, at least they will appear in the correct size.
You can see them in the screenshot below.
Some care was given to the
sofd module
used by DPF as fallback X11 file browser dialog.
It serves us well enough because it generally works fine, but never looked that great in my opinion..
I spent some time to change its colors a bit to follow a more traditional/usual approach, plus a dark theme because yes.
And then on top make it work nicely for high-dpi setups too.
Not everyone uses dark themes, so there needs to be a light theme option too, not sure yet if it can be chosen automatically.
Personally I think it looks much better, but tastes are subjective. Anyway, the differences can be seen below:
(will submit the changes upstream after all the DPF file dialog stuff is finalized and stable)
As a final thing to mention for DPF, the last item that needed attention before the rework being in feature-parity with old branch, is external UI support.
The idea being that we can reuse DPF APIs and plugin export support but do the UI stuff completely separately - be it separate process or a custom implementation.
As long as it is in a way the plugin host expects things (ie, X11 window on Linux) things should just work..
The old DPF master branch didn't support this fully, but there was some experimental stuff in place.
Now it is back again, with a little
more documentation
and better support - it should eventually be an official DPF feature.
You can follow its discussion and progress
here
and because everyone likes screenshots, here is one as a quick test of mpv running as the external UI:
One little plugin I made quite some years ago but left it aside due to difficulties in packaging was
ProM.
ProM is basically
projectM
in plugin form, on top of DPF.
It allows you to have old-school milkdrop-like visualizations on your DAW/host, it is an audio plugin after all.
After a little fighting over building projectM correctly (directly in ProM source, aka "vendored"),
I can now say it builds and runs on at least GNU/Linux, macOS and Windows.
Taking from
last month's automatic build setup,
binaries are
automatically generated for these 3 OSes directly from GitHub.
To make Linux distribution packagers happy, the option to build against system-provided libprojectM is still present,
and should work even better now as it finds the shared data prefix to use via pkg-config.
Worth of a little note, I updated the kx.studio website to better work in smaller screens, or vertical ones, or both like in mobile phones.
The content itself is mostly unchanged, still need to tackle that (specially documentation, there is a lot of old stuff there).
They typically call this "responsive design" I guess.
The news part I didn't update, as otherwise it would break RSS readers, and the top menu needs to become of one those "hamburguer"-style things when width is low. A task for later.
A final website update worth mentioning is the addition of the
board
and
development
pages.
As people sometimes wonder what I have been doing lately (specially important for those that give out donations, thanks for that by the way!)
the board view is now integrated into the site. I added color descriptions there too.
Hopefully that makes everything more clear, and more visible too of course.
That is all for now.
If you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there!
> Carla Plugin Host v2.4.0 is here
On 2021-08-20 by falkTX
Hello everyone, this is the announcement of the 2.4.0 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 was initially meant to be 2.3.3 but there are some small new features so treating it as bugfix would be misleading.
Semantically-speaking, new stuff means new version, so 2.4 it is.
I was going to wait a bit more until a release, but it is Ubuntu feature freeze time, so got to go with what is available now in order to make it.
Anyway, let's go through the (small) release highlights.
LV2 Gtk UIs on any system
After some changes on how Carla handles its Gtk UI bridges, it is now possible to build and use them on any system.
Currently there are no LV2 plugins released on macOS or Windows that make use of such a UI, but could change soon via
PawPaw. |
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".
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.
This was already the case for v2.2 and v2.3 but it is worth reiterating:
When using JACK2, the canvas - plugin integrations requires at least JACK2 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) supports both Ubuntu 18.04 and 20.04.
The UbuntuStudio backports PPA also provides updated JACK2 packages.
There are no official Linux binary builds for v2.4 at this point.
Carla v2.4 is provided in the KXStudio repositories and in many official Linux distribution repositories too anyway.
As always, if you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there!
> Carla 2.3.2 has been released
On 2021-08-08 by falkTX
This is a bugfix for Carla version v2.3 series, mostly fixing a few regressions with the previous release.
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".
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.
As always, if you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there!
> KXStudio Monthly Report (July 2021)
On 2021-07-31 by falkTX
Hello all, another monthly report about the KXStudio project is here.
First, in case you missed it,
Carla v2.3.1
and
JACK2 v1.9.19
have been released.
A few issues were reported against this latest Carla release (regressions) so expect a v2.3.2 very soon.
Due to travis-ci.org shutting down (and the replacement travis-ci.com being absolutely terrible) the binaries for these releases were not automated.
Which brings me to this month's first topic.
Since travis became unusable, and manually doing builds everytime is a bit of a pain, I began looking for alternatives.
GitHub Actions seems to be what most developers have run to, but I am not really happy putting yet more stuff into GitHub.
While there are some alternatives, even self-hosting, in the end being pragmatic I threw the towel and just let GitHub handle it.
For projects that already have a presence on GitHub, the integration just makes sense.
One of the issues with travis was the lack of daily/latest build binaries.
While it was possible to setup, it usually required creating a tag or release to upload the binaries into.
GitHub Actions can have "artifacts" associated with any build, with no special setup required from contributors.
This was the main thing that pushed me to just stick with GitHub for this.
If someone external to a project submits a pull-request, there will be automated builds with the proposed changes ready for testing.
The fact that builds start immediately (instead of sometimes having to wait several hours like in other services) is super nice to see.
But are there any benefits to users, you may ask.
Well, take for the example JACK, for which I already added automated builds.
If you open the
JACK2 GitHub Actions
page, there will be macOS and Windows installers for each build going forwards.
When there comes a time where a change requires testing, there is no longer a need to build things manually.
Automated builds via GitHub Actions (and the resulting artifacts) also fit nicely for DPF.
I was able to create a "workflow" file (that is, a file that describes what to build and how) for DPF-based plugins,
where it builds and publishes linux-armhf, linux-arm64, linux-x64, macOS (universal), win32 and win64 binaries,
all in a single file.
So you can basically take
this file,
place it in your own repository, and directly have all those linux, macOS and windows builds right away.
I already have this setup for pretty all of DPF-based plugins under the
DISTRHO GitHub organization.
As an experiment, I
added the same support to dragonfly-reverb project.
So now if you go to its
GitHub Actions
page and click on the latest commit, you will be able to download and install/use the build artifacts.
This is extremely valuable, as not everyone has a macOS or Windows machine in order to do builds for those.
Or maybe the other way around, someone on macOS or Windows without a Linux machine, etc etc.
I also think of the situation of people wanting to try out a change in the code but don't have the developer tools needed to build the project themselves.
While maybe not a big issue for DPF/Plugin projects (as they tend to be small in size),
for things like Carla where build dependencies are a lot more involved, almost no one will have everything needed to make binaries alike the official ones.
With these automated builds, you can basically create a pull request and just enjoy the build - which will follow the same exact conventions as official builds.
Now, this is not in place for Carla just yet, but it is in progress.
Currently DPF (plus the plugins made with them under DISTRHO) and JACK2 have automated builds via GitHub Actions.
More will follow soon.
There are no updates regarding packages in the KXStudio repositories at this time.
Even though some packaged plugins are out-of-date, yes..
Thinking of packages, I might just do a whole month focused on them soon.
There has been quite some nice releases of open-source audio plugins lately that would be great to have packaged,
but lack of proper time for them is a problem.
As the last details on DPF new release are being resolved, packaging might be the next thing to focus on.
Special attention is needed on JUCE things though, because the LV2 wrapper is still somewhat of a pain for external developers to integrate properly.
(If only JUCE devs made the LV2 wrapper official! errr...)
Anyway, this packaging thing is not so much of news but more of wishes.
Before new JUCE-based plugins get packaged, I want to sort out the LV2 wrapper mess, make it as easy as possible for developers to have official LV2 variants.
Only me building LV2 versions (for the KXStudio repositories) is not something I want to push for anymore,
rather it would be best for everyone to have said LV2 versions.
That is all for now.
If you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there!
> Carla 2.3.1 has been released
On 2021-07-16 by falkTX
This is a bugfix for Carla version v2.3 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.
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".
Bug reports and feature requests are welcome! Jump on over to the Carla's Github project page for those.
This was already the case for v2.2 and v2.3 but it is worth reiterating:
When using JACK2, the canvas - plugin integrations requires at least JACK2 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) supports both Ubuntu 18.04 and 20.04.
The UbuntuStudio backports PPA also provides updated JACK2 packages.
There are no official Linux binary builds for v2.3.1 at this point.
Carla v2.3.1 is provided in the KXStudio repositories and in many official Linux distribution repositories too anyway.
> Changes in the extra KXStudio repositories regarding JACK2
On 2021-07-05 by falkTX
This is a small notice to everyone using JACK2 with the extra KXStudio repositories. (those for Ubuntu 18.04 and 20.04)
A change in the JACK2 code has made it so a restart of the server is required after the update.
The technical reason for this is an internal ABI change due to forced-alignment in a few struct/classes.
This change is required for some ARM platforms where non-aligned access results in a bus error.
If you use jackdbus (likely with KXStudio stuff), you will need to actually kill it. (or use the usual cadence-session-start -s command.
If that does not work, good old restart is your friend. :)
This small update brings JACK2 v1.9.19 early, as a way to get a little more testing before official release.
That said release is planned for April 15.
> KXStudio Monthly Report (June 2021) and a Little Personal Note
On 2021-06-31 by falkTX
Hello all, another monthly report about the KXStudio project is here.
A bit late this time, but let's ignore that. :)
> KXStudio Monthly Report (June 2021) and a Little Personal Note
On 2021-06-31 by falkTX
Hello all, another monthly report about the KXStudio project is here.
A bit late this time, but let's ignore that. :)
DPF
got most of the attention again.
Things are progressing, not as fast as I hoped, but there is progress.
(I really underestimated the amount of time DPF would take)
The main reason for the DPF attention and rework
- updating its
pugl graphics backend
to latest upstream with no patches - is complete.
Only 1 small change is still custom, related to using
sofd
as a fallback file browser dialog on Linux.
After
some discussion with the author,
I realized such a change/patch doesn't belong in pugl.
I will change this part of DPF at a later time.
There are some small additions made on DPF-side of the code for pugl, but nothing that requires changing pugl itself.
New stuff was added in DPF of course, first we have a complete
port groups
implementation, based on an
initial PR from Jean Pierre Cimalando.
It is supported on LV2, VST2 and JACK targets, wherever is possible on those anyway.
For LV2, port groups are set in the meta-data for both audio/CV ports and parameters.
For VST2, parameter groups are supported (named categories in VST world)
For JACK, lv2-like meta-data is set on the audio and CV ports.
Next, the JACK target can now always be built, by including
jackbridge
code from Carla (adapted to make fit DPF better, also liberally licensed).
This makes it so that:
As a 2nd step on top of this,
RtAudio
is used as fallback in case JACK is not available or connecting to the JACK server fails
(usually because it is simply not running)
This has been requested a few times, and it is finally here.
DPF will setup RtAudio so it opens the default audio input and output as needed. MIDI is not supported yet.
In any case, such fallback makes testing of DPF plugins much easier, specially on systems that do not have JACK.
Moving on, I started some
classes that simply do event handling,
split off from the ImageButton and ImageKnob into something generic.
The idea here is to make it easier for developers to get a working widget from scratch.
Maybe this will help DPF based plugins to be more consistent on their behaviour too.
Note that this work is not yet finalized, so these classes are not yet documented.
I am using them on a new set of plugins, coding on a as-needed basis, so this will keep evolving over time.
More stuff was added too, though not as substantial, including (in no particular order):
DPF is now at a point where I want to focus on stability and testing.
Out of all feature requests, only SVG support is deemed important and "breakage-worthy" (if that makes sense).
Once SVG support is in, there will be a feature freeze and then getting everything to work at least as good as before.
As a way to stress-test the new DPF and also start having some usable
DPF-Widgets
I began a
new project called One-Knob Series
that is going to be slowly brewing for the upcoming months.
I am not taking a rush on this one, its initial purpose is to test DPF but it so happens that it is also a nice, fun and useful project.
The idea here is to make a collection of stupidly simple but well-polished and visually pleasing audio plugins,
with as little controls as possible, often just one knob and a few options.
Eventually they will be not just as a test for DPF, but also as a show-case of what it can do, plus give an example of good practices within DPF.
The guidelines for the collection are:
I have a few ideas for useful one-knob style of plugins, to slowly be put into action throughout the year.
Before you ask, you can already build and use them yes.
I don't recommend doing so right now though.
A new Carla release is coming very soon, for the quarterly release pact once again.
It is going to be a bugfix release, I will write more details about it in 13 days for the 15th of July.
JACK2 will very likely see a new version too, pretty minimal but keeping with the spirit of doing regular releases.
Now, into some personal notes...
I am a little frustrated, perhaps disappointed, that pushing for donations doesn't work.
The number of subcriptions has been going down, not up.
While I want to keep doing these kinda of things, being realistic, it is really not sustainable.
All the free time is basically spent on this, but it does not pay off.
Perhaps that should have been expected..
It seems that (in my opinion), in order to make it really pay off, a whole lot more effort would be needed.
Not just with coding, but more regular interaction with community, basically a whole lot of reporting and being present.
The projects that really succeed in such funding pretty much always have someone very "present" and visible within their community.
It is tough, and maybe was just not feasible at all. We know audio development, specially on Linux or open-source, is very very niche.
So it is clear that keeping this up as-is is not possible, a lot of my life stuff was ignored or put on hold (it was lockdown anyway, so not much of a problem).
For the sake of sanity and balance, going forward for the next 6 months (so the rest of the year), plan is now:
And that's all for now.
Obviously I will still keep working on these things, don't worry.
Specially Carla and DPF have my main attention, but will be on a more reasonable pace from now on.
As always, if you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there! See you soon!
> KXStudio Monthly Report (May 2021)
On 2021-05-31 by falkTX
Hello all, another monthly report about the KXStudio project is here.
I skipped last month as there was not much to report.
Mainly there were new releases, but those had their own announcement (specifically,
Carla v2.3
and
JACK2 v1.9.18).
Afterwards there was a small personal situation (that is still unfolding) that took all my free time, so that was it.
There are a few updates related to the month of May though!
The main thing to report today is all the work that I've been putting in
DPF
recently.
This has been a long-time coming, but better late than never.
For those unaware, DPF is a very small C++ framework to create audio plugins with.
It has UI support, but it is intentionally not a fully-fledged UI toolkit, same for its DSP side.
It can export as LV2, VST2 and other plugin formats, but it does not try to do much more than that.
Native OS events is handled behind the scenes via
pugl.
One major task to do was updating to
latest pugl,
because it supports many more things compared to old versions.
pugl had its event system completely reworked though, so we can't just update and use it as-is.
In the end, this update work is something that
took several weeks.
I took the chance to rework some core components of DPF UI handling together with this,
as there were a few parts of the code that
proved confusing
to
other developers.
Also added in
testing units and demo applications
to help test several parts of DPF, though this is still very much work-in-progress.
This was specially useful to ensure core parts were working before proceeding with the rework.
Related to pugl update and rework, the Cairo backend of DPF is now pretty much on-par with its OpenGL one.
The Demo tool (where we test images, events, resizing, etc) has consistent behaviour between the two.
Continuing with the rework,
special attention was given to resizing.
Resizing in LV2 UIs has always been something very painful, which still does not work correctly in many hosts.
One culprit of this was the bad initial decision to use an LV2 extension to deal with UI resizing.
Turns out,
we do not need this at all!
So the next version of DPF will
no longer make use
of
LV2 UI resize extensions.
We will need to accommodate hosts to this, which is a breaking change.
But it is not like LV2 plugin-side resizing was working well in the first place anyway.
I already
did this for Carla.
Likely will do similar things to
suil
if no one else does.
On even more DPF news, I created a new
open-source code repository meant for reusable DPF UI widgets.
It has come to my attention that developers struggle with DPF having very little common widgets they are used to.
I have made a few ones based on images for the
DPF-Plugins collection,
but some developers struggle to create individual widgets from scratch.
This code repository will evolve over time, obviously as a new project which is only a few days old there is not much to see.
One common request has been a resize handle, so that for plugin formats like VST2 which do not allow user-side resizing we still have a way for the user to resize the UI.
There is one
generic resize handle in the repository now,
usable for both Cairo and OpenGL backends.
The first real widgets I am contributing to the repository are a port of
oui-blendish
which provides blender-style looking widgets.
I am still setting up the whole thing, but initial impressions are very good. It even works with High-DPI / custom scale factors!
(ignore the bitmap icons on the screenshot below, those are only used in testing, I will later either replace them or remove them)
Finally on DPF side, as contributions by Jean Pierre Cimalando,
CMake is now supported
for building DPF and using it in plugins targeting DPF.
As a second step on top of CMake, it is now possible to
build DPF with MSVC on Windows.
I tried this myself and was able to build a DPF VST2 plugin with MSVC and run the output binary inside Carla.
This is not my development workflow by any means (it was the first time I used MSVC!) but it opens up the process for many more people, which always great.
One last bit of news regarding DPF is that I started testing the waters for VST3 support.
There is almost nothing to see just yet, as there is enough to do in DPF regarding polishing, fixing bugs and handling requests so that VST3 work is not a priority.
It is something that I have took an interest on lately though, as a potential way to attract commercial developers/vendors to DPF.
(and perhaps some well needed funding? who knows..)
Work on DPF will continue, you can grab all these changes from its
develop branch.
Expect more news about it next month.
While most of my time and attention was given to DPF, a few other things happened.
There is the whole "Audacity was bought up by Muse Group and added CLA, plus telemetry coming soon" thing...
I did some tests with building Audacity with mingw, and succeeded in setting up scripts to
build required dependencies
and then
build audacity itself.
From what I tested on Windows everything seems to work.
(screenshot below is from Wine, but I also tested on real Windows via Virtual Machine)
Most mingw needed fixes were
submitted upstream,
but them now requiring a CLA means the PR will likely stay open indefinitely.
Also did some tests with
building Audacity with wxQt
and while it kinda works, still has some obvious issues - the wxWidgets Qt backend is not feature complete so it is normal for those to happen.
It is very likely I will end up maintaining some custom builds for Audacity once more network features creep in
(analytics is coming to Audacity for sure, it is just a matter of when and how).
I am not interested on a fork, only in a way for casual users to get similar builds to the official ones without user-data tracking.
There are some other random things too, for example adding a new "-w" argument to the new jack2 zalsa tools so that it
waits until the requested soundcard is available
instead of failing to start.
This is very handy when adding it as part of some boot process.
Carla has also seen some
pipewire-related
fixes.
It is still not working 100%, but already know of a solution for them, just need to put that into code.
Expect a v2.3.1 release soon with these fixes, and also the LV2 UI resize handling mentioned above.
Finally I added support for
FFmpeg JACK output.
Seems to work well from what I tested, but I no longer have a need for it.
Once I am done with DPF and other things, I will try to submit this upstream.
Regarding packages in the KXStudio repositories, there are some small updates. Those are:
That is all for now.
If you appreciate the kind of work I do, please
consider a donation.
Thank you in advance for your support, and stay safe out there!
> Carla Plugin Host v2.3 is here
On 2021-04-15 by falkTX
Hello everyone, this is the announcement of the 2.3 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 specific release, compared to v2.3-RC2, brings some much needed fixes to the MIDI Pattern plugin - it finally works as expected.
There were some fixes done on the patchcanvas side, and for other stuff as reported by users.
The full list of changes for v2.3 (coming from v2.3-RC2) are:
The v2.3-RC1 announcement already listed the new features that v2.3 brings (compared to v2.2), but let's go through the release highlights again.
General improvements to AudioFile plugin
The AudioFile internal plugin received some deserved attention this time around.
Both Audio and MIDI file plugins are now exposed as LV2 plugins, allowing to load and use these plugins outside of Carla. |
Reworked Windows builds
The infrastructure used to build Windows binaries is now through
PawPaw,
as done with
JACK2
already.
For users, this means these binaries are more robust and with less dependencies.
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)
Finally, it should be possible to build Carla under msys2 on Windows now. |
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.
This was already the case for v2.2 but it is worth reiterating:
When using JACK2, the canvas - plugin integrations requires at least JACK2 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) supports both Ubuntu 18.04 and 20.04.
The UbuntuStudio backports PPA also provides updated JACK2 packages.
There are no official Linux binary builds for v2.3 at this point.
Since v2.3 the official builds are automated, but I did not bother setting that up for Linux yet as it is easier to get a working Linux build compared to macOS and Windows.
Carla v2.3 is provided in the KXStudio repositories and in many official Linux distribution repositories too anyway.
> KXStudio Monthly Report (March 2021)
On 2021-03-31 by falkTX
Hello all, another monthly report about the KXStudio project is here.
If you have been paying attention to these reports, you likely already know what is going to be covered here.
Starting late February, I began using a
public kanban-style board
in order to show/list the things I am working on and plan to do on the short and medium term.
In a few days I will delete the "done" items related to March, so that the "done" stuff actually relates to the current month.
Now getting to the news..
First, in case you missed it,
DISTRHO-Ports and PawPaw
had a new release,
which finalizes the custom/redistributable Vitalium fork of Vital.
While testing, a few issues on the JUCE LV2 wrapper
were
found
and
fixed.
To the point of, at least on Linux, we now have the LV2 version behaving better than the VST3 one.
Additionally, this
PawPaw
release automates the macOS-universal builds, something that is being applied for Carla and jack2 next releases.
Speaking of Carla, the
2.3-RC2
version was tagged, with the final v2.3 release scheduled for April 15.
The remaining things to check and fix are all very minor, so we are all good for a release anyway.
And speaking of jack2, current plans are to fix the macOS-universal meta-data situation among other minor things where possible.
I began fetching the zita-a2j/j2a code to work as internal client (just like jack1 does) but found a few issues while testing.
It already works well if the internal client is not unloaded, which is good enough for the setup I had in mind for it first - using it to
expose USB audio gadget mode
in a MOD device.
You can already grab the code from
moddevices jack2 fork
though I will try fix the last things so it is good to add in next jack2 release, expected at April 15 as well.
There is a big
DPF overhaul
of its graphic handling, mostly triggered from updating to latest pugl (used for window and event handling).
There is nothing to show just yet, as the code does not even build right now.
I am still on the phase of reworking some core C++ code, so yeah, nothing to show yet.
On a small note, I also patched eg-sampler (LV2 example sampler) to
be able to load non-mono files
and
resample the audio sample to the host sample-rate.
There was a race condition when loading new files,
which is now fixed and merged upstream.
This work was mainly done in order to have a quick usable plugin using files for MOD, but overall everyone benefits.
Regarding packages in the KXStudio repositories, there are a few updates. Those are:
And that is it for now.
If you appreciate the kind of work I do, please consider a
donation.
Thank you in advance for your support and stay safe out there!
PS: 2 of the package updates above appear as a result of a Patreon perk ;)
> Carla 2.3 RC2 is here!
On 2021-03-16 by falkTX
Hello all, this is an announcement for the next release candidate for Carla v2.3.
Comes after a few issues were reported and fixed,
specially important for Windows users where plugin discovery did not work.
The audiofile and midifile plugins were also finalized, the task I was waiting to finish before publishing this RC2.
For the changes made in v2.3 (compared to v2.2) please see the
Carla v2.3-RC1
announcement.
The full list of changes in v2.3-RC2 is:
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.
Just a reminder that this is a release candidate, and not the final release yet.
There are a few known issues I want to fix before tagging v2.3 as stable, but it is very very close.
And of course, if you appreciate the kind of work I do, please consider a
donation.
Thank you.
> DISTRHO-Ports 2021-03-15 and PawPaw v1.1 releases
On 2021-03-16 by falkTX
Hello everyone, I am happy to announce a new release for DISTRHO-Ports,
and subsequently an update to PawPaw that adds the new plugins.
In this DISTRHO-Ports release we now have 2 new plugins: SwankyAmp and Vitalium.
SwankyAmp appears as a direct port contribution from Jean Pierre Cimalando, you can find the original plugin here.
As for Vitalium, this is an open-source and redistributable version of
Vital,
a spectral warping wavetable synth that has recently being made
open-source.
We cannot use the Vital brand or connect to its vital.audio online services,
so this is completely removed from the Vitalium source code, with an alternative name and icon.
So with this release, I updated PawPaw so it
now includes SwankyAmp and Vitalium.
In case you forgot or are not aware, PawPaw is a little project to build and package LV2 plugins for macOS and Windows.
Sadly due to technical difficulties I had to drop Windows 32-bit builds, which I imagine most will not care anyway.
So now you can enjoy 2 new plugins, no matter if you use Linux, macOS or Windows.
(for Linux builds, please refer to your distribution of choice, or grab them from the KXStudio repositories)
Oh, and some screenshots of course, everybody loves those.
PS: Yes, Reaper supports LV2 now. And yes, Zrythm is quickly becoming a nice DAW too.
> 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:
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-16 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.
General improvements to AudioFile plugin
The AudioFile internal plugin received some deserved attention this time around.
Both Audio and MIDI file plugins are now exposed as LV2 plugins, allowing to load and use these plugins outside of Carla. |
Reworked Windows builds
The infrastructure used to build Windows binaries is now through
PawPaw,
as done with
JACK2
already.
For users, this means these binaries are more robust and with less dependencies.
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)
Finally, it should be possible to build Carla under msys2 on Windows now. |
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.
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.
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:
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:
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)
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.
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.
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 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:
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:
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:
Kars:
Nekobi:
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.
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.
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)
Now with that said, let's go through what's new, first the bigger changes and smaller stuff for last.
The built-in keyboard right-click menu got a bit better. |
The plugin built-in editor dialog now shows the currently mapped parameter type+value directly. |
MIDI learn implemented, triggered via parameter mapping menu. |
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.
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.
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:
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.
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.
The built-in keyboard right-click menu got a bit better. |
The plugin built-in editor dialog now shows the currently mapped parameter type+value directly. |
MIDI learn implemented, triggered via parameter mapping menu. |
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.
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.
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.
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.
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.
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.
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!
> 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.
Better CV SupportCV 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.
In order to make CV more useful by default, a new internal "MIDI to CV" plugin was added, originally created by Bram Giesen.
Also, a new variant of Carla as plugin was created that provides audio, MIDI and 5 CV ports (for each side). |
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
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.
Building it is kinda tricky, as it requires building a native-windows dll first, and then a few things with winegcc... I demoed this feature at Sonoj last year (2019), you can watch it as the 3rd part of this video. |
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
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'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.
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.
Within a bunch of small fixes and new implementations, here are some changes that deserve to be mentioned:
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.
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.
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.