Hi.
My plugin processor constructor is
NewProjectAudioProcessor::NewProjectAudioProcessor()
#ifndef JucePlugin_PreferredChannelConfigurations
: AudioProcessor (BusesProperties()
.withInput ("Input", juce::AudioChannelSet::stereo(), true)
.withOutput ("Output", juce::AudioChannelSet::stereo(), true)
)
In the processBlock getTotalNumInputChannels(); is always 0;
And getTotalNumOutputChannels(); is always 2.
I don’t understand why I don’t have any inputs…
Perhaps some sort of flag in projucer?
kunz
April 11, 2022, 7:30am
3
Is it an instrument? In this case, you may don’t get any input channels in some hosts.
I would remove #ifndef JucePlugin_PreferredChannelConfigurations and make sure you don’t have any channel configuration in Projucer.
1 Like
Hi. Thank you for you replay.
Yes, It is an instrument.
I tested it in hosApp, in Cubase, and in StudioOne5:
hostApp getTotalNumInputChannels() = 2
Cubase getTotalNumInputChannels() = 2
StudioOne5 getTotalNumInputChannels() = 0
till thinking why… DAW configuration?
kunz
April 11, 2022, 1:13pm
5
For VST3i you need an additional sidechain input if you want to receive audio.
override isBusesLayoutSupported
1 Like
kunz
April 11, 2022, 2:19pm
7
Yes, i think this is required too. I was able to make sidechain input work for instruments in cubase with this code:
bool TalCore::isBusesLayoutSupported (const BusesLayout& layout) const
{
for (const auto& bus : layout.outputBuses)
if (bus != AudioChannelSet::stereo()
&& !bus.isDisabled())
return false;
for (const auto& bus : layout.inputBuses)
if (bus != AudioChannelSet::stereo())
return false;
juce::PluginHostType hostType;
if (!hostType.isProTools())
{
if (layout.inputBuses.size() < 2)
{
return false;
}
}
return true;
}
I wasn’t able to make this work in PT. Your code have to check if the sidechain exists before using it as an input.
1 Like
reuk
April 11, 2022, 2:46pm
8
For Instrument plugins, you can also derive your AudioProcessor publicly from VST3ClientExtensions and override getPluginHasMainInput to return false. This function will be called to check whether the first input bus should be designated as “kMain” or “kAux”. I believe that the Surge synthesiser uses this technique to provide input buses that aren’t necessarily enabled by default.
1 Like
there are some examples of instrument vsti that actually have an audio input and use it. for example EXC!TE SNARE DRUM – The Center for Haptic Audio Interaction Research
but vsti instruments having audio inputs is only supported by a few daws so far, as you have noticed.
Thank you guys! You have the best support forum!