#include <audioeffectx.h>
Inheritance diagram for AudioEffectX:
Public Member Functions | |
AudioEffectX (audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams) | |
Create an AudioEffectX object. | |
Parameters | |
virtual bool | canParameterBeAutomated (VstInt32 index) |
Indicates if a parameter can be automated. | |
virtual bool | string2parameter (VstInt32 index, char *text) |
Convert a string representation to a parameter value. | |
virtual bool | getParameterProperties (VstInt32 index, VstParameterProperties *p) |
Return parameter properties. | |
virtual bool | beginEdit (VstInt32 index) |
To be called before setParameterAutomated (on Mouse Down). This will be used by the Host for specific Automation Recording. | |
virtual bool | endEdit (VstInt32 index) |
To be called after setParameterAutomated (on Mouse Up). | |
Programs and Persistence | |
virtual bool | getProgramNameIndexed (VstInt32 category, VstInt32 index, char *text) |
Fill text with name of program index (category deprecated in VST 2.4). | |
virtual bool | beginSetProgram () |
Called before a program is loaded. | |
virtual bool | endSetProgram () |
Called after a program was loaded. | |
virtual VstInt32 | beginLoadBank (VstPatchChunkInfo *ptr) |
Called before a Bank is loaded. | |
virtual VstInt32 | beginLoadProgram (VstPatchChunkInfo *ptr) |
Called before a Program is loaded. (called before beginSetProgram). | |
Connections and Configuration | |
virtual bool | ioChanged () |
Tell Host numInputs and/or numOutputs and/or initialDelay (and/or numParameters: to be avoid) have changed. | |
virtual double | updateSampleRate () |
Returns sample rate from Host (may issue setSampleRate()). | |
virtual VstInt32 | updateBlockSize () |
Returns block size from Host (may issue getBlockSize()). | |
virtual VstInt32 | getInputLatency () |
Returns the Audio (maybe ASIO) input latency values. | |
virtual VstInt32 | getOutputLatency () |
Returns the Audio (maybe ASIO) output latency values. | |
virtual bool | getInputProperties (VstInt32 index, VstPinProperties *properties) |
Return the properties of output index. | |
virtual bool | getOutputProperties (VstInt32 index, VstPinProperties *properties) |
Return the properties of input index. | |
virtual bool | setSpeakerArrangement (VstSpeakerArrangement *pluginInput, VstSpeakerArrangement *pluginOutput) |
Set the plug-in's speaker arrangements. | |
virtual bool | getSpeakerArrangement (VstSpeakerArrangement **pluginInput, VstSpeakerArrangement **pluginOutput) |
Return the plug-in's speaker arrangements. | |
virtual bool | setBypass (bool onOff) |
For 'soft-bypass' (this could be automated). | |
virtual bool | setPanLaw (VstInt32 type, float val) |
Set the Panning Law used by the Host. | |
virtual bool | setProcessPrecision (VstInt32 precision) |
Set floating-point precision used for processing (32 or 64 bit). | |
virtual VstInt32 | getNumMidiInputChannels () |
Return number of MIDI input channels. | |
virtual VstInt32 | getNumMidiOutputChannels () |
Return number of MIDI output channels. | |
Realtime | |
virtual VstTimeInfo * | getTimeInfo (VstInt32 filter) |
Get time information from Host. | |
virtual VstInt32 | getCurrentProcessLevel () |
Returns the Host's process level. | |
virtual VstInt32 | getAutomationState () |
Returns the Host's automation state. | |
virtual VstInt32 | processEvents (VstEvents *events) |
Called when new MIDI events come in. | |
bool | sendVstEventsToHost (VstEvents *events) |
Send MIDI events back to Host application. | |
virtual VstInt32 | startProcess () |
Called one time before the start of process call. This indicates that the process call will be interrupted (due to Host reconfiguration or bypass state when the plug-in doesn't support softBypass). | |
virtual VstInt32 | stopProcess () |
Called after the stop of process call. | |
Variable I/O (Offline) | |
virtual bool | processVariableIo (VstVariableIo *varIo) |
Used for variable I/O processing (offline processing like timestreching). | |
virtual VstInt32 | setTotalSampleToProcess (VstInt32 value) |
Called in offline mode before process() or processVariableIo (). | |
Host Properties | |
virtual bool | getHostVendorString (char *text) |
Fills text with a string identifying the vendor. | |
virtual bool | getHostProductString (char *text) |
Fills text with a string with product name. | |
virtual VstInt32 | getHostVendorVersion () |
Returns vendor-specific version (for example 3200 for Nuendo 3.2). | |
virtual VstIntPtr | hostVendorSpecific (VstInt32 lArg1, VstIntPtr lArg2, void *ptrArg, float floatArg) |
No specific definition. | |
virtual VstInt32 | canHostDo (char *text) |
Reports what the Host is able to do (hostCanDos in audioeffectx.cpp). | |
virtual VstInt32 | getHostLanguage () |
Returns the Host's language (VstHostLanguage). | |
Plug-in Properties | |
virtual void | isSynth (bool state=true) |
Set if plug-in is a synth. | |
virtual void | noTail (bool state=true) |
Plug-in won't produce output signals while there is no input. | |
virtual VstInt32 | getGetTailSize () |
Returns tail size; 0 is default (return 1 for 'no tail'), used in offline processing too. | |
virtual void * | getDirectory () |
Returns the plug-in's directory. | |
virtual bool | getEffectName (char *name) |
Fill text with a string identifying the effect. | |
virtual bool | getVendorString (char *text) |
Fill text with a string identifying the vendor. | |
virtual bool | getProductString (char *text) |
Fill text with a string identifying the product name. | |
virtual VstInt32 | getVendorVersion () |
Return vendor-specific version. | |
virtual VstIntPtr | vendorSpecific (VstInt32 lArg, VstIntPtr lArg2, void *ptrArg, float floatArg) |
No definition, vendor specific handling. | |
virtual VstInt32 | canDo (char *text) |
Reports what the plug-in is able to do (plugCanDos in audioeffectx.cpp). | |
virtual VstInt32 | getVstVersion () |
Returns the current VST Version (kVstVersion). | |
virtual VstPlugCategory | getPlugCategory () |
Specify a category that fits the plug (VstPlugCategory). | |
MIDI Channel Programs | |
virtual VstInt32 | getMidiProgramName (VstInt32 channel, MidiProgramName *midiProgramName) |
Fill midiProgramName with information for 'thisProgramIndex'. | |
virtual VstInt32 | getCurrentMidiProgram (VstInt32 channel, MidiProgramName *currentProgram) |
Fill currentProgram with information for the current MIDI program. | |
virtual VstInt32 | getMidiProgramCategory (VstInt32 channel, MidiProgramCategory *category) |
Fill category with information for 'thisCategoryIndex'. | |
virtual bool | hasMidiProgramsChanged (VstInt32 channel) |
Return true if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this MIDI channel. | |
virtual bool | getMidiKeyName (VstInt32 channel, MidiKeyName *keyName) |
Fill keyName with information for 'thisProgramIndex' and 'thisKeyNumber'. | |
Others | |
virtual bool | updateDisplay () |
Something has changed in plug-in, request an update display like program (MIDI too) and parameters list in Host. | |
virtual bool | sizeWindow (VstInt32 width, VstInt32 height) |
Requests to resize the editor window. | |
virtual bool | openFileSelector (VstFileSelect *ptr) |
Open a Host File selector (see aeffectx.h for VstFileSelect definition). | |
virtual bool | closeFileSelector (VstFileSelect *ptr) |
Close the Host File selector which was opened by openFileSelector. | |
virtual VstInt32 | getNextShellPlugin (char *name) |
This opcode is only called, if the plug-in is of type kPlugCategShell, in order to extract all included sub-plugin´s names. | |
Tools | |
virtual bool | allocateArrangement (VstSpeakerArrangement **arrangement, VstInt32 nbChannels) |
Allocate memory for a VstSpeakerArrangement. | |
virtual bool | deallocateArrangement (VstSpeakerArrangement **arrangement) |
Delete/free memory for an allocated speaker arrangement. | |
virtual bool | copySpeaker (VstSpeakerProperties *to, VstSpeakerProperties *from) |
Copy properties from to to. | |
virtual bool | matchArrangement (VstSpeakerArrangement **to, VstSpeakerArrangement *from) |
"to" is deleted, then created and initialized with the same values as "from" ones ("from" must exist). |
|
Create an AudioEffectX object.
|
|
Allocate memory for a VstSpeakerArrangement.
|
|
To be called before setParameterAutomated (on Mouse Down). This will be used by the Host for specific Automation Recording. It tells the Host that if it needs to, it has to record automation data for this control.
|
|
Called before a Bank is loaded.
|
|
Called before a Program is loaded. (called before beginSetProgram).
|
|
Called before a program is loaded.
|
|
Reports what the plug-in is able to do (plugCanDos in audioeffectx.cpp). Report what the plug-in is able to do. In general you can but don't have to report whatever you support or not support via canDo. Some application functionality may require some specific reply, but in that case you will probably know. Best is to report whatever you know for sure. A Host application cannot make assumptions about the presence of the new 2.x features of a plug-in. Ignoring this inquiry methods and trying to access a 2.x feature from a 1.0 plug, or vice versa, will mean the plug-in or Host application will break. It is not the end-users job to pick and choose which plug-ins can be supported by which Host.
|
|
Reports what the Host is able to do (hostCanDos in audioeffectx.cpp). Asks Host if it implements the feature text. A plug-in cannot assume a 2.x feature is available from the Host. Use this method to ascertain the environment in which the plug-in finds itself. Ignoring this inquiry methods and trying to access a 2.x feature in a 1.0 Host will mean your plug-in or Host application will break. It is not the end-users job to pick and choose which plug-ins can be supported by which Host.
|
|
Indicates if a parameter can be automated. Obviously only useful when the application supports this.
|
|
Close the Host File selector which was opened by openFileSelector.
|
|
Copy properties from to to. Feed the to speaker properties with the same values than from 's ones. It is assumed here that to exists yet, ie this function won't allocate memory for the speaker (this will prevent from having a difference between an Arrangement's number of channels and its actual speakers...)
|
|
Delete/free memory for an allocated speaker arrangement.
|
|
To be called after setParameterAutomated (on Mouse Up). It notifies the Host that this control is no longer moved by the mouse.
|
|
Called after a program was loaded.
|
|
Returns the Host's automation state.
|
|
Fill currentProgram with information for the current MIDI program.
|
|
Returns the Host's process level. A plug-in is like a black box processing some audio coming in on some inputs (if any) and going out of some outputs (if any). This may be used to do offline or real-time processing, and sometimes it may be desirable to know the current context.
|
|
Returns the plug-in's directory.
|
|
Fill text with a string identifying the effect.
|
|
Returns tail size; 0 is default (return 1 for 'no tail'), used in offline processing too.
|
|
Returns the Host's language (VstHostLanguage).
|
|
Fills text with a string with product name.
|
|
Fills text with a string identifying the vendor.
|
|
Returns vendor-specific version (for example 3200 for Nuendo 3.2).
|
|
Returns the Audio (maybe ASIO) input latency values.
|
|
Return the properties of output index.
|
|
Fill keyName with information for 'thisProgramIndex' and 'thisKeyNumber'.
|
|
Fill category with information for 'thisCategoryIndex'.
|
|
Fill midiProgramName with information for 'thisProgramIndex'. Ask plug-in if MidiPrograms are used and if so, query for names, numbers (ProgramChange-Number + BankSelect-Number), categories and keynames of each MIDI Program, on each MIDI-channel. If this function is called, your plug-in has to read MidiProgramName::thisProgramIndex, fill out the other fields with the information assigned to a certain MIDI Program and return the number of available MIDI Programs on that MIDI Channel.
|
|
This opcode is only called, if the plug-in is of type kPlugCategShell, in order to extract all included sub-plugin´s names.
|
|
Return number of MIDI input channels.
|
|
Return number of MIDI output channels.
|
|
Returns the Audio (maybe ASIO) output latency values. While inputLatency is probably not of concern, outputLatency may be used in conjunction with getTimeInfo(). samplePos of VstTimeInfo is ahead of the 'visual' sequencer play time by the output latency, such that when outputLatency samples have passed by, our processing result becomes audible.
|
|
Return the properties of input index.
|
|
Return parameter properties.
|
|
Specify a category that fits the plug (VstPlugCategory).
|
|
Fill text with a string identifying the product name.
|
|
Fill text with name of program index (category deprecated in VST 2.4). Allows a Host application to list the plug-in's programs (presets).
|
|
Return the plug-in's speaker arrangements.
|
|
Get time information from Host. A plug-in will request time info by calling the function getTimeInfo() which returns a VstTimeInfo pointer (or NULL if not implemented by the Host). The mask parameter is composed of the same flags which will be found in the flags field of VstTimeInfo when returned, that is, if you need information about tempo. The parameter passed to getTimeInfo() should have the kVstTempoValid flag set. This request and delivery system is important, as a request like this may cause significant calculations at the application's end, which may take a lot of our precious time. This obviously means you should only set those flags that are required to get the information you need. Also please be aware that requesting information does not necessarily mean that that information is provided in return. Check the flags field in the VstTimeInfo structure to see if your request was actually met.
|
|
Fill text with a string identifying the vendor.
|
|
Return vendor-specific version.
|
|
Returns the current VST Version (kVstVersion).
|
|
Return true if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this MIDI channel. Ask plug-in for the currently active program on a certain MIDI Channel. Just like getMidiProgramName(), but MidiProgramName::thisProgramIndex has to be filled out with the currently active MIDI Program-index, which also has to be returned.
|
|
No specific definition.
|
|
Tell Host numInputs and/or numOutputs and/or initialDelay (and/or numParameters: to be avoid) have changed. The Host could call a suspend() (if the plug-in was enabled (in resume() state)) and then ask for getSpeakerArrangement() and/or check the numInputs and numOutputs and initialDelay and then call a resume().
|
|
Set if plug-in is a synth. Tells the Host that the plug-in is an instrument, i.e. that it will call wantEvents().
|
|
"to" is deleted, then created and initialized with the same values as "from" ones ("from" must exist). to is deleted, then created and initialized with the same values as from (must exist!). It's notably useful when setSpeakerArrangement() is called by the Host.
|
|
Plug-in won't produce output signals while there is no input. Enables Host to omit processReplacing() when no data is present on any input. |
|
Open a Host File selector (see aeffectx.h for VstFileSelect definition).
|
|
Called when new MIDI events come in.
|
|
Used for variable I/O processing (offline processing like timestreching). If called with varIo NULL, returning true indicates that this call is supported by the plug-in. Host will use processReplacing otherwise. The Host should call setTotalSampleToProcess before starting the processIO to inform the plug-in about how many samples will be processed in total. The Host should provide an output buffer at least 5 times bigger than input buffer.
|
|
Send MIDI events back to Host application. Can be called inside processReplacing.
|
|
For 'soft-bypass' (this could be automated). process still called (if Supported) although the plug-in was bypassed. Some plugs need to stay 'alive' even when bypassed. An example is a surround decoder which has more inputs than outputs and must maintain some reasonable signal distribution even when being bypassed. A CanDo 'bypass' allows to ask the plug-in if it supports soft bypass or not.
|
|
Set the Panning Law used by the Host.
|
|
Set floating-point precision used for processing (32 or 64 bit). Is called in suspended state, similar to setBlockSize. Default (if not called) is single precision float.
|
|
Set the plug-in's speaker arrangements. Set the plug-in's speaker arrangements. If a (VST >= 2.3) plug-in returns true, it means that it accepts this IO arrangement. The Host doesn't need to ask for getSpeakerArrangement(). If the plug-in returns false it means that it doesn't accept this arrangement, the Host should then ask for getSpeakerArrangement() and then can (optional) recall setSpeakerArrangement().
|
|
Called in offline mode before process() or processVariableIo (). It indicates how many samples will be processed in total.
|
|
Requests to resize the editor window.
|
|
Called one time before the start of process call. This indicates that the process call will be interrupted (due to Host reconfiguration or bypass state when the plug-in doesn't support softBypass).
|
|
Called after the stop of process call.
|
|
Convert a string representation to a parameter value. Especially useful for plug-ins without user interface. The application can then implement a text edit field for the user to set a parameter by entering text.
|
|
Returns block size from Host (may issue getBlockSize()).
|
|
Something has changed in plug-in, request an update display like program (MIDI too) and parameters list in Host.
|
|
Returns sample rate from Host (may issue setSampleRate()).
|
|
No definition, vendor specific handling.
|