Guys, I have 3 types of files that I compile for my plugins.
- Single Stereo Output (Instrument Version)
- Multi Stereo Output (Instrument Version)
- FX Version
But this is a PITA to do, specially on Windows, as I have to compile 32 and 64 bits versions. So when I do a cross-products updates I end up with 3 * 2 * 6 * 2 times compilations (the last is for OSX).
So now I wonder if I could have some run-time checks instead. If I could make a single file and it would check if in the name there is FX or MultiOut and them change accordingly.
I will post below this some code.
Thanks for any help!
I already have a SINGLE project where I use MACROS to determinate which type of output I want.
For the FX version I already see a problem. I could MOD the JUCE files, but that sucks, as every time I would update JUCE it would get rid of those things. I see that on the VST_Wrapper it does this:
#if JucePlugin_IsSynth
vstEffect.flags |= Vst2::effFlagsIsSynth;
#else
if (processor->getTailLengthSeconds() == 0.0)
vstEffect.flags |= Vst2::effFlagsNoSoundInStop;
#endif
The MultiOut version is even more problematic, unless there’s another way to do, in real-time, the channels settings. Here’s the current code.
Wusik4000AudioProcessor::Wusik4000AudioProcessor() :
#if ONE_STEREO_OUTPUT_ONLY
AudioProcessor(BusesProperties().withInput("Input", AudioChannelSet::stereo(), true)
.withOutput("Output", AudioChannelSet::stereo(), true)),
#else
AudioProcessor(BusesProperties()
.withInput("Input", AudioChannelSet::stereo())
.withOutput("Out #1", AudioChannelSet::stereo())
.withOutput("Out #2", AudioChannelSet::stereo())
.withOutput("Out #3", AudioChannelSet::stereo())
.withOutput("Out #4", AudioChannelSet::stereo())
.withOutput("Out #5", AudioChannelSet::stereo())
.withOutput("Out #6", AudioChannelSet::stereo())
.withOutput("Out #7", AudioChannelSet::stereo())
.withOutput("Out #8", AudioChannelSet::stereo())
.withOutput("Out #9", AudioChannelSet::stereo())
.withOutput("Out #10", AudioChannelSet::stereo())
.withOutput("Out #11", AudioChannelSet::stereo())
.withOutput("Out #12", AudioChannelSet::stereo())
.withOutput("Out #13", AudioChannelSet::stereo())
.withOutput("Out #14", AudioChannelSet::stereo())
.withOutput("Out #15", AudioChannelSet::stereo())
.withOutput("Out #16", AudioChannelSet::stereo())),
#endif
Also, for JucePlugin_IsSynth, I guess the OSX AU version will do something too. I haven’t check the StandAlone version, but I guess that’s not important, as I only need that for the main version anyway.