Yet Another mostly incremental release just in time for the quarterly release pact. There are mostly a couple of minor changes and fixes to improve the interactions with specific plugins, as well as a number of small improvements to yabridgectl. One other thing worth mentioning is that yabridge and yabridgectl are now packaged in Arch's official repositories btw. So if you're on Arch or Manjaro and you were using one of the AUR packages before, then you may want to switch to these new packages instead.
If you need any help setting up yabridge or if you just want to keep up to date with new releases and important Wine related announcements, then feel free to join the Discord.
Added
- Added support for VST3 plugins interacting directly with the host's context menu items. Most plugins that use VST3's context menu support let the host handle drawing the actual menu, but it's also possible for plugins to incorporate the host's menu items into their own custom context menu. So far this feature has only been tested with Surge XT's Windows VST3 version since very few if any other plugins do this right now, but other plugins may start doing this as well in the future.
Changed
- Added support for Wine 6.23's new fixed winedbg command line argument handling.
- Changed the build and cross-compilation definitions to allow repository-packaged CMake build configurations to be used for the bitsery and function2 dependencies.
Fixed
- Fixed Waves V13 VST3 plugins crashing when opening the GUI. These plugins thought it would be a great idea to randomly dereference null pointers if the window they're embedded in is already visible. A day's worth of debugging well spent. Even after this, the V13 plugins are a bit unstable under Wine in general, and they will likely crash when reopening the editor a couple of times or when removing them. So as always, if you can avoid Waves, that would be for the best.
- Fixed sluggish UIs in Output's Thermal and likely a handful of other JUCE-based plugins with a lot of parameters. These plugins would emit hundreds to thousands of events when the GUI changes. Yabridge now detects this, and relaxes the throttling we have in place to prevent certain other plugins from getting stuck in infinite loops.
- Fixed DrumCore 3 crashing when trying to drag grooves from the plugin to other applications. This happened because of an integer underflow in that plugin, causing the number of reported drag-and-drop formats to be magnitudes higher than yabridge's indicated maximum.
- Fixed Wine version detection in the build configuration.
- Fixed VST3 connection point proxies not being disconnected properly. The code path for this is not being used for any of the current Linux VST3 hosts, so this won't have caused any issues.
- Rewritten the VST3 object handling to prevent some theoretical data races when the host inserts or removes plug instances while other instances of that plugin are processing audio.
yabridgectl
- Yabridgectl's help text received some shiny new colors.
- Disallowed adding individual files or symlinks to individual files with
yabridgectl add
. Yabridgectl was never intended to be used that way and while it does sort of work, it will lead to a number of surprises down the line. - Deprecated support for the symlink-based installation method in yabridgectl and removed all remaining mentions of it from the documentation. This feature has for all intents and purposes already been made obselete in yabridge 2.1.0, but the option still remained available. Enabling this option would lead to a lot of surprises because of the way Linux's dynamic linker works. And with modern file systems supporting reflinks and yabridge falling back to searching for binaries in
~/.local/share/yabridge
, there's zero reason to use this feature anymore. Yabridgectl will now print a warning upon syncing when the symlink installation method has been enabled, and the feature will be removed completely in yabridge 4.0. - Blacklisted symlinks and symlinked directories are now handled correctly when syncing.
Packaging notes
- The tomlplusplus wrap dependency has been updated to version 3.0.1 because of breaking API changes in version 3.0.
- We now target VST3 SDK version 3.7.4 with git tag
v3.7.4_build_25-patched
. - Yabridgectl now uses Rust 2021 and requires rustc 1.56 or newer to build.
Compatibility
The archive ending in -ubuntu-18.04.tar.gz
is a compatibility release meant for older distros and is thus slightly larger in size. If you're using Ubuntu 18.04, Linux Mint 19, Debian 10, AV Linux MXE 2021, or any other distro that's older than Ubuntu 20.04, then you should use this archive instead of the regular release. If you need a build of yabridge for use with 32-bit plugin hosts, then you can find those on the automated builds page.
Updating
To update from an older installation, simply overwrite your current yabridge and yabridgectl files with the ones downloaded below, and then rerun yabridgectl sync
to complete the update.