Software
Version
2.0.0
Release Date

I'm very excited to finally be able to release this update. Most changes are under the hood, but with this update all outstanding compatibility issues and limitations that were a result of yabridge's implementation have been resolved. Most noticeably you now no longer have to set any options when using REAPER or Renoise. The communication rewrite in this update allows yabridge 2.0.0 to be the first VST bridge with a truly transparent one-to-one event handling model, which should allow for the best possible plugin and host compatibility. I spent the last few weeks testing a suite of plugins on a variety of different hosts to make sure that none of these changes caused any regressions, but please let me know if you do find any issues.

Added

  • The way communication works in yabridge has been completely redesigned to be fully concurrent and to use additional threads as necessary. This was needed to allow yabridge to handle nested and mutually recursive function calls as well as several other edge cases a synchronous non-concurrent implementation would fail. What this boils down to is that yabridge became even faster, more responsive, and can now handle many scenarios that would previously require workarounds. The most noticeable effects of these changes are as follows:

    • The hack_reaper_update_display workaround for REAPER and Renoise to prevent certain plugins from freezing is no longer needed and has been removed.
    • Opening and scanning plugins becomes much faster in several VST hosts because more work can be done simultaneously.
    • Certain plugins, such as Kontakt, no longer interrupt audio playback in Bitwig while their editor was being opened.
    • Any loading issues in Bitwig Studio 3.3 beta 1 are no longer present.
    • Hosting a yabridged plugin inside of the VST2 version of Carla now works as expected.
    • And probably many more improvements.

    Aside from these more noticeable changes, this has also made it possible to remove a lot of older checks and behaviour that existed solely to work around the limitations introduced by the old event handling system. I have been testing this extensively to make sure that these changes don't not introduce any regressions, but please let me know if this did break anything for you.

Changed

  • The way the Wine process handles threading has also been completely reworked as part of the communication rework.
  • GUI updates for plugins that don't use hardware acceleration are now run at 60 Hz instead of 30 Hz. This was kept at 30 updates per second because that seemed to be a typical rate for Windows VST hosts and because function calls could not be processed while the GUI was being updated, but since that limitation now no longer exists we can safely bump this up.
  • Sockets are now created in $XDG_RUNTIME_DIR (which is /run/user/<user_id> on most systems) instead of /tmp to avoid polluting /tmp.

Removed

  • The now obsolete hack_reaper_update_display option has been removed.
  • The previously deprecated use-bitbridge and use-winedbg compilation options have been removed. Please use with-bitbridge and with-winedbg instead.

Fixed

  • Fixed a very long standing issue with plugins groups where unloading a plugin could cause a crash. Now you can host over a hundred plugins in a single process without any issues.
  • Fixed another edge case with plugin groups when simultaneously opening multiple plugins within the same group. The fallover behaviour that would cause all of those plugins to eventually connect to a single group host process would sometimes not work correctly because the plugins were being terminated prematurely.
  • Fixed the implementation of the accumulative process() function. As far as I'm aware no VST hosts made in the last few decades even use this, but it just feels wrong to have an incorrect implementation as part of yabridge.

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, or any other distro that's older than Ubuntu 20.04, then you should use this archive instead of the regular release. Yabridgectl will run on any distro.

There was an issue where yabridge-host.exe processs would not not exit properly when the VST host crashes or gets terminated without being able to close the plugins. The downloads for yabridge 2.0.0 have been removed. Please download yabridge 2.0.1 instead.