mystran wrote:Mark Vera wrote:So it's safe to say that you should think in Steinberg's perspective. Fixed size buffer process is only the official supported way as it was in VST2 (although many hosts and plugins support variable sizes).
Quoting VST 2.4 SDK (don't have the 2.3 available right now, but I believe it might have been even clearer there):
It's same in VST3, a bit different places. However their FAQ also states:
- Code: Select all
Q: Can the sample block size change while the plug-in is processing?
No. When the host changed the processing block size, the plug-in is informed by the call of AudioEffect::setupProcessing. This call is always preceeded by a call of Component::setActive (false), and followed by a call of Component::setActive (true) So block size can change during runtime of a plug-in, but never during or between processing calls
If you think in Steinberg's terms, block size is same as the process call number of samples. As far as I've checked Cubase does it this way. If you inteprete this in Steinberg perspective, variable buffer sizes are "not" supported. Technically there's no difference from VST2. The block size is also same as the ASIO buffer size as Cubase only works with ASIO (last time I checked there was only the ASIO/DX adapter driver).
I'm glad there's only one process now. No separate process and processReplacing. Some VST2.3/VST2.4 plugins just don't know what's the difference on those..