ASPiK SDK
Loading...
Searching...
No Matches
Constants-Enums

Classes

union  attributeValue
 Attribute value smashed down into a union. More...
 

Macros

#define FLT_EPSILON_PLUS   1.192092896e-07
 /* smallest such that 1.0+FLT_EPSILON != 1.0 *‍/
 
#define FLT_EPSILON_MINUS   -1.192092896e-07
 /* smallest such that 1.0-FLT_EPSILON != 1.0 *‍/
 
#define FLT_MIN_PLUS   1.175494351e-38
 /* min positive value *‍/
 
#define FLT_MIN_MINUS   -1.175494351e-38
 /* min negative value *‍/
 

Enumerations

enum class  brickwallFilter { kBrickLPF , kBrickHPF , kBrickBPF , kBrickBSF }
 Use this strongly typed enum to easily set brickwall filter type for functions that need it. More...
 
enum class  edgeTransition { kFallingEdge , kRisingEdge }
 Use this strongly typed enum to easily set the edge direction (rising or falling) of a transition band. More...
 
enum class  analogFilter {
  kLPF1 , kHPF1 , kLPF2 , kHPF2 ,
  kBPF2 , kBSF2
}
 Use this strongy typed enum to set the analog filter type for the AnalogMagData structure. More...
 
enum  filterCoeff {
  a0 , a1 , a2 , b1 ,
  b2 , c0 , d0 , numCoeffs
}
 Use this enum to easily access coefficents inside of arrays. More...
 
enum  stateReg {
  x_z1 , x_z2 , y_z1 , y_z2 ,
  numStates
}
 Use this enum to easily access z^-1 state values inside of arrays. For some structures, fewer storage units are needed. They are divided as follows: More...
 
enum class  biquadAlgorithm { kDirect , kCanonical , kTransposeDirect , kTransposeCanonical }
 Use this strongly typed enum to easily set the biquad calculation type. More...
 
enum class  filterAlgorithm {
  kLPF1P , kLPF1 , kHPF1 , kLPF2 ,
  kHPF2 , kBPF2 , kBSF2 , kButterLPF2 ,
  kButterHPF2 , kButterBPF2 , kButterBSF2 , kMMALPF2 ,
  kMMALPF2B , kLowShelf , kHiShelf , kNCQParaEQ ,
  kCQParaEQ , kLWRLPF2 , kLWRHPF2 , kAPF1 ,
  kAPF2 , kResonA , kResonB , kMatchLP2A ,
  kMatchLP2B , kMatchBP2A , kMatchBP2B , kImpInvLP1 ,
  kImpInvLP2
}
 Use this strongly typed enum to easily set the filter algorithm for the AudioFilter object or any other object that requires filter definitions. More...
 
enum class  dynamicsProcessorType { kCompressor , kDownwardExpander }
 Use this strongly typed enum to set the dynamics processor type. More...
 
enum class  delayAlgorithm { kNormal , kPingPong }
 Use this strongly typed enum to easily set the delay algorithm. More...
 
enum class  delayUpdateType { kLeftAndRight , kLeftPlusRatio }
 Use this strongly typed enum to easily set the delay update type; this varies depending on the designer's choice of GUI controls. See the book reference for more details. More...
 
enum class  generatorWaveform { kTriangle , kSin , kSaw }
 Use this strongly typed enum to easily set the oscillator waveform. More...
 
enum  DFOscillatorCoeffs { df_b1 , df_b2 , numDFOCoeffs }
 Use this non-typed enum to easily access the direct form oscillator coefficients. More...
 
enum  DFOscillatorStates { df_yz1 , df_yz2 , numDFOStates }
 Use this non-typed enum to easily access the direct form oscillator state registers. More...
 
enum class  modDelaylgorithm { kFlanger , kChorus , kVibrato }
 Use this strongly typed enum to easily set modulated delay algorithm. More...
 
enum class  reverbDensity { kThick , kSparse }
 Use this strongly typed enum to easily set the density in the reverb object. More...
 
enum class  vaFilterAlgorithm {
  kLPF1 , kHPF1 , kAPF1 , kSVF_LP ,
  kSVF_HP , kSVF_BP , kSVF_BS
}
 Use this strongly typed enum to easily set the virtual analog filter algorithm. More...
 
enum class  distortionModel { kSoftClip , kArcTan , kFuzzAsym }
 Use this strongly typed enum to easily set the waveshaper model for the Triode objects. More...
 
enum class  wdfComponent {
  R , L , C , seriesLC ,
  parallelLC , seriesRL , parallelRL , seriesRC ,
  parallelRC
}
 Use this strongly typed enum to easily set the wdfComponent type. More...
 
enum class  windowType {
  kNoWindow , kRectWindow , kHannWindow , kBlackmanHarrisWindow ,
  kHammingWindow
}
 Use this strongly typed enum to easily set the windowing type for FFT algorithms that use it. More...
 
enum class  rateConversionRatio { k2x , k4x }
 Use this strongly typed enum to easily set up or down sampling ratios. More...
 
enum  VSTGUI::mouseAction { mouseDirUpAndDown , mouseDirUp , mouseDirDown }
 Use this enum to set the mouse behavior for kick button. More...
 
enum class  smoothingMethod { kLinearSmoother , kLPFSmoother }
 Use this strongly typed enum to easily set the smoothing type. More...
 
enum class  taper { kLinearTaper , kLogTaper , kAntiLogTaper , kVoltOctaveTaper }
 Use this strongly typed enum to easily set the control taper. More...
 
enum class  meterCal { kLinearMeter , kLogMeter }
 Use this strongly typed enum to easily set meter calibration. More...
 
enum class  controlVariableType {
  kFloat , kDouble , kInt , kTypedEnumStringList ,
  kMeter , kNonVariableBoundControl
}
 Use this strongly typed enum to easily set the control's behavior; this tells the PluginParameter object how to interpret the control information (e.g. as float versus int).

Note that you can set a PluginParameter as kNonVariableBoundControl to indicate that it is not bound to any variable. More...
 
enum class  boundVariableType { kFloat , kDouble , kInt , kUInt }
 Use this strongly typed enum to easily set the control's linked variable datatype (for automatic variable binding). More...
 
enum  pluginType { kFXPlugin , kSynthPlugin }
 Use this enum to identify the plugin category. More...
 
enum  aaxPlugInCategory {
  aaxPlugInCategory_None = 0x00000000 , aaxPlugInCategory_EQ = 0x00000001 , aaxPlugInCategory_Dynamics = 0x00000002 , aaxPlugInCategory_PitchShift = 0x00000004 ,
  aaxPlugInCategory_Reverb = 0x00000008 , aaxPlugInCategory_Delay = 0x00000010 , aaxPlugInCategory_Modulation = 0x00000020 , aaxPlugInCategory_Harmonic = 0x00000040 ,
  aaxPlugInCategory_NoiseReduction = 0x00000080 , aaxPlugInCategory_Dither = 0x00000100 , aaxPlugInCategory_SoundField = 0x00000200 , aaxPlugInCategory_HWGenerators = 0x00000400 ,
  aaxPlugInCategory_SWGenerators = 0x00000800 , aaxPlugInCategory_WrappedPlugin = 0x00001000 , aaxPlugInCategory_Effect = 0x00002000
}
 Use this enum to identify the AAX plugin category. More...
 
enum  channelFormat {
  kCFNone , kCFMono , kCFStereo , kCFLCR ,
  kCFLCRS , kCFQuad , kCF5p0 , kCF5p1 ,
  kCF6p0 , kCF6p1 , kCF7p0Sony , kCF7p0DTS ,
  kCF7p1Sony , kCF7p1DTS , kCF7p1Proximity , kCF8p1 ,
  kCF9p0 , kCF9p1 , kCF10p0 , kCF10p1 ,
  kCF10p2 , kCF11p0 , kCF11p1 , kCF12p2 ,
  kCF13p0 , kCF13p1 , kCF22p2
}
 Use this enum to identify plugin channel formats. Steinberg calls these "speaker arrangements". More...
 
enum  auxGUIIdentifier {
  GUIKnobGraphic , GUI2SSButtonStyle , EnableMIDIControl , MIDIControlChannel ,
  MIDIControlIndex , midiControlData , guiControlData
}
 Identifier enum for aux parameter information. Not used in ASPiK though is used for RAFX plugins (not-exported) More...
 
enum  hostMessage { sendGUIUpdate , sendRAFXStatusWndText }
 Use this enum to identify a message to send to the plugin shell (host) More...
 
enum  messageType {
  PLUGINGUI_DIDOPEN , PLUGINGUI_WILLCLOSE , PLUGINGUI_TIMERPING , PLUGINGUI_REGISTER_CUSTOMVIEW ,
  PLUGINGUI_DE_REGISTER_CUSTOMVIEW , PLUGINGUI_REGISTER_SUBCONTROLLER , PLUGINGUI_DE_REGISTER_SUBCONTROLLER , PLUGINGUI_QUERY_HASUSERCUSTOM ,
  PLUGINGUI_USER_CUSTOMOPEN , PLUGINGUI_USER_CUSTOMCLOSE , PLUGINGUI_USER_CUSTOMSYNC , PLUGINGUI_EXTERNAL_SET_NORMVALUE ,
  PLUGINGUI_EXTERNAL_SET_ACTUALVALUE , PLUGINGUI_EXTERNAL_GET_NORMVALUE , PLUGINGUI_EXTERNAL_GET_ACTUALVALUE , PLUGINGUI_PARAMETER_CHANGED ,
  PLUGIN_QUERY_DESCRIPTION , PLUGIN_QUERY_PARAMETER , PLUGIN_QUERY_TRACKPAD_X , PLUGIN_QUERY_TRACKPAD_Y
}
 Message identifier for ASPiK Core messaging system. More...
 
enum  attributeType {
  isFloatAttribute , isDoubleAttribute , isIntAttribute , isUintAttribute ,
  isBoolAttribute , isVoidPtrAttribute , isStringAttribute
}
 AttributeType identifier for ASPiK PluginParameter auxilliary storage system. You are free to implement your own mechanism; this is an example. More...
 

Variables

const double kCTCoefficient = 5.0 / 12.0
 concave and/or convex transform correction factor
 
const double kCTCorrFactorZero = pow(10.0, (-1.0/kCTCoefficient))
 concave/convex transform correction factor at x = 0
 
const double kCTCorrFactorAnitZero = 1.0 / (1.0 - kCTCorrFactorZero)
 inverse concave/convex transform factor at x = 0
 
const double kCTCorrFactorUnity = 1.0 / (1.0 + kCTCoefficient*log10(1.0 + kCTCorrFactorZero))
 concave/convex transform correction factor at x = 1
 
const double kCTCorrFactorAntiUnity = 1.0 / (1.0 + (-pow(10.0, (-1.0/kCTCoefficient))))
 inverse concave/convex transform correction factor at x = 1
 
const double kCTCorrFactorAntiLog = kCTCoefficient*log10(1.0 + kCTCorrFactorZero)
 concave/convex transform correction factor
 
const double kCTCorrFactorAntiLogScale = 1.0 / (-kCTCoefficient*log10(kCTCorrFactorZero) + kCTCorrFactorAntiLog)
 concave/convex transform scaling factor
 
const double kPi = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899
 pi to 80 decimal places
 
const double kTwoPi = 2.0*3.14159265358979323846264338327950288419716939937510582097494459230781640628620899
 2pi to 80 decimal places
 
const float GUI_METER_UPDATE_INTERVAL_MSEC = 50.f
 repaint interval; larger = slower
 

Audio Detector Constants

const uint32_t ENVELOPE_DETECT_MODE_PEAK = 0
 |x|
 
const uint32_t ENVELOPE_DETECT_MODE_MS = 1
 (1/N)|x|^2
 
const uint32_t ENVELOPE_DETECT_MODE_RMS = 2
 SQRT((1/N)|x|^2)
 
const uint32_t ENVELOPE_DETECT_MODE_NONE = 3
 not used
 
const float ENVELOPE_DIGITAL_TC = -4.6051701859880913680359829093687
 ln(1%)
 
const float ENVELOPE_ANALOG_TC = -1.0023934309275667804345424248947
 ln(36.7%)
 

Detailed Description

Enumeration Type Documentation

◆ aaxPlugInCategory

Use this enum to identify the AAX plugin category.

  • aaxPlugInCategory_None through aaxPlugInCategory_Effect
  • 18 categories in total
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7
Enumerator
aaxPlugInCategory_EQ 

Equalization.

aaxPlugInCategory_Dynamics 

Compressor, expander, limiter, etc.

aaxPlugInCategory_PitchShift 

Pitch processing.

aaxPlugInCategory_Reverb 

Reverberation and room/space simulation.

aaxPlugInCategory_Delay 

Delay and echo.

aaxPlugInCategory_Modulation 

Phasing, flanging, chorus, etc.

aaxPlugInCategory_Harmonic 

Distortion, saturation, and harmonic enhancement.

aaxPlugInCategory_NoiseReduction 

Noise reduction.

aaxPlugInCategory_Dither 

Dither, noise shaping, etc.

aaxPlugInCategory_SoundField 

Pan, auto-pan, upmix and downmix, and surround handling.

aaxPlugInCategory_HWGenerators 

Fixed hardware audio sources such as SampleCell.

aaxPlugInCategory_SWGenerators 

Virtual instruments, metronomes, and other software audio sources.

aaxPlugInCategory_WrappedPlugin 

Plug-ins wrapped by a thrid party wrapper except synth plug-ins which = AAX_PlugInCategory_SWGenerators.

aaxPlugInCategory_Effect 

Special effects.

◆ analogFilter

enum class analogFilter
strong

Use this strongy typed enum to set the analog filter type for the AnalogMagData structure.

  • analogFilter { kLPF1, kHPF1, kLPF2, kHPF2, kBPF2, kBSF2 };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ attributeType

AttributeType identifier for ASPiK PluginParameter auxilliary storage system. You are free to implement your own mechanism; this is an example.

Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ auxGUIIdentifier

Identifier enum for aux parameter information. Not used in ASPiK though is used for RAFX plugins (not-exported)

Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ biquadAlgorithm

enum class biquadAlgorithm
strong

Use this strongly typed enum to easily set the biquad calculation type.

  • enum class biquadAlgorithm { kDirect, kCanonical, kTransposeDirect, kTransposeCanonical }; // 4 types of biquad calculations, constants (k)
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ boundVariableType

enum class boundVariableType
strong

Use this strongly typed enum to easily set the control's linked variable datatype (for automatic variable binding).

  • enum boundVariableType { kFloat, kDouble, kInt, kUInt };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ brickwallFilter

enum class brickwallFilter
strong

Use this strongly typed enum to easily set brickwall filter type for functions that need it.

  • enum class brickwallFilter { kBrickLPF, kBrickHPF, kBrickBPF, kBrickBSF };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ channelFormat

Use this enum to identify plugin channel formats. Steinberg calls these "speaker arrangements".

  • 30 different formats
  • you can add support for ambisonics and other API-specific formats by starting here
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ controlVariableType

enum class controlVariableType
strong

Use this strongly typed enum to easily set the control's behavior; this tells the PluginParameter object how to interpret the control information (e.g. as float versus int).

Note that you can set a PluginParameter as kNonVariableBoundControl to indicate that it is not bound to any variable.

  • enum class controlVariableType { kFloat, kDouble, kInt, kTypedEnumStringList, kMeter, kNonVariableBoundControl };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ delayAlgorithm

enum class delayAlgorithm
strong

Use this strongly typed enum to easily set the delay algorithm.

  • enum class delayAlgorithm { kNormal, kPingPong };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ delayUpdateType

enum class delayUpdateType
strong

Use this strongly typed enum to easily set the delay update type; this varies depending on the designer's choice of GUI controls. See the book reference for more details.

  • enum class delayUpdateType { kLeftAndRight, kLeftPlusRatio };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ DFOscillatorCoeffs

Use this non-typed enum to easily access the direct form oscillator coefficients.

  • enum DFOscillatorCoeffs { df_b1, df_b2, numDFOCoeffs };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ DFOscillatorStates

Use this non-typed enum to easily access the direct form oscillator state registers.

  • DFOscillatorStates { df_yz1, df_yz2, numDFOStates };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ distortionModel

enum class distortionModel
strong

Use this strongly typed enum to easily set the waveshaper model for the Triode objects.

  • enum class distortionModel { kSoftClip, kArcTan, kFuzzAsym };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ dynamicsProcessorType

enum class dynamicsProcessorType
strong

Use this strongly typed enum to set the dynamics processor type.

  • enum class dynamicsProcessorType { kCompressor, kDownwardExpander };
  • limiting is the extreme version of kCompressor
  • gating is the extreme version of kDownwardExpander
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ edgeTransition

enum class edgeTransition
strong

Use this strongly typed enum to easily set the edge direction (rising or falling) of a transition band.

  • enum class edgeTransition { kFallingEdge, kRisingEdge };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ filterAlgorithm

enum class filterAlgorithm
strong

Use this strongly typed enum to easily set the filter algorithm for the AudioFilter object or any other object that requires filter definitions.

  • filterAlgorithm { kLPF1P, kLPF1, kHPF1, kLPF2, kHPF2, kBPF2, kBSF2, kButterLPF2, kButterHPF2, kButterBPF2, kButterBSF2, kMMALPF2, kMMALPF2B, kLowShelf, kHiShelf, kNCQParaEQ, kCQParaEQ, kLWRLPF2, kLWRHPF2, kAPF1, kAPF2, kResonA, kResonB, kMatchLP2A, kMatchLP2B, kMatchBP2A, kMatchBP2B, kImpInvLP1, kImpInvLP2 };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ filterCoeff

Use this enum to easily access coefficents inside of arrays.

  • enum filterCoeff { a0, a1, a2, b1, b2, c0, d0, numCoeffs };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ generatorWaveform

enum class generatorWaveform
strong

Use this strongly typed enum to easily set the oscillator waveform.

  • enum generatorWaveform { kTriangle, kSin, kSaw };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ hostMessage

Use this enum to identify a message to send to the plugin shell (host)

  • sendGUIUpdate or sendRAFXStatusWndText
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ messageType

Message identifier for ASPiK Core messaging system.

Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ meterCal

enum class meterCal
strong

Use this strongly typed enum to easily set meter calibration.

  • enum class meterCal { kLinearMeter, kLogMeter };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ modDelaylgorithm

enum class modDelaylgorithm
strong

Use this strongly typed enum to easily set modulated delay algorithm.

  • enum class modDelaylgorithm { kFlanger, kChorus, kVibrato };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ mouseAction

Use this enum to set the mouse behavior for kick button.

  • enum mouseAction {mouseDirUpAndDown, mouseDirUp, mouseDirDown};
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ pluginType

enum pluginType

Use this enum to identify the plugin category.

  • kFXPlugin or kSynthPlugin
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ rateConversionRatio

enum class rateConversionRatio
strong

Use this strongly typed enum to easily set up or down sampling ratios.

  • enum class rateConversionRatio { k2x, k4x };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ reverbDensity

enum class reverbDensity
strong

Use this strongly typed enum to easily set the density in the reverb object.

  • enum class reverbDensity { kThick, kSparse };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ smoothingMethod

enum class smoothingMethod
strong

Use this strongly typed enum to easily set the smoothing type.

  • enum class smoothingMethod { kLinearSmoother, kLPFSmoother };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ stateReg

enum stateReg

Use this enum to easily access z^-1 state values inside of arrays. For some structures, fewer storage units are needed. They are divided as follows:

  • Direct Forms: we will allow max of 2 for X (feedforward) and 2 for Y (feedback) data
  • Transpose Forms: we will use ONLY the x_z1 and x_z2 registers for the 2 required delays
  • enum stateReg { x_z1, x_z2, y_z1, y_z2, numStates };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ taper

enum class taper
strong

Use this strongly typed enum to easily set the control taper.

  • enum class taper { kLinearTaper, kLogTaper, kAntiLogTaper, kVoltOctaveTaper };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ vaFilterAlgorithm

enum class vaFilterAlgorithm
strong

Use this strongly typed enum to easily set the virtual analog filter algorithm.

  • enum class vaFilterAlgorithm { kLPF1, kHPF1, kAPF1, kSVF_LP, kSVF_HP, kSVF_BP, kSVF_BS };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ wdfComponent

enum class wdfComponent
strong

Use this strongly typed enum to easily set the wdfComponent type.

  • enum class wdfComponent { R, L, C, seriesLC, parallelLC, seriesRL, parallelRL, seriesRC, parallelRC };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

◆ windowType

enum class windowType
strong

Use this strongly typed enum to easily set the windowing type for FFT algorithms that use it.

  • enum class windowType {kNoWindow, kRectWindow, kHannWindow, kBlackmanHarrisWindow, kHammingWindow };
Author
Will Pirkle http://www.willpirkle.com
Remarks
This object is included in Designing Audio Effects Plugins in C++ 2nd Ed. by Will Pirkle
Version
Revision : 1.0
Date
Date : 2018 / 09 / 7

Variable Documentation

◆ ENVELOPE_DETECT_MODE_PEAK

const uint32_t ENVELOPE_DETECT_MODE_PEAK = 0

|x|

@AudioDetectorConstants @{

◆ GUI_METER_UPDATE_INTERVAL_MSEC

const float GUI_METER_UPDATE_INTERVAL_MSEC = 50.f

repaint interval; larger = slower

@GUITiming @{

◆ kCTCoefficient

const double kCTCoefficient = 5.0 / 12.0

concave and/or convex transform correction factor

@kCTCoefficient

◆ kCTCorrFactorAnitZero

const double kCTCorrFactorAnitZero = 1.0 / (1.0 - kCTCorrFactorZero)

inverse concave/convex transform factor at x = 0

@kCTCorrFactorAnitZero

◆ kCTCorrFactorAntiLog

const double kCTCorrFactorAntiLog = kCTCoefficient*log10(1.0 + kCTCorrFactorZero)

concave/convex transform correction factor

@kCTCorrFactorAntiLog

◆ kCTCorrFactorAntiLogScale

const double kCTCorrFactorAntiLogScale = 1.0 / (-kCTCoefficient*log10(kCTCorrFactorZero) + kCTCorrFactorAntiLog)

concave/convex transform scaling factor

@kCTCorrFactorAntiLogScale

◆ kCTCorrFactorAntiUnity

const double kCTCorrFactorAntiUnity = 1.0 / (1.0 + (-pow(10.0, (-1.0/kCTCoefficient))))

inverse concave/convex transform correction factor at x = 1

@kCTCorrFactorAntiUnity

◆ kCTCorrFactorUnity

const double kCTCorrFactorUnity = 1.0 / (1.0 + kCTCoefficient*log10(1.0 + kCTCorrFactorZero))

concave/convex transform correction factor at x = 1

@kCTCorrFactorUnity

◆ kCTCorrFactorZero

const double kCTCorrFactorZero = pow(10.0, (-1.0/kCTCoefficient))

concave/convex transform correction factor at x = 0

@kCTCorrFactorZero

◆ kPi

const double kPi = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899

pi to 80 decimal places

@kPi

◆ kTwoPi

const double kTwoPi = 2.0*3.14159265358979323846264338327950288419716939937510582097494459230781640628620899

2pi to 80 decimal places

@kTwoPi