VST 3 Examples VST 3.7
SDK for developing VST plug-in
PianoProcessor Class Reference

#include <mdaPianoProcessor.h>

+ Inheritance diagram for PianoProcessor:

Classes

struct  KGRP
 
struct  VOICE
 

Public Types

enum  { NPARAMS =12 , WAVELEN =586348 }
 
using Base = BaseProcessor
 
- Public Types inherited from IProcessContextRequirements
enum  Flags
 

Public Member Functions

 PianoProcessor ()
 
 ~PianoProcessor () override
 
int32 getVst2UniqueId () const SMTG_OVERRIDE
 
tresult initialize (FUnknown *context) SMTG_OVERRIDE
 
tresult terminate () SMTG_OVERRIDE
 
tresult setActive (TBool state) SMTG_OVERRIDE
 
tresult setProcessing (TBool state) SMTG_OVERRIDE
 
void doProcessing (ProcessData &data) SMTG_OVERRIDE
 
bool hasProgram () const SMTG_OVERRIDE
 
Steinberg::uint32 getCurrentProgram () const SMTG_OVERRIDE
 
Steinberg::uint32 getNumPrograms () const SMTG_OVERRIDE
 
void setCurrentProgram (Steinberg::uint32 val) SMTG_OVERRIDE
 
void setCurrentProgramNormalized (ParamValue val) SMTG_OVERRIDE
 
- Public Member Functions inherited from SampleAccurateBaseProcessor
 SampleAccurateBaseProcessor ()
 
void allocParameters (int32 numParams) final
 
tresult process (ProcessData &data) final
 
bool processParameterChanges (IParameterChanges *changes) final
 
- Public Member Functions inherited from AudioEffect
 AudioEffect ()
 
