VST 3 SDK VST 3.7
SDK for developing VST plug-in
Handler Struct Referenceabstract

#include <mpeprocessor.h>

Public Member Functions

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

Member Function Documentation

◆ generateNewNoteID()

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.

@param outNoteID on return contains the new noteID if this call succeed
@return true if outNoteID was filled with a new noteID

◆ releaseNoteID()

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

◆ onMPENoteOn()

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

◆ onMPENoteOff()

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

◆ onMPEControllerChange()

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]

◆ onOtherInput()

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

◆ onSysexInput()

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

◆ errorNoteDroppedBecauseNoNoteID()

virtual void errorNoteDroppedBecauseNoNoteID ( Pitch  pitch)
pure virtual

called when the handler did not return a new note ID

◆ errorNoteDroppedBecauseNoteStackFull()

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

◆ errorNoteForNoteOffNotFound()

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

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

◆ errorProgramChangeReceivedInMPEZone()

virtual void errorProgramChangeReceivedInMPEZone ( )
pure virtual

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

Empty

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