What are VST Hosts reading when they're "scanning" the plugins?

DSP, Plugin and Host development discussion.
Post Reply New Topic
RELATED
PRODUCTS

Post

Many DAWs show they are scanning through the VST directory(ies) when they first start up.

What, exactly, are the hosts reading/doing/checking during this process? Is there a specific list of functions that they call/check from each VST dll?

Post

Fender19 wrote:Many DAWs show they are scanning through the VST directory(ies) when they first start up.

What, exactly, are the hosts reading/doing/checking during this process? Is there a specific list of functions that they call/check from each VST dll?
Excellent question. I have a sub question. Why do some hosts take forever to read/do/check whatever it is they do during this process as opposed to other DAWs that do it quickly? Also why would one plugin take forever to be read while others are read more quickly? I have only one manufacturer that does this which I find very odd. Thank you for any answers you smart guys can give us.


.-.
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Alienware i7 R3 loaded with billions of DAWS and plugins.

Post

Hosts need to initialize the plugin and instantiate (create) a plugin instance while scanning. Some hosts only do this for new plugins and keep a database of previously scanned information to speed up start-up time.

Depending upon the host, many of the functions provided by VST might be accessed to identify the capabilities and requirements of the plugins. Different hosts with different requirements and capabilities will scan plugins in more or less depth as required, differentiating the time it takes for each host to complete its scan.

Regarding what one plugin might do versus another; The plugin that takes a long time to initialize or instantiate an instance may be loading a lot of resources like bitmaps, samples or other data. It might also be building tables and synthesizing other data which may take far longer than simply loading from memory or from the file system.

Even though the host doesn't need to utilize the plugin fully, it still needs to instantiate an instance to get access to the VST interface. This is a flaw of the VST interface and there is unfortunately no way around it. The only option might be to defer loading or processing resources until the plugin is configured to process audio by the host, or until the GUI is opened. This won't be a complete solution in all cases though.

Another thing of note is that some of the scanning can be avoided by including an XML file inside the plugin resources that the host may be able to read without initializing or instantiating the plugin. As far as I'm aware only parameter information is delivered this way as of VST 2.4, but someone else might be able to chime in with more information. I haven't looked much into this as this has never been an issue with my plugins to date.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Thank you very much for your expertise aciddose. That was clear and informative. Even a caveman could understand it. :lol:


.-.
_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
Alienware i7 R3 loaded with billions of DAWS and plugins.

Post Reply

Return to “DSP and Plugin Development”