From 54c44e52563ef8ced0b23b7e90ae3da287602f4c Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sun, 7 Mar 2021 15:46:52 +0100 Subject: [PATCH] Fix bus index not being serialized in GetBusInfo This is embarrassing. Because the bus index was not being serialized, all lookups were done for the bus with index 0. This meant that sidechaining in Renoise didn't work because Renoise only allows sidechaining to `kAux` busses and the first bus is always marked as `kMain`. This would also cause Ardour to crash or freeze more often then it should because while it does not support arbitrary bus I/O configurations, it does support plugins with both a `kMain` and a `kAux` input bus but since we would never get `kAux` busses Ardour just didn't pass any buffers for the sidechain input. --- CHANGELOG.md | 8 ++++++++ src/common/serialization/vst3/plugin/component.h | 1 + 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d5482f1..f6b50c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [Unreleased] + +### Fixed + +- Fix bus information queries being performed for the wrong bus index. This + fixes VST3 sidechaining in _Renoise_, and prevents a number of VST3 plugins + with a sidechain input from causing _Ardour_ and _Mixbus_ to freeze. + ## [3.0.1] - 2020-02-26 ### Changed diff --git a/src/common/serialization/vst3/plugin/component.h b/src/common/serialization/vst3/plugin/component.h index 2d2315e9..a6a5f121 100644 --- a/src/common/serialization/vst3/plugin/component.h +++ b/src/common/serialization/vst3/plugin/component.h @@ -175,6 +175,7 @@ class YaComponent : public Steinberg::Vst::IComponent { s.value8b(instance_id); s.value4b(type); s.value4b(dir); + s.value4b(index); } };