mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-09 20:29:10 +02:00
Document plugin groups
This commit is contained in:
@@ -127,7 +127,58 @@ handle it accordingly.
|
|||||||
|
|
||||||
### Plugin groups
|
### Plugin groups
|
||||||
|
|
||||||
TODO: Document
|
Some plugins have the ability to communicate with other instances of that same
|
||||||
|
plugin or with other plugins made by the same manufacturer. This is often used
|
||||||
|
in mixing plugins to allow different tracks to reference each other without
|
||||||
|
having to route audio between them. Examples of plugins that do this are
|
||||||
|
Fabfilter Pro-Q 3, MMultiAnalyzer and the iZotope mixing plugins. For this to
|
||||||
|
work, all instances of a particular plugin have to be hosted in the same
|
||||||
|
process.
|
||||||
|
|
||||||
|
Yabridge has the concept of _plugin groups_, which are user defined groups of
|
||||||
|
plugins that will all be hosted in the same process. These plugins groups can be
|
||||||
|
configured using a `yabridge.toml` file located either in the same directory as
|
||||||
|
the symlink of or copy to `libyabridge.so`, or in any directories above it. This
|
||||||
|
file contains case sensitive
|
||||||
|
[glob](https://www.man7.org/linux/man-pages/man7/glob.7.html) patterns that are
|
||||||
|
used to match the names of `*.so` files relative to that `yabridge.toml` file.
|
||||||
|
These patterns can also match an entire directory. For simplicity's sake only
|
||||||
|
the first `yabridge.toml` file found and only the first glob pattern matched
|
||||||
|
within that file are considered. An example `yabridge.toml` file looks like
|
||||||
|
this:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
# ~/.wine/drive_c/Program Files/Steinberg/VstPlugins/yabridge.toml
|
||||||
|
|
||||||
|
["FabFilter Pro-Q 3.so"]
|
||||||
|
group = "fabfilter"
|
||||||
|
|
||||||
|
["MeldaProduction/Tools/MMultiAnalyzer.so"]
|
||||||
|
group = "melda"
|
||||||
|
|
||||||
|
# Matches an entire directory and all files inside it. Make sure to not include
|
||||||
|
# a trailing slash.
|
||||||
|
["ToneBoosters"]
|
||||||
|
group = "toneboosters"
|
||||||
|
|
||||||
|
["iZotope*/Neutron *"]
|
||||||
|
group = "izotope"
|
||||||
|
|
||||||
|
["iZotope7/Insight 2.so"]
|
||||||
|
group = "izotope"
|
||||||
|
|
||||||
|
# This won't do anything, since the pattern above has already matched this file
|
||||||
|
["iZotope7/Neutron 2 Mix Tap.so"]
|
||||||
|
group = "This will be ignored!"
|
||||||
|
|
||||||
|
# Don't do this! This matches all plugins in this directory and all of its
|
||||||
|
# subdirectories, causing all of them to be hosted in a single process. While
|
||||||
|
# this would increase startup performance considerably, it will also break any
|
||||||
|
# form of individual plugin sandboxing provided by the host and could
|
||||||
|
# potentially introduce all kinds of weird issues.
|
||||||
|
# ["*"]
|
||||||
|
# group = "all"
|
||||||
|
```
|
||||||
|
|
||||||
### Wine prefixes
|
### Wine prefixes
|
||||||
|
|
||||||
@@ -192,12 +243,6 @@ Aside from that, these are some known caveats:
|
|||||||
- Most recent **iZotope** plugins don't have a functional GUI in a typical out
|
- Most recent **iZotope** plugins don't have a functional GUI in a typical out
|
||||||
of the box Wine setup because of missing dependencies. Please let me know if
|
of the box Wine setup because of missing dependencies. Please let me know if
|
||||||
you know which dependencies are needed for these plugins to render correctly.
|
you know which dependencies are needed for these plugins to render correctly.
|
||||||
- Some plugins, such as **Fabfilter Pro-Q 3**, are able to communicate between
|
|
||||||
different instances of the same plugin by relying on the fact that they're all
|
|
||||||
loaded into the same process. Right now this is something that yabridge does
|
|
||||||
not do as it would break any form of sandboxing, meaning that if one plugin
|
|
||||||
were to crash, all other plugins would go down with it. If this is something
|
|
||||||
you need for your workflow, please let me know.
|
|
||||||
|
|
||||||
There are also some VST2.X extension features that have not been implemented yet
|
There are also some VST2.X extension features that have not been implemented yet
|
||||||
because I haven't needed them myself. Let me know if you need any of these
|
because I haven't needed them myself. Let me know if you need any of these
|
||||||
|
|||||||
Reference in New Issue
Block a user