ASPiK SDK
Class List
Here are the classes, structs, unions and interfaces with brief descriptions:
[detail level 1234]
 Nmoodycamel
 Nspsc_sema
 CLightweightSemaphore
 CBlockingReaderWriterQueue
 CReaderWriterQueue
 Cweak_atomic
 NSteinberg
 NVst
 NASPiK
 CAntiLogParameterThe AntiLogParameter object encapsulates an anti-log parameter. Note that the standard log potentiometer in electronics is actually anti-log!
 CCustomViewControllerThe CustomViewController is part of the safe ICustomView feature in ASPiK. The CustomViewController maintains an ICustomView pointer. When the GUI registers and de-registers custom views during creation or destuction, the plugin shell is responsible for making sure that the original ICustomView pointer registered with the plugin core object never goes out of scope and this object is part of that system
 CGUIPluginConnectorThe GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to the plugin shell. The following messages are processed via functions:
 CLogParameterThe LogParameter object encapsulates a log parameter. Note that the standard log potentiometer in electronics is actually anti-log!
 CPeakParameterThe PeakParameter object encapsulates a uni-polar parameter such as a metering variable
 CPluginEditorThe VST GUI for the plugin. This is needed because VST3 requires an IPlugView GUI, which is VST3 specific (involves VST3 SDK files)
 CPluginHostConnectorThe PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object. For VST, this requires implementing only one method, sendHostMessage( ). Only one message is processed for sendGUIUpdate that provides a mechanism to update the GUI controls from the plugin core. Note that this is not an ideal solution for most problems (e.g. linking controls together intelligently) – you should always consider using a custom sub-controller and/or custom view to do this properly. On occasion, a more difficult scenario may arise (e.g. MIDI learn button, that must wait for user input from a MIDI instrument to toggle states) where the sendGUIUpdate method may be appropriate. See the example in the ASPiK SDK for more information
 CVoltOctaveParameterThe VoltOctaveParameter object encapsulates a Volt-per-Octave parameter for emulating analog synthesizer controls. Also provide a smooth linear-in-octave control for any Frequency type of continuous control
 CVST3PluginThe VST3Plugin object is the ASPiK plugin shell for the VST3 API
 CVST3UpdateHandlerLittle update handler object for VST-approved GUI updating
 CVSTMIDIEventQueueThe VSTMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer processing phase
 CVSTParamUpdateQueueThe 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
 NVSTGUI
 CCAnimKnobExThe CAnimKnobEx object extends the VSTGUI CAnimKnob object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CCHorizontalSliderExThe CHorizontalSliderEx object extends the VSTGUI CHorizontalSlider object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CCKickButtonExThe CKickButtonEx object extends the VSTGUI CKickButton object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CCMeterDetectorThe CMeterDetector object provides a dedicated detector for VU meter objects
 CControlUpdateReceiverThe ControlUpdateReceiver object is the connection mechanism between PluginParameter objects and their connected GUI control objects. It was originally designed almost identically to the example code in the VSTGUI4 SDK for the VST3 version. However, once the AU, AAX, VST3 and RAFX2 APIs were consolidated, this object changed significantly. If you are interested in creating your own version, check out the VST3 files that are included with the vstgui SDK
 CCustomKnobViewThis object demonstrates how to subclass an existing VSTGUI4 control to setup a communcation channel with it using the ICustomView interface.
 CCustomViewMessageCustom structure for passing messages and data to and from the plugin core object. See the Custom View tutorial project for more informaiton
 CCVerticalSliderExThe CVerticalSliderEx object extends the VSTGUI CVerticalSlider object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CCVuMeterExThe CVuMeterEx object extends the VSTGUI CVuMeter object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CCXYPadExThe CXYPadEx object extends the CXYPad CVuMeter object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CKnobLinkControllerThis object demonstrates how to create a sub-controller. In this object, you can link multiple knob controls together so that moving one control moves all of them. There is an associated button used to enable/disable the linking operation
 CPluginGUIThe PluginGUI object that maintains the entire GUI operation and has #defines to use with AAX, AU, VST3 and RAFX2 plugins. Note the multiple inheritance inolved with this very complex object. The IGUIView interface is the only non-VSTGUI4 base class. It allows for GUI resizing and manipulation, if and only if the host DAW allows and provides the mechanism for it
 CTextButtonExThe TextButtonEx object extends the VSTGUI CTextButton object with extra functionality.
It is used in the PluginGUI object for creating custom views
 CWaveViewThis object displays an audio histogram waveform view.
 CAAX_CVSTGUIButtonState
 CAAXAlgorithmProcessing structure; this is described in detail in Designing Audio Effects in C++ 2nd Ed. by Will Pirkle and is part of the monolithic parameters AAX programming paradigm; this is very well documented in the AAX SDK documentation
 CAAXMIDIEventQueueThe AAXMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer processing phase
 CAAXPluginGUIThe AAXPluginGUI is the GUI object for AAX. It creates and destroys the ASPiK GUI. It also synchronizes GUI and parameters as described in detail in the book source below
 CAAXPluginParametersThe AAXPluginParameters object implements the monolithic parameters AAX plugin programming paradigm which is documented in detail in Designing Audio Effects in C++ 2nd Ed. by Will Pirkle as well as the AAX SDK
 CSParamValListSee AAX_CMonolithicParameters in SDK; this is part of the strict parameter synchronization in monolithic AAX plugins
 CAntiLogTaperDelegateThe AntiLogTaperDelegate object encapsulates an anti-log parameter. Note that the standard log potentiometer in electronics is actually anti-log! This is used in the construction of AAX parameters
 CAPISpecificInfoIdentifiers, GUIDs and other strings and number id values, API specific
 CattributeValueAttribute value smashed down into a union
 CAU_COCOA_VIEWFACTORY_NAMEThe cocoa NSView factory (name is unique and defined in plugindefinition.h)
 CAudioProcDescriptorInformation package about the current DAW session. Sample rate and bit-depth of audio
 CAudioUnitNSViewThe cocoa NSView class for this plugin
 CAUFXPluginThe AUFXPlugin is the ASPiK plugin shell for Audio Units plugin. It contains the plugin kernel and all necessary intefaces, implemented as separate C++ obejcts
 CAUGUIWindowFrameThe ASPiK IGUIWindowFrame object for AU plugin shell
 CAUMIDIEventQueueThe AUMIDIEventQueue interface queues incoming MIDI messages and blasts them out during the buffer processing phase
 CAUSynthPluginThe AUSynthPlugin is the ASPiK plugin shell for Audio Units synth plugins. It contains the plugin kernel and all necessary intefaces, implemented as separate C++ obejcts
 CAuxParameterAttributeInformation about auxilliary parameter details - purely customizeable. This uses the attributeValue union to set the attribute in multiple fashions without resorting to declaring multiple datatypes
 CChannelIOConfigStructure of a pair of channel format enumerators that set an input/output channel I/O capability
 CCreateGUIInfoStructure that is used during GUI creation to safely pass information about the GUI size and interfaces
 CCustomViewControllerThe CustomViewController is part of the safe ICustomView feature in ASPiK. The CustomViewController maintains an ICustomView pointer. When the GUI registers and de-registers custom views during creation or destuction, the plugin shell is responsible for making sure that the original ICustomView pointer registered with the plugin core object never goes out of scope and this object is part of that system
 Cfftw_iodim64_do_not_use_me
 Cfftw_iodim_do_not_use_me
 CGUIParameterInformation that defines a single GUI parameter's possible values and ID
 CGUIPluginConnectorThe GUIPluginConnector interface creates a safe message mechanism for the GUI to issue requests to the plugin shell. The following messages are processed via functions:
 CGUIUpdateDataInformation about a GUI update message; this is for sending GUI control information from the plugin core. It is not the optimal way to intelligently link or combine controls - use a sub-controller for that. This can be abused too, and create dangerous code. Make sure to see the example code before using this
 CHostInfoInformation from the host that is updated on each buffer process cycle; includes BPM, time signature, SMPTE and other data. The values in the stock structure are consistent across most APIs, however others may be added (commnted out here)
 CHostMessageInfo
 CICustomViewCustom View interface to allow plugin core to create safe communication channels with GUI custom view objects. MANY uses!
 CIGUIPluginConnectorCustom interface so that GUI can pass information to plugin shell in a thread-safe manner
 CIGUIViewCustom interface to allow resizing of GUI window; this is mainly used for the GUI designer
 CIGUIWindowFrameCustom interface to allow resizing of GUI window; this is mainly used for the GUI designer
 CIMidiEventQueueDouble buffered queue for MIDI messages
 CIParameterUpdateQueueInterface for VST3 parameter value update queue (sample accurate automation)
 CIPluginHostConnectorCustom interface to send the plugin shell a message from plugin core
 CJSControlInformation package a joystick or trackpad GUI interaction
 CLogTaperDelegateThe LogTaperDelegate object encapsulates a log parameter. Note that the standard log potentiometer in electronics is actually anti-log! This is used in the construction of AAX parameters
 CMessageInfoInformation that includes the message code as well as the message data
 CmidiEventInformation about a MIDI event
 CParameterUpdateInfoInformation about a paraemeter being updated. Used when bound variables are updated. Multiple advanced uses
 CParamSmootherThe ParamSmoother object performs parameter smoothing on GUI control information. You can choose linear or exponential smoothing
 CPluginBaseThe PluginBase object is the base class for the Plugin Core object
 CPluginCoreThe PluginCore object is the default PluginBase derived object for ASPiK projects. Note that you are fre to change the name of this object (as long as you change it in the compiler settings, etc...)
 CpluginCustomDataStructure of data that is passed to GUI object once at creation time
 CPluginDescriptorInformation package about the plugin itself, consisting mainly of simple strings and ID values
 CPluginHostConnectorThe PluginHostConnector implements the IPluginHostConnector interface for the plugin shell object. For AAX, this requires implementing only one method, sendHostMessage( ). Only one message is processed for sendGUIUpdate that provides a mechanism to update the GUI controls from the plugin core. Note that this is not an ideal solution for most problems (e.g. linking controls together intelligently) – you should always consider using a custom sub-controller and/or custom view to do this properly. On occasion, a more difficult scenario may arise (e.g. MIDI learn button, that must wait for user input from a MIDI instrument to toggle states) where the sendGUIUpdate method may be appropriate. See the example in the ASPiK SDK for more information
 CPluginInfoStructure that is used during the base class initilize( ) funciton call, after object instantiation is complete. This structure contains the path to the DLL itself which can be used to open/save files including pre-installed WAV files for sample based synths
 CPluginParameterThe 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
 CpluginPrivateDataBack-pointer to the parameters; this is described in detail in Designing Audio Effects in C++ 2nd Ed. by Will Pirkle and is part of the monolithic parameters AAX programming paradigm; this is very well documented in the AAX SDK documentation
 CPresetInfo
 CPresetParameterInformation that defines a preset value as a control_ID::value data pair
 CProcessBufferInfoInformation package that arrives with each new audio buffer process cycle. Contains everything needed for one buffer's worth of data
 CProcessFrameInfoInformation package that arrives with each new audio frame; called internally from the buffer process function
 CResetInfoSample rate and bit-depth information that is passed during the reset( ) function
 CVectorJoystickDataIncoming data from a vector joystick
 CVoltOctaveTaperDelegate