Virtual methodes for isSynth and numInput and numOutput channels?


Hi Jules,

is it possible to provide virtual functions in the AudioProcessor for isSynth and channelConfigs (IO) instead set it statically by macros?

The reason: A MIDI effect or Sequencer which only produce MIDI is normaly not a synth, but some hosts like Ableton Live only transport synths correctly and ignore MIDI plugin and some others list a MIDI plugin correctly without any tricks.

Somthing like this:

virtual bool AudioProcessor::isSynth()  { return JucePlugin_IsSynth; }

And i like to override something like this:

bool AudioProcessor::isSynth() override { return PluginHostType().isCubase() ? true : false; }

int numOutputChannel() override { return PluginHostType().isAbletonLive() ? 2 : 0; } 

At the moment I've changed the AudioProcessor source, but it's not good for updating JUCE.



I think it might need to be a macro so that it can be used to build project-level build settings, resources, etc.. It'd certainly be a very difficult change to make.


It can be a macro which the default virtual method will return and you can use it like before, but at AudioProcessor initalisation we can check if we like to change the standard.
I think this should affect nothing else if you not override this method, because you set the values to the processor at runtime.

Anyway if it is not possible: the VST wrapper change interval is not heavy - mostly I'll be able to override it on update with my changed version.