From d42fd41007365e102d167255ae904b22dee15763 Mon Sep 17 00:00:00 2001 From: Robbert van der Helm Date: Sun, 22 May 2022 22:48:55 +0200 Subject: [PATCH] Buffers for zero channel plugins are always valid --- src/wrapper/clap/wrapper.rs | 3 +++ src/wrapper/vst3/wrapper.rs | 3 +++ 2 files changed, 6 insertions(+) diff --git a/src/wrapper/clap/wrapper.rs b/src/wrapper/clap/wrapper.rs index 9aa30683..b05d4200 100644 --- a/src/wrapper/clap/wrapper.rs +++ b/src/wrapper/clap/wrapper.rs @@ -1677,6 +1677,9 @@ impl Wrapper

{ let mut output_buffer = wrapper.output_buffer.borrow_mut(); let mut buffer_is_valid = false; output_buffer.with_raw_vec(|output_slices| { + // Buffers for zero-channel plugins like note effects should always be allowed + buffer_is_valid = output_slices.is_empty(); + if !process.audio_outputs.is_null() && !(*process.audio_outputs).data32.is_null() { diff --git a/src/wrapper/vst3/wrapper.rs b/src/wrapper/vst3/wrapper.rs index 23b5d7e0..086d8586 100644 --- a/src/wrapper/vst3/wrapper.rs +++ b/src/wrapper/vst3/wrapper.rs @@ -1003,6 +1003,9 @@ impl IAudioProcessor for Wrapper

{ let mut output_buffer = self.inner.output_buffer.borrow_mut(); let mut buffer_is_valid = false; output_buffer.with_raw_vec(|output_slices| { + // Buffers for zero-channel plugins like note effects should always be allowed + buffer_is_valid = output_slices.is_empty(); + if !data.outputs.is_null() { let num_output_channels = (*data.outputs).num_channels as usize; buffer_is_valid = num_output_channels == output_slices.len();