mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Remove the cache_time_info option
The new time info caching behaviour supersedes this by getting rid of callbacks altogether.
This commit is contained in:
@@ -42,6 +42,11 @@ Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
situations from happening in the future, yabridge now specifically handles
|
||||
most common VST2 functions that don't have a data argument.
|
||||
|
||||
### Removed
|
||||
|
||||
- The `cache_time_info` compatibility option has been removed since it's now
|
||||
obsolete.
|
||||
|
||||
### Fixed
|
||||
|
||||
- In certain rare circumstances, closing a plugin editor would trigger an X11
|
||||
|
||||
@@ -292,7 +292,6 @@ plugin._
|
||||
|
||||
| Option | Values | Description |
|
||||
| --------------------- | -------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `cache_time_info` | `{true,false}` | Compatibility option for VST2 plugins that call `audioMasterGetTime()` multiple times during a single processing cycle. With this option subsequent calls during a single audio processing cycle will reuse the value returned by the first call to this function. This is a bug in the plugin, and this option serves as a temporary workaround until the plugin fixes the issue. |
|
||||
| `editor_double_embed` | `{true,false}` | Compatibility option for plugins that rely on the absolute screen coordinates of the window they're embedded in. Since the Wine window gets embedded inside of a window provided by your DAW, these coordinates won't match up and the plugin would end up drawing in the wrong location without this option. Currently the only known plugins that require this option are _PSPaudioware_ plugins with expandable GUIs, such as E27. Defaults to `false`. |
|
||||
| `editor_force_dnd` | `{true,false}` | This option forcefully enables drag-and-drop support in _REAPER_. Because REAPER's FX window supports drag-and-drop itself, dragging a file onto a plugin editor will cause the drop to be intercepted by the FX window. This makes it impossible to drag files onto plugins in REAPER under normal circumstances. Setting this option to `true` will strip drag-and-drop support from the FX window, thus allowing files to be dragged onto the plugin again. Defaults to `false`. |
|
||||
| `editor_xembed` | `{true,false}` | Use Wine's XEmbed implementation instead of yabridge's normal window embedding method. Some plugins will have redrawing issues when using XEmbed and editor resizing won't always work properly with it, but it could be useful in certain setups. You may need to use [this Wine patch](https://github.com/psycha0s/airwave/blob/master/fix-xembed-wine-windows.patch) if you're getting blank editor windows. Defaults to `false`. |
|
||||
@@ -333,9 +332,6 @@ editor_xembed = true
|
||||
["Chromaphone 3.so"]
|
||||
hide_daw = true
|
||||
|
||||
["SWAM Cello 64bit.so"]
|
||||
cache_time_info = true
|
||||
|
||||
["sforzando VST_x64.so"]
|
||||
editor_force_dnd = true
|
||||
frame_rate = 24
|
||||
@@ -444,12 +440,6 @@ include:
|
||||
_Bitwig Studio_, text entry will cause the plugin to crash because Chromaphone
|
||||
uses a different text entry method when it detects Bitwig. You can use the
|
||||
`hide_daw` [compatibility option](#compatibility-options) to work around this.
|
||||
- The VST2 version of **SWAM Cello** has a bug where it asks the host for the
|
||||
current buffer's time and tempo information for every sample it processes
|
||||
instead of doing it only once per buffer, resulting in very bad performance.
|
||||
You can enable the time info cache [compatibility
|
||||
option](#compatibility-options) to work around this until this is fixed on the
|
||||
plugin's side.
|
||||
- VST2 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)
|
||||
|
||||
@@ -84,12 +84,6 @@ Configuration::Configuration(const fs::path& config_path,
|
||||
} else {
|
||||
invalid_options.push_back(key);
|
||||
}
|
||||
} else if (key == "cache_time_info") {
|
||||
if (const auto parsed_value = value.as_boolean()) {
|
||||
cache_time_info = parsed_value->get();
|
||||
} else {
|
||||
invalid_options.push_back(key);
|
||||
}
|
||||
} else if (key == "editor_double_embed") {
|
||||
if (const auto parsed_value = value.as_boolean()) {
|
||||
editor_double_embed = parsed_value->get();
|
||||
|
||||
@@ -81,20 +81,6 @@ class Configuration {
|
||||
*/
|
||||
std::optional<std::string> group;
|
||||
|
||||
/**
|
||||
* If set to `true`, then after an `audioMasterGetTime()` call all
|
||||
* subsequent calls to that function during a single processing cycle will
|
||||
* reuse the results from the first call. In theory it would be a bug on the
|
||||
* host's side if this did _not_ return the same value every time, but since
|
||||
* yabridge tries to not have any behaviour of its own and since this
|
||||
* function should only be called at most once every processing cycle this
|
||||
* option is not enabled by default. An example of a situation where this
|
||||
* does become necessary is the SWAM Cello plugin, which calls
|
||||
* `audioMasterGetTime()` for every sample instead of only once. This would
|
||||
* tank performance without this caching behaviour.
|
||||
*/
|
||||
bool cache_time_info = false;
|
||||
|
||||
/**
|
||||
* If this is set to `true`, then the plugin editor should be embedded in
|
||||
* yet another window. This would result in an embedding sequence of
|
||||
@@ -201,7 +187,6 @@ class Configuration {
|
||||
s.ext(group, bitsery::ext::StdOptional(),
|
||||
[](S& s, auto& v) { s.text1b(v, 4096); });
|
||||
|
||||
s.value1b(cache_time_info);
|
||||
s.value1b(editor_double_embed);
|
||||
s.value1b(editor_force_dnd);
|
||||
s.value1b(editor_xembed);
|
||||
|
||||
@@ -175,9 +175,6 @@ class PluginBridge {
|
||||
|
||||
init_msg << "other options: ";
|
||||
std::vector<std::string> other_options;
|
||||
if (config.cache_time_info) {
|
||||
other_options.push_back("hack: time info cache");
|
||||
}
|
||||
if (config.editor_double_embed) {
|
||||
other_options.push_back("editor: double embed");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user