diff options
Diffstat (limited to 'doc/html/class_audio_effect.html')
| -rw-r--r-- | doc/html/class_audio_effect.html | 1703 |
1 files changed, 1703 insertions, 0 deletions
diff --git a/doc/html/class_audio_effect.html b/doc/html/class_audio_effect.html new file mode 100644 index 0000000..59d2cd3 --- /dev/null +++ b/doc/html/class_audio_effect.html @@ -0,0 +1,1703 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> +<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> +<title>VST SDK 2.4: AudioEffect Class Reference</title> +<link href="doxygen.css" rel="stylesheet" type="text/css"> +<link href="tabs.css" rel="stylesheet" type="text/css"> +</head><body> +<!-- Generated by Doxygen 1.4.7 --> +<div class="tabs"> + <ul> + <li><a href="main.html"><span>Main Page</span></a></li> + <li><a href="namespaces.html"><span>Namespaces</span></a></li> + <li id="current"><a href="annotated.html"><span>Classes</span></a></li> + <li><a href="files.html"><span>Files</span></a></li> + <li><a href="dirs.html"><span>Directories</span></a></li> + <li><a href="pages.html"><span>Related Pages</span></a></li> + </ul></div> +<div class="tabs"> + <ul> + <li><a href="annotated.html"><span>Class List</span></a></li> + <li><a href="hierarchy.html"><span>Class Hierarchy</span></a></li> + <li><a href="functions.html"><span>Class Members</span></a></li> + </ul></div> +<h1>AudioEffect Class Reference</h1><!-- doxytag: class="AudioEffect" --><code>#include <audioeffect.h></code> +<p> +<p>Inheritance diagram for AudioEffect: +<p><center><img src="class_audio_effect.png" usemap="#AudioEffect_map" border="0" alt=""></center> +<map name="AudioEffect_map"> +<area href="class_audio_effect_x.html" alt="AudioEffectX" shape="rect" coords="0,56,87,80"> +</map> +<a href="class_audio_effect-members.html">List of all members.</a><table border="0" cellpadding="0" cellspacing="0"> +<tr><td></td></tr> +<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#f4c7918732aa2661a753c688cbb8a0a9">AudioEffect</a> (audioMasterCallback <a class="el" href="class_audio_effect.html#d7f8e277feedf57b182f0d23b8e9dcaf">audioMaster</a>, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#709e60e18ecca1108fdb3a4d04f68dc3">numPrograms</a>, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#597a9d9a5edb95e486bb3b238c570ce8">numParams</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Create an <em><a class="el" href="class_audio_effect.html">AudioEffect</a></em> object. <a href="#f4c7918732aa2661a753c688cbb8a0a9"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#59f79a6e59e2fb1d264789cb8fcb517e">~AudioEffect</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Destroy an <em><a class="el" href="class_audio_effect.html">AudioEffect</a></em> object. <a href="#59f79a6e59e2fb1d264789cb8fcb517e"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#6ffb32933237b851fe37be7ea0039371">dispatcher</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> opcode, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, <a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> value, void *ptr, float opt)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Opcodes dispatcher. <a href="#6ffb32933237b851fe37be7ea0039371"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">State Transitions</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#292260c138ccffcc7957274bef056558">open</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when plug-in is initialized. <a href="#292260c138ccffcc7957274bef056558"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#88eeaa0bdc81a710d947e3d1ed9ac68f">close</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when plug-in will be released. <a href="#88eeaa0bdc81a710d947e3d1ed9ac68f"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#a60d4dddc772c46cf20ee3552230e36a">suspend</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when plug-in is switched to off. <a href="#a60d4dddc772c46cf20ee3552230e36a"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#83eca400d6a8cb044139c5c8e196505b">resume</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when plug-in is switched to on. <a href="#83eca400d6a8cb044139c5c8e196505b"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Processing</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#23710f86624cbb60f97fba870448fdb0">setSampleRate</a> (float <a class="el" href="class_audio_effect.html#7be681e266f96c221ca341a85ba9ed15">sampleRate</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when the sample rate changes (always in a suspend state). <a href="#23710f86624cbb60f97fba870448fdb0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#453b6bed70ffb16df43da9427e066a62">setBlockSize</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#87738bc57bad2139df99681f652952a9">blockSize</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when the Maximun block size changes (always in a suspend state). Note that the sampleFrames in Process Calls could be smaller than this block size, but NOT bigger. <a href="#453b6bed70ffb16df43da9427e066a62"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing</a> (float **inputs, float **outputs, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> sampleFrames)=0</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Process 32 bit (single precision) floats (always in a resume state). <a href="#dc6e2f1db03219622654a36aafd6b391"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#4e3125788d0a3b91ab23595e3da4fe33">processDoubleReplacing</a> (double **inputs, double **outputs, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> sampleFrames)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Process 64 bit (double precision) floats (always in a resume state). <a href="#4e3125788d0a3b91ab23595e3da4fe33"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Parameters</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#edfd69fe415f84c0879f6a6d1187380b">setParameter</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, float value)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called when a parameter changed. <a href="#edfd69fe415f84c0879f6a6d1187380b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#8e5b8de31284b30efeef44b2d7ac79b0">getParameter</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the value of the parameter with <em>index</em>. <a href="#8e5b8de31284b30efeef44b2d7ac79b0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#cb72754ddd451320b6805e1170b53aea">setParameterAutomated</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, float value)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Called after a control has changed in the editor and when the associated parameter should be automated. <a href="#cb72754ddd451320b6805e1170b53aea"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Programs and Persistence</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#2dbc4b1b263354ffa379a9d0c4da39b3">getProgram</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Return the index to the current program. <a href="#2dbc4b1b263354ffa379a9d0c4da39b3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#11fda0b50077c8a489094acca2f420cf">setProgram</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> program)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the current program to <em>program</em>. <a href="#11fda0b50077c8a489094acca2f420cf"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#59686a32859f437b10d1f56dbe1e8b43">setProgramName</a> (char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuff the name field of the current program with <em>name</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c4cd4f6f03e6fb755c1bc76b6d35434c6">kVstMaxProgNameLen</a>. <a href="#59686a32859f437b10d1f56dbe1e8b43"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#9edb685b51a1358e4b487fff4a7bdd71">getProgramName</a> (char *name)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuff <em>name</em> with the name of the current program. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c4cd4f6f03e6fb755c1bc76b6d35434c6">kVstMaxProgNameLen</a>. <a href="#9edb685b51a1358e4b487fff4a7bdd71"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#9a928e27f22db874a295b61faa3b8d98">getParameterLabel</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, char *label)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuff <em>label</em> with the units in which parameter <em>index</em> is displayed (i.e. "sec", "dB", "type", etc...). Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. <a href="#9a928e27f22db874a295b61faa3b8d98"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#54572b80c00e8f3914bdf6ec44020280">getParameterDisplay</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuff <em>text</em> with a string representation ("0.5", "-3", "PLATE", etc...) of the value of parameter <em>index</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. <a href="#54572b80c00e8f3914bdf6ec44020280"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#8822323666918ed6f04823ae5ec47939">getParameterName</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> index, char *text)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuff <em>text</em> with the name ("Time", "Gain", "RoomType", etc...) of parameter <em>index</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. <a href="#8822323666918ed6f04823ae5ec47939"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#ed0c9efd6f7007bb0706b739561dc39b">getChunk</a> (void **data, bool isPreset=false)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Host stores plug-in state. Returns the size in bytes of the chunk (plug-in allocates the data array). <a href="#ed0c9efd6f7007bb0706b739561dc39b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#4912a42ec5b8656b7998fdef6fde5be3">setChunk</a> (void *data, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> byteSize, bool isPreset=false)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Host restores plug-in state. <a href="#4912a42ec5b8656b7998fdef6fde5be3"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Internal Setup</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#b1266f69a65c92571518a18a72ad9b31">setUniqueID</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> iD)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Must be called to set the plug-ins unique ID! <a href="#b1266f69a65c92571518a18a72ad9b31"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#61c275f3a238e6a657de31a83b8843df">setNumInputs</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> inputs)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the number of inputs the plug-in will handle. For a plug-in which could change its IO configuration, this number is the maximun available inputs. <a href="#61c275f3a238e6a657de31a83b8843df"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#0223276695559429b72e3d91bdd57f26">setNumOutputs</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> outputs)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Set the number of outputs the plug-in will handle. For a plug-in which could change its IO configuration, this number is the maximun available ouputs. <a href="#0223276695559429b72e3d91bdd57f26"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#7923cadb4e6418d7f5f48ab7a3d2b49f">canProcessReplacing</a> (bool state=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Tells that <a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> could be used. Mandatory in VST 2.4! <a href="#7923cadb4e6418d7f5f48ab7a3d2b49f"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#80c9140762627b5ec314073d0addc300">canDoubleReplacing</a> (bool state=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Tells that <a class="el" href="class_audio_effect.html#4e3125788d0a3b91ab23595e3da4fe33">processDoubleReplacing()</a> is implemented. <a href="#80c9140762627b5ec314073d0addc300"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#6abed68ffa97fcc925a61d1262bb3862">programsAreChunks</a> (bool state=true)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Program data is handled in formatless chunks (using getChunk-setChunks). <a href="#6abed68ffa97fcc925a61d1262bb3862"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#308ba136993debd560510c8b6c4329b2">setInitialDelay</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> delay)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Use to report the plug-in's latency (Group Delay). <a href="#308ba136993debd560510c8b6c4329b2"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Editor</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#b9c6c4329708bf0b304ad7ba2d45484d">setEditor</a> (<a class="el" href="class_a_eff_editor.html">AEffEditor</a> *<a class="el" href="class_audio_effect.html#d0992174789898d99908f787a57fac50">editor</a>)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Should be called if you want to define your own editor. <a href="#b9c6c4329708bf0b304ad7ba2d45484d"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="class_a_eff_editor.html">AEffEditor</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#d0cd12bf9d5f6ef221489467f262e671">getEditor</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the attached editor. <a href="#d0cd12bf9d5f6ef221489467f262e671"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Inquiry</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="struct_a_effect.html">AEffect</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#081c7814ec84349c36f45f4d9eca634b">getAeffect</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the <a class="el" href="struct_a_effect.html">AEffect</a> structure. <a href="#081c7814ec84349c36f45f4d9eca634b"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual float </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#85fd80592b42ae035c7744add62144e8">getSampleRate</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the current sample rate. <a href="#85fd80592b42ae035c7744add62144e8"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#2319993e3d01972418a3345aec285c77">getBlockSize</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the current Maximum block size. <a href="#2319993e3d01972418a3345aec285c77"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Host Communication</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#e5cfc9ff27e9142fef561bf6a034899e">getMasterVersion</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the Host's version (for example 2400 for VST 2.4). <a href="#e5cfc9ff27e9142fef561bf6a034899e"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#21dc68d4af794b86c2c81ae54f3652a0">getCurrentUniqueId</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns current unique identifier when loading shell plug-ins. <a href="#21dc68d4af794b86c2c81ae54f3652a0"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#a168b672c7c25289208c1c0f73be4d1c">masterIdle</a> ()</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Give idle time to Host application. <a href="#a168b672c7c25289208c1c0f73be4d1c"></a><br></td></tr> +<tr><td colspan="2"><div class="groupHeader">Tools (helpers)</div></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#26de334b3b2c156caae05160f21b1870">dB2string</a> (float value, char *text, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> maxLen)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuffs <em>text</em> with an amplitude on the [0.0, 1.0] scale converted to its value in decibels. <a href="#26de334b3b2c156caae05160f21b1870"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#e54e8902cb4b723cad43299e38df7cb4">Hz2string</a> (float samples, char *text, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> maxLen)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuffs <em>text</em> with the frequency in Hertz that has a period of <em>samples</em>. <a href="#e54e8902cb4b723cad43299e38df7cb4"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#adbd41c50e734150997885f6fc44650a">ms2string</a> (float samples, char *text, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> maxLen)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuffs <em>text</em> with the duration in milliseconds of <em>samples</em> frames. <a href="#adbd41c50e734150997885f6fc44650a"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#e32d07f2ba52af7ad4dfb704ab09fc36">float2string</a> (float value, char *text, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> maxLen)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuffs <em>text</em> with a string representation on the floating point <em>value</em>. <a href="#e32d07f2ba52af7ad4dfb704ab09fc36"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">virtual void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#204367b34f0bbbea9eb67d1a11682663">int2string</a> (<a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> value, char *text, <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> maxLen)</td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Stuffs <em>text</em> with a string representation on the integer <em>value</em>. <a href="#204367b34f0bbbea9eb67d1a11682663"></a><br></td></tr> +<tr><td colspan="2"><br><h2>Protected Attributes</h2></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">audioMasterCallback </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#d7f8e277feedf57b182f0d23b8e9dcaf">audioMaster</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Host callback. <a href="#d7f8e277feedf57b182f0d23b8e9dcaf"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="class_a_eff_editor.html">AEffEditor</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#d0992174789898d99908f787a57fac50">editor</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Pointer to the plug-in's editor. <a href="#d0992174789898d99908f787a57fac50"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top">float </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#7be681e266f96c221ca341a85ba9ed15">sampleRate</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Current sample rate. <a href="#7be681e266f96c221ca341a85ba9ed15"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#87738bc57bad2139df99681f652952a9">blockSize</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Maximum block size. <a href="#87738bc57bad2139df99681f652952a9"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#709e60e18ecca1108fdb3a4d04f68dc3">numPrograms</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of programs. <a href="#709e60e18ecca1108fdb3a4d04f68dc3"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#597a9d9a5edb95e486bb3b238c570ce8">numParams</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Number of parameters. <a href="#597a9d9a5edb95e486bb3b238c570ce8"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#54e60e86082216310387c0edc2e2a8df">curProgram</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight">Current program. <a href="#54e60e86082216310387c0edc2e2a8df"></a><br></td></tr> +<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="struct_a_effect.html">AEffect</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_audio_effect.html#8352ee8b691d2e544e856b3f4497d90b">cEffect</a></td></tr> + +<tr><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="struct_a_effect.html">AEffect</a> object <a href="#8352ee8b691d2e544e856b3f4497d90b"></a><br></td></tr> +</table> +<hr><a name="_details"></a><h2>Detailed Description</h2> +VST Effect Base Class (VST 1.0). +<p> +<hr><h2>Constructor & Destructor Documentation</h2> +<a class="anchor" name="f4c7918732aa2661a753c688cbb8a0a9"></a><!-- doxytag: member="AudioEffect::AudioEffect" ref="f4c7918732aa2661a753c688cbb8a0a9" args="(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">AudioEffect::AudioEffect </td> + <td>(</td> + <td class="paramtype">audioMasterCallback </td> + <td class="paramname"> <em>audioMaster</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>numPrograms</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>numParams</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Create an <em><a class="el" href="class_audio_effect.html">AudioEffect</a></em> object. +<p> +The constructor of your class is passed a parameter of the type <em>audioMasterCallback</em>. The actual mechanism in which your class gets constructed is not important right now. Effectively your class is constructed by the hosting application, which passes an object of type <em>audioMasterCallback</em> that handles the interaction with the plug-in. You pass this on to the base class' constructor and then can forget about it.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>audioMaster</em> </td><td>Passed by the Host and handles interaction </td></tr> + <tr><td valign="top"></td><td valign="top"><em>numPrograms</em> </td><td>Pass the number of programs the plug-in provides </td></tr> + <tr><td valign="top"></td><td valign="top"><em>numParams</em> </td><td>Pass the number of parameters the plug-in provides</td></tr> + </table> +</dl> +<div class="fragment"><pre class="fragment">MyPlug::MyPlug (audioMasterCallback <a class="code" href="class_audio_effect.html#d7f8e277feedf57b182f0d23b8e9dcaf">audioMaster</a>) +: <a class="code" href="class_audio_effect_x.html">AudioEffectX</a> (audioMaster, 1, 1) <span class="comment">// 1 program, 1 parameter only</span> +{ + setNumInputs (2); <span class="comment">// stereo in</span> + setNumOutputs (2); <span class="comment">// stereo out</span> + setUniqueID ('MyPl'); <span class="comment">// you must change this for other plug-ins!</span> + canProcessReplacing (); <span class="comment">// supports replacing mode</span> +} +</pre></div><p> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#61c275f3a238e6a657de31a83b8843df">setNumInputs</a>, <a class="el" href="class_audio_effect.html#0223276695559429b72e3d91bdd57f26">setNumOutputs</a>, <a class="el" href="class_audio_effect.html#b1266f69a65c92571518a18a72ad9b31">setUniqueID</a>, <a class="el" href="class_audio_effect.html#7923cadb4e6418d7f5f48ab7a3d2b49f">canProcessReplacing</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="59f79a6e59e2fb1d264789cb8fcb517e"></a><!-- doxytag: member="AudioEffect::~AudioEffect" ref="59f79a6e59e2fb1d264789cb8fcb517e" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">AudioEffect::~AudioEffect </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Destroy an <em><a class="el" href="class_audio_effect.html">AudioEffect</a></em> object. +<p> + +</div> +</div><p> +<hr><h2>Member Function Documentation</h2> +<a class="anchor" name="80c9140762627b5ec314073d0addc300"></a><!-- doxytag: member="AudioEffect::canDoubleReplacing" ref="80c9140762627b5ec314073d0addc300" args="(bool state=true)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::canDoubleReplacing </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>state</em> = <code>true</code> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Tells that <a class="el" href="class_audio_effect.html#4e3125788d0a3b91ab23595e3da4fe33">processDoubleReplacing()</a> is implemented. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>state</em> </td><td>Set to <em>true</em> if supported</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="7923cadb4e6418d7f5f48ab7a3d2b49f"></a><!-- doxytag: member="AudioEffect::canProcessReplacing" ref="7923cadb4e6418d7f5f48ab7a3d2b49f" args="(bool state=true)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::canProcessReplacing </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>state</em> = <code>true</code> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Tells that <a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> could be used. Mandatory in VST 2.4! +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>state</em> </td><td>Set to <em>true</em> if supported</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="88eeaa0bdc81a710d947e3d1ed9ac68f"></a><!-- doxytag: member="AudioEffect::close" ref="88eeaa0bdc81a710d947e3d1ed9ac68f" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::close </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when plug-in will be released. +<p> + +</div> +</div><p> +<a class="anchor" name="26de334b3b2c156caae05160f21b1870"></a><!-- doxytag: member="AudioEffect::dB2string" ref="26de334b3b2c156caae05160f21b1870" args="(float value, char *text, VstInt32 maxLen)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::dB2string </td> + <td>(</td> + <td class="paramtype">float </td> + <td class="paramname"> <em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>maxLen</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuffs <em>text</em> with an amplitude on the [0.0, 1.0] scale converted to its value in decibels. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Value to convert </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String up to length char </td></tr> + <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximal length of the string </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="6ffb32933237b851fe37be7ea0039371"></a><!-- doxytag: member="AudioEffect::dispatcher" ref="6ffb32933237b851fe37be7ea0039371" args="(VstInt32 opcode, VstInt32 index, VstIntPtr value, void *ptr, float opt)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> AudioEffect::dispatcher </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>opcode</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#082b56d6065a49d35a4046fa2d4a3882">VstIntPtr</a> </td> + <td class="paramname"> <em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">void * </td> + <td class="paramname"> <em>ptr</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>opt</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Opcodes dispatcher. +<p> + +</div> +</div><p> +<a class="anchor" name="e32d07f2ba52af7ad4dfb704ab09fc36"></a><!-- doxytag: member="AudioEffect::float2string" ref="e32d07f2ba52af7ad4dfb704ab09fc36" args="(float value, char *text, VstInt32 maxLen)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::float2string </td> + <td>(</td> + <td class="paramtype">float </td> + <td class="paramname"> <em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>maxLen</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuffs <em>text</em> with a string representation on the floating point <em>value</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Value to convert </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String up to length char </td></tr> + <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximal length of the string </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="081c7814ec84349c36f45f4d9eca634b"></a><!-- doxytag: member="AudioEffect::getAeffect" ref="081c7814ec84349c36f45f4d9eca634b" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="struct_a_effect.html">AEffect</a>* AudioEffect::getAeffect </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the <a class="el" href="struct_a_effect.html">AEffect</a> structure. +<p> + +</div> +</div><p> +<a class="anchor" name="2319993e3d01972418a3345aec285c77"></a><!-- doxytag: member="AudioEffect::getBlockSize" ref="2319993e3d01972418a3345aec285c77" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::getBlockSize </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the current Maximum block size. +<p> + +</div> +</div><p> +<a class="anchor" name="ed0c9efd6f7007bb0706b739561dc39b"></a><!-- doxytag: member="AudioEffect::getChunk" ref="ed0c9efd6f7007bb0706b739561dc39b" args="(void **data, bool isPreset=false)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::getChunk </td> + <td>(</td> + <td class="paramtype">void ** </td> + <td class="paramname"> <em>data</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>isPreset</em> = <code>false</code></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Host stores plug-in state. Returns the size in bytes of the chunk (plug-in allocates the data array). +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>should point to the newly allocated memory block containg state data. You can savely release it in next suspend/resume call. </td></tr> + <tr><td valign="top"></td><td valign="top"><em>isPreset</em> </td><td>true when saving a single program, false for all programs</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>If your plug-in is configured to use chunks (see <a class="el" href="class_audio_effect.html#6abed68ffa97fcc925a61d1262bb3862">AudioEffect::programsAreChunks</a>), the Host will ask for a block of memory describing the current plug-in state for saving. To restore the state at a later stage, the same data is passed back to <a class="el" href="class_audio_effect.html#4912a42ec5b8656b7998fdef6fde5be3">AudioEffect::setChunk</a>. Alternatively, when not using chunk, the Host will simply save all parameter values. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="21dc68d4af794b86c2c81ae54f3652a0"></a><!-- doxytag: member="AudioEffect::getCurrentUniqueId" ref="21dc68d4af794b86c2c81ae54f3652a0" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::getCurrentUniqueId </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns current unique identifier when loading shell plug-ins. +<p> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect_x.html#fccbea2e95a87fb82159195995a88c44">AudioEffectX::getNextShellPlugin</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="d0cd12bf9d5f6ef221489467f262e671"></a><!-- doxytag: member="AudioEffect::getEditor" ref="d0cd12bf9d5f6ef221489467f262e671" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual <a class="el" href="class_a_eff_editor.html">AEffEditor</a>* AudioEffect::getEditor </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the attached editor. +<p> + +</div> +</div><p> +<a class="anchor" name="e5cfc9ff27e9142fef561bf6a034899e"></a><!-- doxytag: member="AudioEffect::getMasterVersion" ref="e5cfc9ff27e9142fef561bf6a034899e" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::getMasterVersion </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the Host's version (for example 2400 for VST 2.4). +<p> +Use to ask for the Host's version <dl compact><dt><b>Returns:</b></dt><dd>The Host's version </dd></dl> + +</div> +</div><p> +<a class="anchor" name="8e5b8de31284b30efeef44b2d7ac79b0"></a><!-- doxytag: member="AudioEffect::getParameter" ref="8e5b8de31284b30efeef44b2d7ac79b0" args="(VstInt32 index)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">float AudioEffect::getParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return the value of the parameter with <em>index</em>. +<p> +Return the <em>value</em> of parameter <em>index</em> <p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + </table> +</dl> +<dl compact><dt><b>Returns:</b></dt><dd>A float value between 0.0 and 1.0 inclusive </dd></dl> + +</div> +</div><p> +<a class="anchor" name="54572b80c00e8f3914bdf6ec44020280"></a><!-- doxytag: member="AudioEffect::getParameterDisplay" ref="54572b80c00e8f3914bdf6ec44020280" args="(VstInt32 index, char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::getParameterDisplay </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuff <em>text</em> with a string representation ("0.5", "-3", "PLATE", etc...) of the value of parameter <em>index</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string up to 8 char </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="9a928e27f22db874a295b61faa3b8d98"></a><!-- doxytag: member="AudioEffect::getParameterLabel" ref="9a928e27f22db874a295b61faa3b8d98" args="(VstInt32 index, char *label)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::getParameterLabel </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>label</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuff <em>label</em> with the units in which parameter <em>index</em> is displayed (i.e. "sec", "dB", "type", etc...). Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + <tr><td valign="top"></td><td valign="top"><em>label</em> </td><td>A string up to 8 char </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="8822323666918ed6f04823ae5ec47939"></a><!-- doxytag: member="AudioEffect::getParameterName" ref="8822323666918ed6f04823ae5ec47939" args="(VstInt32 index, char *text)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::getParameterName </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuff <em>text</em> with the name ("Time", "Gain", "RoomType", etc...) of parameter <em>index</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c9094e860615c2fd7ee94b9d48616d1d0">kVstMaxParamStrLen</a>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>A string up to 8 char </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="2dbc4b1b263354ffa379a9d0c4da39b3"></a><!-- doxytag: member="AudioEffect::getProgram" ref="2dbc4b1b263354ffa379a9d0c4da39b3" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::getProgram </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Return the index to the current program. +<p> +<dl compact><dt><b>Returns:</b></dt><dd>Index of the current program </dd></dl> + +</div> +</div><p> +<a class="anchor" name="9edb685b51a1358e4b487fff4a7bdd71"></a><!-- doxytag: member="AudioEffect::getProgramName" ref="9edb685b51a1358e4b487fff4a7bdd71" args="(char *name)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::getProgramName </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>name</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuff <em>name</em> with the name of the current program. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c4cd4f6f03e6fb755c1bc76b6d35434c6">kVstMaxProgNameLen</a>. +<p> +The program name is displayed in the rack, and can be edited by the user.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>A string up to 24 char</td></tr> + </table> +</dl> +<dl compact><dt><b>Warning:</b></dt><dd>Please be aware that the string lengths supported by the default VST interface are normally limited to 24 characters. If you copy too much data into the buffers provided, you will break the Host application. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="85fd80592b42ae035c7744add62144e8"></a><!-- doxytag: member="AudioEffect::getSampleRate" ref="85fd80592b42ae035c7744add62144e8" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual float AudioEffect::getSampleRate </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Returns the current sample rate. +<p> + +</div> +</div><p> +<a class="anchor" name="e54e8902cb4b723cad43299e38df7cb4"></a><!-- doxytag: member="AudioEffect::Hz2string" ref="e54e8902cb4b723cad43299e38df7cb4" args="(float samples, char *text, VstInt32 maxLen)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::Hz2string </td> + <td>(</td> + <td class="paramtype">float </td> + <td class="paramname"> <em>samples</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>maxLen</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuffs <em>text</em> with the frequency in Hertz that has a period of <em>samples</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>samples</em> </td><td>Number of samples </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String up to length char </td></tr> + <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximal length of the string </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="204367b34f0bbbea9eb67d1a11682663"></a><!-- doxytag: member="AudioEffect::int2string" ref="204367b34f0bbbea9eb67d1a11682663" args="(VstInt32 value, char *text, VstInt32 maxLen)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::int2string </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>value</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>maxLen</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuffs <em>text</em> with a string representation on the integer <em>value</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>Value to convert </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String up to length char </td></tr> + <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximal length of the string </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="a168b672c7c25289208c1c0f73be4d1c"></a><!-- doxytag: member="AudioEffect::masterIdle" ref="a168b672c7c25289208c1c0f73be4d1c" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::masterIdle </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Give idle time to Host application. +<p> +Give idle time to Host application, e.g. if plug-in editor is doing mouse tracking in a modal loop. +</div> +</div><p> +<a class="anchor" name="adbd41c50e734150997885f6fc44650a"></a><!-- doxytag: member="AudioEffect::ms2string" ref="adbd41c50e734150997885f6fc44650a" args="(float samples, char *text, VstInt32 maxLen)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::ms2string </td> + <td>(</td> + <td class="paramtype">float </td> + <td class="paramname"> <em>samples</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>text</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>maxLen</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuffs <em>text</em> with the duration in milliseconds of <em>samples</em> frames. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>samples</em> </td><td>Number of samples </td></tr> + <tr><td valign="top"></td><td valign="top"><em>text</em> </td><td>String up to length char </td></tr> + <tr><td valign="top"></td><td valign="top"><em>maxLen</em> </td><td>Maximal length of the string </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="292260c138ccffcc7957274bef056558"></a><!-- doxytag: member="AudioEffect::open" ref="292260c138ccffcc7957274bef056558" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::open </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when plug-in is initialized. +<p> + +</div> +</div><p> +<a class="anchor" name="4e3125788d0a3b91ab23595e3da4fe33"></a><!-- doxytag: member="AudioEffect::processDoubleReplacing" ref="4e3125788d0a3b91ab23595e3da4fe33" args="(double **inputs, double **outputs, VstInt32 sampleFrames)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::processDoubleReplacing </td> + <td>(</td> + <td class="paramtype">double ** </td> + <td class="paramname"> <em>inputs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">double ** </td> + <td class="paramname"> <em>outputs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>sampleFrames</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Process 64 bit (double precision) floats (always in a resume state). +<p> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="dc6e2f1db03219622654a36aafd6b391"></a><!-- doxytag: member="AudioEffect::processReplacing" ref="dc6e2f1db03219622654a36aafd6b391" args="(float **inputs, float **outputs, VstInt32 sampleFrames)=0" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::processReplacing </td> + <td>(</td> + <td class="paramtype">float ** </td> + <td class="paramname"> <em>inputs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float ** </td> + <td class="paramname"> <em>outputs</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>sampleFrames</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [pure virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Process 32 bit (single precision) floats (always in a resume state). +<p> +This process method must be provided. It takes input data, applies its pocessing algorithm, and then puts the result to the output by overwriting the output buffer.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>inputs</em> </td><td>An array of pointers to the data </td></tr> + <tr><td valign="top"></td><td valign="top"><em>outputs</em> </td><td>An array of pointers to where the data can be written to </td></tr> + <tr><td valign="top"></td><td valign="top"><em>sampleFrames</em> </td><td>Number of sample frames to process</td></tr> + </table> +</dl> +<dl compact><dt><b>Warning:</b></dt><dd>Never call any Mac OS 9 functions (or other functions which call into the OS) inside your audio process function! This will crash the system when your plug-in is run in MP (multiprocessor) mode. If you must call into the OS, you must use MPRemoteCall () (see Apples' documentation), or explicitly use functions which are documented by Apple to be MP safe. On Mac OS X read the system header files to be sure that you only call thread safe functions. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="6abed68ffa97fcc925a61d1262bb3862"></a><!-- doxytag: member="AudioEffect::programsAreChunks" ref="6abed68ffa97fcc925a61d1262bb3862" args="(bool state=true)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::programsAreChunks </td> + <td>(</td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>state</em> = <code>true</code> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Program data is handled in formatless chunks (using getChunk-setChunks). +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>state</em> </td><td>Set <em>true</em> if programs are chunks</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="83eca400d6a8cb044139c5c8e196505b"></a><!-- doxytag: member="AudioEffect::resume" ref="83eca400d6a8cb044139c5c8e196505b" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::resume </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when plug-in is switched to on. +<p> + +</div> +</div><p> +<a class="anchor" name="453b6bed70ffb16df43da9427e066a62"></a><!-- doxytag: member="AudioEffect::setBlockSize" ref="453b6bed70ffb16df43da9427e066a62" args="(VstInt32 blockSize)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setBlockSize </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>blockSize</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when the Maximun block size changes (always in a suspend state). Note that the sampleFrames in Process Calls could be smaller than this block size, but NOT bigger. +<p> +This is called by the Host, and tells the plug-in that the maximum block size passed to <a class="el" href="class_audio_effect.html#dc6e2f1db03219622654a36aafd6b391">processReplacing()</a> will be <em>blockSize</em>.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>blockSize</em> </td><td>Maximum number of sample frames</td></tr> + </table> +</dl> +<dl compact><dt><b>Warning:</b></dt><dd>You <b>must</b> process <b>exactly</b> <em>sampleFrames</em> number of samples in inside processReplacing, not more! </dd></dl> + +</div> +</div><p> +<a class="anchor" name="4912a42ec5b8656b7998fdef6fde5be3"></a><!-- doxytag: member="AudioEffect::setChunk" ref="4912a42ec5b8656b7998fdef6fde5be3" args="(void *data, VstInt32 byteSize, bool isPreset=false)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> AudioEffect::setChunk </td> + <td>(</td> + <td class="paramtype">void * </td> + <td class="paramname"> <em>data</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>byteSize</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">bool </td> + <td class="paramname"> <em>isPreset</em> = <code>false</code></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Host restores plug-in state. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>data</em> </td><td>pointer to state data (owned by Host) </td></tr> + <tr><td valign="top"></td><td valign="top"><em>byteSize</em> </td><td>size of state data </td></tr> + <tr><td valign="top"></td><td valign="top"><em>isPreset</em> </td><td>true when restoring a single program, false for all programs</td></tr> + </table> +</dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#ed0c9efd6f7007bb0706b739561dc39b">getChunk</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="b9c6c4329708bf0b304ad7ba2d45484d"></a><!-- doxytag: member="AudioEffect::setEditor" ref="b9c6c4329708bf0b304ad7ba2d45484d" args="(AEffEditor *editor)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setEditor </td> + <td>(</td> + <td class="paramtype"><a class="el" href="class_a_eff_editor.html">AEffEditor</a> * </td> + <td class="paramname"> <em>editor</em> </td> + <td> ) </td> + <td width="100%"></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Should be called if you want to define your own editor. +<p> + +</div> +</div><p> +<a class="anchor" name="308ba136993debd560510c8b6c4329b2"></a><!-- doxytag: member="AudioEffect::setInitialDelay" ref="308ba136993debd560510c8b6c4329b2" args="(VstInt32 delay)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setInitialDelay </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>delay</em> </td> + <td> ) </td> + <td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Use to report the plug-in's latency (Group Delay). +<p> +Use to report the Plug-in's latency (Group Delay)<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>delay</em> </td><td>Plug-ins delay in samples </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="61c275f3a238e6a657de31a83b8843df"></a><!-- doxytag: member="AudioEffect::setNumInputs" ref="61c275f3a238e6a657de31a83b8843df" args="(VstInt32 inputs)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setNumInputs </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>inputs</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set the number of inputs the plug-in will handle. For a plug-in which could change its IO configuration, this number is the maximun available inputs. +<p> +This number is fixed at construction time and can't change until the plug-in is destroyed.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>inputs</em> </td><td>The number of inputs</td></tr> + </table> +</dl> +<dl compact><dt><b>See also:</b></dt><dd>isInputConnected()</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="0223276695559429b72e3d91bdd57f26"></a><!-- doxytag: member="AudioEffect::setNumOutputs" ref="0223276695559429b72e3d91bdd57f26" args="(VstInt32 outputs)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setNumOutputs </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>outputs</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set the number of outputs the plug-in will handle. For a plug-in which could change its IO configuration, this number is the maximun available ouputs. +<p> +This number is fixed at construction time and can't change until the plug-in is destroyed.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>outputs</em> </td><td>The number of outputs</td></tr> + </table> +</dl> +<dl compact><dt><b>See also:</b></dt><dd>isOutputConnected()</dd></dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="edfd69fe415f84c0879f6a6d1187380b"></a><!-- doxytag: member="AudioEffect::setParameter" ref="edfd69fe415f84c0879f6a6d1187380b" args="(VstInt32 index, float value)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setParameter </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>value</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when a parameter changed. +<p> +Parameters are the individual parameter settings the user can adjust. A VST Host can automate these parameters. Set parameter <em>index</em> to <em>value</em>.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>Index of the parameter to change </td></tr> + <tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>A float value between 0.0 and 1.0 inclusive</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>Parameter values, like all VST parameters, are declared as floats with an inclusive range of 0.0 to 1.0. How data is presented to the user is merely in the user-interface handling. This is a convention, but still worth regarding. Maybe the VST-Host's automation system depends on this range. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="cb72754ddd451320b6805e1170b53aea"></a><!-- doxytag: member="AudioEffect::setParameterAutomated" ref="cb72754ddd451320b6805e1170b53aea" args="(VstInt32 index, float value)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setParameterAutomated </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>index</em>, </td> + </tr> + <tr> + <td class="paramkey"></td> + <td></td> + <td class="paramtype">float </td> + <td class="paramname"> <em>value</em></td><td> </td> + </tr> + <tr> + <td></td> + <td>)</td> + <td></td><td></td><td width="100%"><code> [virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called after a control has changed in the editor and when the associated parameter should be automated. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>index</em> </td><td>parameter index </td></tr> + <tr><td valign="top"></td><td valign="top"><em>float</em> </td><td>parameter value</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>An important thing to notice is that if the user changes a parameter in your editor, which is out of the Host's control if you are not using the default string based interface, you should call setParameterAutomated (). This ensures that the Host is notified of the parameter change, which allows it to record these changes for automation.</dd></dl> +<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="class_audio_effect.html#edfd69fe415f84c0879f6a6d1187380b">setParameter</a> </dd></dl> + +</div> +</div><p> +<a class="anchor" name="11fda0b50077c8a489094acca2f420cf"></a><!-- doxytag: member="AudioEffect::setProgram" ref="11fda0b50077c8a489094acca2f420cf" args="(VstInt32 program)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setProgram </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>program</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Set the current program to <em>program</em>. +<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>Program</em> </td><td>of the current program </td></tr> + </table> +</dl> + +</div> +</div><p> +<a class="anchor" name="59686a32859f437b10d1f56dbe1e8b43"></a><!-- doxytag: member="AudioEffect::setProgramName" ref="59686a32859f437b10d1f56dbe1e8b43" args="(char *name)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setProgramName </td> + <td>(</td> + <td class="paramtype">char * </td> + <td class="paramname"> <em>name</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Stuff the name field of the current program with <em>name</em>. Limited to <a class="el" href="aeffect_8h.html#3a5c6e6206e0efa71bd728dcd08a762c4cd4f6f03e6fb755c1bc76b6d35434c6">kVstMaxProgNameLen</a>. +<p> +The program name is displayed in the rack, and can be edited by the user.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>name</em> </td><td>A string up to 24 char</td></tr> + </table> +</dl> +<dl compact><dt><b>Warning:</b></dt><dd>Please be aware that the string lengths supported by the default VST interface are normally limited to 24 characters. If you copy too much data into the buffers provided, you will break the Host application. </dd></dl> + +</div> +</div><p> +<a class="anchor" name="23710f86624cbb60f97fba870448fdb0"></a><!-- doxytag: member="AudioEffect::setSampleRate" ref="23710f86624cbb60f97fba870448fdb0" args="(float sampleRate)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::setSampleRate </td> + <td>(</td> + <td class="paramtype">float </td> + <td class="paramname"> <em>sampleRate</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when the sample rate changes (always in a suspend state). +<p> + +</div> +</div><p> +<a class="anchor" name="b1266f69a65c92571518a18a72ad9b31"></a><!-- doxytag: member="AudioEffect::setUniqueID" ref="b1266f69a65c92571518a18a72ad9b31" args="(VstInt32 iD)" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">void AudioEffect::setUniqueID </td> + <td>(</td> + <td class="paramtype"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> </td> + <td class="paramname"> <em>iD</em> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Must be called to set the plug-ins unique ID! +<p> +Must call this! Set the plug-in's unique identifier. The Host uses this to identify the plug-in, for instance when it is loading effect programs and banks. On Steinberg Web Page you can find an UniqueID Database where you can record your UniqueID, it will check if the ID is already used by an another vendor. You can use CCONST('a','b','c','d') (defined in VST 2.0) to be platform independent to initialize an UniqueID.<p> +<dl compact><dt><b>Parameters:</b></dt><dd> + <table border="0" cellspacing="2" cellpadding="0"> + <tr><td valign="top"></td><td valign="top"><em>iD</em> </td><td>Plug-in's unique ID</td></tr> + </table> +</dl> +<dl compact><dt><b>Note:</b></dt><dd>Needs to be called in the plug-in's constructor </dd></dl> + +</div> +</div><p> +<a class="anchor" name="a60d4dddc772c46cf20ee3552230e36a"></a><!-- doxytag: member="AudioEffect::suspend" ref="a60d4dddc772c46cf20ee3552230e36a" args="()" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">virtual void AudioEffect::suspend </td> + <td>(</td> + <td class="paramname"> </td> + <td> ) </td> + <td width="100%"><code> [inline, virtual]</code></td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Called when plug-in is switched to off. +<p> + +</div> +</div><p> +<hr><h2>Member Data Documentation</h2> +<a class="anchor" name="d7f8e277feedf57b182f0d23b8e9dcaf"></a><!-- doxytag: member="AudioEffect::audioMaster" ref="d7f8e277feedf57b182f0d23b8e9dcaf" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">audioMasterCallback <a class="el" href="class_audio_effect.html#d7f8e277feedf57b182f0d23b8e9dcaf">AudioEffect::audioMaster</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Host callback. +<p> + +</div> +</div><p> +<a class="anchor" name="87738bc57bad2139df99681f652952a9"></a><!-- doxytag: member="AudioEffect::blockSize" ref="87738bc57bad2139df99681f652952a9" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#87738bc57bad2139df99681f652952a9">AudioEffect::blockSize</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Maximum block size. +<p> + +</div> +</div><p> +<a class="anchor" name="8352ee8b691d2e544e856b3f4497d90b"></a><!-- doxytag: member="AudioEffect::cEffect" ref="8352ee8b691d2e544e856b3f4497d90b" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="struct_a_effect.html">AEffect</a> <a class="el" href="class_audio_effect.html#8352ee8b691d2e544e856b3f4497d90b">AudioEffect::cEffect</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +<a class="el" href="struct_a_effect.html">AEffect</a> object +<p> + +</div> +</div><p> +<a class="anchor" name="54e60e86082216310387c0edc2e2a8df"></a><!-- doxytag: member="AudioEffect::curProgram" ref="54e60e86082216310387c0edc2e2a8df" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#54e60e86082216310387c0edc2e2a8df">AudioEffect::curProgram</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Current program. +<p> + +</div> +</div><p> +<a class="anchor" name="d0992174789898d99908f787a57fac50"></a><!-- doxytag: member="AudioEffect::editor" ref="d0992174789898d99908f787a57fac50" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="class_a_eff_editor.html">AEffEditor</a>* <a class="el" href="class_audio_effect.html#d0992174789898d99908f787a57fac50">AudioEffect::editor</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Pointer to the plug-in's editor. +<p> + +</div> +</div><p> +<a class="anchor" name="597a9d9a5edb95e486bb3b238c570ce8"></a><!-- doxytag: member="AudioEffect::numParams" ref="597a9d9a5edb95e486bb3b238c570ce8" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#597a9d9a5edb95e486bb3b238c570ce8">AudioEffect::numParams</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Number of parameters. +<p> + +</div> +</div><p> +<a class="anchor" name="709e60e18ecca1108fdb3a4d04f68dc3"></a><!-- doxytag: member="AudioEffect::numPrograms" ref="709e60e18ecca1108fdb3a4d04f68dc3" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname"><a class="el" href="aeffect_8h.html#fded571ddf46573b73f2059a57ad4244">VstInt32</a> <a class="el" href="class_audio_effect.html#709e60e18ecca1108fdb3a4d04f68dc3">AudioEffect::numPrograms</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Number of programs. +<p> + +</div> +</div><p> +<a class="anchor" name="7be681e266f96c221ca341a85ba9ed15"></a><!-- doxytag: member="AudioEffect::sampleRate" ref="7be681e266f96c221ca341a85ba9ed15" args="" --> +<div class="memitem"> +<div class="memproto"> + <table class="memname"> + <tr> + <td class="memname">float <a class="el" href="class_audio_effect.html#7be681e266f96c221ca341a85ba9ed15">AudioEffect::sampleRate</a><code> [protected]</code> </td> + </tr> + </table> +</div> +<div class="memdoc"> + +<p> +Current sample rate. +<p> + +</div> +</div><p> +<hr>The documentation for this class was generated from the following files:<ul> +<li><a class="el" href="audioeffect_8h.html">audioeffect.h</a><li><a class="el" href="audioeffect_8cpp.html">audioeffect.cpp</a></ul> +<html> + +<head> + <title>Empty</title> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta name="Author" content="mario"> +</head> + +<body> + +<br/> +<hr width="100%" size="2" align="left" /> +<div align=left> +Copyright ©2006 <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies</u></a>. +All Rights Reserved. +</div> +</body> + +</html> |
