Hello,
I’m currently working on an audio processor that loads VST3 plugins for audio playback (synths, DSP effects, etc.). I’ve encountered an issue where there’s unwanted noise when playback is stopped. It appears that the plugin instance might not be properly resetting or cleaning up its internal state when this happens.
Here’s what I’ve tried so far:
- Using
setProcessing(false)
andsetProcessing(true)
to reset the plugin state. - Sending “note-off” events to ensure all notes are properly terminated.
- Attempting to zero out processing buffers.
Despite these efforts, the noise persists after stopping playback. I understand that VST3 doesn’t have a direct equivalent to the suspend/resume
calls from VST2, and I’ve read that the ProcessContext
structure might be important for handling transport changes.
My main concern is understanding where internal data, such as processed audio buffers, event lists, and parameter changes, are stored within the plugin instance. Since the IAudioProcessor
interface seems to serve primarily as an API layer, I’m unsure which internal structures or instances within the plugin are responsible for holding this data. Clarifying this could help me identify how to better manage or reset these states to eliminate the noise.
Could anyone provide guidance on the best practices for fully cleaning up or resetting a plugin instance to avoid this issue? Is there a specific API or method, or instances inside the loaded plugin object, that I can target?
Thank you for your assistance!
Best regards,