Home KXStudio > News
RSS

KXStudio : News

> Carla 2.0 beta6 is here!
On 2018-01-25 by falkTX

Hello again everyone, I am glad to bring you the 6th beta of the upcoming Carla 2.0 release.
It has been over one year since the last Carla release, it was about time. :)
This should be the last beta for the 2.0 series, as next one is planned to be release candidate 1.

There were quite some changes under the hood, mostly in a good way.
The trade-off for users is that this means losing some features, the biggest ones being VST3 and AU plugin support.
The way audio and MIDI devices are handled on Windows and macOS also changed, no longer having dynamic MIDI ports.
See the previous post about Carla to get more details on the "breaking changes".

But let's move on with the good stuff!
Here are some of the highlights for this release:

transport

Transport controls and Ableton Link support (experimental)

Previous releases of Carla had basic time controls already, but it was quite basic and lacked options for JACK transport and BPM control.
Now JACK transport is optional, transport works for non-JACK drivers and BPM can be adjusted manually.
Ableton Link support was added in was well, as another way to sync transport. It was not extensively tested though.
Also note that, due to compiler support, the current Carla macOS builds do not support Link.

Transport can misbehave when rolling back or forwards, so this feature is still classified as experimental.
The plan is to have transport stabilized when the final 2.0 version is released.


settings

Tweak of settings page

Carla's settings dialog received an overhaul.
Everything that was deemed unstable was moved into a new 'experimental' page, and disabled by default.
So in order to use plugin bridges for example, you need to first enable experimental features, then the bridges.
The (experimental) features mentioned on this article all have to be enabled in the same way too.
Last but not least, a page dedicated to Wine settings (wine-prefix, wine startup binary, RT variables) was added.


jack-apps

Load of JACK applications as plugins (Linux only, experimental)

This is a big one... :)
Initially just an idea that became an ugly hack/test for private use only, I soon realized it had great potential.
So I split the code used for plugin bridges and made it more generic so it could be re-used for such features.
And here we have it, JACK applications running as regular plugins inside Carla - including showing/hiding their main interface.
Applications also receive JACK transport as rolling in the host.

In this mode Carla basically becomes a self-contained JACK server, and exposes a special libjack to the client.
The client connects to Carla believing it's actually connecting to "JACK", as Carla implements libjack API through its plugin bridge mechanism.
Within Carla you first define a fixed number of audio and midi ports at the start.
Ports are allocated dynamically on the plugin side, but get mixed down at the end to the number of outputs selected.
This is a nice workaround against clients that dynamically register their ports, sometimes with random names too.
With Carla jack-apps-as-plugins method, the client ports are persistent.

The full libjack API is not implemented though, only the important parts, in order to get most applications running.
The most notable missing calls are related precise timing information and non-callback based processing.
Also no session management is implemented at the moment.
But, even without this, stuff like audacity, lmms, hydrogen, renoise and vlc work.

This is a work in progress, but already working quite well considering how new it is.


export-lv2

Export any loaded plugin or file as a single LV2 plugin (experimental)

Another big feature of this release is the possibility to export any plugin or sound file loaded in Carla as its own self-contained (LV2) plugin.
This can really be any regular plugin, a sound bank (e.g. an SFZ file), a plugin bridge or even JACK application.
The exported plugin will run with the smallest amount of wrapping possible between the host and the carla loaded plugin.
Carla will not appear at all, triggering the "show ui" on the host will show the actual plugin UI.
***Note that the exported plugins are not portable! They require Carla to be always installed on the same location.***

Audio, MIDI, transport information, custom UI are fully working already.
The only missing feature at the moment is LV2 state, which needs to map to DSSI configures, VST chunks and other stuff.
Although working for non-Linux systems, this was not tested.
Testing of this feature in general is very appreciated.


freebsd

FreeBSD and other non-Linux systems

After the removal of the juce library from the code-base (as discussed before), Carla was free to support more than just the big 3 OSes.
With the help of the community, Carla is now available to install on FreeBSD through its ports system.
I was able to build and install it myself as well, and actually make good noise on a BSD system. Neat! :)
It's also now possible to build Carla for GNU/Hurd and HaikuOS as well, and I imagine for even more systems if one so desires.
If this is something you're interested in and need some help, let me know.


Other changes

There are quite a lot of other smaller changes made in Carla since beta5, these include:

  • Added artwork and license to about dialog
  • Added carla-rack no-midi-out mode as plugin
  • Allow drag&drop of plugin binaries into Rack view
  • Add "prevent bad plugin behaviour" option (experimental, Linux only)
  • Auto-detect wine-prefix for plugin bridges
  • Expand usable MIDI keyboard keys a little (Z-M plus Q-P for 2 full octaves and 5 extra keys)
  • Implement parameter text for plugin bridges
  • Implement "Manage UIs" option for macOS and Windows
  • Place more parameters per tab in editor dialog
  • Show active peaks and enable keyboard for carla-rack group in canvas
  • Knobs are now controlled in a linear way
  • Previous experimental plugins removed, and carla-zynaddsubfx no longer exported
  • Rack view can handle integeter knobs properly
  • Save and restore canvas positions (standalone only for now)

