What is going on here? That’s a plugin from a reputable developer and for some reason scanning the plugin claims it has no inputs and no outputs? How to fix this scanning issue?
This is actually quite normal and to my understanding - totally valid. I see it in many commercial plugins that I have.
Some plugins have a dynamic set of ins and outs and would just respond to the host with available layout and then maybe negotiate a compatible layout with the host.
For example - a plugin might report 2 ins 2 outs, but would be OK with 0 ins and 2 outs, and all those options just can’t be expressed in the static JSON file.
Kinda, you would need to use the buses API to see what the plugin can and can’t do. Most (all?) would be OK with 2 outputs but there are a few that won’t except more than 0 inputs.
A way that generally works for me is:
auto ins = jlimit(0, 2, plugin.getMainBusNumInputChannels());
auto outs = jlimit(0, 2, plugin.getMainBusNumOutputChannels());
plugin.setPlayConfigDetails(ins, outs, sr, blockSize);
Then if the plugin does something like support only 1 input and one output, I make sure the buffer passed to it later is matching, but that only works for my use case, and might not work for yours.