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