Carla Changelog

What's new in Carla 2.5.3

Jan 15, 2023
  • Always set time frame information for JUCE hosted plugins
  • Fix canvaspreview out-of-bounds panning for patchbay
  • Fix receiving LV2 atoms bigger than 32kB
  • Fix peak metering reading values out of bounds
  • Fix missing code in about information string
  • Support the more verbose LV2 MIDI CC definitions
  • Use SDL driver by default on Haiku

New in Carla 2.5.2 (Oct 16, 2022)

  • Fix includedir/libdir variables in pkg-config files
  • Fix LV2 plugins sending MIDI events out of order when using MIDI mapping for control output ports
  • Fix VST2 all-notes/sound-off events after re-activation
  • Fix "use outer frame for carla-lv2" from v2.5.1
  • Correct jackbridge build flags, prevent LTO from being used in wine stuff

New in Carla 2.5.1 (Oct 2, 2022)

  • Do not set scale factor for LV2 plugin UIs on macOS
  • Fix external MIDI connections for JUCE engine driver
  • Fix a few memory leaks and runtime issues
  • Fix several race conditions
  • Fix logic around engine driver listings
  • Fix position of external patchbay graph nodes not being restored when switching from internal to external
  • Fix RISC-V builds
  • Fix win32 bridge builds on win64 systems (forcing usage of i686-w64-mingw32 if needed)
  • Ignore some compiler warnings from Qt side
  • Use an outer frame for carla-lv2 outgoing events

New in Carla 2.5.0 (Jul 17, 2022)

  • Add JSFX plugin support
  • Add SDL engine driver
  • Adapt engine code to allow single-threaded web-assembly builds
  • Fix macOS installer to run without rosetta2
  • Use full driver settings dialog if opened via menu and engine is not running
  • Update built-in DPF
  • Update to JUCE 7.0.1

New in Carla 2.4.3 (Apr 17, 2022)

  • Fixes:
  • Fix build for Alpine Linux and BSD
  • Fix integration with internal Qt toolbar visibility state
  • Fix plugin search (regression from 2.4.2)
  • Fix several Windows UTF-16 issues
  • Build related changes:
  • Add -fno-gnu-unique to default build flags
  • Implement VERBOSE make flag
  • Make build compatible with LTO, now enabled on official macOS/Windows binaries
  • Replace CARLA_EXPORT macro with separate API / PLUGIN export options
  • Set new X-NSM-Exec desktop file property

New in Carla 2.4.2 (Feb 20, 2022)

  • Fixes:
  • Fix a few crashes with JACK applications inside Carla
  • Fix build on non-supported systems by JUCE
  • Fix crash when LV2 X11 UI has non-mapped child window
  • Fix compatibility with Python 3.10
  • Fix default SF2/3 path
  • Fix LV2 UI resizing on macOS
  • Fix missing VST3 plugins not being searched recursively
  • Disable GraphicsScene indexing method to prevent crashes
  • Ensure custom data state save and restore always match
  • Changes:
  • Add "[carla]" prefix to printed messages
  • Add appdata metadata information
  • Add notice when Carla needs to be restarted after an LV2 rescan
  • Add VST3 Windows common files to the default path (required by the latest VST3 spec)
  • Default to JACK backend if pipewire-jack replacement is installed
  • Implement dry/wet, volume and balance on JUCE hosted plugins
  • Reload audio file if sample rate changes
  • Use temporary files for big custom data values in bridges
  • Changes for using Carla as library:
  • Add 8 CV, 32 IO and 64 IO CarlaPatchbay variants
  • Add audio port hints to backend, starting with lv2 sidechain
  • Add static plugin build target
  • Add WITH_LTO build option, disabled by default
  • Allow setting a custom C++ namespace
  • More work on experimental embed plugin UIs, now also possible on plugin bridges

New in Carla 2.4.1 (Feb 20, 2022)

  • Better handling of VST3 parameters (hide as needed, number of steps, etc)
  • Fix compatibility with Python 3.10
  • Fix getting the proper X11 UIs size for more plugins
  • Fix plugin bridges not automatically closing if main Carla dies on macOS (similar to how it is done on Linux)
  • Fix unused parameters preventing real ones from showing up in the edit plugin dialog
  • Fix CarlaNativePlugin.h and CarlaPluginPtr.hpp header files not installed system-wide
  • Fix XY-Controller GUI missing on "make install" target
  • Fix VST2 plugins under macOS and High-DPI (by not reporting scale factor)
  • Replace -lpthread usage with -pthread, fixing RISC-V builds
  • Send keyboard and focus events as needed/possible to VST2 and VST3 UIs
  • Small tweaks to XY-Controller (make lines 1px thick, close UI with Esc key)
  • Special tweaks for static plugin target build (embeding carla statically in other applications/plugins)
  • Other minor fixes and tweaks

