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

Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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 () override
tresult | process (ProcessData &data) override
void | processEvent (Event evt) override
Public Member Functions inherited from VoiceProcessor
| VoiceProcessor ()
virtual | ~VoiceProcessor ()
virtual tresult | process (ProcessData &data)=0
virtual void | processEvent (Event evt)=0
int32 | getActiveVoices () const
| Returns the number of active voices. More...
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 {0}
bool | mClearOutputNeeded {true}

## 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

  Precision | must be either float or double
  VoiceClass | the voice class
  numChannels | number of channels
  maxVoices | number of maximum voices
  GlobalParameterStorage | a 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 ()
Steinberg::Vst::VoiceProcessorImplementation::process
tresult process(ProcessData &data) override
Definition: voiceprocessor.h:348
ParamValue
double ParamValue
int32
int32_t int32

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()

VoiceProcessorImplementation | ( | float | sampleRate,
|  | GlobalParameterStorage * | globalParameters = `0`
| ) |  |

## ◆ ~VoiceProcessorImplementation()

~VoiceProcessorImplementation
| override

## Member Function Documentation

## ◆ process()

tresult process | ( | ProcessData & | data | ) |
| override virtual

Implements VoiceProcessor.

## ◆ processEvent()

void processEvent | ( | Event | evt | ) |
| override virtual

Implements VoiceProcessor.

## ◆ getVoice()

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

## ◆ findVoice()

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

## Member Data Documentation

## ◆ voices

VoiceClass voices[maxVoices]
| protected

Empty

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