mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-06-14 23:43:52 +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
|
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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user