|
DSPark 1.6.1
Header-only audio DSP framework in pure C++20 — zero dependencies
|
#include <DSParkVst3.h>
Public Member Functions | |
| Plugin () noexcept | |
| void * | lensPtr (int lens) noexcept |
| Steinberg_tresult | query (const Steinberg_TUID iid, void **obj) noexcept |
| Steinberg_uint32 | addRefImpl () noexcept |
| Steinberg_uint32 | releaseImpl () noexcept |
| void | applyNormalized (int index, double normalized) noexcept |
| void | applyAllShadows () noexcept |
| void | applyFactoryPresetIdx (int idx) noexcept |
| void | refreshLatency (Steinberg_int32 extraFlags=0) noexcept |
| void | collectParameterChanges (Steinberg_Vst_IParameterChanges *changes, Steinberg_int32 numSamples, BlockEvent *events, int &count) noexcept |
| void | collectInputEvents (Steinberg_Vst_IEventList *list, Steinberg_int32 numSamples, BlockEvent *events, int &count) noexcept |
| bool | applyBlockEvent (const BlockEvent &ev, int blockStart, bool &programChanged) noexcept |
| void | forwardTransport (const Steinberg_Vst_ProcessContext *ctx) noexcept |
Static Public Member Functions | |
| static Plugin * | fromLens (void *iface, int lens) noexcept |
| template<int Lens> | |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sQuery (void *self_, const Steinberg_TUID iid, void **obj) |
| template<int Lens> | |
| static Steinberg_uint32 SMTG_STDMETHODCALLTYPE | sAddRef (void *self_) |
| template<int Lens> | |
| static Steinberg_uint32 SMTG_STDMETHODCALLTYPE | sRelease (void *self_) |
| static int | indexOfParamId (Steinberg_Vst_ParamID id) noexcept |
| static int | midiProxySlot (uint32_t id) noexcept |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sInitialize (void *, Steinberg_FUnknown *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sTerminate (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetControllerClassId (void *, Steinberg_TUID) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetIoMode (void *, Steinberg_Vst_IoMode) |
| static Steinberg_int32 | numInputBuses () noexcept |
| static Steinberg_int32 SMTG_STDMETHODCALLTYPE | sGetBusCount (void *, Steinberg_Vst_MediaType type, Steinberg_Vst_BusDirection dir) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetBusInfo (void *self_, Steinberg_Vst_MediaType type, Steinberg_Vst_BusDirection dir, Steinberg_int32 index, Steinberg_Vst_BusInfo *bus) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetRoutingInfo (void *, Steinberg_Vst_RoutingInfo *, Steinberg_Vst_RoutingInfo *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sActivateBus (void *, Steinberg_Vst_MediaType, Steinberg_Vst_BusDirection, Steinberg_int32, Steinberg_TBool) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetActive (void *self_, Steinberg_TBool state) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sComponentSetState (void *self_, Steinberg_IBStream *state) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sComponentGetState (void *self_, Steinberg_IBStream *state) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetBusArrangements (void *self_, Steinberg_Vst_SpeakerArrangement *inputs, Steinberg_int32 numIns, Steinberg_Vst_SpeakerArrangement *outputs, Steinberg_int32 numOuts) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetBusArrangement (void *self_, Steinberg_Vst_BusDirection dir, Steinberg_int32 index, Steinberg_Vst_SpeakerArrangement *arr) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sCanProcessSampleSize (void *, Steinberg_int32 size) |
| static Steinberg_uint32 SMTG_STDMETHODCALLTYPE | sGetLatencySamples (void *self_) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetupProcessing (void *self_, Steinberg_Vst_ProcessSetup *setup) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetProcessing (void *, Steinberg_TBool) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sProcess (void *self_, Steinberg_Vst_ProcessData *data) |
| static Steinberg_uint32 SMTG_STDMETHODCALLTYPE | sGetTailSamples (void *self_) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sCtrlInitialize (void *, Steinberg_FUnknown *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sCtrlTerminate (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetComponentState (void *self_, Steinberg_IBStream *state) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sCtrlSetState (void *, Steinberg_IBStream *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sCtrlGetState (void *, Steinberg_IBStream *) |
| static Steinberg_int32 SMTG_STDMETHODCALLTYPE | sGetParameterCount (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetParameterInfo (void *self_, Steinberg_int32 index, Steinberg_Vst_ParameterInfo *info) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetParamStringByValue (void *self_, Steinberg_Vst_ParamID id, Steinberg_Vst_ParamValue normalized, Steinberg_Vst_String128 out) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetParamValueByString (void *self_, Steinberg_Vst_ParamID id, Steinberg_Vst_TChar *string, Steinberg_Vst_ParamValue *normalized) |
| static Steinberg_Vst_ParamValue SMTG_STDMETHODCALLTYPE | sNormalizedParamToPlain (void *, Steinberg_Vst_ParamID id, Steinberg_Vst_ParamValue normalized) |
| static Steinberg_Vst_ParamValue SMTG_STDMETHODCALLTYPE | sPlainParamToNormalized (void *, Steinberg_Vst_ParamID id, Steinberg_Vst_ParamValue plain) |
| static Steinberg_Vst_ParamValue SMTG_STDMETHODCALLTYPE | sGetParamNormalized (void *self_, Steinberg_Vst_ParamID id) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetParamNormalized (void *self_, Steinberg_Vst_ParamID id, Steinberg_Vst_ParamValue value) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetComponentHandler (void *self_, Steinberg_Vst_IComponentHandler *handler) |
| static Steinberg_IPlugView *SMTG_STDMETHODCALLTYPE | sCreateView (void *self_, Steinberg_FIDString name) |
| static Steinberg_uint32 SMTG_STDMETHODCALLTYPE | sGetProcessContextRequirements (void *) |
| static Steinberg_int32 SMTG_STDMETHODCALLTYPE | sGetUnitCount (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetUnitInfo (void *, Steinberg_int32 unitIndex, Steinberg_Vst_UnitInfo *info) |
| static Steinberg_int32 SMTG_STDMETHODCALLTYPE | sGetProgramListCount (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetProgramListInfo (void *, Steinberg_int32 listIndex, Steinberg_Vst_ProgramListInfo *info) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetProgramName (void *, Steinberg_Vst_ProgramListID listId, Steinberg_int32 programIndex, Steinberg_Vst_String128 name) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetProgramInfo (void *, Steinberg_Vst_ProgramListID, Steinberg_int32, Steinberg_Vst_CString, Steinberg_Vst_String128) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sHasProgramPitchNames (void *, Steinberg_Vst_ProgramListID, Steinberg_int32) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetProgramPitchName (void *, Steinberg_Vst_ProgramListID, Steinberg_int32, Steinberg_int16, Steinberg_Vst_String128) |
| static Steinberg_Vst_UnitID SMTG_STDMETHODCALLTYPE | sGetSelectedUnit (void *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSelectUnit (void *, Steinberg_Vst_UnitID unitId) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetUnitByBus (void *, Steinberg_Vst_MediaType, Steinberg_Vst_BusDirection, Steinberg_int32, Steinberg_int32, Steinberg_Vst_UnitID *unitId) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sSetUnitProgramData (void *, Steinberg_int32, Steinberg_int32, struct Steinberg_IBStream *) |
| static Steinberg_tresult SMTG_STDMETHODCALLTYPE | sGetMidiControllerAssignment (void *, Steinberg_int32 busIndex, Steinberg_int16 channel, Steinberg_Vst_CtrlNumber midiControllerNumber, Steinberg_Vst_ParamID *id) |
Public Attributes | |
| const Steinberg_Vst_IComponentVtbl * | componentVtbl |
| const Steinberg_Vst_IAudioProcessorVtbl * | processorVtbl |
| const Steinberg_Vst_IEditControllerVtbl * | controllerVtbl |
| const Steinberg_Vst_IProcessContextRequirementsVtbl * | contextReqVtbl |
| const Steinberg_Vst_IUnitInfoVtbl * | unitVtbl |
| const Steinberg_Vst_IMidiMappingVtbl * | midiMapVtbl |
| std::atomic< Steinberg_uint32 > | refs { 1 } |
| P | user {} |
| Steinberg_Vst_ProcessSetup | setup { 0, 0, 0, 48000.0 } |
| bool | prepared = false |
| int | cachedLatency = 0 |
| int | currentChannels = defaultChannelCount<P>() |
| std::atomic< double > | shadow [kNumParams==0 ? 1 :kNumParams] {} |
| std::atomic< double > | midiProxyShadow [HasMidi< P > ? kNumMidiProxies :1] {} |
| std::atomic< bool > | bypass { false } |
| std::atomic< int > | currentProgram { 0 } |
| float | bypassMix = 0.0f |
| std::vector< float > | dryL |
| std::vector< float > | dryR |
| std::vector< float > | silence |
| std::atomic< Steinberg_Vst_IComponentHandler * > | handler { nullptr } |
Static Public Attributes | |
| static constexpr size_t | kNumParams = P::parameters.size() |
| static constexpr bool | kIsInstrument |
| static constexpr int | kNumPresets = factoryPresetCountOf<P>() |
| static const Steinberg_Vst_IComponentVtbl | kComponentVtbl |
| static const Steinberg_Vst_IAudioProcessorVtbl | kProcessorVtbl |
| static constexpr Steinberg_int32 | kBypassIndex |
| static constexpr Steinberg_int32 | kProgramIndex |
| static constexpr Steinberg_int32 | kFirstProxyIndex |
| static const Steinberg_Vst_IEditControllerVtbl | kControllerVtbl |
| static const Steinberg_Vst_IProcessContextRequirementsVtbl | kContextReqVtbl |
| static const Steinberg_Vst_IUnitInfoVtbl | kUnitVtbl |
| static const Steinberg_Vst_IMidiMappingVtbl | kMidiMapVtbl |
Definition at line 182 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 231 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 282 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 327 of file DSParkVst3.h.
|
inlinenoexcept |
Applies one event; blockStart rebases MIDI offsets onto the next processBlock call. Returns true when a user parameter changed (the latency re-check trigger) - program changes report through programChanged instead.
Definition at line 482 of file DSParkVst3.h.
|
inlinenoexcept |
Applies one factory preset: every parameter, by normalized value.
Definition at line 336 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 317 of file DSParkVst3.h.
|
inlinenoexcept |
Collects the VST3 note events (HasMidi plugins only).
Definition at line 415 of file DSParkVst3.h.
|
inlinenoexcept |
Collects parameter queue points. In sample-accurate mode every point is kept with its offset; otherwise only the last point per queue.
Definition at line 378 of file DSParkVst3.h.
|
inlinenoexcept |
Forwards the host ProcessContext as a TransportInfo (HasTransport).
Definition at line 768 of file DSParkVst3.h.
|
inlinestaticnoexcept |
Definition at line 246 of file DSParkVst3.h.
|
inlinestaticnoexcept |
Definition at line 310 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 252 of file DSParkVst3.h.
|
inlinestaticnoexcept |
Table slot of a proxy id: channel * 4 + controller slot.
Definition at line 535 of file DSParkVst3.h.
|
inlinestaticnoexcept |
Audio inputs: none for an Instrument; otherwise the main pair plus an aux bus when the class implements the sidechain processBlock.
Definition at line 561 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 259 of file DSParkVst3.h.
|
inlinenoexcept |
Re-reads the plugin latency; on a change, updates the cache and asks the host to re-fetch it. Mainstream hosts accept the restart request from the audio thread (they defer internally); extraFlags lets the caller batch kParamValuesChanged from a preset load into one call.
Definition at line 353 of file DSParkVst3.h.
|
inlinenoexcept |
Definition at line 287 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 615 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 301 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 744 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 681 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 646 of file DSParkVst3.h.
|
static |
Definition at line 1877 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1033 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1017 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1030 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1020 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 731 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 567 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 576 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 553 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 751 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1429 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1045 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1050 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1215 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1107 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1139 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1304 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1381 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1342 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1347 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1359 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1390 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 611 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1395 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 985 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1403 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1327 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1329 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1386 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 547 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1192 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1204 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 808 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 295 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 305 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1398 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 620 of file DSParkVst3.h.
|
inlinestatic |
Mono and stereo negotiate per the declared ChannelSupport; every bus of an instance (main in, sidechain, out) runs the same width.
Definition at line 711 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1273 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1023 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 556 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1237 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 764 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1412 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 756 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 550 of file DSParkVst3.h.
| std::atomic<bool> dspark::plugin::vst3::Plugin< P >::bypass { false } |
Definition at line 219 of file DSParkVst3.h.
| float dspark::plugin::vst3::Plugin< P >::bypassMix = 0.0f |
Definition at line 221 of file DSParkVst3.h.
| int dspark::plugin::vst3::Plugin< P >::cachedLatency = 0 |
Definition at line 214 of file DSParkVst3.h.
| const Steinberg_Vst_IComponentVtbl* dspark::plugin::vst3::Plugin< P >::componentVtbl |
Definition at line 202 of file DSParkVst3.h.
| const Steinberg_Vst_IProcessContextRequirementsVtbl* dspark::plugin::vst3::Plugin< P >::contextReqVtbl |
Definition at line 205 of file DSParkVst3.h.
| const Steinberg_Vst_IEditControllerVtbl* dspark::plugin::vst3::Plugin< P >::controllerVtbl |
Definition at line 204 of file DSParkVst3.h.
| int dspark::plugin::vst3::Plugin< P >::currentChannels = defaultChannelCount<P>() |
Definition at line 215 of file DSParkVst3.h.
| std::atomic<int> dspark::plugin::vst3::Plugin< P >::currentProgram { 0 } |
Definition at line 220 of file DSParkVst3.h.
| std::vector<float> dspark::plugin::vst3::Plugin< P >::dryL |
Definition at line 222 of file DSParkVst3.h.
| std::vector<float> dspark::plugin::vst3::Plugin< P >::dryR |
Definition at line 222 of file DSParkVst3.h.
| std::atomic<Steinberg_Vst_IComponentHandler*> dspark::plugin::vst3::Plugin< P >::handler { nullptr } |
Definition at line 229 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 1038 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 697 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1317 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1289 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 1042 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 185 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1443 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 184 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 187 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1006 of file DSParkVst3.h.
|
staticconstexpr |
Definition at line 1040 of file DSParkVst3.h.
|
inlinestatic |
Definition at line 1416 of file DSParkVst3.h.
| const Steinberg_Vst_IMidiMappingVtbl* dspark::plugin::vst3::Plugin< P >::midiMapVtbl |
Definition at line 207 of file DSParkVst3.h.
| std::atomic<double> dspark::plugin::vst3::Plugin< P >::midiProxyShadow[HasMidi< P > ? kNumMidiProxies :1] {} |
Definition at line 218 of file DSParkVst3.h.
| bool dspark::plugin::vst3::Plugin< P >::prepared = false |
Definition at line 213 of file DSParkVst3.h.
| const Steinberg_Vst_IAudioProcessorVtbl* dspark::plugin::vst3::Plugin< P >::processorVtbl |
Definition at line 203 of file DSParkVst3.h.
| std::atomic<Steinberg_uint32> dspark::plugin::vst3::Plugin< P >::refs { 1 } |
Definition at line 209 of file DSParkVst3.h.
| Steinberg_Vst_ProcessSetup dspark::plugin::vst3::Plugin< P >::setup { 0, 0, 0, 48000.0 } |
Definition at line 212 of file DSParkVst3.h.
| std::atomic<double> dspark::plugin::vst3::Plugin< P >::shadow[kNumParams==0 ? 1 :kNumParams] {} |
Definition at line 217 of file DSParkVst3.h.
| std::vector<float> dspark::plugin::vst3::Plugin< P >::silence |
Definition at line 223 of file DSParkVst3.h.
| const Steinberg_Vst_IUnitInfoVtbl* dspark::plugin::vst3::Plugin< P >::unitVtbl |
Definition at line 206 of file DSParkVst3.h.
| P dspark::plugin::vst3::Plugin< P >::user {} |
Definition at line 211 of file DSParkVst3.h.