New in Carla 2.4.0 (Aug 23, 2021)

  • Add option to use classic skin by default
  • Add support for lv2 ui gtk bridges on any system
  • Set display scale factor for carla-bridge-*/carla-single standalone usage (on macOS and X11 systems)
  • Fix Linux VST3 plugin GUIs crash on close
  • Fix build under msys2 (will not force static binaries)
  • Fix keyboard focus for bridges on macOS (2nd attempt)
  • Fix canvas icon in settings to be high-dpi compatible
  • Fix wrong scale factor of plugin GUIs under macOS

New in Carla 2.3.2 (Aug 23, 2021)

  • Add 32x32 icon
  • Do not show "--gdb" in usage/help when not installed system-wide
  • Fix default SF2 search path
  • Fix keyboard focus for bridges on macOS
  • Fix X11-UIs related regressions in v2.3.1

New in Carla 2.2.0 RC 3 (Sep 28, 2020)

  • Do not allow to capture logs on Windows, even if enabled
  • Do not enable all 64 max buses for AU plugins
  • Do not put plugin UIs "always on top" in Windows
  • Fix macOS 10.12 build, so that it actually runs under 10.12
  • Fix macOS README, mentioning new plugin situation (package vs actual files to manually copy)

New in Carla 2.2.0 RC 2 (Sep 28, 2020)

  • Add xycontroller plugin
  • Auto-select text in plugin search entry when focused via shortcut
  • Compress canvas clipboard image saving (as PNG)
  • Disable OSC by default on macOS
  • Fix crash when receiving unexpected VST2 time information
  • Fix current project filename persistence after engine stop
  • Fix deadlock when using VST3 plugins inside Carla as plugin
  • Fix listing LV2 plugins on Windows (2.2 regression)
  • Fix oddities with MIDI learn
  • Fix potential crashes when opening or hiding plugin UIs
  • Fix some plugins not having all their audio ports exposed
  • Fix some plugin UIs not in front of Carla when first shown
  • Fix wine bridge build against winehq-stable and winehq-stable
  • Overall fix to midi pattern plugin
  • Package macOS plugin version, making Carla-Plugin usable with macOS 10.15

New in Carla 2.1.1 (Jun 12, 2020)

  • Fix carla-control not handling CLI argument for custom address
  • Fix carla-plugin not handling all callbacks
  • Fix carla-plugin LV2 UI not showing up if host supports touch feature
  • Fix for some plugin formats having 0 audio ports
  • Fix occasional crashes due to canvas shadow (Qt bug, shadow is disabled by now)
  • Fix canvas ports text width calculation with new Qt
  • Fix wrong assertion with size 1 MIDI messages
  • Fix errors in the icons
  • Fix incorrect base conversion for MIDI CC assignments
  • Fix rpath specification in pkg-config files
  • Fix build with Qt 5.15
  • Discovery: Force language to be "C" (English) so we can parse errors
  • Discovery: assume midi inputs = 1 if VST plugin is synth
  • Make canvas ports and groups ignore middle mouse clicks
  • Improve performance of canvas "inline display" rendering
  • Other miscellaneous bug fixes

New in Carla 2.1 (Jun 12, 2020)

  • Add a simple cv2audio plugin
  • Brown color for CV ports, to make them more easily recognizable
  • Fix crash loading LV2 plugin with CV and latency ports
  • Fix mingw/gcc-9 build

New in Carla 2.1 RC 2 (Jun 12, 2020)

  • Fix crash on stack unwind for a few operations
  • Fix duplicate data (name, label, uid) used in VST synth/fx Shell plugin
  • Fix JACK metadata usage for multiple carla instances and plugin renames
  • Fix MIDI CC assignment showing wrong selected value (base 16 vs 10)
  • Fixup carla-control (was broken in RC1)
  • Optimize and reduce memory usage of UI bridges
  • Overall fix of postponed RT events
  • Give focus to bridged UIs when first shown
  • Ignore any LV2 patch:writable that is not an lv2:Parameter
  • Rename experimental "prevent bad things" option and give it a tool-tip
  • Support the new LV2 UI requestParameterValue API
  • Support the new LV2 UI background/foreground color API
  • Many other miscellaneous bug fixes, see the git log for details

