In developing some plugins I experienced issues with version 10 Steinberg products (WaveLab LE 10 for example) that don’t occur in prior versions. On debugging I found the cause of the issue and have worked around it but the behaviour of WaveLab 10 seems inconsistent to how I would expect it to behave given the documented VST3 standard.
The issue is as follows. When WaveLab calls setupProcessing() on my plugin the maxSamplesPerBlock attribute of the ProcessSetup argument is set to 4096 samples (in my driver setup case of course, will depend on WaveLab cofig.) but then when process() is called the the numSamples attribute of ProcessData passed in the call is always 1024 samples! My bugs were caused by the fact that my processing assumed it would be processing a maximum of 4096 samples but it only ever got 1024 samples. I’ve never seen this behaviour in any other hosting product.
Although I was able to work around this it is problematic behaviour for algorithms that require fixed block processing such as FFT based fast convolution because I can only setup the processing based on what is told to me in the setupProcessing() call so will be creating a processing scheme that is not CPU efficient because I’ll only ever be processing 1/4 of what I was told I was going to be processing and discarding the rest.
Can anyone explain this behaviour and justify it, or am I correct in thinking that this is a release 10 bug?