ASPiK SDK
Steinberg::Vst::ASPiK::VSTParamUpdateQueue Class Reference

The VSTParamUpdateQueue object maintains a parameter update queue for one ASPiK PluginParameter object. It is only used as part of the sample-accurate automation feature in ASPiK. More...

#include <vst3plugin.h>

Inheritance diagram for Steinberg::Vst::ASPiK::VSTParamUpdateQueue:
IParameterUpdateQueue IParameterUpdateQueue

Public Member Functions

 VSTParamUpdateQueue (void)
 ASPiK support for sample accurate auatomation. More...
 
void initialize (ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue, unsigned int *_sampleAccuracy)
 ASPiK support for sample accurate auatomation. More...
 
void setParamValueQueue (IParamValueQueue *_paramValueQueue, unsigned int _bufferSize)
 ASPiK support for sample accurate auatomation. More...
 
void setSlope ()
 ASPiK support for sample accurate auatomation. More...
 
ParamValue interpolate (int x1, int x2, ParamValue y1, ParamValue y2, int x)
 ASPiK support for sample accurate auatomation. More...
 
int needsUpdate (int x, ParamValue &value)
 ASPiK support for sample accurate auatomation. More...
 
unsigned int getParameterIndex ()
 ASPiK support for sample accurate auatomation. More...
 
bool getValueAtOffset (long int _sampleOffset, double _previousValue, double &_nextValue)
 ASPiK support for sample accurate auatomation. More...
 
bool getNextValue (double &_nextValue)
 ASPiK support for sample accurate auatomation. More...
 
void initialize (ParamValue _initialValue, ParamValue _minValue, ParamValue _maxValue, unsigned int *_sampleAccuracy)
 
void setParamValueQueue (IParamValueQueue *_paramValueQueue, unsigned int _bufferSize)
 
void setSlope ()
 
ParamValue interpolate (int x1, int x2, ParamValue y1, ParamValue y2, int x)
 
int needsUpdate (int x, ParamValue &value)
 
unsigned int getParameterIndex ()
 
bool getValueAtOffset (long int _sampleOffset, double _previousValue, double &_nextValue)
 
bool getNextValue (double &_nextValue)
 

Protected Attributes

unsigned int bufferSize = 0
 
ParamValue initialValue = 0.0
 
ParamValue previousValue = 0.0
 
ParamValue maxValue = 0.0
 
ParamValue minValue = 0.0
 
ParamValue slope
 
ParamValue yIntercept
 
unsigned int * sampleAccuracy = nullptr
 
int queueIndex = 0
 
int queueSize = 0
 
IParamValueQueue * parameterQueue = nullptr
 
int x1
 
int x2 = 0
 
double y1
 
double y2 = 0
 
bool dirtyBit = false
 
int sampleOffset = 0
 

Detailed Description

The VSTParamUpdateQueue object maintains a parameter update queue for one ASPiK PluginParameter object. It is only used as part of the sample-accurate automation feature in ASPiK.

Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is part of the ASPiK plugin framework
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

Constructor & Destructor Documentation

◆ VSTParamUpdateQueue()

Steinberg::Vst::ASPiK::VSTParamUpdateQueue::VSTParamUpdateQueue ( void  )

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

Member Function Documentation

◆ getNextValue() [1/2]

bool Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getNextValue ( double &  _nextValue)
virtual

Get the sample-accurate value of the parameter at the next sample offset, determined by an internal counter Returns true if dNextValue is different than the previous value

Implements IParameterUpdateQueue.

◆ getNextValue() [2/2]

bool Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getNextValue ( double &  _nextValue)
virtual

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

Implements IParameterUpdateQueue.

◆ getParameterIndex() [1/2]

unsigned int Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getParameterIndex ( )
virtual

Get the index number associated with the parameter

Implements IParameterUpdateQueue.

◆ getParameterIndex() [2/2]

unsigned int Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getParameterIndex ( )
virtual

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

Implements IParameterUpdateQueue.

◆ getValueAtOffset() [1/2]

bool Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getValueAtOffset ( long int  _sampleOffset,
double  _previousValue,
double &  _nextValue 
)
virtual

Get the sample-accurate value of the parameter at the given sample offset. Pass in the last known normalized value. Returns true if dPreviousValue != dNextValue

Implements IParameterUpdateQueue.

◆ getValueAtOffset() [2/2]

bool Steinberg::Vst::ASPiK::VSTParamUpdateQueue::getValueAtOffset ( long int  _sampleOffset,
double  _previousValue,
double &  _nextValue 
)
virtual

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

Implements IParameterUpdateQueue.

◆ initialize()

void Steinberg::Vst::ASPiK::VSTParamUpdateQueue::initialize ( ParamValue  _initialValue,
ParamValue  _minValue,
ParamValue  _maxValue,
unsigned int *  _sampleAccuracy 
)

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

◆ interpolate()

ParamValue Steinberg::Vst::ASPiK::VSTParamUpdateQueue::interpolate ( int  x1,
int  x2,
ParamValue  y1,
ParamValue  y2,
int  x 
)

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

◆ needsUpdate()

int Steinberg::Vst::ASPiK::VSTParamUpdateQueue::needsUpdate ( int  x,
ParamValue &  value 
)

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

◆ setParamValueQueue()

void Steinberg::Vst::ASPiK::VSTParamUpdateQueue::setParamValueQueue ( IParamValueQueue *  _paramValueQueue,
unsigned int  _bufferSize 
)

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

◆ setSlope()

void Steinberg::Vst::ASPiK::VSTParamUpdateQueue::setSlope ( )

ASPiK support for sample accurate auatomation.

NOTES:

  • see Designing Audio Effects in C++ 2nd Ed. by Will Pirkle for more information and a VST3 Programming Guide
  • see VST3 SDK Documentation for more information on this function and its parameters

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