New in Carla 2.1 RC 1 (Jun 12, 2020)

  • Better CV Support:
  • CV 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.
  • This is a kinda feature preview, as there are some limitations at the moment
  • Parameter changes are not sample accurate
  • (in a later version, Carla will split buffer up to 32 frames for more fine-grained control changes)
  • Not all plugin formats and parameter types are allowed to be controlled this way
  • (to be extended as I test more compatibility)
  • Only available for parameter inputs, not outputs
  • In order to make CV more useful by default, a new internal "MIDI to CV" plugin was added, originally created by Bram Giesen.
  • More plugins will be added as needed, for now I recommend to use ams-lv2 and mod-cv-plugins as they already do a lot.
  • Also, a new variant of Carla as plugin was created that provides audio, MIDI and 5 CV ports (for each side).
  • This allows CV signals to flow in and out of Carla as a plugin.
  • High-DPI support (work in progress):
  • Initial work was done to support high-DPI screens.
  • Note that this was not tested very extensively, due to lack of proper hardware, but the requirements in terms of code are all there.
  • There are still a few "normal" resolution bitmaps in use, to be replaced in future releases.
  • You can click on the screenshot on the left to see Carla rendered at 3x the resolution.
  • So for now, the situation is:
  • Most of the icons changed to scalable format
  • UI will scale with the desktop automatically, as Qt takes care of that for us
  • Some bitmaps still remain, to be replaced by vector images in a future release
  • Not extensively tested, feedback is welcome
  • VST2 plugin for macOS and Windows, plus exposed parameters:
  • This is the final item that was missing for cross-platform feature parity.
  • We now have Carla as VST2 plugin running on both macOS and Windows!
  • Embedding of the full GUI on these systems is not possible, so a small "middleware" window is shown as the plugin custom UI.
  • Not the best experience, but allows Carla to finally work as VST2.
  • Additionally, 100 parameters are exposed to the host, dynamically used in the order of the plugins loaded.
  • So for example, if the first plugin in the rack has 20 parameters, the first 20 parameters of carla-vst will be mapped to that plugin.
  • This continues in order for the remaining plugin parameters until we reach 100 of them.
  • When Carla is loaded as an internal plugin, parameters will be dynamically available too.
  • This feature is not available in the LV2 version of Carla though, at least not yet.
  • Note: Carla plugins are not "notarized" yet, so they will not run under latest macOS 10.15/Catalina where this is a requirement.
  • 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
  • Personally I made it so that I could run the native Carla inside FL Studio, which allows me to use its sequencer but not have to deal with Windows plugins.
  • 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.
  • It requires Carla to be installed system-wide, so it cannot work if Carla is downloaded manually.
  • Building it is kinda tricky, as it requires building a native-windows dll first, and then a few things with winegcc...
  • Packager documentation will be added soon to Carla's source code repository, so other Linux distributions can pick it up.
  • Refreshed add-plugin dialog and favorite plugins:
  • The add-plugin dialog had a major overhaul, now looking much better and with more content visible at once.
  • Target was to improve the user experience, making clear that there are filters available. (it was not so obvious in previous versions)
  • The star on the most-left section of the table is to mark a plugin as a favorite, which will add it as a shortcut to the right-click menus on empty rack and patchbay areas.
  • Single-page and grouped plugin parameters:
  • The dialog for the generic plugin parameter view also had an update.
  • All parameters are now placed in the same tab (separated only by input and output types), and grouped when supported by the plugin.
  • The options for mapping a parameter to a MIDI CC were taken out and replaced by a button that triggers a menu with the relevant options.
  • Note that, at the moment, only a few LV2 plugins support parameter groups.
  • This is because most hosts do not support this feature, so plugins do not have many incentives to support such a thing.
  • And with not a lot of plugins supporting it, hosts also do not care that much. The usual circular dependency deal...
  • But since the feature applies quite nicely to Carla, made sense to add it.
  • The group can be collapsed by clicking on it.
  • A similar feature will be added to the patchbay in a later release, so we can group audio ports too. :)
  • More UI changes:
  • 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
  • Canvas changes:
  • 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-control and OSC rework:
  • 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.
  • AU and VST3 support is back, by leveraging JUCE:
  • 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.
  • Other changes:
  • Within a bunch of small fixes and new implementations, here are some changes that deserve to be mentioned:
  • Carla now requires Qt5, can no longer work with Qt4; but can still use LV2 Qt4 UIs with its built-in bridges
  • NSM is now supported for JACK applications
  • Added a 16 MIDI port mode for JACK applications
  • Added "Cancelable actions" during project and plugin bridges load, so they will no longer time-out; instead the user has the option to cancel them at anytime
  • Initial support for LV2 parameter API
  • Initial support for LV2 file paths, assuming plugin has no custom UI (click on the show-gui button to open a file dialog)

New in Carla 2.0.0 (Oct 16, 2019)

  • Fix missing argument in note-on/off osc example
  • Fix word-wrap in add-plugin dialog
  • Fix Windows README.txt line endings
  • Build windows binaries with -mstackrealign
  • Don't show side panel in carla-control
  • Show "Label/URI" instead of just "Label"
  • Keep application signals alive (so Ctrl+C works even while engine is closed)
  • Update copyright year

