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.