Jassert (numChans > 0) : not needed for pure MIDIout Vst plugin


#1

Hello 

 

I have created a VST plugin using JUCE (very easy to setup with the new introJucer, by the way) and the plugin has 0 audio inputs and 0 audio outputs and its only output is a MIDI out. 

It compiles and loads perfectly in my test host (Plogue Bidule)

but when i try to run it in DEBUG mode in Visual Studio 2013 , i had to comment the following line : 


AudioSampleBuffer::AudioSampleBuffer (float* const* dataToReferTo,
                                      const int numChans,
                                      const int numSamples) noexcept
    : numChannels (numChans),
      size (numSamples),
      allocatedBytes (0)
{
    //jassert (numChans > 0);
    allocateChannels (dataToReferTo, 0); 
}

I think this jassert is relevant in the general case where audio is processed, but in my case it's not worth it. 


#2

Hmm. Where exactly is it being called from? The calling code really need to avoid passing a zero there..


#3

Here's the call stack in Visual Studio :


>    isaMidiControl.dll!juce::AudioSampleBuffer::AudioSampleBuffer(float * const * dataToReferTo, int numChans, int numSamples) Line 78    C++
>     isaMidiControl.dll!JuceVSTWrapper::processReplacing(float * * inputs, float * * outputs, int numSamples) Line 560    C++
>    isaMidiControl.dll!AudioEffect::processClassReplacing(AEffect * e, float * * inputs, float * * outputs, int sampleFrames) Line 61    C++
>    PlogueBidule.exe!00ee93d1()    Unknown



#4

Thanks, I'll make sure it always uses a non-zero channel count.