|
| PluginParameter (int _controlID, const char *_controlName, const char *_controlUnits, controlVariableType _controlType, double _minValue, double _maxValue, double _defaultValue, taper _controlTaper=taper::kLinearTaper, uint32_t _displayPrecision=2) |
| constructor for most knobs and sliders
|
|
| PluginParameter (int _controlID, const char *_controlName, std::vector< std::string > _stringList, std::string _defaultString) |
| one method of constructing a string-list parameter
|
|
| PluginParameter (int _controlID, const char *_controlName, const char *_commaSeparatedList, std::string _defaultString) |
| second method of constructing a string-list parameter
|
|
| PluginParameter (int _controlID, const char *_controlName, double _meterAttack_ms, double _meterRelease_ms, uint32_t _detectorMode, meterCal _meterCal=meterCal::kLinearMeter) |
| method of constructing a meter parameter
|
|
| PluginParameter (int _controlID, const char *_controlName="", controlVariableType _controlType=controlVariableType::kNonVariableBoundControl) |
| method of constructing a non-bound-variable parameter
|
|
| PluginParameter () |
| simple constructor - you can always use this and then use the massive number of get/set functions to customize in any manner
|
|
| PluginParameter (const PluginParameter &initGuiControl) |
| copy constructor
|
|
virtual | ~PluginParameter () |
| only need to clean out the aux parameters - everything else is self deleting
|
|
uint32_t | getControlID () |
| get ID value
|
|
void | setControlID (uint32_t cid) |
| set ID value
|
|
const char * | getControlName () |
| get name as const char*
|
|
void | setControlName (const char *name) |
| set name as const char*
|
|
const char * | getControlUnits () |
| get units as const char*
|
|
void | setControlUnits (const char *units) |
| set units as const char*
|
|
controlVariableType | getControlVariableType () |
| get variable type associated with parameter
|
|
void | setControlVariableType (controlVariableType ctrlVarType) |
| set variable type associated with parameter
|
|
double | getMinValue () |
| get minimum value
|
|
void | setMinValue (double value) |
| set minimum value
|
|
double | getMaxValue () |
| get maximum value
|
|
void | setMaxValue (double value) |
| set maximum value
|
|
double | getDefaultValue () |
| get default value
|
|
void | setDefaultValue (double value) |
| set default value
|
|
bool | getIsDiscreteSwitch () |
| set is switch (not used)
|
|
void | setIsDiscreteSwitch (bool _isDiscreteSwitch) |
| get is switch (not used)
|
|
taper | getControlTaper () |
| get taper
|
|
void | setControlTaper (taper ctrlTaper) |
| set taper
|
|
bool | isLinearTaper () |
| query: linear taper
|
|
bool | isLogTaper () |
| query: log taper
|
|
bool | isAntiLogTaper () |
| query: antilog taper
|
|
bool | isVoltOctaveTaper () |
| query: volt/octave taper
|
|
bool | isMeterParam () |
| query: meter param?
|
|
bool | isStringListParam () |
| query: string list para,?
|
|
bool | isFloatParam () |
| query: float param?
|
|
bool | isDoubleParam () |
| query: double param?
|
|
bool | isIntParam () |
| query: int param?
|
|
bool | isNonVariableBoundParam () |
| query: non-bound param?
|
|
uint32_t | getDisplayPrecision () |
| get sig digits
|
|
void | setDisplayPrecision (uint32_t precision) |
| set sig digits
|
|
double | getMeterAttack_ms () |
| get meter attack time (ballistics)
|
|
void | setMeterAttack_ms (double value) |
| set meter attack time (ballistics)
|
|
double | getMeterRelease_ms () |
| get meter release time (ballistics)
|
|
void | setMeterRelease_ms (double value) |
| set meter release time (ballistics)
|
|
uint32_t | getDetectorMode () |
| get meter detect mode
|
|
void | setMeterDetectorMode (uint32_t value) |
| set meter detect mode
|
|
bool | getLogMeter () |
| query log meter flag
|
|
void | setLogMeter (bool value) |
| set log meter flag
|
|
bool | getInvertedMeter () |
| query inverted meter flag
|
|
void | setInvertedMeter (bool value) |
| set inverted meter flag
|
|
bool | isProtoolsGRMeter () |
| query pro tools GR meter flag
|
|
void | setIsProtoolsGRMeter (bool value) |
| set inverted meter flag
|
|
bool | getParameterSmoothing () |
| query parameter smoothing flag
|
|
void | setParameterSmoothing (bool value) |
| set inverted meter flag
|
|
double | getSmoothingTimeMsec () |
| query smoothing time
|
|
void | setSmoothingTimeMsec (double value) |
| set inverted meter flag
|
|
smoothingMethod | getSmoothingMethod () |
| query smoothing method
|
|
void | setSmoothingMethod (smoothingMethod smoothingMethod) |
| set smoothing method
|
|
bool | getIsWritable () |
| query writable control (meter)
|
|
void | setIsWritable (bool value) |
| set writable control (meter)
|
|
bool | getEnableVSTSampleAccurateAutomation () |
| query VST3 sample accurate automation
|
|
void | setEnableVSTSampleAccurateAutomation (bool value) |
| set VST3 sample accurate automation
|
|
AuxParameterAttribute * | getAuxAttribute (uint32_t attributeID) |
| get aux data
|
|
uint32_t | setAuxAttribute (uint32_t attributeID, const AuxParameterAttribute &auxParameterAtribute) |
| set aux data
|
|
double | getControlValue () |
| the main function to access the underlying atomic double value
|
|
void | setControlValue (double actualParamValue, bool ignoreSmoothing=false) |
| the main function to set the underlying atomic double value
|
|
double | setControlValueNormalized (double normalizedValue, bool applyTaper=true, bool ignoreParameterSmoothing=false) |
| the main function to set the underlying atomic double value using a normalized value; this is the operation in VST3 and RAFX2
|
|
std::string | getControlValueAsString () |
| the main function to access the underlying atomic double value as a string
|
|
size_t | getStringCount () |
| get the number of individual strings in a string-list control
|
|
const char * | getCommaSeparatedStringList () |
| get the strings in a string-list control as a comma separated list
|
|
void | setCommaSeparatedStringList () |
| convert the string-list into a comma-separated list (during construction)
|
|
void | setStringList (std::vector< std::string > _stringList) |
| set the string-list using a vector of strings
|
|
std::string | getStringByIndex (uint32_t index) |
| get string-list string by index
|
|
double | getDefaultValueNormalized () |
| get default value as normalied value
|
|
double | getControlValueNormalized (bool applyTaper=true) |
| get control value as normalied value
|
|
double | getControlValueWithNormalizedValue (double normalizedValue, bool applyTaper=true) |
| get the new control value as if it were set with a normalized value
|
|
double | getNormalizedControlValueWithActualValue (double actualValue) |
| get the new normalized control value as if it were set with an actual value
|
|
double | getGUIMin () |
|
double | getGUIMax () |
|
int | findStringIndex (std::string searchString) |
| find a string in the list of a string-list parameter
|
|
double | normToLogNorm (double normalizedValue) |
|
double | logNormToNorm (double logNormalizedValue) |
|
double | normToAntiLogNorm (double normalizedValue) |
|
double | antiLogNormToNorm (double aLogNormalizedValue) |
|
void | initParamSmoother (double sampleRate) |
| initialize or reset the parameter smoother object
|
|
void | updateSampleRate (double sampleRate) |
| change any sample-rate dependent members
|
|
bool | smoothParameterValue () |
| perform smoothing operation on data
|
|
void | setBoundVariable (void *boundVariable, boundVariableType dataType) |
| save the variable for binding operation
|
|
boundVariableType | getBoundVariableType () |
| get the datatype of the bound variable
|
|
bool | updateInBoundVariable () |
| perform the variable binding update (change the value)
|
|
bool | updateOutBoundVariable () |
| perform the variable binding update on meter data
|
|
void | setParameterUpdateQueue (IParameterUpdateQueue *_parameterUpdateQueue) |
| stores the update queue for VST3 sample accuate automation; note this is only used during actual DAW runs with automation engaged
|
|
IParameterUpdateQueue * | getParameterUpdateQueue () |
| retrieves the update queue for VST3 sample accuate automation; note this is only used during actual DAW runs with automation engaged
|
|
PluginParameter & | operator= (const PluginParameter &aPluginParameter) |
|
|
int | controlID = -1 |
| the ID value for the parameter
|
|
std::string | controlName = "ControlName" |
| the name string for the parameter
|
|
std::string | controlUnits = "Units" |
| the units string for the parameter
|
|
controlVariableType | controlType = controlVariableType::kDouble |
| the control type
|
|
double | minValue = 0.0 |
| the min for the parameter
|
|
double | maxValue = 1.0 |
| the max for the parameter
|
|
double | defaultValue = 0.0 |
| the default value for the parameter
|
|
std::atomic< float > | controlValueAtomic |
| the underlying atomic variable
|
|
std::atomic< float > | smoothedTargetValueAtomic |
| the underlying atomic variable TARGET for smoothing
|
|
taper | controlTaper = taper::kLinearTaper |
| the taper
|
|
uint32_t | displayPrecision = 2 |
| sig digits for display
|
|
std::vector< std::string > | stringList |
| string list
|
|
std::string | commaSeparatedStringList |
| string list a somma separated string
|
|
bool | appendUnits = true |
| flag to append units in GUI controls (use with several built-in custom views)
|
|
bool | isWritable = false |
| flag for meter variables
|
|
bool | isDiscreteSwitch = false |
| flag for switches (not currently used in ASPiK)
|
|
double | meterAttack_ms = 10.0 |
| meter attack time in milliseconds
|
|
double | meterRelease_ms = 500.0 |
| meter release time in milliseconds
|
|
uint32_t | detectorMode = ENVELOPE_DETECT_MODE_RMS |
| meter detector mode
|
|
bool | logMeter = false |
| meter is log
|
|
bool | invertedMeter = false |
| meter is inverted
|
|
bool | protoolsGRMeter = false |
| meter is a Pro Tools gain reduction meter
|
|
bool | useParameterSmoothing = false |
| enable param smoothing
|
|
smoothingMethod | smoothingType = smoothingMethod::kLPFSmoother |
| param smoothing type
|
|
double | smoothingTimeMsec = 100.0 |
| param smoothing time
|
|
ParamSmoother< double > | paramSmoother |
| param smoothing object
|
|
boundVariableType | boundVariableDataType = boundVariableType::kFloat |
| bound data type
|
|
IParameterUpdateQueue * | parameterUpdateQueue = nullptr |
| interface for VST3 sample accurate updates
|
|
bool | enableVSTSampleAccurateAutomation = true |
| VST3 sample accurate flag.
|
|
The PluginParameter object stores all of the data needed for any type of plugin parameter. It is a large object, but it is not complex as it really just stores LOTS of information about plugin parameters.
PluginParameter Operations:
- store attributes of plugin parameters (numerous)
- store the actual parameter value as an atomic double
- provide access to the atomic double value as needed (and safely)
- hold the parameter smoother object
- store infinite amount of auxilliary data in numerous formats (you can easily add your own)
- consists mainly of attributes and get/set functions for each
- Author
- Will Pirkle http://www.willpirkle.com
- Version
- Revision : 1.0
- Date
- Date : 2018 / 09 / 7