Home KXStudio > News
RSS

KXStudio : News

> Carla 2.0 RC1 is here!
On 2018-09-16 by falkTX

Hello again everyone, and surprise, the stable 2.0 version of Carla is coming!

This is the announcement of the first release candidate of Carla 2.0.
Very little features were added, focus went on stability instead.
The 'master' branch on Carla's source code is now for stable content, all new stuff will go to 'develop'.
My intention is to really let Carla on the side for now. If I can do it or not remains to be seen...

The list of changes is a little big, so let's split it by parts.
First, the highlights and major changes.

Highlights and major changes

LinuxSampler removed, replaced by SFZero

Basically I removed the code that interacted internally with LinuxSampler, and replaced it by SFZero.
There are a lot of reasons for this change, but we can resume it to 3 points:

  • LinuxSampler API being overcomplicated
  • SFZ handling not very reliable
  • Licensing issues

Removing LinuxSampler means we lose support for GIG files, also SFZero loads the entire kit in RAM.
But, in return, SFZ files now always load without getting muted or having to do dirty workarounds.
Plus, with this, Carla can keep SFZ support while maintaining its GPLv2 license intact.

Note that SFZero does not support some opcodes, so the playback might sound different.
At a later date, a release will be made that will focus on SFZ support.

Big windows fixes

Carla under Windows has always a been a bit behind, compared to its Linux and macOS support.
Not anymore!

Carla can now run as a plugin in Windows, and also the PyQt-based big-meter, midi-pattern and notes plugins.
With this done, Carla as LV2 is now included in the Windows builds.

The export of a single plugin as LV2, though it is an experimental feature, now also works on Windows.
Because Windows does not handle symlinks very well, Carla copies its resources instead.

Scanning plugins will no longer show a console window.
The font engine was changed from native to freetype, which not only fixes the mini-canvas but gives a better presentation too.
Plugin bridges work once again, and now even better as Carla now initializes Windows resources on them (like static pthread and OLE).

UI changes

The piano-keyboard widget got some attention, now has 4 different highlight colors, 3 input layouts (qwerty, qwertz and azerty) and allows to change the offset when using the PC keyboard to send notes.
Just right-click on a piano-keyboard widget to trigger these options.

The rack looks a bit different now, as the possible "skins" for the plugin slots are now exposed and can be changed at any time.
You can change the background color too. Because why not? :)

The knobs and rack buttons are now more white-theme friendly.
This was needed to get white backgrounds working correctly, so for those of you that prefer Carla in a more bright theme, it will behave better now (why would you do that though?)

Other changes

Some changes that make sense or are useful enough, and that deserve to be mentioned.

  • Allow control output parameters to go out of bounds, thus displaying the correct value
  • Automatically restart plugin bridges when plugin is re-activated, using last saved state
  • Don't allow to disable jack transport if running in multi-client mode
  • Don't close and re-open VST plugin UIs on show/hide
  • Don't change any engine settings if it currently running
  • Don't list lv2 plugins that are not supported
  • Don't make Windows or macOS plugin UIs resizable for now
  • Implement loop-mode for audio-file plugin, turn it on by default
  • Implement support for buffer size changes in RtAudio JACK driver, and ignore JACK sample rate mismatch
  • Implement SF3 support (SF2 files with OGG audio files instead of raw WAV)
  • Force fftw thread-safe mode when starting Carla as standalone
  • Plugins with more than 2 audio ports can now be loaded in rack mode (the extra ports are just ignored)
  • Save and restore BPM with a project
  • Save and restore last used BPM, if not loading a project

Fixes

Besides the ones already mentioned for Windows, we also have:

  • Big push to get transport working correctly
  • General fixes against dynamic buffer sizes
  • Several fixes to UI size and UI bridges under macOS
  • Fix all PNGs that triggered libpng warnings
  • Fix canvas rubberband being invisible after a canvas refresh
  • Fix embedded UI covering window controls under certain hosts (in a Qt5 Linux build)
  • Fix switching plugin positions in plugin mode

Notes for developers and packagers

  • Base python scripts are no longer installed in dist-packages
  • Carla front-end code was moved to its own folder
  • FluidSynth version 1.1.7 is now required for soundfont support
  • UI bridges can now be started from CLI with just the plugin URI
  • New CarlaNativePlugin header and library exported, exposes Carla's Rack and Patchbay internals to 3rd party applications

Currently work-in-progress is a complete REST API of Carla's backend, allowing to have full control of a remote Carla instance.
(and not in a limited fashion like done with Carla-Control / OSC).
Initial code for it is already done, and tested to work.
If this interests you, let me know!

Notes for users

The code for scanning plugins had a little rework, making some internal data structures change.
Because of this, a full rescan of your plugins is needed after the update.

When running Patchbay mode in JACK, changing the buffer size might cause a crash.
This is not a common action to do, so not a priority to fix.

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.

Future

With Carla done, next up is DPF handling and KXStudio 18.04 ISO release, while trying to get a new JACK2 release out too.
Note that after these 3 items are done, I plan to take a well-needed break from open-source project maintenance.


> Carla 2.0 beta7 is here!
On 2018-07-22 by falkTX

Hello again everyone, I am glad to bring you the 7th beta of the upcoming Carla 2.0 release.
Last time I said beta6 would be the last beta, but let's ignore that for now... ;)

