VST 3 SDK  VST 3.7
SDK for developing VST plug-in
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
Handler Struct Referenceabstract

#include <mpeprocessor.h>

Public Member Functions

virtual bool generateNewNoteID (NoteID &outNoteID)=0
 Generate a new noteID.
 
virtual void releaseNoteID (NoteID noteID)=0
 Release a noteID.
 
virtual void onMPENoteOn (NoteID noteID, Pitch pitch, Velocity velocity)=0
 A note on was transmitted.
 
virtual void onMPENoteOff (NoteID noteID, Pitch pitch, Velocity velocity)=0
 A note off was transmitted.
 
virtual void onMPEControllerChange (NoteID noteID, Controller cc, NormalizedValue value)=0
 A new per note controller change was transmitted.
 
virtual void onOtherInput (const uint8_t *data, size_t dataSize)=0
 Non MPE MIDI input data was transmitted.
 
virtual void onSysexInput (const uint8_t *data, size_t dataSize)=0
 Sysex MIDI data was transmitted.
 
virtual void errorNoteDroppedBecauseNoNoteID (Pitch pitch)=0
 called when the handler did not return a new note ID
 
virtual void errorNoteDroppedBecauseNoteStackFull (Channel channel, Pitch pitch)=0
 the internal note stack for this channel is full, happens on too many note ons per channel
 
virtual void errorNoteForNoteOffNotFound (Channel channel, Pitch pitch)=0
 called when the internal data has no reference to this note off
 
virtual void errorProgramChangeReceivedInMPEZone ()=0
 called when a program change was received inside the MPE zone which is a protocol violation
 

Member Function Documentation

virtual bool generateNewNoteID ( NoteID outNoteID)
pure virtual

Generate a new noteID.

called by the processor for a new NoteID. The handler has to make sure that the noteID is not used again until the releaseNoteID method is called.

Parameters
outNoteIDon return contains the new noteID if this call succeed
Returns
true if outNoteID was filled with a new noteID
virtual void releaseNoteID ( NoteID  noteID)
pure virtual

Release a noteID.

called by the processor when the NoteID is no longer used.

Parameters
noteIDthe noteID not longer in use
virtual void onMPENoteOn ( NoteID  noteID,
Pitch  pitch,
Velocity  velocity 
)
pure virtual

A note on was transmitted.

Parameters
noteIDunique note identifier
pitchnote pitch
velocitynote on velocity
virtual void onMPENoteOff ( NoteID  noteID,
Pitch  pitch,
Velocity  velocity 
)
pure virtual

A note off was transmitted.

Parameters
noteIDunique note identifier
pitchnote pitch
velocitynote off velocity
virtual void onMPEControllerChange ( NoteID  noteID,
Controller  cc,
NormalizedValue  value 
)
pure virtual

A new per note controller change was transmitted.

Parameters
noteIDunique note identifier
ccthe MIDI controller which changed
valuethe value of the change in the range [0..1]
virtual void onOtherInput ( const uint8_t *  data,
size_t  dataSize 
)
pure virtual

Non MPE MIDI input data was transmitted.

Parameters
dataMIDI data buffer
dataSizesize of the MIDI data buffer in bytes
virtual void onSysexInput ( const uint8_t *  data,
size_t  dataSize 
)
pure virtual

Sysex MIDI data was transmitted.

Parameters
dataSysex data buffer
dataSizesize of sysex data buffer in bytes
virtual void errorNoteDroppedBecauseNoNoteID ( Pitch  pitch)
pure virtual

called when the handler did not return a new note ID

virtual void errorNoteDroppedBecauseNoteStackFull ( Channel  channel,
Pitch  pitch 
)
pure virtual

the internal note stack for this channel is full, happens on too many note ons per channel

virtual void errorNoteForNoteOffNotFound ( Channel  channel,
Pitch  pitch 
)
pure virtual

called when the internal data has no reference to this note off

virtual void errorProgramChangeReceivedInMPEZone ( )
pure virtual

called when a program change was received inside the MPE zone which is a protocol violation

Empty

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