IPrefetchableSupport

SDK for VST 3 audio plug-in and host development.
Post Reply
sgretscher
Posts: 16
Joined: Tue Jul 05, 2016 6:30 pm

IPrefetchableSupport

Post by sgretscher »

Hi,
the docs are extremely sparse regarding the IPrefetchableSupport interface.
Google found this page that gave me an idea what this feature seems to be about:
https://www.steinberg.net/en/support/kn ... and-nuendo

From that page and the header file I assume that it would be a good idea to implement this and return kIsYetPrefetchable in any plug-in that does not depend on external hardware etc., because otherwise Cubase will assume kIsNeverPrefetchable and accordingly exclude the plug-in and the related part of the audio graph from ASIO guard?
What exactly are the effects for an insert plug-in and for an instrument when returning kIsYetPrefetchable? For example, will it be called with larger buffers, or different timing information (in the ProcessContext), etc.? Ayn gotchas we should keep in mind?

Thanks for the clarifications,
Stefan

User avatar
ygrabit
Posts: 172
Joined: Fri Jun 17, 2016 7:52 am
Location: Hamburg
Contact:

Re: IPrefetchableSupport

Post by ygrabit »

If the plugin does not provide the IPrefetchableSupport interface, the host, depending on its setting, could process it in prefetch mode or not.
In Cubase the user could disable prefetching per plugin if needed...
Hardware based plugins are not processed in prefetch (plugins category is used for specifying hardware based plugins)

In prefetch processing the audio buffers could be larger than in realtime processing and/or could be computed more in advance, this means the time difference between 2 process calls could be faster than realtime (faster than the time corresponding to an audio buffer).

The timing information is then adapted according to how prefetch is working.

This interface allows the plugin to inform the host about it current support of prefetch.
YVan Grabit

sgretscher
Posts: 16
Joined: Tue Jul 05, 2016 6:30 pm

Re: IPrefetchableSupport

Post by sgretscher »

Thanks for these details.
Based on this information I assume Melodyne works just fine with prefetch - in fact it should even work better this way.
So should we implement this interface and return kIsYetPrefetchable, or should we just ignore it because the host prefetches it anyways if desired?
Which approach will provide the better user experience?

User avatar
ygrabit
Posts: 172
Joined: Fri Jun 17, 2016 7:52 am
Location: Hamburg
Contact:

Re: IPrefetchableSupport

Post by ygrabit »

like i said, by default (when this interface is not present) the host decides if it will use prefetch or not.
When the plugin supports this interface, the plugin could decide to be not process in prefetch. This make sense for plugins supporting local processing or remoted one (over Ethernet or USB or DSP...).
Cheers
YVan Grabit

Post Reply