This release focuses on bug-fixes rather than new features.
Most of the new features were added because of contributions, which are very appreciated.
There are no big flashy screenshots this time, sorry.

One breaking change for this release is the removal of most of the plugins bundled in Carla's code.
They were moved into a separate repository, to keep Carla's code-base smaller.
If you are building Carla yourself and you want those extra internal plugins, make sure to enable git submodules.

Here is a list of the most relevant changes and fixes for this release:

  • Add confirmation dialog for quitting Carla
  • Add confirmation dialog for "Remove All" and "New File" actions
  • Add internal MIDI Channel A/B plugin
  • Add semitones parameter to internal midi-transpose plugin
  • Implement move up/down plugins in rack (right-click menu)
  • Implement LV2 UI port notifications to feedback messages to UI
  • Implement more libjack stubs, Catia now loads inside Carla :)
  • Transport controls are now considered stable and always enabled, no longer in experimental settings
  • Disable ableton-link and audio kits search UI elements if not built/enabled
  • Do not capture logs if running in nogui mode
  • Do not use or check for kVstParameterUsesIntegerMinMax VST property
  • Do not lockup on close in case audio driver stops working
  • Export LV2 window is now a simple combo-box, making it more usable
  • Save plugin author name in exported LV2 plugin
  • Increase polling rate for non-gui mode (30 Hz), fixes slow OSC handling
  • Fix mouse position offset of Carla-embed mouse events
  • Fix processing of internal plugins with multi MIDI inputs
  • Fix crash when closing a session containing bridges with Ctrl+C
  • Fix patchbay/graph to work with variable buffer sizes
  • Fix some issues regarding integer parameter control
  • Fix controlling logarithmic parameters with MIDI CC
  • Fix "MIDI CC 0x01" not selectable in some systems
  • Fix loading of VST plugin parameters and LV2 state for plugin bridges
  • Fix carla-single usage under ladish
  • Fix file dialog filter of the internal MIDI file plugin

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.

Future

The next Carla release is meant to close the 2.0 features, and focus on feature parity between all OSes.
It might take some time though (unless there is major regression that makes a new release required).

For now I plan to focus on other things that have been on the backlog for some time, including DPF, KXStudio 18.04 ISO and JACK maintenance.
News on that will be published when something is ready, please be patient.


> DPF-Plugins and DISTRHO-Ports update
On 2018-05-13 by falkTX

A new release of DISTRHO-Ports after years without one!
A lot of changes happened on the underlying plugin frameworks (DPF and Juce).
I also updated the way updates are handled, so it will be less work for next time
(and thus, hopefully, have updates more often from now on)

The amount of changes in the plugin frameworks is so big (it has been 4 years since last release!),
that I am not going to write about them in detail.
But the major highlights follow below.

The following new Linux ports were added: (LV2 and VST)
- JuceOPL
- ReFine

The DPF-based plugins had some changes too:
- glBars added
- Kars added
- ndc-Plugs added
- A new DPF-Plugins git repo was created, for easy packaging of all our plugins
- MAX gen~ based plugins can be created, see this link

Since last release, a few projects have appeared that use DPF. Here's a few:
- FTZ Chiptune - Collection of basic waveform synths
- Ninjas - Sample Slicing Plugin
- Wolf-Shaper - Waveshaper with graph editor
- ZamAudio plugin collection
- ZynAddSubFX, uses DPF for its plugin support

Other small changes relevant to the project:
- Nekobi moved to plugins (used to be in ports), as original developer is happy with it
   (and has RW access to our git repo too)
- The DPF "framework" has evolved with JACK Standalone export, Transport sync among other things

Checkout https://distrho.sourceforge.io/ for binary downloads and screenshots.
The complete source code is available at https://github.com/DISTRHO/.

PS: For those waiting for KXStudio 18.04 ISO release, work is underway, please be patient!


> Cadence 0.9.0 release and KXStudio 18.04 preparations
On 2018-04-02 by falkTX

Cadence 0.9.0 has just been tagged in its git repository.
No new features have been added to the code-base.
The release is focused on the Qt5 port, and of course the fixes that have been added over time.
Qt4 is no longer supported; the code was updated to work with Qt5, without having a fallback Qt4 mode (unlike Carla).
Cadence Qt5 port is needed for a proper KXStudio 18.04 release, as we will be using KDE5 Plasma as desktop environment.

The KXStudio "Welcome" wizard has also been ported to Qt5.
This finalizes the Qt4 => Qt5 porting process, with all KXStudio tools now running in Qt5.

In other news, the preparations for KXStudio's 18.04 ISO release have started.
The decision is to use Neon as the base distro for the next ISO images, with Breezy-Dark as default theme.
The KXStudio configuration files have been ported from KDE4 to KDE5, with only a few tweaks missing now.
If you're running the KXStudio repositories with Neon 16.04, you can already install the kxstudio-desktop-neon package. :)

Note that Ubuntu 18.04 (and thus Neon 18.04) is not out yet, so a release will of course have to wait for them first.
(Neon does not actually have their 18.04 repositories fully ready at this point)
We will have beta images first, to let users test and give feedback.
When everything seems to run fine, and I am happy with the results, the final image will released.
No estimation on the 'when' just yet though - it will be out when it's ready - so please don't keep asking. ;)


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


← PreviousNext →