Special Notes

  • Carla as plugin and Carla-Control are still not available for Windows, likely won't be done for v2.0.

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.


> JACK2 1.9.12 release and future plans
On 2017-12-21 by falkTX

A few days ago a new version of JACK2 was released.
You can grab the latest release source code at https://github.com/jackaudio/jack2/releases.
The official changelog is:

  • Fix Windows build issues
  • Fix build with gcc 7
  • Show hint when DBus device reservation fails
  • Add support for internal session files

If you did not know already, I am now maintaining JACK2 (and also JACK1).
So this latest release was brought to you by yours truly. ;)

The release was actually already tagged on the git repo quite some time ago, but I was waiting to see if Windows builds were possible.
I got side-tracked with other things and 1.9.12 ended up not being released for some time, until someone reminded me of it again... :)
There are still no updated macOS or Windows builds, but I did not want to delay the release further because of it.
The 1.9.11 release (without RC label) was skipped to avoid confusion with the versions.
So 1.9.12 is the latest release as of today. macOS and Windows binaries still use an older 1.9.11 version.

Being the maintainer of both JACK1 and JACK2 means I can (more or less) decide the future of JACK.
I believe a lot of people are interested to know the current plan.

First, JACK1 is in bug-fix mode only.
I want to keep it as the go-to reference implementation of JACK, but not add any new features to it.
The reason for this is to try to get JACK1 and JACK2 to share as much code as possible.
Currently JACK2 includes its own copy of JACK headers, examples and utilities, while JACK1 uses sub-repositories.
During the course of next year (that is, 2018) I want to get JACK2 to slowly use the same stuff JACK1 does, then switch to use the same repositories as submodules like JACK1 does.
This will reduce the differences between the 2 implementations, and make it a lot easier to contribute to the examples and utilities provided by JACK.
(Not to mention the confusion caused by having utilities that work in simlar yet different ways)
We will keep JACK1 "frozen" until this is all done.

Second, but not least important, is to get the JACK1 specific features into JACK2.
A few things were added into JACK1 after JACk2 was created, that never made it into JACK2.
This includes meta-data (JACK2 does have the API, but a non-functional one) and the new internal clients.
The purpose is to reduce reasons users might have to switch/decide between JACK1 and JACK2.
JACK2 should have all features that JACK1 has, so that most users choose JACK2.

Now, you are probably getting the impression that the focus will be on JACK2, which is correct.
Though I realize some developers might prefer JACK1's design, the long "battle" of JACK1 and JACK2 needs to stop.
Development of new features will happen in the JACK2 codebase, and JACK1 will slowly become legacy.
Well, this is my personal plan at least.

Not sure if this all can be done in 2018, but better to take things slowly and get things done than do nothing at all.
I will keep you updated on the progress through-out the year.
Happy holidays everyone!


> Breaking changes in Carla Plugin Host
On 2017-11-21 by falkTX

Hello everyone, I have some bad and good news about Carla.
If you've been following the development on the git repository you likely know what this is about.
There were some major changes done to Carla's code base in the past few days.

The biggest change is the removal of the Juce library.
The reasons for this are well known by some developers, but I'll not write about them here.
After looking around for alternatives, I decided to fork an older GPLv2 compatible version of Juce and strip it down to the really essential parts needed to get Carla to build and run - even if it meant losing some of the features.
The possibility to change to an entirely different C++ framework crossed my mind, but the amount of effort and breaking changes would be too big.
I called the end result 'water'. You can say Carla doesn't need Juce, water is fine ;)
There's only a few classes and files needed for I/O, XML and AudioGraph handling, everything else is gone. \o/

The implications for this change are not big for Linux users, and is even a source of good news for other OpenSource Operating System users like FreeBSD and HaikuOS.
In short, because Juce is no longer there, we have lost support for VST3 and AudioUnit plugins.
Plus VST2 plugins on Windows and MacOS are now handled by Carla's code instead of relying on Juce.
This heavily reduces the amount of compatible plugins handled by Carla, because Juce had a lot of hacks in order to make a lot of commercial plugins run properly.
Also Carla on Windows and MacOS used Juce to handle Audio and MIDI devices, which now has been changed to RtAudio and RtMidi.
RtAudio & RtMidi are not as fully-featured as Juce was (we lose dynamic MIDI ports, for example), but I am glad to have Juce gone from the code-base.
(You can say that parts of it are still there, but my conscience is clear, and Carla remains self-contained which was my main point since v2.0 development started)

The next breaking change relates to the internal plugins used in Carla.
The plugins that already exist as LV2 will stop being exported with the carla.lv2 bundle.
Plus these plugins will soon be removed from the default build.
They quickly bloat the Carla binaries, as they include their artwork. Not to mention increasing the clone and building times.
The plan is to have them disabled by default and moved into a new repository as submodule.
Oh and the "experimental" plugins are going away soon. It was a mistake to make them Carla-specific in the first place, they should be regular audio plugins instead.

Another breaking change is the removal of modgui support.
The code only worked for PyQt4, which is no longer the default for Carla source-based builds.
Plus it required webkit, which brings a big list of dependencies. I would have to port the code to webengine/chromium to make it work with PyQt5... no thanks.

