[SOLVED] VST3 Plugins with more than 1 output bus crash Cakewalk Sonar


#1

VST3 plugins built with JUCE 4.2 crash Cakewalk Sonar when adding the plugin to the project. This only happens if the plugin has more output buses than the main bus.

Reproducible with MultiOutSynth. Simply build a (64bit) VST3 plugin and try to load it in Sonar. Access Violation. Here’s the call stack:

MultiOutSynth.vst3!juce::zeromem(void * memory, unsigned __int64 numBytes) Line 34 C++
MultiOutSynth.vst3!juce::FloatVectorOperations::clear(float * dest, int num) Line 503 C++
MultiOutSynth.vst3!juce::JuceVST3Component::processAudio(Steinberg::Vst::ProcessData & data, juce::Array<float *,juce::DummyCriticalSection,0> & channelList) Line 1745 C++
MultiOutSynth.vst3!juce::JuceVST3Component::process(Steinberg::Vst::ProcessData & data) Line 1649 C++

If you set the maxMidiChannel = 1 in this project, it works fine again (since this causes the example to only have a main bus).

VST2 plugins work just fine, even with additional buses.

Tested with Cakewalk Sonar Platinum 22.3.0 x64.


#2

Any comments on this? It’s a very serious issue in one of the big DAWs.


#3

I’ve avoided the crash (& an assertion) on latest tip, i.e. this fixes your reported regression which was introduced with 4.2.

However, a multi-aux synth would not have worked correctly in Cakewalk with JUCE 4.1 either. I have a fix for this as well but this would add a non-minor change to the way buses are activated/de-activated in VST3. To give everyone an opportunity to test these changes, I’ll push the “proper” fix to a develop/bleeding-edge branch once we have tagged the 4.2.1. This should hopefully be finished this week.


#4

Excellent, thanks @fabian .

I will certainly re-test with the bleeding edge once it’s available.


#5

OK this should be fixed on the develop branch now. Please test and let me know how it goes!


#6

There doesn’t seem to be anything regarding this in the latest commits in develop since master, are you sure you have pushed those changes?


#7

It’s in this and this commit.


#8

That’s peculiar, my git client saw those commits only after you have posted your message here.


#9

I can confirm that this issue is now resolved (as of JUCE 4.2.2). Thanks!


#10

Hi
Chasing some advice on a BUG that i have been trying to solve for 3 years in Cakewalk Sonar.

I have tracked it down and can replicate it and have a mini dump which is directly related to these cross talk spikes, but i am not to familiar with .dmp files.
I have opened it in visual studio and it says :
the thread tried to read from or write to a virtual address for which it did not have the appropriate access .
0xC0000005: Access violation writing location 0x00000000C7EA8000.

I can share the .dmp file if you think you can tell me what the cause and possible solution is by reading it .
This has been a huge nightmare for me and i really want to solve this but i need help to do that.
I appreciate any help, Thanks


#11

Can you give me more details? Which plug-in is this referring to and which version of JUCE? Can you reproduce this with the latest JUCE version and the JUCE demo plugin?