/ VST Home / Technical Documentation

[3.8.1] NoteOn Orchestral Articulation Info

On this page:

Related pages:


Introduction

Edit controller component interface extension: Vst:: NoteOnOrchestralArticulation:: IInfo.

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;
}