The final breaking change is the introduction of the Experimental option in Carla's settings.
Everything that is not stable at the moment went there as an option, and got disabled by default. This includes:

  • Plugin bridges
  • Wine options
  • Force-stereo mode
  • Canvas eye-candy
  • Canvas with OpenGL

All new in-development / testing features will get introduced as experimental first.
This will speed up the release of 2.0, since not everything needs to be finished for it.
For example, plugin bridges can still be there and not fully implemented, and we still have 2.0-stable out!

That's it! Thanks for reading so far.
In other news, I gave a small presentation about Carla in this year's Sonoj Conference.
You can check it out here:
https://media.ccc.de/v/sonoj2017-1704-carla-plugin-host

Carla 2.0-beta6 will be out soon :)


> DPF-Plugins v1.1 released
On 2017-06-17 by falkTX

With some minor things finally done and all reported bugs squashed, it's time to tag a new release of DPF-Plugins.

The initial 1.0 version was not really advertised/publicized before, as there were still a few things I wanted done first - but they were already usable as-is.
The base framework used by these plugins (DPF) will get some deep changes soon, so better to have this release out now.

I will not write a changelog here, it was just many small changes here and there for all the plugins since v1.0.
Just think of this release as the initial one. :P

The source code plus Linux, macOS and Windows binaries can be downloaded at https://github.com/DISTRHO/DPF-Plugins/releases/tag/v1.1.
The plugins are released as LADSPA, DSSI, LV2, VST2 and JACK standalone.

As this is the first time I show off the plugins like this, let's go through them a little bit...
The order shown is more or less the order in which they were made.
Note that most plugins here were made/ported as a learning exercise, so not everything is new.
Many thanks to António Saraiva for the design of some of these interfaces!

Mini-Series

This is a collection of small but useful plugins, based on the good old LOSER-Dev Plugins.
This collection currently includes 3 Band EQ, 3 Band Splitter and Ping Pong Pan.

3bandeq 3bandsplitter pingpongpan

MVerb

Studio quality, open-source reverb.
Its release was intended to provide a practical demonstration of Dattorro’s figure-of-eight reverb structure and provide the open source community with a high quality reverb.
This is a DPF'ied build of the original MVerb plugin, allowing a proper Linux version with UI.

mverb

Nekobi

Simple single-oscillator synth based on the Roland TB-303.
This is a DPF'ied build of the nekobee project, allowing LV2 and VST builds of the plugin, plus a nicer UI with a simple cat animation. ;)

nekobi

Kars

Simple karplus-strong plucked string synth.
This is a DPF'ied build of the karplong DSSI example synth, written by Chris Cannam.
It implements the basic Karplus-Strong plucked-string synthesis algorithm (Kevin Karplus & Alex Strong, "Digital Synthesis of Plucked-String and Drum Timbres", Computer Music Journal 1983).

kars

ndc-Plugs

DPF'ied ports of some plugins from Niall Moody.
See http://www.niallmoody.com/ndcplugs/plugins.htm for the original author's page.
This collection currently includes Amplitude Imposer, Cycle Shifter and Soul Force plugins.

amplitudeimposer cycleshifter soulforce

ProM

projectM is an awesome music visualizer.
This plugin makes it work as an audio plugin (LV2 and VST).
prom

glBars

This is an OpenGL bars visualization plugin (as seen in XMMS and XBMC/Kodi).
Adapted from the jack_glbars project by Nedko Arnaudov.
glbars


> KXStudio 14.04.5 release and future plans
On 2017-06-11 by falkTX

Hello there, it's time for another KXStudio ISO release! KXStudio 14.04.5 is here!

Lots have changed in the applications and plugins for Linux Audio (even in KXStudio itself), so it was about time to see those ISO images updated.
Behind the scenes, from what the user can see, it might appear as nothing has truly changed. After all, this is an updated image still based on Ubuntu 14.04, like those from 2 years ago.
But we had a really big amount of releases for our beloved software, enough to deserve this small ISO update.
There is no list of changes this time, sorry. The main thing worth mentioning is that base system is exactly the same, with only applications and plugins updated.
You know the saying - if ain't broken, don't fix it!

Before you ask.. no, there won't be a 16.04 based ISO release.
When 2016 started KDE5 was not in a good enough shape, and it would need a lot of work (and time) to port all the changes made for KDE4 into KDE5.
KDE5 is a lot better now than it used to be, but we missed the opportunity there.

The current plan is to slowly migrate everything we have into KDE5 (meta-packages, scripts, tweaks, artwork, etc) and do a new ISO release in May 2018.
(Yes, this means using Ubuntu 18.04 as base)
The choice of KDE Plasma as desktop environment is not set in stone, other (lighter) desktops have appeared recently that will be considered.
In the end it depends if it will be stable and good enough for audio production.

You can download the new ISOs on the KXStudio website, at http://kxstudio.linuxaudio.org/Downloads#LiveDVD.

And that's it for now.
We hope you enjoy KXStudio, being it the ISO "distribution" release or the repositories.


← PreviousNext →