VST 3 Examples: Processor Class Reference
Author: Steinberg

VST 3 Examples VST 3.7 SDK for developing VST plug-in

Protected Types | Protected Member Functions | Protected Attributes | List of all members
Processor Class Referenceabstract

`#include <mdaBaseProcessor.h>`

Inheritance diagram for Processor:

## Protected Types
using | StateT = std::vector< ParamValue >

## Protected Member Functions
| Processor ()
| ~Processor ()
virtual void | doProcessing (ProcessData &data)=0
virtual void | preProcess ()
virtual bool | bypassProcessing (ProcessData &data)
virtual void | processEvent (const Event &)
virtual void | checkSilence (ProcessData &data)
virtual void | setBypass (bool state, int32 sampleOffset)
virtual bool | processParameterChanges (IParameterChanges *changes)
virtual void | setParameter (ParamID index, ParamValue newValue, int32 sampleOffset)
virtual void | allocParameters (int32 numParams)
virtual void | recalculate ()
virtual bool | hasProgram () const
virtual uint32 | getCurrentProgram () const
virtual uint32 | getNumPrograms () const
virtual void | setCurrentProgram (uint32)
virtual void | setCurrentProgramNormalized (ParamValue)
virtual int32 | getVst2UniqueId () const =0
void | processEvents (IEventList *events)
bool | isBypassed () const
double | getSampleRate () const
tresult | process (ProcessData &data) SMTG_OVERRIDE
tresult | setupProcessing (ProcessSetup &setup) SMTG_OVERRIDE
tresult | setActive (TBool state) SMTG_OVERRIDE
tresult | setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts) SMTG_OVERRIDE
tresult | setState (IBStream *state) final
tresult | getState (IBStream *state) final
bool | checkStateTransfer ()

## Protected Attributes
ParamValue * | params
uint32 | numParams
int32 | bypassRamp
float * | bypassBuffer0
float * | bypassBuffer1
bool | bypassState
RTTransferT< StateT > | stateTransfer

