VST 3 Examples  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
VoiceProcessorImplementation< Precision, VoiceClass, numChannels, maxVoices, GlobalParameterStorage > Class Template Reference

A Simple Voice Processor Implementation supporting note expression events. More...

#include <voiceprocessor.h>

+ Inheritance diagram for VoiceProcessorImplementation< Precision, VoiceClass, numChannels, maxVoices, GlobalParameterStorage >:

Public Member Functions

 VoiceProcessorImplementation (float sampleRate, GlobalParameterStorage *globalParameters=0)
 
 ~VoiceProcessorImplementation ()
 
tresult process (ProcessData &data) override
 
void processEvent (Event evt) override
 
- Public Member Functions inherited from VoiceProcessor
 VoiceProcessor ()
 
virtual ~VoiceProcessor ()
 
int32 getActiveVoices () const
 Returns the number of active voices.
 
void clearOutputNeeded (bool val)
 

Protected Member Functions

VoiceClass * getVoice (int32 noteId)
 
VoiceClass * findVoice (int32 noteId)
 

Protected Attributes

VoiceClass voices [maxVoices]
 
- Protected Attributes inherited from VoiceProcessor
int32 activeVoices
 
bool mClearOutputNeeded
 

Detailed Description

template<class Precision, class VoiceClass, int32 numChannels, int32 maxVoices, class GlobalParameterStorage>
class Steinberg::Vst::VoiceProcessorImplementation< Precision, VoiceClass, numChannels, maxVoices, GlobalParameterStorage >

A Simple Voice Processor Implementation supporting note expression events.

Parameters
Precisionmust be either float or double
VoiceClassthe voice class
numChannelsnumber of channels
maxVoicesnumber of maximum voices
GlobalParameterStoragea class holding global parameters

The VoiceClass must implement the following methods:

int32 getNoteId () const;
void setGlobalParameterStorage (GlobalParameterStorage* globalParameters);
void setSampleRate (ParamValue sampleRate);
void setNoteExpressionValue (int32 index, ParamValue value);
void noteOn (int32 pitch, ParamValue velocity, float tuning, int32 sampleOffset, int32 noteId);
void noteOff (ParamValue velocity, int32 sampleOffset);
bool process (SamplePrecision* outputBuffers[numChannels], int32 numSamples);
void reset ()

See Steinberg::Vst::VoiceBase for an example base class.

This implementation does not support advanced features like voice stealing when maxVoices is reached, etc ...

Constructor & Destructor Documentation

VoiceProcessorImplementation ( float  sampleRate,
GlobalParameterStorage *  globalParameters = 0 
)

Member Function Documentation

tresult process ( ProcessData data)
overridevirtual

Implements VoiceProcessor.

void processEvent ( Event  evt)
overridevirtual

Implements VoiceProcessor.

VoiceClass * getVoice ( int32  noteId)
protected
VoiceClass * findVoice ( int32  noteId)
protected

Member Data Documentation

VoiceClass voices[maxVoices]
protected
Empty

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