Jump to content

Cakewalk SHOW when PLUGIN IS BYPASSED FROM WITHIN PLUGIN


Menki

Recommended Posts

NOT SURE THAT'S POSSIBLE, BUT NOEL WILL KNOW...damn, I'm having the same problem with caps-lock. Must be that 5G virus.

Implementing this assumes that plugins report back to the DAW when it's been internally bypassed. Bypassing is more complicated than you might assume, and bypassing within the plugin versus by the DAW are not at all the same thing. Furthermore, plugin makers are not required to implement every VST function. Although a mechanism is defined in the VST spec for notifying the host of state changes, it incurs a great deal of overhead and is therefore may be impractical during playback. 

From the VST3 specification (emphases are mine):

Quote

When a parameter is changed in the plug-in UI by user action, the plug sends this change to the host with performEdit (do not forget to call beginEdit and endEdit), then the host has the responsibility to transfer this parameter change to the processor part: => if the audio engine is running (playing) this will be done in the next available process call => if the audio engine is not running, the host has to flush parameter changes from time to time by sending them to processor by calling process (with audio buffer set to null), in this case the plug-in should only update the parameters changes without processing any audio. This is very important that the host supports this flush mechanism else by saving plug-ins state (project/preset) the host will not get the correct updated one.

In order to implement audio process bypassing, the plug-in can export a parameter which is additionally and exclusively flagged as having the attribute kIsBypass. When the user activates the plug-in bypass in the host, like all parameter changes, this is sent as part of the parameter data passed to the IAudioProcessor::process method.

The implementation of the bypass feature is entirely the responsibility of the plug-in:

The IIAudioProcessor::process method will continue to be called. The plug-in must take care of artifact-free switching (ramping/fade-In/fade-Out, parallel processing or algorithm changes) and must also provide a delayed action if the plug-in has a latency and be sure that the output buffers are providing a copy of the input buffers (eventually delayed). No need to copy the input buffers to the output buffers when the pointers are the same and the plug-in has no latency!

This is the choice of the plug-in to handle/process the bypass (like any other parameters) sample accurate (by using the sampleOffset of the parameter change) or audio block based (not recommended when the audio block length is too large > 1024).

During bypass the process is still called, but if not, for some reason, the host may call a flush (using process call with null audio buffer).

 

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...