Any equivalent function to "OnIdle()" in VST3?

SDK for VST 3 audio plug-in and host development.
Post Reply
Nonlinear
Posts: 14
Joined: Tue Mar 05, 2019 6:37 pm

Any equivalent function to "OnIdle()" in VST3?

Post by Nonlinear » Tue Mar 26, 2019 8:12 pm

I would like to update a parameter from the plugin Process() so that a host can record it as automation data, i.e., "write only" output from the plugin to the host.

In VST2 I can make this work by calling a parameter update inside "OnIdle()" - but that does not work in VST3 (AFAIK, there is no OnIdle() in VST3).

So, how can something like this be done? Attempting to update the parameter from inside the Process() block causes many hosts to crash - so this has to be done in an idle call somewhere.

Any advice appreciated!

(BTW- not all VST2 hosts call OnIdle() between Process() blocks so that doesn't always work either - but at least it's stable when it does work)

Arne Scheffler
Posts: 276
Joined: Mon Jun 20, 2016 7:53 am

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Arne Scheffler » Tue Mar 26, 2019 8:20 pm

Hi,
what's the use-case for writing parameter changes from inside the process function as automation ? Just curios.
And how sample accurate do you need this ?

Cheers,
Arne

Nonlinear
Posts: 14
Joined: Tue Mar 05, 2019 6:37 pm

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Nonlinear » Tue Mar 26, 2019 9:25 pm

Arne Scheffler wrote:what's the use-case for writing parameter changes from inside the process function as automation ? Just curios.
And how sample accurate do you need this ?
Gain envelope from compressors, gates, etc., that can be used as control signals for other plugins, automation of track volume, pan, etc.

I have seen many "vocal rider" plugins with this functionality (gain envelope is a record-able parameter).

I would like to export a data point at least once per process block so it is fairly in-sync with the audio. "Sample accurate"is not necessary but it cannot be haphazard either (i.e., an external timer would probably make it too sloppy/useless).

Arne Scheffler
Posts: 276
Joined: Mon Jun 20, 2016 7:53 am

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Arne Scheffler » Tue Mar 26, 2019 9:31 pm

OK, have a look at how AGain sends it VUMeter parameter back to the controller from inside the process function (search kVuPPMId).
Just do it the same and a host which supports it can drive another parameter from another plug-in with your parameter.

Cheers,
Arne

Nonlinear
Posts: 14
Joined: Tue Mar 05, 2019 6:37 pm

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Nonlinear » Tue Mar 26, 2019 11:32 pm

Arne Scheffler wrote:OK, have a look at how AGain sends it VUMeter parameter back to the controller from inside the process function (search kVuPPMId).
Just do it the same and a host which supports it can drive another parameter from another plug-in with your parameter.

Cheers,
Arne
I will study that but I have found that updating the plugin's GUI is a different situation than updating a parameter. I tried to do what you suggest but it was unreliable. On some hosts it worked exactly as desired (Reaper, Cubase, Wavelab) but then massively crashed other hosts (Cakewalk/Sonar). When I reconfigured to do this within an "OnIdle()" call it was ALWAYS stable - but "OnIdle()" is only available in VST2, so...

I will take another look at AGain. Maybe I missed something. Thank you.

Arne Scheffler
Posts: 276
Joined: Mon Jun 20, 2016 7:53 am

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Arne Scheffler » Wed Mar 27, 2019 8:59 am

The crashes in Cakewalk were bugs in their VST3 implementation. I think that this should be fixed in the latest release.

Cheers,
Arne

Nonlinear
Posts: 14
Joined: Tue Mar 05, 2019 6:37 pm

Re: Any equivalent function to "OnIdle()" in VST3?

Post by Nonlinear » Thu Mar 28, 2019 2:05 am

Arne Scheffler wrote:The crashes in Cakewalk were bugs in their VST3 implementation. I think that this should be fixed in the latest release.

Cheers,
Arne
Hmm, thank you, will check that out.

I was just commenting today on another forum that VST3 has been out for over 10 years now and many DAWs and plugins that use it STILL don't work right - if they support VST3 AT ALL.

I'm struggling with it but I come from years away and only on VST2. Will get it - eventually...

Post Reply