mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Update yabridgectl documentation
This commit is contained in:
@@ -5,7 +5,7 @@
|
||||
Yet Another way to use Windows VST plugins on Linux. Yabridge seamlessly
|
||||
supports running both 64-bit Windows VST2 plugins as well as 32-bit Windows VST2
|
||||
plugins in a 64-bit Linux VST host, with optional support for inter-plugin
|
||||
communication through [plugin groups](#Plugin-groups). This project aims to be
|
||||
communication through [plugin groups](#plugin-groups). This project aims to be
|
||||
as transparent as possible in order to achieve the best possible plugin
|
||||
compatibility while also staying easy to debug and maintain.
|
||||
|
||||
@@ -53,7 +53,7 @@ copy-based installation will work for all hosts.
|
||||
This is the recommended way to use yabridge if you're using Bitwig Studio or any
|
||||
other VST host that supports _invididually sandboxed plugins_. If you use Bitwig
|
||||
Studio and you do not want to use the '_Individually_' plugin hosting mode, then
|
||||
you should follow the instructions from the [copying](#Copying) section below
|
||||
you should follow the instructions from the [copying](#copying) section below
|
||||
instead. For this installation method you can either use the prebuilt binaries
|
||||
from the [GitHub releases](https://github.com/robbert-vdh/yabridge/releases)
|
||||
section, or you can build yabridge directly from source. If you use the prebuilt
|
||||
@@ -277,7 +277,7 @@ include:
|
||||
when the window gets dragged offscreen on the top and left dies of the screen.
|
||||
- Plugins like **FabFilter Pro-Q 3** that can share data between different
|
||||
instances of the same plugin plugins have to be hosted within a single process
|
||||
for that functionality to work. See the [plugin groups](#Plugin-groups)
|
||||
for that functionality to work. See the [plugin groups](#plugin-groups)
|
||||
section for instructions on how to set this up.
|
||||
|
||||
Aside from that, these are some known caveats:
|
||||
@@ -344,7 +344,7 @@ ninja -C build
|
||||
```
|
||||
|
||||
After you've finished building you can follow the instructions under the
|
||||
[usage](#Usage) section on how to set up yabridge.
|
||||
[usage](#usage) section on how to set up yabridge.
|
||||
|
||||
<sup>
|
||||
*The versions of GCC and Boost that ship with Ubuntu 18.04 by default are too
|
||||
|
||||
+32
-26
@@ -13,11 +13,11 @@ from anywhere. All of the information below can also be found through
|
||||
|
||||
### Yabridge path
|
||||
|
||||
Yabrdgectl will need to know where it can find `libyabridge.so`. By default it
|
||||
will look for it in both `~/.local/share/yabridge` (the recommended installation
|
||||
directory when using the prebuilt binaries) and in `/usr/lib`. You can use the
|
||||
command below to override this behaviour and to use a custom installation
|
||||
directory instead.
|
||||
Yabridgectl will need to know where it can find `libyabridge.so`. By default it
|
||||
will search for it in both `~/.local/share/yabridge` (the recommended
|
||||
installation directory when using the prebuilt binaries) and in `/usr/lib`. You
|
||||
can use the command below to override this behaviour and to use a custom
|
||||
installation directory instead.
|
||||
|
||||
```shell
|
||||
yabridgectl set --path=<path/to/directory/containing/yabridge/files>
|
||||
@@ -25,10 +25,12 @@ yabridgectl set --path=<path/to/directory/containing/yabridge/files>
|
||||
|
||||
### Installation methods
|
||||
|
||||
By default, yabridgectl will use the copy-based installation method for yabridge
|
||||
since this installation method works with any VST host. If you are using a DAW
|
||||
that supports individually sandboxed plugins such as Bitwig Studio, then you can
|
||||
choose between using copies and symlinks using the command below.
|
||||
Yabridge can be set up using either copies or symlinks. By default, yabridgectl
|
||||
will use the copy-based installation method since this will work with any VST
|
||||
host. If you are using a DAW that supports individually sandboxed plugins such
|
||||
as Bitwig Studio, then you can choose between using copies and symlinks using
|
||||
the command below. Make sure to rerun `yabridgectl sync` after changing this
|
||||
setting.
|
||||
|
||||
```shell
|
||||
yabridgectl set --method=<copy|symlink>
|
||||
@@ -36,43 +38,47 @@ yabridgectl set --method=<copy|symlink>
|
||||
|
||||
### Managing directories
|
||||
|
||||
Yabridgectl manage Windows VST plugin install locations for you. To add, remove
|
||||
and list directories, or to list the plugins currently installed inside one of
|
||||
those directories, you can use the command below.
|
||||
Yabridgectl can manage multiple Windows VST plugin install locations for you. To
|
||||
add, remove and list directories, you can use the commands below. The status
|
||||
command will show you yabridgectl's current settings and the installation status
|
||||
for all of your plugins.
|
||||
|
||||
```shell
|
||||
# Add a location containing plugins
|
||||
# For instance, use the below command for the most common VST2 plugin directory
|
||||
# Add a directory containing plugins
|
||||
# Use the command from the next line to add the most common VST2 plugin directory
|
||||
# yabridgectl add "$HOME/.wine/drive_c/Program Files/Steinberg/VstPlugins"
|
||||
yabridgectl add <path/to/plugins>
|
||||
# Remove a plugin location, this will ask you if you want to remove any leftover yabridge files
|
||||
# Remove a plugin location, this will ask you if you want to remove any leftover files from yabridge
|
||||
yabridgectl rm <path/to/plugins>
|
||||
# List the current plugin locations
|
||||
yabridgectl list
|
||||
# Show the current settings and the installation status for all plugins found
|
||||
# Show the current settings and the installation status for all of your plugins
|
||||
yabridgectl status
|
||||
```
|
||||
|
||||
### Installing and updating
|
||||
|
||||
Finally you can tell yabridgectl to set up or update yabridge for all of your
|
||||
plugins at once using the commands below. By default yabridgectl will warn you
|
||||
if it finds leftover `.so` files, but it will only delete those when ran using
|
||||
the `--prune` option.
|
||||
Lastly you can tell yabridgectl to set up or update yabridge for all of your
|
||||
plugins at once using the commands below. Yabridgectl will warn you if it finds
|
||||
unrelated `.so` files that may have been left over after uninstalling a plugin.
|
||||
You can rerun the sync command with the `--prune` option to delete those files.
|
||||
If you are using the default copy-based installation method, it will also verify
|
||||
that your search `PATH` has been set up correctly so you can get up and running
|
||||
faster.
|
||||
|
||||
```shell
|
||||
# Set up copies or symlinks of yabridge for all plugins under the watched directories
|
||||
# Set up yabridge for all plugins found under the plugin locations
|
||||
yabridgectl sync
|
||||
# Set up yabridge, and also remove any '.so' still leftover after removing a plugin
|
||||
# Set up yabridge, and also remove any leftover .so files
|
||||
yabridgectl sync --prune
|
||||
```
|
||||
|
||||
## Alternatives
|
||||
|
||||
If you want to script your own installation behaviour and don't feel like using
|
||||
yabridgectl, then you could use one of the below bash snippets as a base. This
|
||||
approach is slightly less robust and does not do any problem detection or status
|
||||
reporting, but it will get you started.
|
||||
yabridgectl, then you could use one of the below bash snippets instead. This
|
||||
approach is slightly less robust and does not perform any problem detection or
|
||||
status reporting, but it will get you started.
|
||||
|
||||
```shell
|
||||
# For use with symlinks
|
||||
@@ -94,7 +100,7 @@ find -L "$plugin_dir" -type f -iname '*.dll' -print0 |
|
||||
xargs -0 -n1 cp "$yabridge_home/libyabridge.so"
|
||||
```
|
||||
|
||||
## Building
|
||||
## Building from source
|
||||
|
||||
After installing [Rust](https://rustup.rs/), simply run the command below to
|
||||
compile and run:
|
||||
|
||||
@@ -47,7 +47,7 @@ pub fn remove_directory(config: &mut Config, path: &Path) -> Result<()> {
|
||||
let orphan_files = files::index_so_files(path);
|
||||
if !orphan_files.is_empty() {
|
||||
println!(
|
||||
"Warning: Found {} leftover '.so' files still in this directory:",
|
||||
"Warning: Found {} leftover .so files still in this directory:",
|
||||
orphan_files.len()
|
||||
);
|
||||
|
||||
@@ -221,10 +221,10 @@ pub fn do_sync(config: &Config, prune: bool, verbose: bool) -> Result<()> {
|
||||
// tries to load them
|
||||
if !orphan_so_files.is_empty() {
|
||||
if prune {
|
||||
println!("Removing {} leftover '.so' files:", orphan_so_files.len());
|
||||
println!("Removing {} leftover .so files:", orphan_so_files.len());
|
||||
} else {
|
||||
println!(
|
||||
"Found {} leftover '.so' files, rerun with the '--prune' option to remove them:",
|
||||
"Found {} leftover .so files, rerun with the '--prune' option to remove them:",
|
||||
orphan_so_files.len()
|
||||
);
|
||||
}
|
||||
@@ -243,7 +243,7 @@ pub fn do_sync(config: &Config, prune: bool, verbose: bool) -> Result<()> {
|
||||
}
|
||||
|
||||
println!(
|
||||
"Finished setting up {} plugins using {}, skipped {} non-plugin '.dll' files",
|
||||
"Finished setting up {} plugins using {}, skipped {} non-plugin .dll files",
|
||||
num_installed,
|
||||
config.method.plural_name(),
|
||||
num_skipped_files
|
||||
|
||||
@@ -164,7 +164,7 @@ fn find_files(directory: &Path) -> (Vec<PathBuf>, Vec<FoundFile>) {
|
||||
.follow_links(true)
|
||||
.into_iter()
|
||||
.filter_map(|e| e.ok())
|
||||
.filter(|x| !x.file_type().is_dir())
|
||||
.filter(|e| !e.file_type().is_dir())
|
||||
.enumerate()
|
||||
{
|
||||
// This is a bit of an odd warning, but I can see it happening that someone adds their
|
||||
|
||||
@@ -26,8 +26,6 @@ mod config;
|
||||
mod files;
|
||||
mod utils;
|
||||
|
||||
// TODO: Reward parts of the readme
|
||||
|
||||
fn main() -> Result<()> {
|
||||
let mut config = Config::read()?;
|
||||
|
||||
@@ -106,7 +104,7 @@ fn main() -> Result<()> {
|
||||
Arg::with_name("prune")
|
||||
.short('p')
|
||||
.long("prune")
|
||||
.about("Remove unrelated or leftover '.so' files"),
|
||||
.about("Remove unrelated or leftover .so files"),
|
||||
)
|
||||
.arg(
|
||||
Arg::with_name("verbose")
|
||||
|
||||
Reference in New Issue
Block a user