## Additional Inherited Members
Public Types inherited from IProcessContextRequirements
enum | Flags
Public Member Functions inherited from AudioEffect
| AudioEffect ()
AudioBus * | addAudioInput (const TChar *name, SpeakerArrangement arr, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
AudioBus * | addAudioOutput (const TChar *name, SpeakerArrangement arr, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
AudioBus * | getAudioInput (int32 index)
AudioBus * | getAudioOutput (int32 index)
EventBus * | addEventInput (const TChar *name, int32 channels=16, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
EventBus * | addEventOutput (const TChar *name, int32 channels=16, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
EventBus * | getEventInput (int32 index)
EventBus * | getEventOutput (int32 index)
tresult | setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts) SMTG_OVERRIDE
tresult | getBusArrangement (BusDirection dir, int32 busIndex, SpeakerArrangement &arr) SMTG_OVERRIDE
tresult | canProcessSampleSize (int32 symbolicSampleSize) SMTG_OVERRIDE
uint32 | getLatencySamples () SMTG_OVERRIDE
tresult | setupProcessing (ProcessSetup &setup) SMTG_OVERRIDE
tresult | setProcessing (TBool state) SMTG_OVERRIDE
tresult | process (ProcessData &data) SMTG_OVERRIDE
uint32 | getTailSamples () SMTG_OVERRIDE
uint32 | getProcessContextRequirements () SMTG_OVERRIDE
Public Member Functions inherited from Component
| Component ()
void | setControllerClass (const FUID &cid)
void | setControllerClass (const TUID &cid)
tresult | removeAudioBusses ()
tresult | removeEventBusses ()
tresult | renameBus (MediaType type, BusDirection dir, int32 index, const String128 newName)
tresult | getControllerClassId (TUID classID) SMTG_OVERRIDE
tresult | setIoMode (IoMode mode) SMTG_OVERRIDE
int32 | getBusCount (MediaType type, BusDirection dir) SMTG_OVERRIDE
tresult | getBusInfo (MediaType type, BusDirection dir, int32 index, BusInfo &info) SMTG_OVERRIDE
tresult | getRoutingInfo (RoutingInfo &inInfo, RoutingInfo &outInfo) SMTG_OVERRIDE
tresult | activateBus (MediaType type, BusDirection dir, int32 index, TBool state) SMTG_OVERRIDE
tresult | setActive (TBool state) SMTG_OVERRIDE
tresult | setState (IBStream *state) SMTG_OVERRIDE
tresult | getState (IBStream *state) SMTG_OVERRIDE
tresult | initialize (FUnknown *context) SMTG_OVERRIDE
tresult | terminate () SMTG_OVERRIDE
BusList * | getBusList (MediaType type, BusDirection dir)
tresult | removeAllBusses ()
Public Member Functions inherited from ComponentBase
| ComponentBase ()
| ~ComponentBase () override
FUnknown * | getHostContext () const
IConnectionPoint * | getPeer () const
IMessage * | allocateMessage () const
tresult | sendMessage (IMessage *message) const
tresult | sendTextMessage (const char8 *text) const
tresult | sendMessageID (const char8 *messageID) const
virtual tresult | receiveText (const char8 *text)
tresult | initialize (FUnknown *context) SMTG_OVERRIDE
tresult | terminate () SMTG_OVERRIDE
tresult | connect (IConnectionPoint *other) SMTG_OVERRIDE
tresult | disconnect (IConnectionPoint *other) SMTG_OVERRIDE
tresult | notify (IMessage *message) SMTG_OVERRIDE
virtual tresult | initialize (FUnknown *context)=0
virtual tresult | terminate ()=0
Public Member Functions inherited from FUnknown
virtual tresult | queryInterface (const TUID _iid, void **obj)=0
virtual uint32 | addRef ()=0
virtual uint32 | release ()=0
virtual tresult | connect (IConnectionPoint *other)=0
virtual tresult | disconnect (IConnectionPoint *other)=0
virtual tresult | notify (IMessage *message)=0
virtual tresult | getControllerClassId (TUID classId)=0
virtual tresult | setIoMode (IoMode mode)=0
virtual int32 | getBusCount (MediaType type, BusDirection dir)=0
virtual tresult | getBusInfo (MediaType type, BusDirection dir, int32 index, BusInfo &bus)=0
virtual tresult | getRoutingInfo (RoutingInfo &inInfo, RoutingInfo &outInfo)=0
virtual tresult | activateBus (MediaType type, BusDirection dir, int32 index, TBool state)=0
virtual tresult | setActive (TBool state)=0
virtual tresult | setState (IBStream *state)=0
virtual tresult | getState (IBStream *state)=0
virtual tresult | setBusArrangements (SpeakerArrangement *inputs, int32 numIns, SpeakerArrangement *outputs, int32 numOuts)=0
virtual tresult | getBusArrangement (BusDirection dir, int32 index, SpeakerArrangement &arr)=0
virtual tresult | canProcessSampleSize (int32 symbolicSampleSize)=0
virtual uint32 | getLatencySamples ()=0
virtual tresult | setupProcessing (ProcessSetup &setup)=0
virtual tresult | setProcessing (TBool state)=0
virtual tresult | process (ProcessData &data)=0
virtual uint32 | getTailSamples ()=0
virtual uint32 | getProcessContextRequirements ()=0
Public Attributes inherited from AudioEffect
OBJ_METHODS(AudioEffect, Component) DEFINE_INTERFACES DEF_INTERFACE(IAudioProcessor) DEF_INTERFACE(IProcessContextRequirements) END_DEFINE_INTERFACES(Component) REFCOUNT_METHODS(Component) protected ProcessContextRequirements | processContextRequirements
Public Attributes inherited from Component
OBJ_METHODS(Component, ComponentBase) DEFINE_INTERFACES DEF_INTERFACE(IComponent) END_DEFINE_INTERFACES(ComponentBase) REFCOUNT_METHODS(ComponentBase) protected BusList | audioInputs
BusList | audioOutputs
BusList | eventInputs
BusList | eventOutputs
Public Attributes inherited from ComponentBase
OBJ_METHODS(ComponentBase, FObject) DEFINE_INTERFACES DEF_INTERFACE(IPluginBase) DEF_INTERFACE(IConnectionPoint) END_DEFINE_INTERFACES(FObject) REFCOUNT_METHODS(FObject) protected IPtr< IConnectionPoint > | peerConnection
Public Attributes inherited from IProcessContextRequirements
| kNeedSystemTime
| kNeedContinousTimeSamples
| kNeedProjectTimeMusic
| kNeedBarPositionMusic
| kNeedCycleMusic
| kNeedSamplesToNextClock
| kNeedTempo
| kNeedTimeSignature
| kNeedChord
| kNeedFrameRate
| kNeedTransportState
Static Public Attributes inherited from IPluginBase
static const FUID | iid
Static Public Attributes inherited from FUnknown
static const FUID | iid
Static Public Attributes inherited from IConnectionPoint
static const FUID | iid
Static Public Attributes inherited from IComponent
static const FUID | iid
Static Public Attributes inherited from IAudioProcessor
static const FUID | iid
Static Public Attributes inherited from IProcessContextRequirements
static const FUID | iid

## Member Typedef Documentation

## ◆ StateT

using StateT = std::vector<ParamValue>
| protected

## Constructor & Destructor Documentation

## ◆ Processor()

Processor | ( |  | ) |
| protected

## ◆ ~Processor()

~Processor | ( |  | ) |
| protected

## Member Function Documentation

## ◆ doProcessing()

virtual void doProcessing | ( | ProcessData & | data | ) |
| protectedpure virtual

Implemented in AmbienceProcessor, BandistoProcessor, BeatBoxProcessor, ComboProcessor, DeEsserProcessor, DegradeProcessor, DelayProcessor, DetuneProcessor, DitherProcessor, DubDelayProcessor, DX10Processor, DynamicsProcessor, EPianoProcessor, ImageProcessor, JX10Processor, LeslieProcessor, LimiterProcessor, LoudnessProcessor, MultiBandProcessor, OverdriveProcessor, PianoProcessor, RePsychoProcessor, RezFilterProcessor, RingModProcessor, RoundPanProcessor, ShepardProcessor, SpecMeterProcessor, SplitterProcessor, StereoProcessor, SubSynthProcessor, TalkBoxProcessor, TestToneProcessor, ThruZeroProcessor, and TrackerProcessor.

## ◆ preProcess()

virtual void preProcess | ( |  | ) |
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ bypassProcessing()

bool bypassProcessing | ( | ProcessData & | data | ) |
| protectedvirtual

Reimplemented in SpecMeterProcessor.

## ◆ processEvent()

virtual void processEvent | ( | const Event & |  | ) |
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ checkSilence()

void checkSilence | ( | ProcessData & | data | ) |
| protectedvirtual

Reimplemented in DX10Processor, LoudnessProcessor, DynamicsProcessor, and LimiterProcessor.

## ◆ setBypass()

void setBypass | ( | bool | state,
|  | int32 | sampleOffset
| ) |  |
| protectedvirtual

## ◆ processParameterChanges()

bool processParameterChanges | ( | IParameterChanges * | changes | ) |
| protectedvirtual

Reimplemented in SampleAccurateBaseProcessor.

## ◆ setParameter()

void setParameter | ( | ParamID | index,
|  | ParamValue | newValue,
|  | int32 | sampleOffset
| ) |  |
| protectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ allocParameters()

void allocParameters | ( | int32 | numParams | ) |
| protectedvirtual

Reimplemented in SampleAccurateBaseProcessor.

## ◆ recalculate()

virtual void recalculate | ( |  | ) |
| inlineprotectedvirtual

Reimplemented in AmbienceProcessor, BandistoProcessor, BeatBoxProcessor, ComboProcessor, DeEsserProcessor, DegradeProcessor, DelayProcessor, DetuneProcessor, DitherProcessor, DubDelayProcessor, DX10Processor, DynamicsProcessor, EPianoProcessor, ImageProcessor, JX10Processor, LeslieProcessor, LimiterProcessor, LoudnessProcessor, MultiBandProcessor, OverdriveProcessor, PianoProcessor, RePsychoProcessor, RezFilterProcessor, RingModProcessor, RoundPanProcessor, ShepardProcessor, SpecMeterProcessor, SplitterProcessor, StereoProcessor, SubSynthProcessor, TalkBoxProcessor, TestToneProcessor, ThruZeroProcessor, and TrackerProcessor.

## ◆ hasProgram()

virtual bool hasProgram | ( |  | ) | const
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ getCurrentProgram()

virtual uint32 getCurrentProgram | ( |  | ) | const
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ getNumPrograms()

virtual uint32 getNumPrograms | ( |  | ) | const
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ setCurrentProgram()

virtual void setCurrentProgram | ( | uint32 |  | ) |
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ setCurrentProgramNormalized()

virtual void setCurrentProgramNormalized | ( | ParamValue |  | ) |
| inlineprotectedvirtual

Reimplemented in DX10Processor, EPianoProcessor, JX10Processor, and PianoProcessor.

## ◆ getVst2UniqueId()

virtual int32 getVst2UniqueId | ( |  | ) | const
| protectedpure virtual

Implemented in AmbienceProcessor, BandistoProcessor, BeatBoxProcessor, ComboProcessor, DeEsserProcessor, DegradeProcessor, DelayProcessor, DetuneProcessor, DitherProcessor, DubDelayProcessor, DX10Processor, DynamicsProcessor, EPianoProcessor, ImageProcessor, JX10Processor, LeslieProcessor, LimiterProcessor, LoudnessProcessor, MultiBandProcessor, OverdriveProcessor, PianoProcessor, RePsychoProcessor, RezFilterProcessor, RingModProcessor, RoundPanProcessor, ShepardProcessor, SpecMeterProcessor, SplitterProcessor, StereoProcessor, SubSynthProcessor, TalkBoxProcessor, TestToneProcessor, ThruZeroProcessor, and TrackerProcessor.

## ◆ processEvents()

void processEvents | ( | IEventList * | events | ) |
| protected

## ◆ isBypassed()

bool isBypassed | ( |  | ) | const
| inlineprotected

## ◆ getSampleRate()

double getSampleRate | ( |  | ) | const
| inlineprotected

## ◆ process()

tresult process | ( | ProcessData & | data | ) |
| protectedvirtual

Reimplemented from AudioEffect.

Reimplemented in SampleAccurateBaseProcessor.

## ◆ setupProcessing()

tresult setupProcessing | ( | ProcessSetup & | setup | ) |
| protectedvirtual

Reimplemented from AudioEffect.

## ◆ setActive()

tresult setActive | ( | TBool | state | ) |
| protectedvirtual

Reimplemented from Component.

Reimplemented in BeatBoxProcessor, ComboProcessor, DeEsserProcessor, DegradeProcessor, DelayProcessor, DetuneProcessor, DitherProcessor, DubDelayProcessor, DX10Processor, DynamicsProcessor, EPianoProcessor, ImageProcessor, JX10Processor, LeslieProcessor, LimiterProcessor, LoudnessProcessor, MultiBandProcessor, OverdriveProcessor, PianoProcessor, RePsychoProcessor, RezFilterProcessor, RingModProcessor, RoundPanProcessor, ShepardProcessor, SpecMeterProcessor, SplitterProcessor, StereoProcessor, SubSynthProcessor, TalkBoxProcessor, TestToneProcessor, ThruZeroProcessor, and TrackerProcessor.

## ◆ setBusArrangements()

tresult setBusArrangements | ( | SpeakerArrangement * | inputs,
|  | int32 | numIns,
|  | SpeakerArrangement * | outputs,
|  | int32 | numOuts
| ) |  |
| protectedvirtual

Reimplemented from AudioEffect.

## ◆ setState()

tresult setState | ( | IBStream * | state | ) |
| finalprotectedvirtual

Reimplemented from Component.

## ◆ getState()

tresult getState | ( | IBStream * | state | ) |
| finalprotectedvirtual

Reimplemented from Component.

## ◆ checkStateTransfer()

bool checkStateTransfer | ( |  | ) |
| protected

## Member Data Documentation

## ◆ params

ParamValue* params
| protected

## ◆ numParams

uint32 numParams
| protected

## ◆ bypassRamp

int32 bypassRamp
| protected

## ◆ bypassBuffer0

float* bypassBuffer0
| protected

## ◆ bypassBuffer1

float* bypassBuffer1
| protected

## ◆ bypassState

bool bypassState
| protected

## ◆ stateTransfer

RTTransferT<StateT> stateTransfer
| protected

Empty

Copyright © Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.