mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-06-17 08:53:56 +02:00
Update all references to libyabridge.so
This commit is contained in:
@@ -53,7 +53,7 @@ jobs:
|
|||||||
- name: Create an archive for the binaries
|
- name: Create an archive for the binaries
|
||||||
run: |
|
run: |
|
||||||
mkdir yabridge
|
mkdir yabridge
|
||||||
cp build/libyabridge.so build/yabridge-{host,group}{,-32}.exe{,.so} yabridge
|
cp build/libyabridge-vst2.so build/yabridge-{host,group}{,-32}.exe{,.so} yabridge
|
||||||
cp CHANGELOG.md README.md yabridge
|
cp CHANGELOG.md README.md yabridge
|
||||||
|
|
||||||
tar -caf "$ARCHIVE_NAME" yabridge
|
tar -caf "$ARCHIVE_NAME" yabridge
|
||||||
@@ -92,7 +92,7 @@ jobs:
|
|||||||
- name: Create an archive for the binaries
|
- name: Create an archive for the binaries
|
||||||
run: |
|
run: |
|
||||||
mkdir yabridge
|
mkdir yabridge
|
||||||
cp build/libyabridge.so build/yabridge-{host,group}{,-32}.exe{,.so} yabridge
|
cp build/libyabridge-vst2.so build/yabridge-{host,group}{,-32}.exe{,.so} yabridge
|
||||||
cp CHANGELOG.md README.md yabridge
|
cp CHANGELOG.md README.md yabridge
|
||||||
|
|
||||||
tar -caf "$ARCHIVE_NAME" yabridge
|
tar -caf "$ARCHIVE_NAME" yabridge
|
||||||
|
|||||||
@@ -17,8 +17,6 @@ imcomplete list of things that still have to be done before this can be used:
|
|||||||
- Rename `PluginBridge` to `Vst2PluginBridge` and explain that the names are
|
- Rename `PluginBridge` to `Vst2PluginBridge` and explain that the names are
|
||||||
chosen this way to be easily greppable.
|
chosen this way to be easily greppable.
|
||||||
- Actually start implementing VST3 support.
|
- Actually start implementing VST3 support.
|
||||||
- Make sure all old references to `libyabridge` now refer to `libyabridge-vst2`
|
|
||||||
or to both `libyabridge-{vst2,vst3}` depending on the situation.
|
|
||||||
- Update the GitHub Actions workflows.
|
- Update the GitHub Actions workflows.
|
||||||
- Update yabridgectl to handle buth VST2 and VST3 plugins.
|
- Update yabridgectl to handle buth VST2 and VST3 plugins.
|
||||||
- Update all documentation to refer to VST2 and VST3 support separately, and
|
- Update all documentation to refer to VST2 and VST3 support separately, and
|
||||||
@@ -134,24 +132,25 @@ as it makes updating easier and yabridgectl will check for some common mistakes
|
|||||||
during the installation process. To set up yabridge without using yabridgectl,
|
during the installation process. To set up yabridge without using yabridgectl,
|
||||||
first download and extract yabridge's files like in the section above. The rest
|
first download and extract yabridge's files like in the section above. The rest
|
||||||
of this section assumes that you have extracted the files to `~/.local/share`
|
of this section assumes that you have extracted the files to `~/.local/share`
|
||||||
(such that `~/.local/share/yabridge/libyabridge.so` exists), and that you want
|
(such that `~/.local/share/yabridge/libyabridge-vst2.so` exists), and that you
|
||||||
to set up yabridge for the VST2 plugin called `~/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.dll`.
|
want to set up yabridge for the VST2 plugin called
|
||||||
|
`~/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.dll`.
|
||||||
|
|
||||||
Depending on whether you want to use copy or symlink-based installation method,
|
Depending on whether you want to use copy or symlink-based installation method,
|
||||||
you can then set up yabridge for that plugin by creating a copy or symlink of
|
you can then set up yabridge for that plugin by creating a copy or symlink of
|
||||||
`libyabridge.so` next to `plugin.dll` called `plugin.so`. For the example, you
|
`libyabridge-vst2.so` next to `plugin.dll` called `plugin.so`. For the example,
|
||||||
can use either:
|
you can use either:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
# For the copy-based installation method
|
# For the copy-based installation method
|
||||||
cp ~/.local/share/yabridge/libyabridge.so "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.so"
|
cp ~/.local/share/yabridge/libyabridge-vst2.so "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.so"
|
||||||
# For the symlink-based installation method
|
# For the symlink-based installation method
|
||||||
ln -sf ~/.local/share/yabridge/libyabridge.so "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.so"
|
ln -sf ~/.local/share/yabridge/libyabridge-vst2.so "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins/plugin.so"
|
||||||
```
|
```
|
||||||
|
|
||||||
The symlink-based installation method will not work with any host that does not
|
The symlink-based installation method will not work with any host that does not
|
||||||
individually sandbox its plugins. If you are using the copy-based installation
|
individually sandbox its plugins. If you are using the copy-based installation
|
||||||
method, then don't forget to overwrite all copies of `libyabridge.so` you
|
method, then don't forget to overwrite all copies of `libyabridge-vst2.so` you
|
||||||
created this way whenever you update yabridge.
|
created this way whenever you update yabridge.
|
||||||
|
|
||||||
### DAW setup
|
### DAW setup
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
# Architecture
|
# Architecture
|
||||||
|
|
||||||
|
TODO: This document has not yet been updated since adding VST3 support
|
||||||
|
|
||||||
The project consists of two components: a Linux native VST plugin
|
The project consists of two components: a Linux native VST plugin
|
||||||
(`libyabridge.so`) and a VST host that runs under Wine
|
(`libyabridge.so`) and a VST host that runs under Wine
|
||||||
(`yabridge-host.exe`/`yabridge-host.exe.so`, and
|
(`yabridge-host.exe`/`yabridge-host.exe.so`, and
|
||||||
|
|||||||
@@ -33,8 +33,8 @@
|
|||||||
* they can share resources. Configuration file loading works as follows:
|
* they can share resources. Configuration file loading works as follows:
|
||||||
*
|
*
|
||||||
* 1. `load_config_for(path)` from `src/plugin/utils.h` gets called with a path
|
* 1. `load_config_for(path)` from `src/plugin/utils.h` gets called with a path
|
||||||
* to the copy of or symlink to `libyabridge.so` that the plugin host has
|
* to the copy of or symlink to `libyabridge-{vst2,vst3}.so` that the plugin
|
||||||
* tried to load.
|
* host has tried to load.
|
||||||
* 2. We start looking for a file named `yabridge.toml` in the same directory as
|
* 2. We start looking for a file named `yabridge.toml` in the same directory as
|
||||||
* that `.so` file, iteratively continuing to search one directory higher
|
* that `.so` file, iteratively continuing to search one directory higher
|
||||||
* until we either find the file or we reach the filesystem root.
|
* until we either find the file or we reach the filesystem root.
|
||||||
|
|||||||
@@ -140,7 +140,7 @@ fs::path find_vst_plugin() {
|
|||||||
|
|
||||||
// In case this files does not exist and our `.so` file is a symlink, we'll
|
// In case this files does not exist and our `.so` file is a symlink, we'll
|
||||||
// also repeat this check after resolving that symlink to support links to
|
// also repeat this check after resolving that symlink to support links to
|
||||||
// copies of `libyabridge.so` as described in issue #3
|
// copies of `libyabridge-vst2.so` as described in issue #3
|
||||||
fs::path alternative_plugin_path = fs::canonical(this_plugin_path);
|
fs::path alternative_plugin_path = fs::canonical(this_plugin_path);
|
||||||
alternative_plugin_path.replace_extension(".dll");
|
alternative_plugin_path.replace_extension(".dll");
|
||||||
if (fs::exists(alternative_plugin_path)) {
|
if (fs::exists(alternative_plugin_path)) {
|
||||||
@@ -151,7 +151,7 @@ fs::path find_vst_plugin() {
|
|||||||
// throw when the path could not be found
|
// throw when the path could not be found
|
||||||
throw std::runtime_error("'" + plugin_path.string() +
|
throw std::runtime_error("'" + plugin_path.string() +
|
||||||
"' does not exist, make sure to rename "
|
"' does not exist, make sure to rename "
|
||||||
"'libyabridge.so' to match a "
|
"'libyabridge-vst2.so' to match a "
|
||||||
"VST plugin .dll file.");
|
"VST plugin .dll file.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-14
@@ -76,10 +76,10 @@ PluginArchitecture find_vst_architecture(boost::filesystem::path);
|
|||||||
* Finds the Wine VST host (either `yabridge-host.exe` or `yabridge-host.exe`
|
* Finds the Wine VST host (either `yabridge-host.exe` or `yabridge-host.exe`
|
||||||
* depending on the plugin). For this we will search in two places:
|
* depending on the plugin). For this we will search in two places:
|
||||||
*
|
*
|
||||||
* 1. Alongside libyabridge.so if the file got symlinked. This is useful
|
* 1. Alongside libyabridge-{vst2,vst3}.so if the file got symlinked. This is
|
||||||
* when developing, as you can simply symlink the the libyabridge.so
|
* useful when developing, as you can simply symlink the
|
||||||
* file in the build directory without having to install anything to
|
* `libyabridge-{vst2,vst3}.so` file in the build directory without having
|
||||||
* /usr.
|
* to install anything to /usr.
|
||||||
* 2. In the regular search path, augmented with `~/.local/share/yabridge` to
|
* 2. In the regular search path, augmented with `~/.local/share/yabridge` to
|
||||||
* ease the setup process.
|
* ease the setup process.
|
||||||
*
|
*
|
||||||
@@ -96,11 +96,14 @@ boost::filesystem::path find_vst_host(PluginArchitecture plugin_arch,
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Find the VST plugin .dll file that corresponds to this copy of
|
* Find the VST plugin .dll file that corresponds to this copy of
|
||||||
* `libyabridge.so`. This should be the same as the name of this file but with a
|
* `libyabridge-vst2.so`. This should be the same as the name of this file but
|
||||||
* `.dll` file extension instead of `.so`. In case this file does not exist and
|
* with a `.dll` file extension instead of `.so`. In case this file does not
|
||||||
* the `.so` file is a symlink, we'll also repeat this check for the file it
|
* exist and the `.so` file is a symlink, we'll also repeat this check for the
|
||||||
* links to. This is to support the workflow described in issue #3 where you use
|
* file it links to. This is to support the workflow described in issue #3 where
|
||||||
* symlinks to copies of `libyabridge.so`.
|
* you use symlinks to copies of `libyabridge-vst2.so`.
|
||||||
|
*
|
||||||
|
* TODO: This should probably be renamed to `find_vst2_plugin()` so we can have
|
||||||
|
* a separate `find_vst3_plugin()`
|
||||||
*
|
*
|
||||||
* @return The a path to the accompanying VST plugin .dll file.
|
* @return The a path to the accompanying VST plugin .dll file.
|
||||||
* @throw std::runtime_error If no matching .dll file could be found.
|
* @throw std::runtime_error If no matching .dll file could be found.
|
||||||
@@ -156,7 +159,7 @@ std::vector<boost::filesystem::path> get_augmented_search_path();
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Return a path to this `.so` file. This can be used to find out from where
|
* Return a path to this `.so` file. This can be used to find out from where
|
||||||
* this link to or copy of `libyabridge.so` was loaded.
|
* this link to or copy of `libyabridge-{vst2,vst3}.so` was loaded.
|
||||||
*/
|
*/
|
||||||
boost::filesystem::path get_this_file_location();
|
boost::filesystem::path get_this_file_location();
|
||||||
|
|
||||||
@@ -180,10 +183,10 @@ std::string join_quoted_strings(std::vector<std::string>& strings);
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the configuration that belongs to a copy of or symlink to
|
* Load the configuration that belongs to a copy of or symlink to
|
||||||
* `libyabridge.so`. If no configuration file could be found then this will
|
* `libyabridge-{vst2,vst3}.so`. If no configuration file could be found then
|
||||||
* return an empty configuration object with default settings. See the docstrong
|
* this will return an empty configuration object with default settings. See the
|
||||||
* on the `Configuration` class for more details on how to choose the config
|
* docstrong on the `Configuration` class for more details on how to choose the
|
||||||
* file to load.
|
* config file to load.
|
||||||
*
|
*
|
||||||
* This function will take any optional compile-time features that have not been
|
* This function will take any optional compile-time features that have not been
|
||||||
* enabled into account.
|
* enabled into account.
|
||||||
|
|||||||
@@ -30,11 +30,11 @@
|
|||||||
* This works very similar to the host application defined in
|
* This works very similar to the host application defined in
|
||||||
* `individual-host.cpp`, but instead of just loading a single plugin this will
|
* `individual-host.cpp`, but instead of just loading a single plugin this will
|
||||||
* act as a daemon that can host multiple 'grouped' plugins. This works by
|
* act as a daemon that can host multiple 'grouped' plugins. This works by
|
||||||
* allowing the `libyabridge.so` instance to connect this this process over a
|
* allowing the `libyabridge-{vst2,vst3}.so` instance to connect this this
|
||||||
* socket to ask this process to host a VST `.dll` file using a provided socket.
|
* process over a socket to ask this process to host a VST `.dll` file using a
|
||||||
* After that initialization step both the regular individual plugin host and
|
* provided socket. After that initialization step both the regular individual
|
||||||
* this group plugin host will function identically on both the plugin and the
|
* plugin host and this group plugin host will function identically on both the
|
||||||
* Wine VST host side.
|
* plugin and the Wine VST host side.
|
||||||
*
|
*
|
||||||
* The explicit calling convention is needed to work around a bug introduced in
|
* The explicit calling convention is needed to work around a bug introduced in
|
||||||
* Wine 5.7: https://bugs.winehq.org/show_bug.cgi?id=49138
|
* Wine 5.7: https://bugs.winehq.org/show_bug.cgi?id=49138
|
||||||
|
|||||||
@@ -26,8 +26,8 @@
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* This is the default VST host application. It will load the specified VST2
|
* This is the default VST host application. It will load the specified VST2
|
||||||
* plugin, and then connect back to the `libyabridge.so` instance that spawned
|
* plugin, and then connect back to the `libyabridge-{vst2,vst3}.so` instance
|
||||||
* this over the socket.
|
* that spawned this over the socket.
|
||||||
*
|
*
|
||||||
* The explicit calling convention is needed to work around a bug introduced in
|
* The explicit calling convention is needed to work around a bug introduced in
|
||||||
* Wine 5.7: https://bugs.winehq.org/show_bug.cgi?id=49138
|
* Wine 5.7: https://bugs.winehq.org/show_bug.cgi?id=49138
|
||||||
|
|||||||
@@ -49,9 +49,9 @@ pub struct Config {
|
|||||||
/// The installation method to use. We will default to creating copies since that works
|
/// The installation method to use. We will default to creating copies since that works
|
||||||
/// everywhere.
|
/// everywhere.
|
||||||
pub method: InstallationMethod,
|
pub method: InstallationMethod,
|
||||||
/// The path to the directory containing `libyabridge.so`. If not set, then yabridgectl will
|
/// The path to the directory containing `libyabridge-{vst2,vst3}.so`. If not set, then
|
||||||
/// look in `/usr/lib` and `$XDG_DATA_HOME/yabridge` since those are the expected locations for
|
/// yabridgectl will look in `/usr/lib` and `$XDG_DATA_HOME/yabridge` since those are the
|
||||||
/// yabridge to be installed in.
|
/// expected locations for yabridge to be installed in.
|
||||||
pub yabridge_home: Option<PathBuf>,
|
pub yabridge_home: Option<PathBuf>,
|
||||||
/// Directories to search for Windows VST plugins. We're using an ordered set here out of
|
/// Directories to search for Windows VST plugins. We're using an ordered set here out of
|
||||||
/// convenience so we can't get duplicates and the config file is always sorted.
|
/// convenience so we can't get duplicates and the config file is always sorted.
|
||||||
|
|||||||
Reference in New Issue
Block a user