JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
Public Member Functions | Static Public Attributes | List of all members
Steinberg::Vst::IAudioProcessor Class Referenceabstract

Audio processing interface: Vst::IAudioProcessor. More...

#include "ivstaudioprocessor.h"

Inheritance diagram for Steinberg::Vst::IAudioProcessor:
Steinberg::FUnknown

Public Member Functions

virtual tresult PLUGIN_API setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts)=0
 Try to set (host => plug-in) a wanted arrangement for inputs and outputs.
 
virtual tresult PLUGIN_API getBusArrangement (BusDirection dir, int32 index, SpeakerArrangement &arr)=0
 Gets the bus arrangement for a given direction (input/output) and index.
 
virtual tresult PLUGIN_API canProcessSampleSize (int32 symbolicSampleSize)=0
 Asks if a given sample size is supported see SymbolicSampleSizes.
 
virtual uint32 PLUGIN_API getLatencySamples ()=0
 Gets the current Latency in samples.
 
virtual tresult PLUGIN_API setupProcessing (ProcessSetup &setup)=0
 Called in disable state (setActive not called with true) before setProcessing is called and processing will begin.
 
virtual tresult PLUGIN_API setProcessing (TBool state)=0
 Informs the plug-in about the processing state.
 
virtual tresult PLUGIN_API process (ProcessData &data)=0
 The Process call, where all information (parameter changes, event, audio buffer) are passed.
 
virtual uint32 PLUGIN_API getTailSamples ()=0
 Gets tail size in samples.
 
- Public Member Functions inherited from Steinberg::FUnknown
virtual tresult PLUGIN_API queryInterface (const TUID _iid, void **obj)=0
 Query for a pointer to the specified interface.
 
virtual uint32 PLUGIN_API addRef ()=0
 Adds a reference and returns the new reference count.
 
virtual uint32 PLUGIN_API release ()=0
 Releases a reference and returns the new reference count.
 

Static Public Attributes

static const FUID iid
 
- Static Public Attributes inherited from Steinberg::FUnknown
static const FUID iid
 

Detailed Description

Audio processing interface: Vst::IAudioProcessor.

This interface must always be supported by audio processing plug-ins.

Definition at line 258 of file ivstaudioprocessor.h.

Member Function Documentation

◆ getBusArrangement()

virtual tresult PLUGIN_API Steinberg::Vst::IAudioProcessor::getBusArrangement ( BusDirection  dir,
int32  index,
SpeakerArrangement arr 
)
pure virtual

Gets the bus arrangement for a given direction (input/output) and index.

Note: IComponent::getBusInfo () and IAudioProcessor::getBusArrangement () should be always return the same information about the busses arrangements.

◆ getLatencySamples()

virtual uint32 PLUGIN_API Steinberg::Vst::IAudioProcessor::getLatencySamples ( )
pure virtual

Gets the current Latency in samples.

The returned value defines the group delay or the latency of the plug-in. For example, if the plug-in internally needs to look in advance (like compressors) 512 samples then this plug-in should report 512 as latency. If during the use of the plug-in this latency change, the plug-in has to inform the host by using IComponentHandler::restartComponent (kLatencyChanged), this could lead to audio playback interruption because the host has to recompute its internal mixer delay compensation. Note that for player live recording this latency should be zero or small.

◆ getTailSamples()

virtual uint32 PLUGIN_API Steinberg::Vst::IAudioProcessor::getTailSamples ( )
pure virtual

Gets tail size in samples.

For example, if the plug-in is a Reverb plug-in and it knows that the maximum length of the Reverb is 2sec, then it has to return in getTailSamples() (in VST2 it was getGetTailSize ()): 2*sampleRate. This information could be used by host for offline processing, process optimization and downmix (avoiding signal cut (clicks)). It should return:

  • kNoTail when no tail
  • x * sampleRate when x Sec tail.
  • kInfiniteTail when infinite tail.

◆ setBusArrangements()

virtual tresult PLUGIN_API Steinberg::Vst::IAudioProcessor::setBusArrangements ( SpeakerArrangement inputs,
int32  numIns,
SpeakerArrangement outputs,
int32  numOuts 
)
pure virtual

Try to set (host => plug-in) a wanted arrangement for inputs and outputs.

The host should always deliver the same number of input and output busses than the plug-in needs (see IComponent::getBusCount). The plug-in has 3 possibilities to react on this setBusArrangements call:

  1. The plug-in accepts these arrangements, then it should modify, if needed, its busses to match these new arrangements (later on asked by the host with IComponent::getBusInfo () or IAudioProcessor::getBusArrangement ()) and then should return kResultTrue.
  2. The plug-in does not accept or support these requested arrangements for all inputs/outputs or just for some or only one bus, but the plug-in can try to adapt its current arrangements according to the requested ones (requested arrangements for kMain busses should be handled with more priority than the ones for kAux busses), then it should modify its busses arrangements and should return kResultFalse.
  3. Same than the point 2 above the plug-in does not support these requested arrangements but the plug-in cannot find corresponding arrangements, the plug-in could keep its current arrangement or fall back to a default arrangement by modifying its busses arrangements and should return kResultFalse.
    Parameters
    inputspointer to an array of /ref SpeakerArrangement
    numInsnumber of /ref SpeakerArrangement in inputs array
    outputspointer to an array of /ref SpeakerArrangement
    numOutsnumber of /ref SpeakerArrangement in outputs array Returns kResultTrue when Arrangements is supported and is the current one, else returns kResultFalse.

◆ setProcessing()

virtual tresult PLUGIN_API Steinberg::Vst::IAudioProcessor::setProcessing ( TBool  state)
pure virtual

Informs the plug-in about the processing state.

This will be called before any process calls start with true and after with false. Note that setProcessing (false) may be called after setProcessing (true) without any process calls. Note this function could be called in the UI or in Processing Thread, thats why the plug-in should only light operation (no memory allocation or big setup reconfiguration), this could be used to reset some buffers (like Delay line or Reverb). The host has to be sure that it is called only when the plug-in is enable (setActive (true) was called).

Member Data Documentation

◆ iid

const FUID Steinberg::Vst::IAudioProcessor::iid
static

Definition at line 331 of file ivstaudioprocessor.h.


The documentation for this class was generated from the following file: