From 74be0992fd2f3da00d555a103bbf1c982c754966 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Fri, 17 Jul 2020 13:34:55 +0200 Subject: [PATCH] Update yabridgectl documentation --- README.md | 8 ++--- tools/yabridgectl/README.md | 58 ++++++++++++++++++-------------- tools/yabridgectl/src/actions.rs | 8 ++--- tools/yabridgectl/src/files.rs | 2 +- tools/yabridgectl/src/main.rs | 4 +-- 5 files changed, 42 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 6e928e53..59747a2f 100644 --- a/README.md +++ b/README.md @@ -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. *The versions of GCC and Boost that ship with Ubuntu 18.04 by default are too diff --git a/tools/yabridgectl/README.md b/tools/yabridgectl/README.md index 79c85095..b5829d8e 100644 --- a/tools/yabridgectl/README.md +++ b/tools/yabridgectl/README.md @@ -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= @@ -25,10 +25,12 @@ yabridgectl set --path= ### 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= @@ -36,43 +38,47 @@ yabridgectl set --method= ### 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 -# 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 # 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: diff --git a/tools/yabridgectl/src/actions.rs b/tools/yabridgectl/src/actions.rs index d34f4325..9a19500d 100644 --- a/tools/yabridgectl/src/actions.rs +++ b/tools/yabridgectl/src/actions.rs @@ -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 diff --git a/tools/yabridgectl/src/files.rs b/tools/yabridgectl/src/files.rs index 4c0d0d3f..e3aac87e 100644 --- a/tools/yabridgectl/src/files.rs +++ b/tools/yabridgectl/src/files.rs @@ -164,7 +164,7 @@ fn find_files(directory: &Path) -> (Vec, Vec) { .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 diff --git a/tools/yabridgectl/src/main.rs b/tools/yabridgectl/src/main.rs index f15082d6..cef20bf6 100644 --- a/tools/yabridgectl/src/main.rs +++ b/tools/yabridgectl/src/main.rs @@ -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")