New in Carla 2.0 RC 4 (Mar 11, 2019)

  • carla-vst: Add Ardour workaround for its 'Analysis' window
  • carla-vst: Fix typo leading to buffer size of 1 during plugin activation
  • Fix for some stupid plugins messing up with global signals (restore original signals after creating plugin)
  • Fix dry/wet for VST plugins (by creating extra buffer for inline processing)
  • Fix crash in RtAudio when ALSA soundcard is listed but not available
  • Fix crash on JACK buffer size changes in patchbay mode
  • Fix crash when directly loading vst shell plugins (carla-single or drag&drop dll file)
  • Fix loading multiple exported LV2 plugins (always copy full carla-plugin binary when exporting)
  • Fix missing transport information when Carla is not jack transport master
  • Fix opening a few VST2 UIs (we give up trying to follow VST spec, always assume UI opens nicely)
  • Fix plugin bridges not working under Fedora (RT threads were able to be setup, but not started)
  • Automatically terminate wine bridges if main carla dies
  • Calculate VST2 ppqPos in a more reliable way
  • Do not set up RtAudio in "hog device" mode
  • Do not build external plugins in debug or strict build
  • Handle more sources of VST2 automation via audioMasterAutomate
  • Handle worst-case scenario of carla-plugin buffer size being too low

New in Carla 2.0 RC 3 (Mar 11, 2019)

  • Fix bridge-lv2-x11 crash when manually started from CLI
  • LV2: Don't prefer plugin bridges for certain hardcoded plugins (Calf, ir.lv2 and v1 series)
  • VST: Do not call plugin effEditIdle on update display opcode, fixing crashes for a few plugins

New in Carla 2.0 RC 2 (Oct 30, 2018)

  • General fixes:
  • Fix build against fludisynth 2.0
  • Fix build on Haiku OS
  • Fix build with external plugins enabled but no OpenGL available
  • Fix detection of old Windows dll plugins
  • Fix dynamic/split process cycle for plugin bridges
  • Fix internal plugins receiving wrong frame position on split buffers
  • Fix program changes coming through as bank changes in MIDI output
  • Fix a possible race condition in plugin code
  • Fix some warnings triggered by gcc-8
  • Fix LV2 plugins with UI feedback ports in bridge mode not receiving feedback events
  • Fix macOS specific note visible in settings when not running macOS
  • libjack: Fix applications that register clients right after being started
  • Usability fixes:
  • Always show keyboard in plugin edit dialog if plugin has midi inputs
  • Always expand user home path (~/) when loading project from CLI
  • Don't try to find binary type of certain plugins when loading project (avoid assertions)
  • Use executable basename on jack apps as name when initial name is empty
  • libjack: Catch window close when possible, and hide it instead closing entire application
  • libjack: Implement basic session management via SIGUSR1 signal

New in Carla 2.0 RC 1 (Sep 17, 2018)

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

New in Carla 2.0 Beta 5 (Jan 6, 2017)

  • Add carla-jack-single/multi startup tools

New in Carla 2.0 Beta 4 (Dec 11, 2015)

  • Updated plugin skins:
  • The plugin skins received some updates once again.
  • They can now be collapsed in order to take less space.
  • New experimental plugins:
  • Some of the best linux-standalone tools are now working as internal Carla plugins.
  • And because Carla exports its internal plugins as LV2, you'll also get them as LV2.
  • Note that this is still experimental!
  • Also, there's no support whatsoever from the original authors...
  • MOD GUI Support:
  • Carla can now show LV2 MOD GUIs, handled like a regular LV2 UI type.
  • Note that this only works on the right setups (you need MOD-UI to be working first).
  • It's not available on pre-compiled binaries, but you can get it via the KXStudio repositories.
  • More changes:
  • LinuxSampler code has been reworked and it's working better, it now exposes 2 output parameters.
  • The plugin bridge code has been reworked; bridges are much more stable and MIDI-out is working.
  • NSM code has also been reworked, testers welcome.
  • OSC ports can be static by using CARLA_OSC_TCP_PORT and CARLA_OSC_UDP_PORT environment variables.
  • Time panel can be shown/hidden as needed.
  • DISTRHO-based internal plugins are back, specifically 3BandEQ/Splitter, PingPongPan, Nekobi, MVerb, VectorJuice and WoobleJuice.
  • carla-single script is back, allowing you to quickly test and run all plugins.
  • Carla as plugin allows new, open and save-as (export) menu actions.
  • Start of new midi-sequencer plugin, still experimental and Linux-only for now.
  • MIDI file internal plugin now saves the contents, so you can share projects without worrying if the file exists on the other system.
  • Added 6 basic parameters to the ZynAddSubFX internal plugin.
  • New MIDI channel filter plugin.
  • LV2 and AU plugins are cached and automatically updated when needed, no need for scanning.
  • Patchbay mode is now working for non-JACK drivers.
  • Carla saves internal and external connections, specially useful in patchbay mode.
  • Lots and lots of bug fixes.