mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Reword the changelog
This commit is contained in:
+68
-57
@@ -17,43 +17,43 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
- Yabridge 4.0 introduces a completely new way to load plugins that allows
|
- Yabridge 4.0 completely revamps the way plugin loading works to allow yabridge
|
||||||
yabridge to be updated without breaking any plugins, saves disk space on
|
to be updated without breaking existing yabridge'd plugins while saving disk
|
||||||
filesystems that don't support reflinks, and makes the `yabridgectl sync`
|
space on filesystems that don't support reflinks and speeding up the
|
||||||
process faster. It does this by chainloading the actual plugin libraries from
|
`yabridgectl sync` process. Up until this point, `yabridgectl sync` has always
|
||||||
these new tiny, dependencyless shim libraries. The way yabridge has always
|
made copies of yabridge's `libyabridge-vst2.so` or `libyabridge-vst3.so`
|
||||||
worked is that whenever you run `yabridgectl sync`, yabridgectl will create
|
plugin libraries for every Windows plugin it sets up. These plugins are
|
||||||
copies of `libyabridge-vst2.so` or `libyabridge-vst3.so` for every Windows
|
tightly coupled to the yabridge plugin host binaries, and updating one but not
|
||||||
plugin it finds. When your DAW then loads those plugin libraries, yabridge
|
the other can thus cause issues. With yabridge 4.0, yabridgectl no longer
|
||||||
will find the corresponding Windows plugin and starts doing its magic.
|
copies the entire plugin libraries. Instead, it now creates copies of these
|
||||||
Yabridge 4.0 changes this process by no longer copying the full
|
new tiny dependencyless shim libraries. When loaded by a plugin host, these
|
||||||
`libyabridge-*.so` libraries, and instead using these shim libraries that will
|
libraries locate the actual plugin libraries on the system and then
|
||||||
find and then chainload the actual yabridge plugin libraries. The result is
|
transparently forward all entry point function calls to them as if the host
|
||||||
that instead of having to copy large files, yabridgectl now only needs to copy
|
was loading the yabridge plugin library directly. Yabridge internally calls
|
||||||
these small shim libraries while the actual plugin libraries stay in
|
these libraries chainloaders due to their similarity to the identically named
|
||||||
yabridge's installation directory. That not only saves disk space, but it also
|
functionality in boot loading process. This allows yabridge to be updated
|
||||||
means that it's no longer possible for yabridge to be out of sync after an
|
independently of these copied chainloading libraries. As such, it is no longer
|
||||||
update. If you use a distro packaged version of yabridge, then that means
|
possible for yabridge to be out of sync after an update. If you use a distro
|
||||||
yabridge can now be updated safely without requiring any action from your
|
packaged version of yabridge, then that means yabridge can now be updated
|
||||||
side.
|
safely without requiring any action from your side.
|
||||||
- Added support for the `effBeginLoadBank` and `effBeginLoadProgram` VST2
|
- Added support for the `effBeginLoadBank` and `effBeginLoadProgram` VST2
|
||||||
opcodes for loading state as a program or a program bank.
|
opcodes for loading state as a program or a program bank.
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
- Almost the entirety of yabridge's backend has been rewritten to get rid of all
|
- Almost the entirety of yabridge's backend has been rewritten to get rid of all
|
||||||
dependencies on the Boost libraries to make packaging yabridge for distros
|
dependencies on the Boost libraries. As a consequence, the runtime dependency
|
||||||
easier and to make distro packaged versions of yabridge more reliable. This
|
on `Boost.Filesystem` has also been removed. This makes packaging yabridge for
|
||||||
gets rid of the runtime dependency on Boost.Filesystem for those builds, and
|
distros easier, and it makes the packages more reliable by removing the need
|
||||||
it also makes compiling slightly faster and the binaries slightly smaller.
|
for yabridge to be rebuilt whenever Boost gets updated. Additionally, it also
|
||||||
Before this, yabridge would need to be rebuilt whenever Boost got updated.
|
makes compiling slightly faster and the binaries are slightly smaller.
|
||||||
- The functionality for the `yabridge-group` binaries has been merged into the
|
- The functionality for the `yabridge-group` binaries has been merged into the
|
||||||
`yabridge-host` binaries.
|
`yabridge-host` binaries to reduce duplication.
|
||||||
- When mapping shared memory for audio and the user does not have permissions to
|
- When the user does not have the permissions to lock the shared audio buffers
|
||||||
lock the memory, yabridge will now retry mapping the memory without locking it
|
into memory, yabridge will now retry mapping the memory without locking it
|
||||||
instead of immediately terminating the process. An annoying desktop
|
instead of immediately terminating the process. An annoying desktop
|
||||||
notification will still be shown every time you load a plugin until you fix
|
notification will still be shown every time you load a plugin until you fix
|
||||||
this.
|
this however.
|
||||||
- Yabridge now prints the path to the `libyabridge-{vst2,vst3}.so` library
|
- Yabridge now prints the path to the `libyabridge-{vst2,vst3}.so` library
|
||||||
that's being used on startup. This tells you where the chainloader is loading
|
that's being used on startup. This tells you where the chainloader is loading
|
||||||
the library file from. Because you can never have too much information, right?
|
the library file from. Because you can never have too much information, right?
|
||||||
@@ -74,7 +74,7 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
- Fixed manually changing channel counts with supported VST3 plugins in
|
- Fixed manually changing channel counts with supported VST3 plugins in
|
||||||
**REAPER** not working.
|
**REAPER** not working.
|
||||||
- Fixed an obscure issue with VST3 plugins crashing in **Ardour** on
|
- Fixed an obscure issue with VST3 plugins crashing in **Ardour** on
|
||||||
Arch/Manjaro because of misreported parameter queue lengths.
|
Arch/Manjaro because of Ardour's misreported parameter queue lengths.
|
||||||
- Fixed yabridge throwing assertion failures on serialization when using some of
|
- Fixed yabridge throwing assertion failures on serialization when using some of
|
||||||
the _Orchestral Tools_ Kontakt libraries in the VST2 version of Kontakt. Some
|
the _Orchestral Tools_ Kontakt libraries in the VST2 version of Kontakt. Some
|
||||||
of those libraries would output more than 2048 MIDI events in a single buffer.
|
of those libraries would output more than 2048 MIDI events in a single buffer.
|
||||||
@@ -85,42 +85,54 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
### yabridgectl
|
### yabridgectl
|
||||||
|
|
||||||
- VST2 plugins are now set up in `~/.vst/yabridge` by default. This means that
|
- VST2 plugins are now set up in `~/.vst/yabridge` by default. This means that
|
||||||
you no longer have to add any directory search locations in your DAW. The
|
you no longer have to add any directory search locations in your DAW. The only
|
||||||
downside is that it's no longer possible for two plugin directories (perhaps
|
potential downside is that it's no longer possible for two plugin directories
|
||||||
in different Wine prefixes) to provide the same plugin file. Like with
|
(perhaps in different Wine prefixes) to provide the same plugin file, although
|
||||||
yabridgectl's VST3 handling, the subdirectory structure within the plugin
|
you would not have been able to use both with the same DAW anyways. Like with
|
||||||
|
yabridgectl's VST3 support, the subdirectory structure within the plugin
|
||||||
directory is preserved. You can use `yabridgectl set --vst2-location=inline`
|
directory is preserved. You can use `yabridgectl set --vst2-location=inline`
|
||||||
to revert back to the old behavior of setting the plugins up right next to the
|
to revert back to the old behavior of setting the plugins up right next to the
|
||||||
VST2 plugin `.dll` files.
|
VST2 plugin `.dll` files. Some migration notes:
|
||||||
|
|
||||||
If you were using a `yabridge.toml` configuration file, then you will now need
|
- Because the plugins are now set up in `~/.vst/yabridge` by default instead
|
||||||
to place that file in `~/.vst/yabridge` instead.
|
of next to the Windows VST2 plugin .dll file, you will see notices about
|
||||||
|
leftover `.so` files the first time you run `yabridgectl sync` after
|
||||||
|
updating. Double check the list to make sure there are no files in there
|
||||||
|
that shouldn't be removed, and then run `yabridgectl sync --prune` as
|
||||||
|
instructed to remove the old `.so` files.
|
||||||
|
- Make sure your DAW searches for VST2 plugins in `~/.vst`.
|
||||||
|
- You can and should remove any entries for VST2 plugin directories you added
|
||||||
|
to your DAW's plugin search locations as they will no longer contain any
|
||||||
|
relevant files.
|
||||||
|
- If you were using a `yabridge.toml` configuration file to configure VST2
|
||||||
|
plugins, then you will now need to move that file in `~/.vst/yabridge`
|
||||||
|
instead.
|
||||||
|
|
||||||
- As mentioned above, yabridgectl will now use the new chainloading libraries
|
- As mentioned above, yabridgectl now uses the new chainloading libraries when
|
||||||
when setting up plugins. This means that once you've ran `yabridgectl sync`
|
setting up plugins. This means that once you've ran `yabridgectl sync` after
|
||||||
once after updating to yabridge 4.0, yabridge can now be updated without
|
updating to yabridge 4.0, yabridge can now be updated without needing to rerun
|
||||||
needing to rerun `yabridgectl sync`. This is particularly useful when using a
|
`yabridgectl sync`. This is particularly useful when using a distro packaged
|
||||||
distro packaged version of yabridge.
|
version of yabridge.
|
||||||
- Added support for the new VST 3.7.5 `moduleinfo.json` format to allow
|
- Added support for the new VST 3.7.5 `moduleinfo.json` format to allow VST3
|
||||||
VST3 plugins to replace other VST3 and VST2 plugins with different class IDs.
|
plugins to replace VST2 and VST3 plugins with different class IDs.
|
||||||
- Yabridgectl no longer depends on **winedump**. It now parses Windows PE32(+)
|
- Yabridgectl no longer depends on **winedump**. It now parses Windows PE32(+)
|
||||||
binaries without requiring any external dependencies. Or at least, that's the
|
binaries without requiring any external dependencies. Or at least, that's the
|
||||||
idea. I've come across at least one binary this new parser can't handle
|
idea. I've come across at least one binary that this new parser can't handle
|
||||||
(https://github.com/m4b/goblin/issues/307), so it will still fall back to
|
(https://github.com/m4b/goblin/issues/307), so it will still fall back to
|
||||||
winedump in some cases.
|
winedump when that happens.
|
||||||
- After `yabridgectl sync` has finished setting up plugins, yabridgectl will now
|
- After `yabridgectl sync` has finished setting up plugins, yabridgectl now also
|
||||||
also check whether `notify-send` is installed as part of its post-install
|
checks whether `notify-send` is installed as part of its post-installation
|
||||||
verification process. If `notify-send` is missing then yabridge won't be able
|
verification process. If `notify-send` is missing, then yabridge won't be able
|
||||||
to send any notifications when things are going terribly wrong.
|
to send any notifications when things are going terribly wrong.
|
||||||
- `yabridgectl status` now shows the locations where bridged VST2 and VST3
|
- `yabridgectl status` now shows the locations where bridged VST2 and VST3
|
||||||
plugins will be set up.
|
plugins will be set up.
|
||||||
- `yabridgectl sync --prune` now also considers broken symlinks.
|
- `yabridgectl sync --prune` now also considers broken symlinks.
|
||||||
- The VST3 subdirectory detection is more robust and can now handle arbitrary
|
- The VST3 subdirectory detection has been made more robust and can now handle
|
||||||
directories, not just directories that are called `VST3`. This, of course,
|
arbitrary plugin directories, not just directories that are called `VST3`.
|
||||||
should not be needed.
|
This, of course, should not be needed.
|
||||||
- The previously deprecated symlink installation method has now been removed
|
- The previously deprecated symlink installation method has been removed from
|
||||||
from yabridgectl, along with the `yabridgectl set --method` option. The
|
yabridgectl, along with the `yabridgectl set --method` option. The terminology
|
||||||
terminology in `yabridgectl status` has changed accordingly.
|
in `yabridgectl status` has changed accordingly.
|
||||||
- `yabridgectl status` now lists the architecture of
|
- `yabridgectl status` now lists the architecture of
|
||||||
`libyabridge-chainloader-vst2.so` just like it already did for the VST3
|
`libyabridge-chainloader-vst2.so` just like it already did for the VST3
|
||||||
library.
|
library.
|
||||||
@@ -137,9 +149,8 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
|||||||
- There's a new dependency on the headers-only
|
- There's a new dependency on the headers-only
|
||||||
[`ghc::filesystem`](https://github.com/gulrak/filesystem) library to replace
|
[`ghc::filesystem`](https://github.com/gulrak/filesystem) library to replace
|
||||||
Boost.Filesystem. A Meson wrap is included as a fallback for a distro package.
|
Boost.Filesystem. A Meson wrap is included as a fallback for a distro package.
|
||||||
- Added a dependency on the headers-only [Asio](http://think-async.com/Asio/)
|
- The headers-only [Asio](http://think-async.com/Asio/) library now replaces
|
||||||
library to replace Boost.Asio. A Meson wrap is included as a fallback for a
|
Boost.Asio. A Meson wrap is included as a fallback for a distro package.
|
||||||
distro package.
|
|
||||||
- Fixed a deprecation warning in the Meson build, causing the minimum supported
|
- Fixed a deprecation warning in the Meson build, causing the minimum supported
|
||||||
Meson version to be bumped up to **Meson 0.56** from 0.55.
|
Meson version to be bumped up to **Meson 0.56** from 0.55.
|
||||||
- Yabridge now targets VST3 SDK version 3.7.5 with git tag `v3.7.5_build_44-patched`.
|
- Yabridge now targets VST3 SDK version 3.7.5 with git tag `v3.7.5_build_44-patched`.
|
||||||
|
|||||||
Reference in New Issue
Block a user