Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::format::vst3::PulpVst3Processor Class Reference

#include <vst3_adapter.hpp>

Public Member Functions

 PulpVst3Processor (ProcessorFactory factory)
 ~PulpVst3Processor () override
Steinberg::tresult PLUGIN_API queryInterface (const Steinberg::TUID iid, void **obj) override
Steinberg::uint32 PLUGIN_API addRef () override
Steinberg::uint32 PLUGIN_API release () override
Steinberg::tresult PLUGIN_API initialize (Steinberg::FUnknown *context) override
Steinberg::tresult PLUGIN_API terminate () override
Steinberg::tresult PLUGIN_API getMidiControllerAssignment (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::Vst::CtrlNumber midiControllerNumber, Steinberg::Vst::ParamID &id) override
Steinberg::int32 PLUGIN_API getNoteExpressionCount (Steinberg::int32 busIndex, Steinberg::int16 channel) override
Steinberg::tresult PLUGIN_API getNoteExpressionInfo (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::int32 noteExpressionIndex, Steinberg::Vst::NoteExpressionTypeInfo &info) override
Steinberg::tresult PLUGIN_API getNoteExpressionStringByValue (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::Vst::NoteExpressionTypeID id, Steinberg::Vst::NoteExpressionValue valueNormalized, Steinberg::Vst::String128 string) override
Steinberg::tresult PLUGIN_API getNoteExpressionValueByString (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::Vst::NoteExpressionTypeID id, const Steinberg::Vst::TChar *string, Steinberg::Vst::NoteExpressionValue &valueNormalized) override
Steinberg::int32 PLUGIN_API getKeyswitchCount (Steinberg::int32 busIndex, Steinberg::int16 channel) override
Steinberg::tresult PLUGIN_API getKeyswitchInfo (Steinberg::int32 busIndex, Steinberg::int16 channel, Steinberg::int32 keySwitchIndex, Steinberg::Vst::KeyswitchInfo &info) override
Steinberg::int32 PLUGIN_API getUnitCount () override
Steinberg::tresult PLUGIN_API getUnitInfo (Steinberg::int32 unitIndex, Steinberg::Vst::UnitInfo &info) override
Steinberg::int32 PLUGIN_API getProgramListCount () override
Steinberg::tresult PLUGIN_API getProgramListInfo (Steinberg::int32, Steinberg::Vst::ProgramListInfo &) override
Steinberg::tresult PLUGIN_API getProgramName (Steinberg::Vst::ProgramListID, Steinberg::int32, Steinberg::Vst::String128) override
Steinberg::tresult PLUGIN_API getProgramInfo (Steinberg::Vst::ProgramListID, Steinberg::int32, Steinberg::Vst::CString, Steinberg::Vst::String128) override
Steinberg::tresult PLUGIN_API hasProgramPitchNames (Steinberg::Vst::ProgramListID, Steinberg::int32) override
Steinberg::tresult PLUGIN_API getProgramPitchName (Steinberg::Vst::ProgramListID, Steinberg::int32, Steinberg::int16, Steinberg::Vst::String128) override
Steinberg::Vst::UnitID PLUGIN_API getSelectedUnit () override
Steinberg::tresult PLUGIN_API selectUnit (Steinberg::Vst::UnitID) override
Steinberg::tresult PLUGIN_API getUnitByBus (Steinberg::Vst::MediaType, Steinberg::Vst::BusDirection, Steinberg::int32, Steinberg::int32, Steinberg::Vst::UnitID &) override
Steinberg::tresult PLUGIN_API setUnitProgramData (Steinberg::int32, Steinberg::int32, Steinberg::IBStream *) override
Steinberg::tresult PLUGIN_API getParamStringByValue (Steinberg::Vst::ParamID tag, Steinberg::Vst::ParamValue valueNormalized, Steinberg::Vst::String128 string) override
Steinberg::tresult PLUGIN_API getParamValueByString (Steinberg::Vst::ParamID tag, Steinberg::Vst::TChar *string, Steinberg::Vst::ParamValue &valueNormalized) override
Steinberg::Vst::ParamValue PLUGIN_API normalizedParamToPlain (Steinberg::Vst::ParamID id, Steinberg::Vst::ParamValue valueNormalized) override
Steinberg::Vst::ParamValue PLUGIN_API plainParamToNormalized (Steinberg::Vst::ParamID id, Steinberg::Vst::ParamValue plainValue) override
Steinberg::IPlugView *PLUGIN_API createView (Steinberg::FIDString name) override
Steinberg::tresult PLUGIN_API setBusArrangements (Steinberg::Vst::SpeakerArrangement *inputs, Steinberg::int32 numIns, Steinberg::Vst::SpeakerArrangement *outputs, Steinberg::int32 numOuts) override
Steinberg::tresult PLUGIN_API canProcessSampleSize (Steinberg::int32 symbolicSampleSize) override
Steinberg::tresult PLUGIN_API setupProcessing (Steinberg::Vst::ProcessSetup &setup) override
Steinberg::tresult PLUGIN_API setActive (Steinberg::TBool state) override
Steinberg::uint32 PLUGIN_API getLatencySamples () override
Steinberg::uint32 PLUGIN_API getTailSamples () override
Steinberg::tresult PLUGIN_API process (Steinberg::Vst::ProcessData &data) override
const state::ParameterEventQueue & last_input_param_events () const
ParamEventsOptOutMonitor & param_events_monitor ()
state::ParamID bypass_parameter_id () const
 Returns the StateStore ParamID the adapter routes VST3's kIsBypass parameter to.
