the "do hosts actually implement..." thread

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

Don't alot (some?) hosts, even when they're calling processReplacing(), still clear the buffer anyway. Something to do with supporting buggy plugins that peform an accumulative action even when they're meant to be overwriting the buffer contents.
Can anyone confirm this?

Doogle
Totally right, I can recall a older kontakt version (maybe 1.1 or 1.5, dunno) where reverb fx where accumulating in the buffers always even in processReplacing, other buggy plugins aswell showed problems regarding this.

But we have even more funny cases, like that old red roland sh101 clone vsti (dont remember the name now) and more plugs from the same developer, wich only implemented processReplacing function iirc.

And of course, the other 464389794134131413 cases of "screwing the VST SDK" that many host developers here probably know, thanks in part to lack of concrete host information and specifications (steiny?), besides other factors.

In my experience the best practice is code plugs in a totally defensive way and keeping to the minimun the dependency of host calls and capabilities.
God, I can't believe anyone writes hosts to be tolerant of ill-behaved plugins. The host should f**king *delete* a plugin that confuses process()/processReplacing().
I second this, but if all host-developers make an agreement in ban/kick/burn in hell/delete/ignore plugins that screws some VST-SDK rule, I'm afraid that your list of your functional plugins would reduce to the ridicule :D , (hehe, wish bidule developers are reading this =). And you will have an army of users asking you 30941034 times why their favourite synthesizer is not longer working in the host.

This is because majority of hosts choosed "hacked" functionality to ensure best compatibility with all plugins rather than "strict" hosting.

Post

arguru wrote:if all host-developers make an agreement in ban/kick/burn in hell/delete/ignore plugins that screws some VST-SDK rule, I'm afraid that your list of your functional plugins would reduce to the ridicule ... And you will have an army of users asking you 30941034 times why their favourite synthesizer is not longer working in the host.
You answer "it's a bug in the synthesizer" and cc the developer.
Image
Don't do it my way.

Post

yes, they do :hihi:
Image

Post

citizenchunk wrote: and what about process() (the accumulating version)? i know the potential performance gains, if the host actually uses it. but do they? does any host nowadays (besides Cubase)?
The host I'm writing doesn't use it. This is because the internal architecture allocates a buffer per input/output port and hence processing using accumulation is not suitable. As for other VST hosts, I have no idea what they do but you can test them using a VST monitor PlugIn (there are at least two, one by Steinberg) that show you what calls are being made by the host. Of course, you should support process replacing in case a host relies on it to function at all.

Post Reply

Return to “DSP and Plugin Development”