You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
As outlined in this post I made on the Steinberg forum, the VST3 SDK plugin examples do not seem to follow the spec regarding the use of setProcessing(false) followed by setProcessing(true) to reset the plugin.
In the documentation for the setProcessing call, it says:
Note that setProcessing (false) may be called after setProcessing (true) without any process calls… this could be used to reset some buffers (like Delay line or Reverb).
A person with a Steinberg badge replied to the post saying
It seems that mda plugins of the SDK do not follow the VST3 spec regarding setProcessing…
which would seem to give official confirmation that this is an issue. (This person says that the 'mda' plugins do not follow the spec, but my examination of other plugins like AGain also show they do not handle setProcessing either.)
As noted in my post, these plugins also do not respond to an IAudioProcessor::process() call with all members of the ProcessData struct set to 0, which the documentation suggests should be interpreted as a "flush" operation.
Given that the SDK exists to provide meaningful examples of how plugins should function, and that one should be able to use those plugins for testing hosts, these is a flaws that should be addressed.
The text was updated successfully, but these errors were encountered:
TroikaTronix
changed the title
VST 3 SDK Example Plugins Need To Be Updated to Follow Spec Regarding the use of setProcessing(false)/setProcessing(false)
VST 3 SDK Example Plugins Need To Be Updated to Follow Spec Regarding the use of setProcessing(false)/setProcessing(true)
Jan 20, 2025
TroikaTronix
changed the title
VST 3 SDK Example Plugins Need To Be Updated to Follow Spec Regarding the use of setProcessing(false)/setProcessing(true)
VST 3 SDK Example Plugins Need To Be Updated to Follow Spec Regarding the use of setProcessing
Jan 20, 2025
I wonder how many plugins are there already in the wild which completely ignore setProcessing() calls based on the examples, and only clear delay buffers and whatnot when receiving a setActive() call.
Also, from a plugin developer point of view, there's a big difference between "this could be used to reset some buffers (like Delay..." (as in: it is safe, but not necessarily mandatory for the plugin to clear its delay buffers) and "this is used by the host to tell the plugin to reset any buffers (like Delay..." (as in: the plugin must clear those buffers). If the plugin must implement this call and do certain things in it, then can you please clarify that in the documentation as well?
The documentation also says that "Note this function could be called in the UI or in Processing Thread". I think it should be emphasized that the UI thread is not allowed to call e.g. setProcessing(false) while e.g. the last process() call is still running in the audio thread, since clearing a delay buffer in the middle of processing is obviously a bad idea.
As outlined in this post I made on the Steinberg forum, the VST3 SDK plugin examples do not seem to follow the spec regarding the use of setProcessing(false) followed by setProcessing(true) to reset the plugin.
In the documentation for the setProcessing call, it says:
A person with a Steinberg badge replied to the post saying
which would seem to give official confirmation that this is an issue. (This person says that the 'mda' plugins do not follow the spec, but my examination of other plugins like AGain also show they do not handle setProcessing either.)
As noted in my post, these plugins also do not respond to an
IAudioProcessor::process()
call with all members of the ProcessData struct set to 0, which the documentation suggests should be interpreted as a "flush" operation.Given that the SDK exists to provide meaningful examples of how plugins should function, and that one should be able to use those plugins for testing hosts, these is a flaws that should be addressed.
The text was updated successfully, but these errors were encountered: