VST 3 SDK: Handler Struct Reference
Author: Steinberg

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

Public Member Functions | List of all members
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

  noteID | the noteID not longer in use

## ◆ onMPENoteOn()

virtual void onMPENoteOn | ( | NoteID | noteID,
|  | Pitch | pitch,
|  | Velocity | velocity
| ) |  |
| pure virtual

A note on was transmitted.

Parameters

  noteID | unique note identifier
  pitch | note pitch
  velocity | note on velocity

## ◆ onMPENoteOff()

virtual void onMPENoteOff | ( | NoteID | noteID,
|  | Pitch | pitch,
|  | Velocity | velocity
| ) |  |
| pure virtual

A note off was transmitted.

Parameters

  noteID | unique note identifier
  pitch | note pitch
  velocity | note off velocity

## ◆ onMPEControllerChange()

virtual void onMPEControllerChange | ( | NoteID | noteID,
|  | Controller | cc,
|  | NormalizedValue | value
| ) |  |
| pure virtual

A new per note controller change was transmitted.

Parameters

  noteID | unique note identifier
  cc | the MIDI controller which changed
  value | the 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

  data | MIDI data buffer
  dataSize | size 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

  data | Sysex data buffer
  dataSize | size 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.