mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 12:10:09 +02:00
Reword the changelog once more
It's always fun how you keep finding more spelling mistakes every time you read something.
This commit is contained in:
+65
-59
@@ -14,18 +14,19 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
information and process level before sending the audio buffers over to the
|
||||
Windows VST2 plugin. This lets us cache this information on the Wine side
|
||||
during the audio processing call, which significantly reduces the overhead of
|
||||
bridging VST2 plugins by avoiding one or more otherwise mandatory back and
|
||||
forth function call between yabridge's native plugin and the Wine plugin host.
|
||||
This considerably reduces the overhead of bridging _MeldaProduction_ VST2
|
||||
plugins, and it has an even greater impact on plugins like _SWAM Cello_ that
|
||||
request this information repeatedly over the course of a single audio
|
||||
processing cycle. Previously yabridge had a `cache_time_info` compatibility
|
||||
option to mitigate the performance hit for those plugins, but this new caching
|
||||
behaviour supercedes that.
|
||||
bridging VST2 plugins by avoiding one or more otherwise unavoidable back and
|
||||
forth function calls between yabridge's native plugin and the Wine plugin
|
||||
host. While beneficial to every VST2 plugin, this considerably reduces the
|
||||
overhead of bridging _MeldaProduction_ VST2 plugins, and it has an even
|
||||
greater impact on plugins like _SWAM Cello_ that request this information
|
||||
repeatedly over the course of a single audio processing cycle. Previously
|
||||
yabridge had a `cache_time_info` compatibility option to mitigate the
|
||||
performance hit for those plugins, but this new caching behaviour supercedes
|
||||
that option.
|
||||
- We now always force the CPU's flush-to-zero flag to be set when processing
|
||||
audio. Most plugins will already do this by themselves, but plugins like _Kush
|
||||
Audio REDDI_ and _Expressive E Noisy_ that don't will otherwise suffer from
|
||||
extreme DSP usage when processing almost silent audio.
|
||||
extreme DSP usage increases when processing almost silent audio.
|
||||
- Added a new [compatibility
|
||||
option](https://github.com/robbert-vdh/yabridge#compatibility-options) to hide
|
||||
the name of the DAW you're using. This can be useful with plugins that have
|
||||
@@ -33,24 +34,25 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
issues](https://github.com/robbert-vdh/yabridge#runtime-dependencies-and-known-issues)
|
||||
section of the readme for more information on when this may be useful.
|
||||
- Yabridge now uses a watchdog timer to prevent rare instances where Wine
|
||||
processes would be left running after the native host has crashed or got
|
||||
forcefully terminated. By design yabridge would always try to gracefully shut
|
||||
down its Wine processes when native host has crashed and the sockets become
|
||||
unavailable, but this did not always happen if the crash occurred before the
|
||||
bridged plugin has finished initializing because of the way Unix Domain
|
||||
Sockets work. In that specific situation the `yabridge-host.exe` process would
|
||||
be left running indefinitely, and depending on your DAW that might have also
|
||||
prevented you from restarting your DAW. To prevent any more dangling
|
||||
processes, yabridge's Wine plugin hosts now have a watchdog timer that
|
||||
periodically checks whether the original process that spawned the bridges is
|
||||
still running. If it detects that the process is no longer alive, yabridge
|
||||
will close the sockets and shut down the bridged plugin to prevent any more
|
||||
dangling processes from sticking around.
|
||||
processes would be left running after the native host has crashed or when it
|
||||
got forcefully terminated. By design yabridge would always try to gracefully
|
||||
shut down its Wine processes when native host has crashed and the sockets
|
||||
become unavailable, but this did not always happen if the crash occurred
|
||||
before the bridged plugin has finished initializing because of the way Unix
|
||||
Domain Sockets work. In that specific situation the `yabridge-host.exe`
|
||||
process would be left running indefinitely, and depending on your DAW that
|
||||
might have also prevented you from actually restarting your DAW without
|
||||
running `wineserver -k` first. To prevent any more dangling processes,
|
||||
yabridge's Wine plugin hosts now have a watchdog timer that periodically
|
||||
checks whether the original process that spawned the bridges is still running.
|
||||
If it detects that the process is no longer alive, yabridge will close the
|
||||
sockets and shut down the bridged plugin to prevent any more dangling
|
||||
processes from sticking around.
|
||||
|
||||
### Changed
|
||||
|
||||
- Most common VST2 functions that don't have any arguments are now handled
|
||||
explicilty. Yabridge can automatically support most common VST2 functions by
|
||||
explicilty. Yabridge could always automatically support most VST2 functions by
|
||||
simply inspecting the function arguments and handling those accordingly. This
|
||||
works practically everywhere, but _Plugsound Free_ by UVI would sometimes pass
|
||||
unreadable function arguments to functions that weren't supposed to have any
|
||||
@@ -58,13 +60,13 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
should prevent similar situations from happening in the future.
|
||||
- Yabridge will now try to bypass VST3 connection proxies if possible. Instead
|
||||
of connecting two VST3 plugin objects directly, **Ardour** and **Mixbus**
|
||||
place a connection proxy between the two objects so they can only interact
|
||||
through the DAW. In the past yabridge has always honored this by proxying the
|
||||
host's connection proxy, but this causes difficult situations with plugins
|
||||
that actively communicate over these proxies from the GUI thread, like the
|
||||
_FabFilter_ plugins. Instead of trying to proxy these proxies, yabridge will
|
||||
now try to bypass the proxies and connect the objects directly instead, only
|
||||
falling back to proxying the proxy when that's not possible.
|
||||
place a connection proxy between the two plugin objects so that they can only
|
||||
interact indirectly through the DAW. In the past yabridge has always honored
|
||||
this by proxying the host's connection proxy, but this causes difficult
|
||||
situations with plugins that actively communicate over these proxies from the
|
||||
GUI thread, like the _FabFilter_ plugins. Whenever possible, yabridge will now
|
||||
try to bypass the connection proxies and connect the two objects directly
|
||||
instead, only falling back to proxying the proxies when that's not possible.
|
||||
- Compile times have been slightly lowered by compiling most of the Wine plugin
|
||||
host into static libraries first.
|
||||
- When building the package from source, the targetted Wine version now gets
|
||||
@@ -82,22 +84,23 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
### Fixed
|
||||
|
||||
- Fixed rare X11 errors that could occur when closing a plugin's editor. In
|
||||
certain rare circumstances, closing a plugin editor would trigger an X11 error
|
||||
and crash the Wine plugin host, and with that likely the entire DAW. This
|
||||
happened because Wine would try to destroy the window after it had already
|
||||
been destroyed. This could happen in Renoise and to a lesser degree in REAPER
|
||||
with plugins that take a while to close their editors, such as the _iZotope
|
||||
Rx_ plugins. We now explicitly reparent the window to back the root window
|
||||
first before deferring the window closing. This should fix the issue, while
|
||||
still keeping editor closing nice and snappy.
|
||||
certain circumstances, closing a plugin editor would trigger an X11 error and
|
||||
crash the Wine plugin host, and with that likely the entire DAW. This happened
|
||||
because Wine would try to destroy the window after it had already been
|
||||
destroyed. This could happen in Renoise and to a lesser degree in REAPER with
|
||||
plugins that take a while to close their editors, such as the _iZotope Rx_
|
||||
plugins. We now explicitly reparent the window to back the root window first
|
||||
before deferring the window closing. This should fix the issue, while still
|
||||
keeping editor closing nice and snappy.
|
||||
- Plugin group host processes now shut down by themselves if they don't get a
|
||||
request to host any plugins. This can happen when the DAW gets killed after
|
||||
starting the group host process but before the native yabridge plugins
|
||||
requests the group host process to host a plugin. Otherwise this would result
|
||||
in a `yabridge-group.exe` process hanging around indefinitely.
|
||||
- Fixed latency introducing plugins VST3 from causing **Ardour** and **Mixbus**
|
||||
to freeze when loading the plugin. This stops _Neural DSP Darkglass_ from
|
||||
freezing when used under those DAWs.
|
||||
request to host any plugins within five seconds. This can happen when the DAW
|
||||
gets killed right after starting the group host process but before the native
|
||||
yabridge plugin requests the group host process to host a plugin for them.
|
||||
Before this change, this would result in a `yabridge-group.exe` process
|
||||
staying around indefinitely.
|
||||
- Prevented latency introducing VST3 from freezing **Ardour** and **Mixbus**
|
||||
when loading the plugin. This stops _Neural DSP Darkglass_ from freezing when
|
||||
used under those DAWs.
|
||||
- Fixed _FabFilter_ VST3 plugins freezing in **Ardour** and **Mixbus** when
|
||||
trying to duplicate existing instances of the plugin after the editor GUI has
|
||||
been opened.
|
||||
@@ -106,18 +109,21 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
- Fixed _Voxengo_ VST3 plugins freezing in **Ardour** and **Mixbus** when
|
||||
loading a project or when duplicating the plugin instances.
|
||||
- Fixed potential X11 errors resulting in assertion failures and crashes in
|
||||
**Ardour** and **Mixbus** caused by those hosts hiding a plugin's editor
|
||||
**Ardour** and **Mixbus** when those hosts hide (unmap) a plugin's editor
|
||||
window.
|
||||
- Fixed saving and loading _iZotope Rx7_ plugin state in **Bitwig Studio**.
|
||||
- Fixed saving and loading plugin state for VST3 _iZotope Rx_ plugins in
|
||||
**Bitwig Studio**.
|
||||
- Fixed a regression from yabridge 3.1.0 where **REAPER** would freeze when opening
|
||||
a VST3 plugin context menu.
|
||||
- Fixed another potential freezing issue in **REAPER** that could happen when
|
||||
the plugin resizes itself while sending a parameter change to the host and the
|
||||
'disable saving full plug-in state' option has not been disabled.
|
||||
- Fixed potential freeze when loading a VST3 while the editor is open when the
|
||||
plugin tries to resize the open editor window based on that preset.
|
||||
- Fixed a potential assertion failure when setting VST3 preset data. This would
|
||||
depend on the `libstdc++` version used to built yabridge with.
|
||||
- Fixed a potential freezing issue in **REAPER** that could happen when a VST3
|
||||
plugin resizes itself while sending parameter changes to the host when
|
||||
REAPER's 'disable saving full plug-in state' option has not been disabled.
|
||||
- Fixed another potential freeze when loading a VST3 plugin preset while the
|
||||
editor is open when the plugin tries to resize itself based on that new
|
||||
preset.
|
||||
- Fixed a potential assertion failure when loading VST3 presets. This would
|
||||
depend on the compiler settings and the version of `libstdc++` used to built
|
||||
yabridge with.
|
||||
- Fixed _PSPaudioware InifniStrip_ failing to initialize. The plugin expects the
|
||||
host to always be using Microsoft COM, and it doesn't try to initialize it by
|
||||
itself. InfiniStrip loads as expected now.
|
||||
@@ -126,14 +132,14 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
to be.
|
||||
- Fixed extreme DSP usage increases in _Kush Audio REDDI_ and _Expressive E
|
||||
Noisy_ due to denormals.
|
||||
- Fixed the VST3 version of _W. A. Production ImPerfect_ from crashing during
|
||||
audio setup.
|
||||
- Fixed the VST3 version of _W. A. Production ImPerfect_ crashing during audio
|
||||
setup.
|
||||
- Fixed _UVI Plugsound Free_ crashing during initialization.
|
||||
- Fixed the Wine version detection when using a custom `WINELOADER`.
|
||||
- Fixed incorrect logging output for cached VST3 function calls.
|
||||
- Because of the new transport information prefetching, the excessive DSP usage
|
||||
in _SWAM Cello_ is now been fixed without requiring any manual compatibility
|
||||
options.
|
||||
- Because of the new VST2 transport information prefetching, the excessive DSP
|
||||
usage in _SWAM Cello_ has now been fixed without requiring any manual
|
||||
compatibility options.
|
||||
|
||||
## [3.1.0] - 2021-04-15
|
||||
|
||||
|
||||
Reference in New Issue
Block a user