std::uint32_t note_expression_drop_count () const
 Saturating count of per-note expression routings the adapter could not deliver: a note-on whose noteId could not claim a slot in the bounded noteId map (table full), plus any kNoteExpressionValueEvent whose noteId is not mapped to a live note (unknown or already released).
Steinberg::tresult PLUGIN_API setParamNormalized (Steinberg::Vst::ParamID id, Steinberg::Vst::ParamValue value) override
Steinberg::tresult PLUGIN_API getState (Steinberg::IBStream *state) override
Steinberg::tresult PLUGIN_API setState (Steinberg::IBStream *state) override
void set_factory_presets_directory (std::filesystem::path dir)
 Point factory-preset discovery at dir instead of the loaded bundle's Contents/Resources/Presets.
void forget_contract_view (ContractPlugView *view)
 Called by a ContractPlugView (vst3_contract_view.hpp) as it is destroyed, so the adapter stops tracking it.
std::int32_t poll_pending_restart_for_test ()
bool restart_dispatch_armed_for_test () const

Static Public Member Functions

static Steinberg::FUnknown * createInstance (void *)

Constructor & Destructor Documentation

◆ PulpVst3Processor()

pulp::format::vst3::PulpVst3Processor::PulpVst3Processor ( ProcessorFactory factory)

◆ ~PulpVst3Processor()

pulp::format::vst3::PulpVst3Processor::~PulpVst3Processor ( )
override

Member Function Documentation

◆ addRef()

Steinberg::uint32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::addRef ( )
inlineoverride

◆ bypass_parameter_id()

state::ParamID pulp::format::vst3::PulpVst3Processor::bypass_parameter_id ( ) const
inline

Returns the StateStore ParamID the adapter routes VST3's kIsBypass parameter to.

process() short-circuits to pass-through when this parameter's value is >= 0.5. Returns 0 when no bypass parameter is available.

◆ canProcessSampleSize()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::canProcessSampleSize ( Steinberg::int32 symbolicSampleSize)
override

◆ createInstance()

Steinberg::FUnknown * pulp::format::vst3::PulpVst3Processor::createInstance ( void * )
static

◆ createView()

Steinberg::IPlugView *PLUGIN_API pulp::format::vst3::PulpVst3Processor::createView ( Steinberg::FIDString name)
override

◆ forget_contract_view()

void pulp::format::vst3::PulpVst3Processor::forget_contract_view ( ContractPlugView * view)

Called by a ContractPlugView (vst3_contract_view.hpp) as it is destroyed, so the adapter stops tracking it.

◆ getKeyswitchCount()

Steinberg::int32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getKeyswitchCount ( Steinberg::int32 busIndex,
Steinberg::int16 channel )
override

◆ getKeyswitchInfo()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getKeyswitchInfo ( Steinberg::int32 busIndex,
Steinberg::int16 channel,
Steinberg::int32 keySwitchIndex,
Steinberg::Vst::KeyswitchInfo & info )
override

◆ getLatencySamples()

Steinberg::uint32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getLatencySamples ( )
override

◆ getMidiControllerAssignment()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getMidiControllerAssignment ( Steinberg::int32 busIndex,
Steinberg::int16 channel,
Steinberg::Vst::CtrlNumber midiControllerNumber,
Steinberg::Vst::ParamID & id )
override

◆ getNoteExpressionCount()

Steinberg::int32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getNoteExpressionCount ( Steinberg::int32 busIndex,
Steinberg::int16 channel )
override

◆ getNoteExpressionInfo()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getNoteExpressionInfo ( Steinberg::int32 busIndex,
Steinberg::int16 channel,
Steinberg::int32 noteExpressionIndex,
Steinberg::Vst::NoteExpressionTypeInfo & info )
override

◆ getNoteExpressionStringByValue()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getNoteExpressionStringByValue ( Steinberg::int32 busIndex,
Steinberg::int16 channel,
Steinberg::Vst::NoteExpressionTypeID id,
Steinberg::Vst::NoteExpressionValue valueNormalized,
Steinberg::Vst::String128 string )
override

◆ getNoteExpressionValueByString()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getNoteExpressionValueByString ( Steinberg::int32 busIndex,
Steinberg::int16 channel,
Steinberg::Vst::NoteExpressionTypeID id,
const Steinberg::Vst::TChar * string,
Steinberg::Vst::NoteExpressionValue & valueNormalized )
override

◆ getParamStringByValue()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getParamStringByValue ( Steinberg::Vst::ParamID tag,
Steinberg::Vst::ParamValue valueNormalized,
Steinberg::Vst::String128 string )
override

◆ getParamValueByString()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getParamValueByString ( Steinberg::Vst::ParamID tag,
Steinberg::Vst::TChar * string,
Steinberg::Vst::ParamValue & valueNormalized )
override

◆ getProgramInfo()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getProgramInfo ( Steinberg::Vst::ProgramListID ,
Steinberg::int32 ,
Steinberg::Vst::CString ,
Steinberg::Vst::String128  )
override

◆ getProgramListCount()

Steinberg::int32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getProgramListCount ( )
override

◆ getProgramListInfo()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getProgramListInfo ( Steinberg::int32 ,
Steinberg::Vst::ProgramListInfo &  )
override

◆ getProgramName()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getProgramName ( Steinberg::Vst::ProgramListID ,
Steinberg::int32 ,
Steinberg::Vst::String128  )
override

◆ getProgramPitchName()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getProgramPitchName ( Steinberg::Vst::ProgramListID ,
Steinberg::int32 ,
Steinberg::int16 ,
Steinberg::Vst::String128  )
override

◆ getSelectedUnit()

Steinberg::Vst::UnitID PLUGIN_API pulp::format::vst3::PulpVst3Processor::getSelectedUnit ( )
override

◆ getState()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getState ( Steinberg::IBStream * state)
override

◆ getTailSamples()

Steinberg::uint32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getTailSamples ( )
override

◆ getUnitByBus()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getUnitByBus ( Steinberg::Vst::MediaType ,
Steinberg::Vst::BusDirection ,
Steinberg::int32 ,
Steinberg::int32 ,
Steinberg::Vst::UnitID &  )
override

◆ getUnitCount()

Steinberg::int32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::getUnitCount ( )
override

◆ getUnitInfo()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::getUnitInfo ( Steinberg::int32 unitIndex,
Steinberg::Vst::UnitInfo & info )
override

◆ hasProgramPitchNames()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::hasProgramPitchNames ( Steinberg::Vst::ProgramListID ,
Steinberg::int32  )
override

◆ initialize()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::initialize ( Steinberg::FUnknown * context)
override

◆ last_input_param_events()

const state::ParameterEventQueue & pulp::format::vst3::PulpVst3Processor::last_input_param_events ( ) const
inline

◆ normalizedParamToPlain()

Steinberg::Vst::ParamValue PLUGIN_API pulp::format::vst3::PulpVst3Processor::normalizedParamToPlain ( Steinberg::Vst::ParamID id,
Steinberg::Vst::ParamValue valueNormalized )
override

◆ note_expression_drop_count()

std::uint32_t pulp::format::vst3::PulpVst3Processor::note_expression_drop_count ( ) const
inline

Saturating count of per-note expression routings the adapter could not deliver: a note-on whose noteId could not claim a slot in the bounded noteId map (table full), plus any kNoteExpressionValueEvent whose noteId is not mapped to a live note (unknown or already released).

Mirrors MpeBuffer::dropped_event_count() in spirit — an observable signal that a host exceeded the adapter's fixed per-note capacity. RT-safe (atomic, never logs on the audio thread).

◆ param_events_monitor()

ParamEventsOptOutMonitor & pulp::format::vst3::PulpVst3Processor::param_events_monitor ( )
inline

◆ plainParamToNormalized()

Steinberg::Vst::ParamValue PLUGIN_API pulp::format::vst3::PulpVst3Processor::plainParamToNormalized ( Steinberg::Vst::ParamID id,
Steinberg::Vst::ParamValue plainValue )
override

◆ poll_pending_restart_for_test()

std::int32_t pulp::format::vst3::PulpVst3Processor::poll_pending_restart_for_test ( )
inline

◆ process()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::process ( Steinberg::Vst::ProcessData & data)
override

◆ queryInterface()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::queryInterface ( const Steinberg::TUID iid,
void ** obj )
override

◆ release()

Steinberg::uint32 PLUGIN_API pulp::format::vst3::PulpVst3Processor::release ( )
inlineoverride

◆ restart_dispatch_armed_for_test()

bool pulp::format::vst3::PulpVst3Processor::restart_dispatch_armed_for_test ( ) const
inline

◆ selectUnit()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::selectUnit ( Steinberg::Vst::UnitID )
override

◆ set_factory_presets_directory()

void pulp::format::vst3::PulpVst3Processor::set_factory_presets_directory ( std::filesystem::path dir)
inline

Point factory-preset discovery at dir instead of the loaded bundle's Contents/Resources/Presets.

A plug-in that keeps its presets elsewhere calls this straight after construction; tests use it to stage a fixture. Must run before initialize(): the program list is built there and its size is fixed for the life of the instance.

◆ setActive()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setActive ( Steinberg::TBool state)
override

◆ setBusArrangements()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setBusArrangements ( Steinberg::Vst::SpeakerArrangement * inputs,
Steinberg::int32 numIns,
Steinberg::Vst::SpeakerArrangement * outputs,
Steinberg::int32 numOuts )
override

◆ setParamNormalized()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setParamNormalized ( Steinberg::Vst::ParamID id,
Steinberg::Vst::ParamValue value )
override

◆ setState()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setState ( Steinberg::IBStream * state)
override

◆ setUnitProgramData()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setUnitProgramData ( Steinberg::int32 ,
Steinberg::int32 ,
Steinberg::IBStream *  )
override

◆ setupProcessing()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::setupProcessing ( Steinberg::Vst::ProcessSetup & setup)
override

◆ terminate()

Steinberg::tresult PLUGIN_API pulp::format::vst3::PulpVst3Processor::terminate ( )
override

The documentation for this class was generated from the following file: