Some plugins, like D-50 from Roland Cloud do not display any parameters in AU or VST3 versions. This works with earlier versions of JUCE.
Unfortunately I cannot tell exactly which version worked, but fairly certain that JUCE 5.2 worked ok.
Here are the two screenshots of audio plugin host diplaying the parameters for D-50. The dark image is the newest 5.4.1 JUCE and the white one is an earlier version which obviously works.
No idea - this issue does not occur with Arturia VST3 plugins though – they seem to work fine. We only discovered the problem with the D-50 when one of our users reported the problem.
However, for what it’s worth - I did try the OP-X Pro (and there’s a free version of that I believe) and discovered that, while we get the parameter list, the list we get back is different between the VST3 version and the AU version. I don’t know if that is a clue. Hard to believe that the plugin would deliberate have different items for the same indices.
The problem is that the setupParameters() call in initialization is called before the IO was set up and this particular plugin returns zero parameters in that case.
So changing this (within the initialize() function, line 1781
My assumption is that these guys are reusing some of their code in many plugins and do not populate the parameter list until the plugin gets fully initialized.
To answer my own question, no. I couldn’t find an order of initialisation where all plug-ins continued to function. We have to jump through all the hoops again after setting up the IO if we don’t have any parameters by then.