💥 Reimplement VST2 audio processing

We now use shared memory to store the input and output audio buffers.
This means that we have to copy less data every processing cycle, since
a single copy to and a single copy from the shared memory object
suffices now. This should reduce the DSP load for VST2
plugins (especially when used in a plugin group) marginally to
significantly depending on the plugins used and the system
configuration.
This commit is contained in:
Robbert van der Helm
2021-06-10 17:29:35 +02:00
parent 80fa010af5
commit 50c25c1cf0
8 changed files with 469 additions and 299 deletions
+9 -1
View File
@@ -437,6 +437,9 @@ void Vst2Logger::log_event(
message << "<writable_buffer>";
},
[&](const WantsAEffectUpdate&) { message << "<nullptr>"; },
[&](const WantsAudioShmBufferConfig&) {
message << "<nullptr>";
},
[&](const WantsChunkBuffer&) {
message << "<writable_buffer>";
},
@@ -500,7 +503,12 @@ void Vst2Logger::log_event_response(
[&](const ChunkData& chunk) {
message << ", <" << chunk.buffer.size() << " byte chunk>";
},
[&](const AEffect&) { message << ", <AEffect_object>"; },
[&](const AEffect&) { message << ", <AEffect object>"; },
[&](const AudioShmBuffer::Config& config) {
message << ", <shared memory configuration for \""
<< config.name << "\", " << config.size
<< " bytes>";
},
[&](const DynamicSpeakerArrangement& speaker_arrangement) {
message << ", <" << speaker_arrangement.speakers.size()
<< " output_speakers>";