💥 Reimplement VST3 audio processing

In the same way as 50c25c1cf0 did it for
VST2 plugins. Input and output audio data is now stored in a shared
memory buffer instead of being sent over the sockets. This reduces the
bridging overhead to a minimum since copying data was the most expensive
operation we were doing and we now only need to copy the entire buffer
once per processing cycle.
This commit is contained in:
Robbert van der Helm
2021-06-11 13:56:42 +02:00
parent a7d8063db4
commit dec19dc12a
8 changed files with 444 additions and 363 deletions
+4 -4
View File
@@ -10,10 +10,10 @@ Versioning](https://semver.org/spec/v2.0.0.html).
### Changed
- The audio processing implementation for VST2 (and soon, also for VST3) plugins
has been rewritten using both shared memory and message passing to reduce
memory copies to a minimum. With this change the DSP load overhead during
audio processing should now be as low as it's going to get.
- The audio processing implementation for both VST2 and VST3 plugins has been
completely rewritten to use both shared memory and message passing to reduce
expensive memory copies to a minimum. With this change the DSP load overhead
during audio processing should now be about as low as it's going to get.
- Prevented some more potential unnecessary memory operations during yabridge's
communication. The underlying serialization library was recreating some
objects even when that wasn't needed, which could in theory result in memory