AudioBusaddAudioInput (const TChar *name, SpeakerArrangement arr, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
 
AudioBusaddAudioOutput (const TChar *name, SpeakerArrangement arr, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
 
AudioBusgetAudioInput (int32 index)
 
AudioBusgetAudioOutput (int32 index)
 
EventBusaddEventInput (const TChar *name, int32 channels=16, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
 
EventBusaddEventOutput (const TChar *name, int32 channels=16, BusType busType=kMain, int32 flags=BusInfo::kDefaultActive)
 
EventBusgetEventInput (int32 index)
 
EventBusgetEventOutput (int32 index)
 
tresult getBusArrangement (BusDirection dir, int32 busIndex, SpeakerArrangement &arr) SMTG_OVERRIDE
 
tresult canProcessSampleSize (int32 symbolicSampleSize) SMTG_OVERRIDE
 
uint32 getLatencySamples () 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
 
BusListgetBusList (MediaType type, BusDirection dir)
 
tresult removeAllBusses ()
 
- Public Member Functions inherited from ComponentBase
 ComponentBase ()
 
 ~ComponentBase () override
 
FUnknowngetHostContext () const
 
IConnectionPointgetPeer () const
 
IMessageallocateMessage () 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 connect (IConnectionPoint *other) SMTG_OVERRIDE
 
tresult disconnect (IConnectionPoint *other) SMTG_OVERRIDE
 
tresult notify (IMessage *message) SMTG_OVERRIDE
 
- Public Member Functions inherited from FUnknown
virtual tresult queryInterface (const TUID _iid, void **obj)=0
 
virtual uint32 addRef ()=0
 
virtual uint32 release ()=0
 

Static Public Member Functions

static FUnknowncreateInstance (void *)
 
static DECLARE_UID (uid, 0xA77EA27C, 0x1F184322, 0xBBD2AD93, 0x73A2B7A0)
 

Static Public Attributes

static const int32 kNumPrograms = 8
 
static float programParams [][NPARAMS]
 
- 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
 

Protected Types

using SynthDataT = SynthData< VOICE, kEventBufferSize, kNumVoices >
 
- Protected Types inherited from Processor
using StateT = std::vector< ParamValue >
 

Protected Member Functions

void setParameter (ParamID index, ParamValue newValue, int32 sampleOffset) SMTG_OVERRIDE
 
void preProcess () SMTG_OVERRIDE
 
void processEvent (const Event &event) SMTG_OVERRIDE
 
void noteEvent (const Event &event)
 
void recalculate () SMTG_OVERRIDE
 
void allNotesOff ()
 
- Protected Member Functions inherited from Processor
 Processor ()
 
 ~Processor () override
 
virtual bool bypassProcessing (ProcessData &data)
 
virtual void checkSilence (ProcessData &data)
 
virtual void setBypass (bool state, int32 sampleOffset)
 
void processEvents (IEventList *events)
 
bool isBypassed () const
 
double getSampleRate () const
 
tresult setupProcessing (ProcessSetup &setup) 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

float Fs
 
float iFs
 
SynthDataT synthData
 
KGRP kgrp [16]
 global internal variables More...
 
int32 poly
 
int32 cpos
 
short * waves
 
int32 cmax
 
float * comb
 
float cdep
 
float width
 
float trim
 
int32 size
 
float tune
 
float fine
 
float random
 
float stretch
 
float muff
 
float muffvel
 
float sizevel
 
float velsens
 
float volume
 
Steinberg::uint32 currentProgram
 
- Protected Attributes inherited from Processor
ParamValueparams
 
uint32 numParams
 
int32 bypassRamp
 
float * bypassBuffer0
 
float * bypassBuffer1
 
bool bypassState
 
RTTransferT< StateTstateTransfer
 

Static Protected Attributes

static constexpr int32 kNumVoices = 32
 
static constexpr int32 kEventBufferSize = 64
 

Additional Inherited Members

- 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< IConnectionPointpeerConnection
 
- Public Attributes inherited from IProcessContextRequirements
 kNeedSystemTime
 
 kNeedContinousTimeSamples
 
 kNeedProjectTimeMusic
 
 kNeedBarPositionMusic
 
 kNeedCycleMusic
 
 kNeedSamplesToNextClock
 
 kNeedTempo
 
 kNeedTimeSignature
 
 kNeedChord
 
 kNeedFrameRate
 
 kNeedTransportState
 

Member Typedef Documentation

◆ Base

◆ SynthDataT

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
Enumerator
NPARAMS 
WAVELEN 

Constructor & Destructor Documentation

◆ PianoProcessor()

◆ ~PianoProcessor()

~PianoProcessor ( )
override

Member Function Documentation

◆ getVst2UniqueId()

int32 getVst2UniqueId ( ) const
inlinevirtual

Implements Processor.

◆ initialize()

tresult initialize ( FUnknown context)
virtual

Reimplemented from Component.

◆ terminate()

tresult terminate ( )
virtual

Reimplemented from Component.

◆ setActive()

tresult setActive ( TBool  state)
virtual

Reimplemented from Processor.

◆ setProcessing()

tresult setProcessing ( TBool  state)
virtual

Reimplemented from AudioEffect.

◆ doProcessing()

void doProcessing ( ProcessData data)
virtual

Implements Processor.

◆ hasProgram()

bool hasProgram ( ) const
inlinevirtual

Reimplemented from Processor.

◆ getCurrentProgram()

Steinberg::uint32 getCurrentProgram ( ) const
inlinevirtual

Reimplemented from Processor.

◆ getNumPrograms()

Steinberg::uint32 getNumPrograms ( ) const
inlinevirtual

Reimplemented from Processor.

◆ setCurrentProgram()

void setCurrentProgram ( Steinberg::uint32  val)
virtual

Reimplemented from Processor.

◆ setCurrentProgramNormalized()

void setCurrentProgramNormalized ( ParamValue  val)
virtual

Reimplemented from Processor.

◆ createInstance()

static FUnknown * createInstance ( void *  )
inlinestatic

◆ DECLARE_UID()

static DECLARE_UID ( uid  ,
0xA77EA27C  ,
0x1F184322  ,
0xBBD2AD93  ,
0x73A2B7A0   
)
inlinestatic

◆ setParameter()

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

Reimplemented from Processor.

◆ preProcess()

void preProcess ( )
protectedvirtual

Reimplemented from Processor.

◆ processEvent()

void processEvent ( const Event event)
protectedvirtual

Reimplemented from Processor.

◆ noteEvent()

void noteEvent ( const Event event)
protected

◆ recalculate()

void recalculate ( )
protectedvirtual

Reimplemented from Processor.

◆ allNotesOff()

void allNotesOff ( )
protected

Member Data Documentation

◆ kNumPrograms

const int32 kNumPrograms = 8
static

◆ programParams

float programParams
static
Initial value:
= {
{0.500f, 0.500f, 0.500f, 0.5f, 0.803f, 0.251f, 0.376f, 0.500f, 0.330f, 0.500f, 0.246f, 0.500f},
{0.500f, 0.500f, 0.500f, 0.5f, 0.751f, 0.000f, 0.452f, 0.000f, 0.000f, 0.500f, 0.000f, 0.500f},
{0.902f, 0.399f, 0.623f, 0.5f, 1.000f, 0.331f, 0.299f, 0.499f, 0.330f, 0.500f, 0.000f, 0.500f},
{0.399f, 0.251f, 1.000f, 0.5f, 0.672f, 0.124f, 0.127f, 0.249f, 0.330f, 0.500f, 0.283f, 0.667f},
{0.648f, 0.500f, 0.500f, 0.5f, 0.298f, 0.602f, 0.550f, 0.850f, 0.356f, 0.500f, 0.339f, 0.660f},
{0.500f, 0.602f, 0.000f, 0.5f, 0.304f, 0.200f, 0.336f, 0.651f, 0.330f, 0.500f, 0.317f, 0.500f},
{0.450f, 0.598f, 0.626f, 0.5f, 0.603f, 0.500f, 0.174f, 0.331f, 0.330f, 0.500f, 0.421f, 0.801f},
{0.050f, 0.957f, 0.500f, 0.5f, 0.299f, 1.000f, 0.000f, 0.500f, 0.330f, 0.450f, 0.718f, 0.000f},
}

◆ Fs

float Fs
protected

◆ iFs

float iFs
protected

◆ kNumVoices

constexpr int32 kNumVoices = 32
staticconstexprprotected

◆ kEventBufferSize

constexpr int32 kEventBufferSize = 64
staticconstexprprotected

◆ synthData

SynthDataT synthData
protected

◆ kgrp

KGRP kgrp[16]
protected

global internal variables

◆ poly

int32 poly
protected

◆ cpos

int32 cpos
protected

◆ waves

short* waves
protected

◆ cmax

int32 cmax
protected

◆ comb

float* comb
protected

◆ cdep

float cdep
protected

◆ width

float width
protected

◆ trim

float trim
protected

◆ size

int32 size
protected

◆ tune

float tune
protected

◆ fine

float fine
protected

◆ random

float random
protected

◆ stretch

float stretch
protected

◆ muff

float muff
protected

◆ muffvel

float muffvel
protected

◆ sizevel

float sizevel
protected

◆ velsens

float velsens
protected

◆ volume

float volume
protected

◆ currentProgram

Steinberg::uint32 currentProgram
protected
Empty

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