VST 3 Examples: VoiceProcessorImplementation< Precision, VoiceClass, numChannels, maxVoices, GlobalParameterStorage > Class Template Reference
Author: Steinberg

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

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
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 ()
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

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

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

~VoiceProcessorImplementation | ( |  | ) |

## 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 ©2022 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.