github robbert-vdh/yabridge 3.5.0

latest releases: 5.1.1, 5.1.0, 5.0.5...
4 years ago

This is mostly a bug fix update. I was going to do a quick 3.4.1 patch with a couple of fixes for regressions people had reported for yabridge 3.4.0, but then I got reports that with certain setups (I wasn't able to replicate it), Ardour might resize plugin editor windows to an incorrect size when using Ardour 6.8 in combination with an older version of XFCE. So I decided to take this opportunity to rewrite the editor embedding implementation to make sure that hosts that somehow ignore the editor size reported by the plugin can never guess the wrong size by themselves. And we also need to get to yabridge 3.11 for Workgroups somehow, right? This change should fix rare editor size issues with Ardour, a similar issue with Carla 2.3.1 (older and newer versions aren't affected), and also fixes another Ardour issue where resizing a VST3 editor past its original size might leave behind gray borders. I haven't been able to find any regressions during my testing in any of the VST2 and VST3 hosts listed in the readme, but please let me know if you do run into any new issues after these changes!

The other changes are mostly bug fixes and small quality of life improvements, like extra debugging options for GUI related issues, and additional warnings in case the system is configured in a way that might cause yabridge to crash.

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 a warning on startup if yabridge may not be able to lock enough shared memory for its audio processing. If you have not yet set up realtime priviliges and memory locking limits for your user, then yabridge may not be able to map enough shared memory for processing audio with plugins that have a lot of inputs or outputs channels.
  • When this shared memory mapping fails because of a low value being set for RLIMIT_MEMLOCK, yabridge will now print a more specific error message telling you about the issue and how to fix it.
  • Added a an optional +editor flag to the YABRIDGE_DEBUG_LEVEL environment variable that causes debug tracing information about the plugin editor window to be printed. This can be useful for diagnosing DAW or window manager specific issues.

Changed

  • The way editor embedding works has been rewritten. Yabridge now inserts a wrapper window between the host's parent window and the embedded Wine window instead of embedding the Wine window directly into the host. This should get rid of all rare edge cases where the host would ignore the window size reported by the plugin and would instead try to detect the plugin's size on its own by intercepting configuration events sent to the Wine window. This could cause the editor window to grow to fit the entire screen in certain hosts under very specific circumstances.
  • We now support version 3 and 4 of the XDND specification for the Wine->X11 drag-and-drop support. Before this yabridge assumed every application supported version 5 from 2002, but JUCE based hosts only support XDND version 3.

Fixed

  • Fixed crashes or freezes when a plugin uses the Windows drag-and-drop system to transfer arbitrary, vendor specific data. This prevents Reaktor from freezing when editing a patch after upgrading to yabridge 3.4.0.
  • Fixed yabridge thinking that the Wine plugin host process has died when the user doesn't have permissions to access the Wine process's memory. This fixes a seemingly very rare regression from yabridge 3.4.0 where the Wine plugin host application would immediately be seen as dead when using AppArmor, preventing yabridge from starting.
  • Fixed a regression from yabridge 3.4.0 where plugins with zero input and output audio channels like FrozenPlain Obelisk would result in a crash.
  • Fixed a regression from yabridge 3.4.0 where JUCE-based VST3 plugins might cause Ardour or Mixbus to freeze in very specific circumstances.
  • As mentioned above, it's now no longer possible for hosts to wrongly detect the editor window size. This fixes a rare issue with Ardour on older XFCE versions where the editor window would extend to cover the entire screen. A similar issue also exists with Carla 2.3.1.
  • This same change also fixes VST3 editors in Ardour not rendering past their original size when resizing them from the plugin (as opposed to resizing the actual window).
  • Worked around a REAPER bug that would cause REAPER to not process any keyboard input when the FX window is active but the mouse cursor is positioned outside of the window. We now use the same validation used in xprop and xwininfo to find the host's window instead of always taking the topmost window.
  • Fixed Wine->X11 drag-and-drop in Tracktion Waveform. Waveform only supports an old 1998 version of the XDND specification, so it was ignoring our messages since we assumed every application would support the most recent XDND version from 2002.
  • Worked around a race condition in Nimble Kick, which would trigger a stack overflow when loading the plugin if it wasn't already activated.
  • Potentially fixed an obscure issue where the editor would not render at all when using multiple displays and the rightmost display was set as the primary display. This issue appears to be very rare, and I haven't gotten any response back when I asked the people affected by this to test a potential fix, so I'm just including it in yabridge anyways in case it helps. If anyone was affected by this, please let me know if this update makes any difference!

yabridgectl

  • yabridgectl status now also lists the paths to the yabridge-host.exe and yabridge-host-32.exe binaries that yabridge will end up running. This can be helpful for diagnosing issues with complex setups.

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. As of yabridge 3.0.0 yabridgectl is now included in the regular release archives for your convenience.

Don't miss a new yabridge release

NewReleases is sending notifications on new releases.