Having trouble understanding this one: when the plugin is closed in Studio One “checkSizeConstraint” in juce_VST_wrapper will throw an assert because the component is null. I haven’t seen this behavior in any other DAW, and it’s annoying because studio one will then display an error stating “The audio engine has been stopped, because the system became unresponsive due to an overload in the audio engine”.
At a loss on how to debug this as it’s JUCE specific code as far as I can tell?
Still getting this assertion. I don’t get an “audio engine has stopped” message (at least not when running outside the debugger), but I do get that assertion reported in Terminal when running Studio One from the command line. Anyone know what’s up with that?
Please can you provide more details about your platform? I just tested with Studio One 5 on both Windows and macOS, with the VST2 version of the AudioPluginDemo project built from develop. I don’t see assertions when closing the plugin editor or destroying the plugin instance.
To debug this futher, it would be useful to know:
Your Studio One version (if this doesn’t occur with the latest version it’s probably a bug in old versions of Studio One)
Your JUCE version (if this doesn’t occur with the latest JUCE, then we probably already fixed this bug)
Whether you can reproduce the issue in any of the JUCE example projects, and if so, which ones
I am using Studio One 5.3.0, JUCE version 6.0.7 (modified for ARA), under Mac OS 10.15. I haven’t tried debugging any JUCE examples to see if I hit this assert. The call stack only has the checkSizeConstraint call from something like __llbd_unnamed_symbol (followed by some garbage in that name). The rectToCheck shows the rectangle size of my plugin’s editor, so I assume it’s when the editor itself closes. (I don’t have to remove the plugin or quit S1, just closing the plugin window hits this assertion.)
I think this is only possible if StudioOne is calling the IPlugView::checkSizeConstraint after calling IPlugView::removed. The docs for removed say:
You have to remove all your own views from the parent window or view.
I’m not sure that it makes sense for the host to call checkSizeConstraint in this case, because the host should expect that the editor isn’t displaying anything useful at this point.
Therefore, I don’t think this is a JUCE bug - the assertion is useful to point out that something a bit unexpected has happened.