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