/ VST Home / Technical Documentation
[3.8.1] NoteOn Orchestral Articulation Info
On this page:
Related pages:
- [3.5.0] Note Expression
- About MIDI in VST 3
- [midi.org] Orchestral Articulation Profile Introduction
- [midi.org] new profile specifications adopted
- [AMEI] M2-123-UM Document
Introduction
Edit controller component interface extension: Vst:: NoteOnOrchestralArticulation:: IInfo.
- [plug imp]
- [extends Vst:: IEditController]
- [released: 3.8.1]
- [optional]
This interface allows the host to retrieve, for each input event bus and channel, the number of variations supported by the plug-in for Note On Orchestral Articulations (called from the UI thread). Variation indices for subclasses follow the subclass index definitions specified by the MIDI-CI profile for Note On Selection of Orchestral Articulation (M2-123-UM).
Example
In mycontroller.h
//------------------------------------------------------------------------
// here an example of how a VST 3 plug-in could support this IParameterFunctionName interface.
// we need to define somewhere the iids (in mycontroller.cpp):
#include "pluginterfaces/vst/ivstnoteonorchestralarticulationinfo.h"
//in MyController class declaration
class MyController : public Vst::EditController, public Vst::NoteOnOrchestralArticulation::IInfo
{
// ...
tresult PLUGIN_API getVariationsInfo (int32 busIndex /*in*/, int16 channel /*in*/,Vst::NoteOnOrchestralArticulation::ClassificationVariations& info /*out*/) override;
// ...
OBJ_METHODS (MyController, Vst::EditController)
DEFINE_INTERFACES
// ...
DEF_INTERFACE (Vst::NoteOnOrchestralArticulation::IInfo)
END_DEFINE_INTERFACES (Vst::EditController)
//...
}
In mycontroller.cpp
namespace Steinberg {
namespace Vst {
DEF_CLASS_IID (NoteOnOrchestralArticulation::IInfo)
}
}
//------------------------------------------------------------------------
tresult PLUGIN_API MyController::getVariationsInfo (int32 busIndex, int16 channel, Vst::NoteOnOrchestralArticulation::ClassificationVariations& info)
{
using namespace Vst;
// subclass: Normal Sustains & Strikes (Part 1) (index 0)
info.classification[kCoreSoundSustainAndStrikes].variation[0] = 2;
// subclass: Legato and Legato Slurred (index 2)
info.classification[kCoreSoundSustainAndStrikes].variation[2] = 3;
// subclass: Pizzicato (index 10 (0xA))
info.classification[kStaccatosAndShorts].variation[10] = 3;
}