Virtual methodes for isSynth and numInput and numOutput channels?


#1

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.

Cheers
 


#2

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.


#3

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.

Thanks!