mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Reword changelog
This commit is contained in:
+79
-77
@@ -13,69 +13,70 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
- TODO: Remove the notice about Wine->X11 drag and drop from the readme when
|
- TODO: Remove the notice about Wine->X11 drag and drop from the readme when
|
||||||
this gets released
|
this gets released
|
||||||
|
|
||||||
- Added support for dragging and dropping files and other content from a plugin
|
- Added support for drag-and-drop from Windows plugins running under yabridge to
|
||||||
running under yabridge to a native application, such as your DAW. This makes
|
native applications such as your DAW. This makes it much more convenient to
|
||||||
it much more convenient to use plugins like _Scaler 2_ that generate audio or
|
use plugins like _Scaler 2_ that generate audio or MIDI files. Because of the
|
||||||
MIDI files. With the way this is implemented it will only work for plugins
|
way this is implemented this feature will work with any Wine version.
|
||||||
running under yabridge, but it does work for any Wine version.
|
|
||||||
- When a plugin fails to load or when the Wine plugin host process fails to
|
- When a plugin fails to load or when the Wine plugin host process fails to
|
||||||
start, yabridge will now show you the error in a desktop notification instead
|
start, yabridge will now show you the error in a desktop notification instead
|
||||||
of only printing it to the logger. This makes diagnosing issues much faster if
|
of only printing it to the logger. This will make it much faster to quickly
|
||||||
you didn't already start your DAW from a terminal. These notifications require
|
diagnose issues if you weren't already running your DAW from a terminal. These
|
||||||
`libnotify` and the `notify-send` application to be installed.
|
notifications require `libnotify` and its `notify-send` application to be
|
||||||
- Also added a warning and a desktop notification when there's a version
|
installed.
|
||||||
mismatch between the yabridge host application and the plugin to remind you to
|
- Similarly, yabridge will show you a warning and a desktop notification with a
|
||||||
rerun `yabridgectl sync`.
|
reminder to rerun `yabridgctl sync` when it detects that there's been a
|
||||||
- Added an environment variable to disable the watchdog timer. This allows the
|
version mismatch between the plugin and the used Wine plugin host application.
|
||||||
Wine process to run under a separate namespace. If you don't know that you
|
- Added support for building 32-bit versions of the yabridge libraries, allowing
|
||||||
need this, then you probably don't need this!
|
you to use both 32-bit and 64-bit Windows VST2 and VST3 plugins under 32-bit
|
||||||
- Added support for building 32-bit versions of the yabridge libraries, so you
|
Linux plugin hosts. This should not be needed in any normal situation since
|
||||||
can use both 32-bit and 64-bit Windows VST2 and VST3 plugins under 32-bit
|
|
||||||
Linux plugin hosts. This should not be necessary in any normal situation since
|
|
||||||
Desktop Linux has been 64-bit only for a while now, but it could be useful in
|
Desktop Linux has been 64-bit only for a while now, but it could be useful in
|
||||||
some very specific situations. Building on a real 32-bit system will also
|
some very specific situations. Building on an actual 32-bit system will also
|
||||||
work, in which case the 64-bit Wine plugin host applications simply won't be
|
work, in which case the 64-bit Wine plugin host applications simply won't be
|
||||||
built.
|
built.
|
||||||
- Defined the deprecated pre-VST2.4 `main` entry point for VST2 plugins. This
|
- Added the deprecated pre-VST2.4 `main` entry point for VST2 plugins. This
|
||||||
allows the above mentioned 32-bit version of yabridge to be used in
|
allows the above mentioned 32-bit version of yabridge to be used in
|
||||||
**EnergyXT**, allowing you to use both 32-bit and 64-bit Windows VST2 plugins
|
**EnergyXT**, allowing you to use both 32-bit and 64-bit Windows VST2 plugins
|
||||||
there.
|
there.
|
||||||
|
- Added an environment variable to disable the watchdog timer. This is needed
|
||||||
|
when running the Wine process under a separate namespace. If you don't know
|
||||||
|
that you need this, then you probably don't need this!
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- The audio processing implementation for both VST2 and VST3 plugins has been
|
- The audio processing implementation for both VST2 and VST3 plugins has been
|
||||||
completely rewritten to use both shared memory and message passing to reduce
|
completely rewritten to use both shared memory and message passing to cut down
|
||||||
expensive memory copies to a minimum. With this change the DSP load overhead
|
the number of expensive memory copies to a minimum. This reduces the DSP load
|
||||||
during audio processing should now be about as low as it's going to get.
|
overhead of audio processing even further.
|
||||||
|
- Respect `$XDG_DATA_HOME` as a fallback when looking for yabridge's plugin host
|
||||||
|
binaries instead of hardcoding this to `~/.local/share/yabridge`. This matches
|
||||||
|
the existing behaviour in yabridgectl.
|
||||||
- Optimized the management of VST3 plugin instances to reduce the overhead when
|
- Optimized the management of VST3 plugin instances to reduce the overhead when
|
||||||
using many instances of a VST3 plugin.
|
using many instances of a single VST3 plugin.
|
||||||
- Slightly optimized the function call dispatch for VST2 plugins.
|
- Slightly optimized the function call dispatch for VST2 plugins.
|
||||||
- Prevented some more potential unnecessary memory operations during yabridge's
|
- Prevented some more potential unnecessary memory operations during yabridge's
|
||||||
communication. The underlying serialization library was recreating some
|
communication. The underlying serialization library was recreating some
|
||||||
objects even when that wasn't needed, which could in theory result in memory
|
objects even when this wasn't needed, which could result in unnecessary memory
|
||||||
allocations in certain situations. This is related to the similar issue that
|
allocations under certain circumstances. This is related to the similar issue
|
||||||
got fixed with yabridge 3.3.0. A fix for this issue has also been upstreamed
|
that was fixed in yabridge 3.3.0. A fix for this issue has also been
|
||||||
to the library.
|
upstreamed to the library.
|
||||||
- Respect `$XDG_DATA_HOME` when looking for yabridge's plugin host binaries
|
|
||||||
instead of hardcoding `~/.local/share/yabridge`. This matches the existing
|
|
||||||
behaviour in yabridgectl.
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
- Fixed mouse cursors disappearing when interacting with some plugin GUIs. This
|
- Fixed mouse cursors disappearing when interacting with some plugin GUIs. This
|
||||||
happened often with _JUCE_ based plugins like Sonic Academy's _Kick 2_ and
|
often happened with _JUCE_ based plugins, such as Sonic Academy's _Kick 2_ and
|
||||||
_Anaglyph_. While this is technically a workaround for a bad interaction with
|
_Anaglyph_. While this is technically a workaround for a bad interaction
|
||||||
JUCE and Wine, it should make these plugins a lot more pleasant to use.
|
between JUCE and Wine, it should make these plugins much more pleasant to use.
|
||||||
- Fixed _Waves_ VST3 plugins not being able to initialize correctly. These
|
- Fixed _Waves_ VST3 plugins not being able to initialize correctly. These
|
||||||
plugins would at runtime change their query interface to support more VST3
|
plugins would at runtime change their query interface to support more VST3
|
||||||
interfaces, including the required edit controller interface. Yabridge now
|
interfaces, including the mandatory edit controller interface. Yabridge now
|
||||||
requeries the supported interfaces at a later stage to work around this.
|
requeries the supported interfaces at a later stage to work around this.
|
||||||
- Fixed JUCE plugins like Tokyo Dawn Records' _SlickEQ M_ causing the host to
|
- Fixed JUCE VST3 plugins like Tokyo Dawn Records' _SlickEQ M_ causing the host
|
||||||
freeze when they send a parameter change from the audio thread using the wrong
|
to freeze when they send a parameter change from the audio thread using the
|
||||||
VST3 API while at the same time the host is trying to resize the window. This
|
wrong VST3 API while the plugin is also trying to resize the window from the
|
||||||
would happen in this particular plugin when reopning the Smart Ops panel after
|
GUI thread at the same time. This would happen in _SlickEQ M_ when reopning
|
||||||
having used it once. To fix this, yabridge's Wine-side VST3 mutual recursion
|
the Smart Ops panel after having used it once. To fix this, yabridge's
|
||||||
mechanism now only operates when invoked from the GUI thread.
|
Wine-side VST3 mutual recursion mechanism now only operates when invoked from
|
||||||
|
the GUI thread.
|
||||||
- Fixed missing transport information for VST2 plugins in **Ardour**, breaking
|
- Fixed missing transport information for VST2 plugins in **Ardour**, breaking
|
||||||
host sync and LFOs in certain plugins. This was a regression from yabridge
|
host sync and LFOs in certain plugins. This was a regression from yabridge
|
||||||
3.2.0.
|
3.2.0.
|
||||||
@@ -83,55 +84,56 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
tries to use REAPER's [host function
|
tries to use REAPER's [host function
|
||||||
API](https://www.reaper.fm/sdk/vst/vst_ext.php#vst_host) which currently isn't
|
API](https://www.reaper.fm/sdk/vst/vst_ext.php#vst_host) which currently isn't
|
||||||
supported by yabridge. We now explicitly ignore these requests.
|
supported by yabridge. We now explicitly ignore these requests.
|
||||||
- Fixed the plugin-side watchdog timer that checks whether the Wine plugin host
|
- Fixed yabridge's logging seeking the STDERR stream to position 0 every time it
|
||||||
process failed to start from treating zombie processes as running, active
|
writes a log message. This would be noticeable when piping the host's STDERR
|
||||||
processes. This could cause plugins to hang during scanning if the Wine
|
stream to a file and `YABRIDGE_DEBUG_LEVEL` wasn't set.
|
||||||
process crashed in a very specific (and likely impossible) way.
|
|
||||||
- In the event a VST3 plugin were to return a null pointer for
|
|
||||||
`IEditController::createView()`, this will now be propagated correctly on the
|
|
||||||
plugin side.
|
|
||||||
- Fixed VST2 speaker arrangement configurations returned by the plugin not being
|
|
||||||
serialized correctly. No plugins seem to actually use these, so it should not
|
|
||||||
have caused any issues.
|
|
||||||
- Fixed yabridge's logging seeking STDERR to position 0 every time it writes a
|
|
||||||
log message. This would be noticeable when piping a DAW's STDERR stream to a
|
|
||||||
file when `YABRIDGE_DEBUG_LEVEL` wasn't set.
|
|
||||||
- When printing the Wine version during initialization, the Wine process used
|
- When printing the Wine version during initialization, the Wine process used
|
||||||
for this is now run under the same environment as the Wine plugin host process
|
for this is now run under the same environment that the Wine plugin host
|
||||||
will be run under. This means that when using a custom `WINELOADER` script to
|
process will be run under. This means that if you use a custom `WINELOADER`
|
||||||
use different Wine versions depending on the Wine prefix, the `wine version:`
|
script to use different Wine binaries depending on the prefix, the
|
||||||
line in the initialization message will always match the version of Wine the
|
`wine version:` line in the initialization message will now always match the
|
||||||
plugin is going to be run under.
|
version of Wine the plugin is going to be run under.
|
||||||
|
- Fixed the plugin-side watchdog timer that allows a yabridge plugin to
|
||||||
|
terminate when the Wine plugin host application fails to start treating zombie
|
||||||
|
processes as still running, active processes. This could cause plugins to hang
|
||||||
|
during scanning if the Wine process crashed in a very specific and likely
|
||||||
|
impossible way.
|
||||||
|
- If a VST3 plugin returns a null pointer from `IEditController::createView()`,
|
||||||
|
then this will now be propagated correctly on the plugin side.
|
||||||
|
- Fixed VST2 speaker arrangement configurations returned by the plugin not being
|
||||||
|
serialized correctly. Very few plugins and hosts seem to actually use these,
|
||||||
|
so it should not have caused any issues.
|
||||||
|
|
||||||
### yabridgectl
|
### yabridgectl
|
||||||
|
|
||||||
- Added support for setting up merged VST3 bundles with a 32-bit version of
|
- Added support for setting up merged VST3 bundles when using a 32-bit version
|
||||||
`libyabridge-vst3.so`.
|
of `libyabridge-vst3.so`.
|
||||||
- Fixed the post-installation setup checks when the default Wine prefix over at
|
- Fixed the post-installation setup checks when the default Wine prefix over at
|
||||||
`~/.wine` was created with `WINEARCH=win32` set. This would otherwise result
|
`~/.wine` was created with `WINEARCH=win32` set. This would otherwise result
|
||||||
in an `00cc:err:process:exec_process` error when running `yabridgectl sync`
|
in an `00cc:err:process:exec_process` error when running `yabridgectl sync`
|
||||||
because yabridgectl would try to run the 64-bit `yabridge-host.exe` in that
|
because yabridgectl would try to run the 64-bit `yabridge-host.exe` in that
|
||||||
prefix.
|
prefix. Yabridgectl now detects the architecture of the default prefix first
|
||||||
- Fixed incorrect new and total plugin counts. These counts are now always
|
and then runs the proper Wine plugin host application for that prefix.
|
||||||
correct, even when using multiple versions of the same VST3 plugin or when
|
|
||||||
multiple plugin directories overlap because parts of the directory were
|
|
||||||
symlinked to another plugin directory.
|
|
||||||
- Aside from pruning only unmanaged VST3 bundles in `~/.vst3/yabridge`, yabridge
|
|
||||||
will now also prompt you to prune unmanaged files within a VST3 bundle. This
|
|
||||||
makes it easy to switch from the 64-bit version of a plugin to the 32-bit
|
|
||||||
version, or from a 64-bit version of yabridge to the 32-bit version. I don't
|
|
||||||
know why you would want to do either of those things, but now you can!
|
|
||||||
- If pruning causes a directory to be empty, then the empty directory will be
|
|
||||||
removed. This avoids having your plugin directories littered with empty
|
|
||||||
directories.
|
|
||||||
- Copies of `libyabridge-vst2.so` and `libyabridge-vst3.so` are now reflinked
|
- Copies of `libyabridge-vst2.so` and `libyabridge-vst3.so` are now reflinked
|
||||||
when supported by the file system. This speeds up the file coyping process
|
when supported by the file system. This speeds up the file coyping process
|
||||||
while also reducing the amount of disk space used for yabridge when using
|
while also reducing the amount of disk space used for yabridge when using
|
||||||
Btrfs or XFS.
|
Btrfs or XFS.
|
||||||
- Print a more descriptive error message instead of panicing if running
|
- If pruning causes a directory to be empty, then the empty directory will also
|
||||||
`$WINELOADER --version` during yabridgectl's post-setup verification checks
|
be removed. This avoids having your plugin directories littered with empty
|
||||||
does not result in any output. This is only relevant when using a custom
|
directories.
|
||||||
`WINELOADER` script that modifies Wine's output.
|
- Fixed incorrect new and total plugin counts. These counts are now always
|
||||||
|
correct, even when using multiple versions of the same VST3 plugin or when
|
||||||
|
multiple plugin directories overlap because of the use of symlinks.
|
||||||
|
- Aside from pruning only unmanaged VST3 bundles in `~/.vst3/yabridge`, yabridge
|
||||||
|
will now also prompt you to prune unmanaged files within a managed VST3
|
||||||
|
bundle. This makes it easy to switch from the 64-bit version of a plugin to
|
||||||
|
the 32-bit version, or from a 64-bit version of yabridge to the 32-bit
|
||||||
|
version. I don't know why you would want to do either of those things, but now
|
||||||
|
you can!
|
||||||
|
- Yabridgectl now prints a more descriptive error message instead of panicing if
|
||||||
|
running `$WINELOADER --version` during yabridgectl's post-setup verification
|
||||||
|
checks does not result in any output. This is only relevant when using a
|
||||||
|
custom `WINELOADER` script that modifies Wine's output.
|
||||||
|
|
||||||
## [3.3.1] - 2021-06-09
|
## [3.3.1] - 2021-06-09
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user