From 97587996ee9db30ce00190bdcedd8210490b99f5 Mon Sep 17 00:00:00 2001 From: pepper Date: Sat, 31 Jan 2015 21:41:28 -0800 Subject: backup vst 2.4 --- doc/VST Licensing Agreement.rtf | 241 ++ doc/gfx/folder.gif | Bin 0 -> 377 bytes doc/gfx/mac.gif | Bin 0 -> 1018 bytes doc/gfx/vstpluglogo_small.jpg | Bin 0 -> 3249 bytes doc/gfx/win.gif | Bin 0 -> 1049 bytes doc/html/Blocksizechange.gif | Bin 0 -> 3907 bytes doc/html/ControlChanged.gif | Bin 0 -> 5452 bytes doc/html/IOchange.gif | Bin 0 -> 10017 bytes doc/html/Initialisation.gif | Bin 0 -> 4730 bytes doc/html/Offlineprocessing.gif | Bin 0 -> 9541 bytes doc/html/Sampleratechange.gif | Bin 0 -> 4094 bytes doc/html/SpeakerarrangementnegotiationforVSTfx.gif | Bin 0 -> 8005 bytes doc/html/Termination.gif | Bin 0 -> 3395 bytes doc/html/TurnOff.gif | Bin 0 -> 3326 bytes doc/html/TurnOn.gif | Bin 0 -> 3275 bytes doc/html/aeffect_8h.html | 786 +++++++ doc/html/aeffectx_8h.html | 2072 +++++++++++++++++ doc/html/aeffeditor_8h.html | 49 + doc/html/annotated.html | 71 + doc/html/audioeffect_8cpp.html | 50 + doc/html/audioeffect_8h.html | 49 + doc/html/audioeffectx_8cpp.html | 119 + doc/html/audioeffectx_8h.html | 50 + doc/html/class_a_eff_editor-members.html | 56 + doc/html/class_a_eff_editor.html | 390 ++++ doc/html/class_audio_effect-members.html | 93 + doc/html/class_audio_effect.html | 1703 ++++++++++++++ doc/html/class_audio_effect.png | Bin 0 -> 391 bytes doc/html/class_audio_effect_x-members.html | 159 ++ doc/html/class_audio_effect_x.html | 2406 ++++++++++++++++++++ doc/html/class_audio_effect_x.png | Bin 0 -> 382 bytes doc/html/deprecated.html | 289 +++ doc/html/dir_2d3252dd12c84c66c1d25b26bb45a1f5.html | 55 + doc/html/dir_77c628dfee72e555f82d5ef53b733f38.html | 47 + doc/html/dir_f81105d3b854bea570aaf3bae5cb64c1.html | 43 + doc/html/dir_fa0454ab79b4262333bf837ea3d765e9.html | 43 + doc/html/dirs.html | 45 + doc/html/doc_8h.html | 45 + doc/html/doxygen.css | 358 +++ doc/html/doxygen.png | Bin 0 -> 1281 bytes doc/html/files.html | 52 + doc/html/ftv2blank.png | Bin 0 -> 174 bytes doc/html/ftv2doc.png | Bin 0 -> 255 bytes doc/html/ftv2folderclosed.png | Bin 0 -> 259 bytes doc/html/ftv2folderopen.png | Bin 0 -> 261 bytes doc/html/ftv2lastnode.png | Bin 0 -> 233 bytes doc/html/ftv2link.png | Bin 0 -> 358 bytes doc/html/ftv2mlastnode.png | Bin 0 -> 160 bytes doc/html/ftv2mnode.png | Bin 0 -> 194 bytes doc/html/ftv2node.png | Bin 0 -> 235 bytes doc/html/ftv2plastnode.png | Bin 0 -> 165 bytes doc/html/ftv2pnode.png | Bin 0 -> 200 bytes doc/html/ftv2vertline.png | Bin 0 -> 229 bytes doc/html/functions.html | 89 + doc/html/functions_0x62.html | 90 + doc/html/functions_0x63.html | 102 + doc/html/functions_0x64.html | 93 + doc/html/functions_0x65.html | 90 + doc/html/functions_0x66.html | 90 + doc/html/functions_0x67.html | 126 + doc/html/functions_0x68.html | 87 + doc/html/functions_0x69.html | 94 + doc/html/functions_0x6b.html | 83 + doc/html/functions_0x6c.html | 86 + doc/html/functions_0x6d.html | 98 + doc/html/functions_0x6e.html | 108 + doc/html/functions_0x6f.html | 92 + doc/html/functions_0x70.html | 103 + doc/html/functions_0x72.html | 96 + doc/html/functions_0x73.html | 128 ++ doc/html/functions_0x74.html | 94 + doc/html/functions_0x75.html | 90 + doc/html/functions_0x76.html | 87 + doc/html/functions_0x77.html | 86 + doc/html/functions_0x78.html | 83 + doc/html/functions_0x79.html | 83 + doc/html/functions_0x7e.html | 84 + doc/html/functions_func.html | 230 ++ doc/html/functions_vars.html | 304 +++ doc/html/globals.html | 124 + doc/html/globals_0x62.html | 72 + doc/html/globals_0x63.html | 93 + doc/html/globals_0x64.html | 72 + doc/html/globals_0x65.html | 163 ++ doc/html/globals_0x66.html | 73 + doc/html/globals_0x6b.html | 277 +++ doc/html/globals_0x6d.html | 75 + doc/html/globals_0x74.html | 72 + doc/html/globals_0x76.html | 168 ++ doc/html/globals_defs.html | 71 + doc/html/globals_enum.html | 85 + doc/html/globals_eval.html | 115 + doc/html/globals_eval_0x65.html | 158 ++ doc/html/globals_eval_0x6b.html | 270 +++ doc/html/globals_eval_0x6d.html | 70 + doc/html/globals_eval_0x76.html | 123 + doc/html/globals_func.html | 61 + doc/html/globals_type.html | 59 + doc/html/globals_vars.html | 72 + doc/html/hierarchy.html | 73 + doc/html/history.html | 62 + doc/html/index.html | 8 + doc/html/intro.html | 65 + doc/html/license.html | 99 + doc/html/maceditor.html | 76 + doc/html/main.html | 50 + doc/html/namespace_host_can_dos.html | 330 +++ doc/html/namespace_plug_can_dos.html | 210 ++ doc/html/namespacemembers.html | 67 + doc/html/namespacemembers_vars.html | 67 + doc/html/namespaces.html | 44 + doc/html/others.html | 53 + doc/html/pages.html | 59 + doc/html/sequences.html | 99 + doc/html/struct_a_effect-members.html | 65 + doc/html/struct_a_effect.html | 493 ++++ doc/html/struct_e_rect-members.html | 46 + doc/html/struct_e_rect.html | 133 ++ doc/html/struct_midi_key_name-members.html | 47 + doc/html/struct_midi_key_name.html | 153 ++ doc/html/struct_midi_program_category-members.html | 46 + doc/html/struct_midi_program_category.html | 133 ++ doc/html/struct_midi_program_name-members.html | 50 + doc/html/struct_midi_program_name.html | 214 ++ doc/html/struct_vst_audio_file-members.html | 64 + doc/html/struct_vst_audio_file.html | 493 ++++ doc/html/struct_vst_audio_file_marker-members.html | 47 + doc/html/struct_vst_audio_file_marker.html | 153 ++ doc/html/struct_vst_event-members.html | 47 + doc/html/struct_vst_event.html | 151 ++ doc/html/struct_vst_events-members.html | 45 + doc/html/struct_vst_events.html | 113 + doc/html/struct_vst_file_select-members.html | 55 + doc/html/struct_vst_file_select.html | 310 +++ doc/html/struct_vst_file_type-members.html | 49 + doc/html/struct_vst_file_type.html | 230 ++ doc/html/struct_vst_key_code-members.html | 45 + doc/html/struct_vst_key_code.html | 109 + doc/html/struct_vst_midi_event-members.html | 53 + doc/html/struct_vst_midi_event.html | 271 +++ doc/html/struct_vst_midi_sysex_event-members.html | 50 + doc/html/struct_vst_midi_sysex_event.html | 213 ++ doc/html/struct_vst_offline_task-members.html | 73 + doc/html/struct_vst_offline_task.html | 673 ++++++ .../struct_vst_parameter_properties-members.html | 58 + doc/html/struct_vst_parameter_properties.html | 371 +++ doc/html/struct_vst_patch_chunk_info-members.html | 47 + doc/html/struct_vst_patch_chunk_info.html | 153 ++ doc/html/struct_vst_pin_properties-members.html | 47 + doc/html/struct_vst_pin_properties.html | 149 ++ .../struct_vst_speaker_arrangement-members.html | 45 + doc/html/struct_vst_speaker_arrangement.html | 114 + .../struct_vst_speaker_properties-members.html | 49 + doc/html/struct_vst_speaker_properties.html | 191 ++ doc/html/struct_vst_time_info-members.html | 56 + doc/html/struct_vst_time_info.html | 334 +++ doc/html/struct_vst_variable_io-members.html | 48 + doc/html/struct_vst_variable_io.html | 173 ++ doc/html/struct_vst_window-members.html | 52 + doc/html/struct_vst_window.html | 224 ++ doc/html/structfx_bank-members.html | 56 + doc/html/structfx_bank.html | 337 +++ doc/html/structfx_program-members.html | 55 + doc/html/structfx_program.html | 317 +++ doc/html/tab_b.gif | Bin 0 -> 35 bytes doc/html/tab_l.gif | Bin 0 -> 706 bytes doc/html/tab_r.gif | Bin 0 -> 2585 bytes doc/html/tabs.css | 102 + doc/html/thanks.html | 40 + doc/html/tree.html | 180 ++ doc/html/vstfxstore_8h.html | 138 ++ doc/html/vstoffline.html | 1391 +++++++++++ doc/html/vstparamstruct.html | 566 +++++ doc/html/vstpluglogo.jpg | Bin 0 -> 16944 bytes doc/html/vstplugmain_8cpp.html | 111 + doc/html/whatsnew.html | 88 + doc/sdk.menu.html | 38 + doc/sdk.overview.html | 301 +++ doc/sdkdoc.css | 130 ++ 179 files changed, 26287 insertions(+) create mode 100644 doc/VST Licensing Agreement.rtf create mode 100644 doc/gfx/folder.gif create mode 100644 doc/gfx/mac.gif create mode 100644 doc/gfx/vstpluglogo_small.jpg create mode 100644 doc/gfx/win.gif create mode 100644 doc/html/Blocksizechange.gif create mode 100644 doc/html/ControlChanged.gif create mode 100644 doc/html/IOchange.gif create mode 100644 doc/html/Initialisation.gif create mode 100644 doc/html/Offlineprocessing.gif create mode 100644 doc/html/Sampleratechange.gif create mode 100644 doc/html/SpeakerarrangementnegotiationforVSTfx.gif create mode 100644 doc/html/Termination.gif create mode 100644 doc/html/TurnOff.gif create mode 100644 doc/html/TurnOn.gif create mode 100644 doc/html/aeffect_8h.html create mode 100644 doc/html/aeffectx_8h.html create mode 100644 doc/html/aeffeditor_8h.html create mode 100644 doc/html/annotated.html create mode 100644 doc/html/audioeffect_8cpp.html create mode 100644 doc/html/audioeffect_8h.html create mode 100644 doc/html/audioeffectx_8cpp.html create mode 100644 doc/html/audioeffectx_8h.html create mode 100644 doc/html/class_a_eff_editor-members.html create mode 100644 doc/html/class_a_eff_editor.html create mode 100644 doc/html/class_audio_effect-members.html create mode 100644 doc/html/class_audio_effect.html create mode 100644 doc/html/class_audio_effect.png create mode 100644 doc/html/class_audio_effect_x-members.html create mode 100644 doc/html/class_audio_effect_x.html create mode 100644 doc/html/class_audio_effect_x.png create mode 100644 doc/html/deprecated.html create mode 100644 doc/html/dir_2d3252dd12c84c66c1d25b26bb45a1f5.html create mode 100644 doc/html/dir_77c628dfee72e555f82d5ef53b733f38.html create mode 100644 doc/html/dir_f81105d3b854bea570aaf3bae5cb64c1.html create mode 100644 doc/html/dir_fa0454ab79b4262333bf837ea3d765e9.html create mode 100644 doc/html/dirs.html create mode 100644 doc/html/doc_8h.html create mode 100644 doc/html/doxygen.css create mode 100644 doc/html/doxygen.png create mode 100644 doc/html/files.html create mode 100644 doc/html/ftv2blank.png create mode 100644 doc/html/ftv2doc.png create mode 100644 doc/html/ftv2folderclosed.png create mode 100644 doc/html/ftv2folderopen.png create mode 100644 doc/html/ftv2lastnode.png create mode 100644 doc/html/ftv2link.png create mode 100644 doc/html/ftv2mlastnode.png create mode 100644 doc/html/ftv2mnode.png create mode 100644 doc/html/ftv2node.png create mode 100644 doc/html/ftv2plastnode.png create mode 100644 doc/html/ftv2pnode.png create mode 100644 doc/html/ftv2vertline.png create mode 100644 doc/html/functions.html create mode 100644 doc/html/functions_0x62.html create mode 100644 doc/html/functions_0x63.html create mode 100644 doc/html/functions_0x64.html create mode 100644 doc/html/functions_0x65.html create mode 100644 doc/html/functions_0x66.html create mode 100644 doc/html/functions_0x67.html create mode 100644 doc/html/functions_0x68.html create mode 100644 doc/html/functions_0x69.html create mode 100644 doc/html/functions_0x6b.html create mode 100644 doc/html/functions_0x6c.html create mode 100644 doc/html/functions_0x6d.html create mode 100644 doc/html/functions_0x6e.html create mode 100644 doc/html/functions_0x6f.html create mode 100644 doc/html/functions_0x70.html create mode 100644 doc/html/functions_0x72.html create mode 100644 doc/html/functions_0x73.html create mode 100644 doc/html/functions_0x74.html create mode 100644 doc/html/functions_0x75.html create mode 100644 doc/html/functions_0x76.html create mode 100644 doc/html/functions_0x77.html create mode 100644 doc/html/functions_0x78.html create mode 100644 doc/html/functions_0x79.html create mode 100644 doc/html/functions_0x7e.html create mode 100644 doc/html/functions_func.html create mode 100644 doc/html/functions_vars.html create mode 100644 doc/html/globals.html create mode 100644 doc/html/globals_0x62.html create mode 100644 doc/html/globals_0x63.html create mode 100644 doc/html/globals_0x64.html create mode 100644 doc/html/globals_0x65.html create mode 100644 doc/html/globals_0x66.html create mode 100644 doc/html/globals_0x6b.html create mode 100644 doc/html/globals_0x6d.html create mode 100644 doc/html/globals_0x74.html create mode 100644 doc/html/globals_0x76.html create mode 100644 doc/html/globals_defs.html create mode 100644 doc/html/globals_enum.html create mode 100644 doc/html/globals_eval.html create mode 100644 doc/html/globals_eval_0x65.html create mode 100644 doc/html/globals_eval_0x6b.html create mode 100644 doc/html/globals_eval_0x6d.html create mode 100644 doc/html/globals_eval_0x76.html create mode 100644 doc/html/globals_func.html create mode 100644 doc/html/globals_type.html create mode 100644 doc/html/globals_vars.html create mode 100644 doc/html/hierarchy.html create mode 100644 doc/html/history.html create mode 100644 doc/html/index.html create mode 100644 doc/html/intro.html create mode 100644 doc/html/license.html create mode 100644 doc/html/maceditor.html create mode 100644 doc/html/main.html create mode 100644 doc/html/namespace_host_can_dos.html create mode 100644 doc/html/namespace_plug_can_dos.html create mode 100644 doc/html/namespacemembers.html create mode 100644 doc/html/namespacemembers_vars.html create mode 100644 doc/html/namespaces.html create mode 100644 doc/html/others.html create mode 100644 doc/html/pages.html create mode 100644 doc/html/sequences.html create mode 100644 doc/html/struct_a_effect-members.html create mode 100644 doc/html/struct_a_effect.html create mode 100644 doc/html/struct_e_rect-members.html create mode 100644 doc/html/struct_e_rect.html create mode 100644 doc/html/struct_midi_key_name-members.html create mode 100644 doc/html/struct_midi_key_name.html create mode 100644 doc/html/struct_midi_program_category-members.html create mode 100644 doc/html/struct_midi_program_category.html create mode 100644 doc/html/struct_midi_program_name-members.html create mode 100644 doc/html/struct_midi_program_name.html create mode 100644 doc/html/struct_vst_audio_file-members.html create mode 100644 doc/html/struct_vst_audio_file.html create mode 100644 doc/html/struct_vst_audio_file_marker-members.html create mode 100644 doc/html/struct_vst_audio_file_marker.html create mode 100644 doc/html/struct_vst_event-members.html create mode 100644 doc/html/struct_vst_event.html create mode 100644 doc/html/struct_vst_events-members.html create mode 100644 doc/html/struct_vst_events.html create mode 100644 doc/html/struct_vst_file_select-members.html create mode 100644 doc/html/struct_vst_file_select.html create mode 100644 doc/html/struct_vst_file_type-members.html create mode 100644 doc/html/struct_vst_file_type.html create mode 100644 doc/html/struct_vst_key_code-members.html create mode 100644 doc/html/struct_vst_key_code.html create mode 100644 doc/html/struct_vst_midi_event-members.html create mode 100644 doc/html/struct_vst_midi_event.html create mode 100644 doc/html/struct_vst_midi_sysex_event-members.html create mode 100644 doc/html/struct_vst_midi_sysex_event.html create mode 100644 doc/html/struct_vst_offline_task-members.html create mode 100644 doc/html/struct_vst_offline_task.html create mode 100644 doc/html/struct_vst_parameter_properties-members.html create mode 100644 doc/html/struct_vst_parameter_properties.html create mode 100644 doc/html/struct_vst_patch_chunk_info-members.html create mode 100644 doc/html/struct_vst_patch_chunk_info.html create mode 100644 doc/html/struct_vst_pin_properties-members.html create mode 100644 doc/html/struct_vst_pin_properties.html create mode 100644 doc/html/struct_vst_speaker_arrangement-members.html create mode 100644 doc/html/struct_vst_speaker_arrangement.html create mode 100644 doc/html/struct_vst_speaker_properties-members.html create mode 100644 doc/html/struct_vst_speaker_properties.html create mode 100644 doc/html/struct_vst_time_info-members.html create mode 100644 doc/html/struct_vst_time_info.html create mode 100644 doc/html/struct_vst_variable_io-members.html create mode 100644 doc/html/struct_vst_variable_io.html create mode 100644 doc/html/struct_vst_window-members.html create mode 100644 doc/html/struct_vst_window.html create mode 100644 doc/html/structfx_bank-members.html create mode 100644 doc/html/structfx_bank.html create mode 100644 doc/html/structfx_program-members.html create mode 100644 doc/html/structfx_program.html create mode 100644 doc/html/tab_b.gif create mode 100644 doc/html/tab_l.gif create mode 100644 doc/html/tab_r.gif create mode 100644 doc/html/tabs.css create mode 100644 doc/html/thanks.html create mode 100644 doc/html/tree.html create mode 100644 doc/html/vstfxstore_8h.html create mode 100644 doc/html/vstoffline.html create mode 100644 doc/html/vstparamstruct.html create mode 100644 doc/html/vstpluglogo.jpg create mode 100644 doc/html/vstplugmain_8cpp.html create mode 100644 doc/html/whatsnew.html create mode 100644 doc/sdk.menu.html create mode 100644 doc/sdk.overview.html create mode 100644 doc/sdkdoc.css (limited to 'doc') diff --git a/doc/VST Licensing Agreement.rtf b/doc/VST Licensing Agreement.rtf new file mode 100644 index 0000000..a528186 --- /dev/null +++ b/doc/VST Licensing Agreement.rtf @@ -0,0 +1,241 @@ +{\rtf1\ansi\ansicpg1252\uc1\deff36\stshfdbch0\stshfloch0\stshfhich0\stshfbi0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f3\froman\fcharset2\fprq2{\*\panose 05050102010706020507}Symbol;} +{\f36\fswiss\fcharset0\fprq2{\*\panose 020b0604030504040204}Verdana;}{\f115\froman\fcharset238\fprq2 Times New Roman CE;}{\f116\froman\fcharset204\fprq2 Times New Roman Cyr;}{\f118\froman\fcharset161\fprq2 Times New Roman Greek;} +{\f119\froman\fcharset162\fprq2 Times New Roman Tur;}{\f120\froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f121\froman\fcharset178\fprq2 Times New Roman (Arabic);}{\f122\froman\fcharset186\fprq2 Times New Roman Baltic;} +{\f123\froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f475\fswiss\fcharset238\fprq2 Verdana CE;}{\f476\fswiss\fcharset204\fprq2 Verdana Cyr;}{\f478\fswiss\fcharset161\fprq2 Verdana Greek;}{\f479\fswiss\fcharset162\fprq2 Verdana Tur;} +{\f482\fswiss\fcharset186\fprq2 Verdana Baltic;}{\f483\fswiss\fcharset163\fprq2 Verdana (Vietnamese);}}{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0; +\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\stylesheet{ +\ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \snext0 Normal;}{\s1\ql \li0\ri0\nowidctlpar\faauto\outlinelevel0\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 +\sbasedon0 \snext0 heading 1;}{\s2\ql \li0\ri0\nowidctlpar\faauto\outlinelevel1\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 2;}{\s3\ql \li0\ri0\nowidctlpar\faauto\outlinelevel2\rin0\lin0\itap0 +\f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 3;}{\s4\ql \li0\ri0\nowidctlpar\faauto\outlinelevel3\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 4;}{ +\s5\ql \li0\ri0\nowidctlpar\faauto\outlinelevel4\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 5;}{\s6\ql \li0\ri0\nowidctlpar\faauto\outlinelevel5\rin0\lin0\itap0 +\f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 \sbasedon0 \snext0 heading 6;}{\*\cs10 \additive \ssemihidden Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tscellwidthfts0\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv +\ql \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \fs20\lang1024\langfe1024\cgrid\langnp1024\langfenp1024 \snext11 \ssemihidden Normal Table;}}{\*\listtable{\list\listtemplateid194138022\listsimple{\listlevel\levelnfc23\levelnfcn23 +\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelspace0\levelindent0{\leveltext\'01*;}{\levelnumbers;}}{\listname ;}\listid-2}{\list\listtemplateid910600962\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1 +\levelold\levelspace0\levelindent360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\f36\fbias0 }{\listname ;}\listid125323114}{\list\listtemplateid-1647170324\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat2\levelold +\levelspace0\levelindent360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\f36\fbias0 }{\listname ;}\listid833880899}{\list\listtemplateid910600962\listsimple{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0 +\levelindent360{\leveltext\'02\'00.;}{\levelnumbers\'01;}\f36\fbias0 }{\listname ;}\listid1745569104}{\list\listtemplateid1815085384\listsimple{\listlevel\levelnfc2\levelnfcn2\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelold\levelspace0 +\levelindent360{\leveltext\'03(\'00);}{\levelnumbers\'02;}\f36\fbias0 }{\listname ;}\listid1993564023}}{\*\listoverridetable{\listoverride\listid125323114\listoverridecount0\ls1}{\listoverride\listid-2\listoverridecount1{\lfolevel\listoverrideformat +{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat0\levelold\levelspace0\levelindent360{\leveltext\'01\u-3913 ?;}{\levelnumbers;}\f3\fbias0 }}\ls2}{\listoverride\listid1993564023\listoverridecount0\ls3} +{\listoverride\listid833880899\listoverridecount0\ls4}{\listoverride\listid1745569104\listoverridecount0\ls5}}{\*\rsidtbl \rsid11812474}{\*\generator Microsoft Word 10.0.4524;}{\info{\author YGrabit}{\operator YGrabit}{\creatim\yr2006\mo1\dy12\hr10} +{\revtim\yr2006\mo1\dy12\hr10\min3}{\version2}{\edmins0}{\nofpages6}{\nofwords1342}{\nofchars8460}{\*\company Media Technologies GmbH}{\nofcharsws9783}{\vern16475}}\margl1417\margr1417\margt1417\margb1134 +\deftab708\widowctrl\ftnbj\aenddoc\hyphhotz425\noxlattoyen\expshrtn\noultrlspc\dntblnsbdb\nospaceforul\hyphcaps0\horzdoc\dghspace120\dgvspace120\dghorigin1701\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\nolnhtadjtbl\rsidroot11812474 +\fet0\sectd \linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (} +{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}\pard\plain \s3\qc \li0\ri0\keepn\nowidctlpar\faauto\outlinelevel2\rin0\lin0\itap0 +\f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\b\fs22\insrsid11812474\charrsid11812474 Steinberg VST PlugIns SDK Licensing Agreement +\par }\pard\plain \qc \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\insrsid11812474\charrsid11812474 (Version \'942.4\endash January 2006\'94)}{ +\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }{\fs22\insrsid11812474\charrsid11812474 between}{\b\fs22\insrsid11812474\charrsid11812474 +\par +\par }\pard\plain \s4\qc \li20\ri4\keepn\nowidctlpar\tx720\tx9440\faauto\outlinelevel3\rin4\lin20\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\b\fs22\lang1031\langfe1031\langnp1031\insrsid11812474 STEINBERG MEDIA TECHNOLOGIES GMBH +\par }\pard\plain \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\b\fs22\lang1031\langfe1031\langnp1031\insrsid11812474 +\par }{\fs22\lang1031\langfe1031\langnp1031\insrsid11812474\charrsid11812474 residing at +\par }{\b\fs22\lang1031\langfe1031\langnp1031\insrsid11812474\charrsid11812474 +\par }{\fs22\lang1031\langfe1031\langnp1031\insrsid11812474\charrsid11812474 Neuer Hoeltigbaum 22 - 32 , +\par }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 22143 Hamburg +\par GERMANY +\par }\pard \qr \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 - Steinberg - +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 and +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \qc \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 .......................................... +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 residing at +\par ............................... +\par ............................... +\par ............................... +\par }\pard \qr \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 - Licensee- }{\fs22\insrsid11812474 +\par }\pard \ql \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \fi-709\li709\ri0\nowidctlpar\tx709\faauto\rin0\lin709\itap0 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par \'a7 1\tab }{\b\caps\fs22\insrsid11812474 Object of the Agreement +\par }{\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 1.\tab}}\pard \ql \fi-705\li705\ri0\nowidctlpar\tx705{\*\pn \pnlvlbody\ilvl0\ls1\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls1\rin0\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 The object of this agreement consists of the Steinberg VST PlugIn Software Development Kit }{\b\fs22\ul\insrsid11812474 version 2.4,}{\fs22\insrsid11812474 + comprising of documentation, example code, and several VST PlugIn examples. These are described hereinafter as the }{\b\fs22\insrsid11812474 "Licensed Software Developer Kit"}{\fs22\insrsid11812474 . +\par }\pard \ql \fi-709\li709\ri0\nowidctlpar\tx709\faauto\rin0\lin709\itap0 {\fs22\insrsid11812474 2.\tab Steinberg is the holder of all copyrights, rights of ownership, and other rights concerning the Licensed Software Developer Kit.\line +\par }\pard \ql \fi-709\li709\ri4\nowidctlpar\tx709\faauto\rin4\lin709\itap0 {\fs22\insrsid11812474 3.\tab The }{\b\fs22\insrsid11812474 Licensed Software Developer Kit}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 contains information about +\par {\pntext\pard\plain\f3\fs22\lang2057\langfe1031\langnp2057 \loch\af3\dbch\af0\hich\f3 \'b7\tab}}\pard \ql \fi-360\li1068\ri4\nowidctlpar\tx1068\tx9440{\*\pn \pnlvlblt\ilvl0\ls2\pnrnot0\pnf3\pnindent360 {\pntxtb \'b7}} +\faauto\ls2\rin4\lin1068\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 how to develop a VST PlugIn, and +\par {\pntext\pard\plain\f3\fs22\lang2057\langfe1031\langnp2057 \loch\af3\dbch\af0\hich\f3 \'b7\tab}how to extend an application so that it can host VST PlugIns, that are developed under the VST PlugIn Specification, either by Steinberg or any Third-Parties. + +\par }\pard \ql \li708\ri4\nowidctlpar\tx9440\faauto\rin4\lin708\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par Currently the following computer platforms are supported: +\par }\pard \qj \li708\ri4\nowidctlpar\tx9440\faauto\rin4\lin708\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 - Apple Macintosh }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474\charrsid7554886 Computers under the Mac OS}{ +\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 9.x and Mac OS10.x}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474\charrsid7554886 , +\par - }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Windows 95/98/2000}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474\charrsid7554886 and }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Windows XP (32 and 64bit)}{ +\fs22\lang2057\langfe1031\langnp2057\insrsid11812474\charrsid7554886 +\par }\pard \ql \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \page \'a7 2\tab Granting of Rights\tab +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \fi-709\li709\ri0\nowidctlpar\faauto\rin0\lin709\itap0 {\fs22\insrsid11812474 1.\tab +Steinberg hereby grants to the Licensee a non-exclusive, worldwide, nontransferable license during the term of this agreement to use the VST PlugIn Interface Technology solely: +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 (i)\tab}}\pard \ql \fi-720\li1428\ri0\nowidctlpar\tx1428{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pnlcrm\pnf36\pnstart1\pnindent360 {\pntxtb (}{\pntxta )}} +\faauto\ls3\rin0\lin1428\itap0\pararsid11812474 {\fs22\insrsid11812474 for the development of VST PlugIns and/or for the development of an application that can host VST PlugIns, +\par }\pard \ql \li708\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin0\lin708\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 (ii)\tab}}\pard \ql \fi-720\li1428\ri0\nowidctlpar\tx1428{\*\pn \pnlvlbody\ilvl0\ls3\pnrnot0\pnlcrm\pnf36\pnstart1\pnindent360 {\pntxtb (}{\pntxta )}} +\faauto\ls3\rin0\lin1428\itap0\pararsid11812474 {\fs22\insrsid11812474 to publish a product under his own name that is using parts or all of the Licensed Software Developer Kit. +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang2057\langfe1031\langnp2057 \hich\af36\dbch\af0\loch\f36 2.\tab}}\pard \ql \fi-705\li705\ri4\nowidctlpar\tx705\tx9440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnf36\pnstart2\pnindent360 {\pntxta .}} +\faauto\ls4\rin4\lin705\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 The Licensee has no permission to sell, licence, give-away and/or distribute the }{\fs22\insrsid11812474 +VST PlugIn Interface technology or parts of it in anyway, on any medium, including the Internet, to any other person, including sub-licensors of the Licensee or companies where the Licensee has any involvement.}{ +\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 }{\fs22\insrsid11812474 This includes re-working this specification, or reverse-engineering any products based upon this specification. }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\tx9440{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin4\lin0\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang2057\langfe1031\langnp2057 \hich\af36\dbch\af0\loch\f36 3.\tab}}\pard \ql \fi-705\li705\ri4\nowidctlpar\tx705\tx9440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnf36\pnstart2\pnindent360 {\pntxta .}} +\faauto\ls4\rin4\lin705\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +The Licensee recognises the value of the goodwill associated with the mark VST PlugIn Technology and acknowledges that such goodwill exclusively belongs to the benefit of Steinberg and belongs to Steinberg. The Licensee warrants that it will not use the m +a +rk VST PlugIn Technology on promotional merchandise, with the exception of demo versions of any of his product making use of this SDK. The Licensee warrants that it will not use the mark VST PlugIn Technology on, or in connection with products obscene, po +rnographic, excessively violent, or otherwise in poor taste. +\par }\pard \ql \li0\ri4\nowidctlpar\tx9440{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin4\lin0\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 4.\tab}}\pard \ql \fi-705\li705\ri4\nowidctlpar\tx705\tx9440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnf36\pnstart2\pnindent360 {\pntxta .}} +\faauto\ls4\rin4\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 +If the Licensee is developing a product, that is using parts or all of the Licensed Software Developer Kit, and this product is not published under his own name but will be published by anot +her company, the Licensee is under the obligation to inform the publisher of the resulting product, that he too must be a party to this Licensing Agreement. The publisher has to completely agree with the VST PlugIn SDK Licensing Agreement. If the publishe +r is not in agreement with these conditions, the publisher is not allowed to distribute this product which is using parts or all of the Licensed Software Developer Kit. +\par }\pard \ql \li0\ri4\nowidctlpar\tx9440{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin4\lin0\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 5.\tab}}\pard \ql \fi-705\li705\ri4\nowidctlpar\tx705\tx9440{\*\pn \pnlvlbody\ilvl0\ls4\pnrnot0\pndec\pnf36\pnstart2\pnindent360 {\pntxta .}} +\faauto\ls4\rin4\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 If the Licensee is planning to publish a product, that is using parts or all of th +e Licensed Software Developer Kit, the Licensee is under the obligation to inform Steinberg about it by sending the signed \lquote Steinberg VST PlugIns SDK Licensing Agreement\rquote to Steinberg, either by mail, or by fax. +\par }\pard \qj \li0\ri4\nowidctlpar\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par \page \'a7 3\tab Use Of Trademarks +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 +\par }\pard \ql \li705\ri4\nowidctlpar\tx9440\faauto\rin4\lin705\itap0 {\fs22\insrsid11812474 If the Licensee is publishing a product under his own name that is using parts or all of the Licensed Software Developer Kit, the }{ +\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Licensee shall be under an obligation to refer to Steinberg\rquote s copyrights and trademarks in the following way: +\par }{\fs22\insrsid11812474 +\par a) Steinberg\rquote s copyright notice should be included in the documentation, regardless of the media used to supply the documentation. +\par Copyright notice:\'94}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 VST is a trademark of Steinberg Media Technologies GmbH\'94 +\par }{\fs22\insrsid11812474 b) The VST Logo has to appear on packages and promotional material. +\par }\pard \ql \li709\ri4\nowidctlpar\tx709\tx9440\faauto\rin4\lin709\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 The VST Logo artwork and usage guidelines are part of the }{\b\fs22\insrsid11812474 "Licensed Software Developer Kit" }{ +\fs22\insrsid11812474 and}{\b\fs22\insrsid11812474 }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 are supplied by Steinberg in digital format. +\par }\pard \ql \li705\ri4\nowidctlpar\tx9440\faauto\rin4\lin705\itap0 {\fs22\insrsid11812474 +\par c) In the \lquote about box\rquote of the product in one of the following formats: +\par }\pard \ql \li0\ri4\nowidctlpar\tx993\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \tab - VST PlugIn Technology by Steinberg, +\par }\pard \ql \li993\ri4\nowidctlpar\tx9440\faauto\rin4\lin993\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 - VST PlugIn Interface Technology by Ste}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +inberg Media Technologies GmbH.}{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\tx709\tx9440\faauto\rin4\lin0\itap0 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \'a7 4\tab Fees and Royalties +\par }\pard \ql \fi-9\li0\ri4\nowidctlpar\tx709\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \fi-709\li709\ri4\nowidctlpar\tx640\tx9440\faauto\rin4\lin709\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \tab \tab +The Licensee shall not obligated to pay to Steinberg any fees or royalties with respect to the VST PlugIn Interface technology. +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 \line +\par }\pard \ql \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \'a7 5\tab }{\b\caps\fs22\insrsid11812474 Liability for Consequential Damages +\par }\pard \ql \li708\ri0\nowidctlpar\tx709\faauto\rin0\lin708\itap0 {\fs22\insrsid11812474 \line +Steinberg will not be liable for any consequential, special, incidental, direct or indirect damages of any kind, including the loss of data, damage of data-storage-devices, or any loss or damage to other programs being used, arising out of the use of the +Licensed Software Developer Kit or any software developed by the Licensee, including any future up-dates.\line \line +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\b\fs22\insrsid11812474 \'a7 6\tab }{\b\caps\fs22\insrsid11812474 Product Warranty}{\caps\fs22\insrsid11812474 +\par +\par }\pard \qj \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 1.\tab Steinberg licences the VST PlugIn Interface Technology on an "AS IS" basis. +\par }\pard \qj \li720\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin720\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Steinberg makes no warranties, express or implie +d, including without limitation the implied warranties of merchantability and fitness for a particular purpose, regarding the VST PlugIn Interface technology or operation and use in combination with the Licensee\rquote +s program. Neither the Licensee, its employees, agents, or Distributors have any right to make any other representation, warranty or promise with respect to the VST PlugIn Interface technology. +\par }\pard \ql \li729\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin729\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \qj \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 2.\tab In no event shall Steinberg be liable for incidental or consequential damages +\par }\pard \qj \li720\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin720\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 arising from the use, or + distribution of the VST PlugIn-Interface technology by the Licensee, whether theory of contract, product liability or otherwise. +\par }\pard \ql \li729\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin729\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 All claims for indemnification for losses by the Licensee itself or by third parties shall be excluded. +\par }\pard \ql \fi-709\li709\ri0\nowidctlpar\faauto\rin0\lin709\itap0 {\fs22\insrsid11812474 +\par 3.\tab Steinberg may release improved versions of the Licensed Software Developer Kit but offers no commitment whatsoever those releases will occur at anytime or for anybody. +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 +\par +\par }{\b\caps\fs22\insrsid11812474 \'a7 7\tab Infringement +\par +\par }\pard \qj \li708\ri0\nowidctlpar\faauto\rin0\lin708\itap0 {\fs22\insrsid11812474 Steinberg represents and warrants that, as of the date of this Agreement, it is not +aware of any claim or action alleging that VST, the VST PlugIn Interface Technology, or the content of the }{\b\fs22\insrsid11812474 Licensed Software Developer Kit }{\fs22\insrsid11812474 +infringes any third party intellectual property right. Steinberg, however, disclaims any obligation of defense or ind +emnify of the Licensee or its customer with respect to any such claim or action, or otherwise arising out of this agreement. Steinberg shall have no liability arising out of any such actual or alleged intellectual property infringement. +\par The Licensee, however, shall promptly notify Steinberg, in writing, of each such infringement claim of which the Licensee becomes aware. +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \fi-20\li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \'a7 8\tab RELATIONSHIP BETWEEN THE TWO PARTIES +\par }\pard \qj \li720\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin720\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par Nothing stated in this Agreement will be construed as creating the relationships of joint ventures, partners, principal, agent or whatsoever. The Licensee shall not be entitled to represent Steinberg or to make statements on its behalf. +\par }\pard \qj \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 \'a7 9\tab TERM OF THE AGREEMENT +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 1.\tab The Agreement shall run for an unlimited period. +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \qj \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 2.\tab If the Licensee is in breach of any of its obligations set out in this agreement, +\par }\pard \qj \li720\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin720\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +Steinberg shall be entitled to terminate this agreement immediately in writing and inform the Licensee verbally about it. In such a case, this license and all the rights granted to the Licensee herein shall immediately cease.}{ +\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 \line +\par }\pard \ql \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\b\caps\fs22\insrsid11812474 \'a7 10\tab }{\b\caps\fs22\expnd0\expndtw-3\insrsid11812474 Final provisions}{\fs22\insrsid11812474 \line +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 1.\tab}}\pard \ql \fi-705\li705\ri0\nowidctlpar\tx705{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin0\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 This agreement and the interpreta\-tion thereof shall be exclusively subject to the laws of the Federal Republic of Germany. +\par }\pard \ql \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin0\lin0\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 2.\tab}}\pard \ql \fi-705\li705\ri0\nowidctlpar\tx705{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin0\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 +The Licensee declares himself to be in agreement with the use of any personal data obtained through this licensing relationship by Steinberg for its own company purposes, and for the purposes of its Company Group, within the meaning of the relevant Data P +rotection laws. +\par }\pard \qj \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin0\lin0\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang1033\langfe1031\langnp1033 \hich\af36\dbch\af0\loch\f36 3.\tab}}\pard \qj \fi-705\li705\ri0\nowidctlpar\tx709{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin0\lin705\itap0\pararsid11812474 {\fs22\insrsid11812474 +If any one stipulation of this License contract should be or become invalid, completely or in part, this shall not affect the validity of the remaining stipulations. The parties undertake instead to replace the invalid stipulations wit +h a valid regulation which comes as closely as possible to the purpose originally intended. +\par }\pard \qj \li0\ri0\nowidctlpar{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin0\lin0\itap0\pararsid11812474 {\fs22\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang2057\langfe1031\langnp2057 \hich\af36\dbch\af0\loch\f36 4.\tab}}\pard \qj \fi-705\li705\ri4\nowidctlpar\tx705\tx9440{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin4\lin705\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +Amendments, supplements and notices of termination of this agreement must be made in writing. The rescission of this agreement or an alteration to the requirement of the written form must also be made in writing. Sub\- +sidiary agreements have not been concluded. +\par }\pard \qj \li0\ri4\nowidctlpar\tx9440{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin4\lin0\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang2057\langfe1031\langnp2057 \hich\af36\dbch\af0\loch\f36 5.\tab}}\pard \qj \fi-705\li705\ri4\nowidctlpar\tx720\tx9440{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin4\lin705\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +Place of jurisdiction for all disputes is Hamburg. In addition, each party can bring an action against the other party at the general place of jurisdiction of the other party. +\par }\pard \qj \li0\ri4\nowidctlpar\tx9440{\*\pn \pnlvlcont\ilvl12\ls0\pnrnot0\pndec\pnf36\pnstart1 }\faauto\ilvl12\rin4\lin0\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par {\pntext\pard\plain\f36\fs22\lang2057\langfe1031\langnp2057 \hich\af36\dbch\af0\loch\f36 6.\tab}}\pard \qj \fi-705\li705\ri4\nowidctlpar\tx720\tx9440{\*\pn \pnlvlbody\ilvl0\ls5\pnrnot0\pndec\pnf36\pnstart1\pnindent360 {\pntxta .}} +\faauto\ls5\rin4\lin705\itap0\pararsid11812474 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 This agreement does not require a specific form (e.g. recording by a notary). +\par }\pard \qj \li0\ri0\nowidctlpar\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin0\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard\plain \s5\ql \li20\ri4\keepn\nowidctlpar\tx720\tx9440\faauto\outlinelevel4\rin4\lin20\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par +\par +\par +\par }{\b\caps\fs22\lang1031\langfe1031\langnp1031\insrsid11812474 - Steinberg - +\par }\pard\plain \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang1031\langfe1031\langnp1031\insrsid11812474 Media Technologies GmbH +\par +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx2835\tx9440\faauto\rin4\lin20\itap0 {\fs22\insrsid11812474\charrsid11812474 By: \tab \tab .......................................... +\par }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Printed Signature\tab .......................................... +\par Title\tab \tab .......................................... +\par Date executed\tab .......................................... +\par +\par }{\fs22\lang1031\langfe1031\langnp1031\insrsid11812474 By: \tab \tab .......................................... +\par }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Printed Signature\tab .......................................... +\par Title\tab \tab .......................................... +\par Date executed\tab .......................................... +\par +\par }{\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par - }{\b\caps\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Licensee}{\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 - +\par }{\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par By: \tab \tab .......................................... +\par Printed Signature\tab .......................................... +\par Title\tab \tab .......................................... +\par Date executed\tab .......................................... +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 {\fs22\insrsid11812474 \page }{\b\fs22\insrsid11812474 -Licensee- Technical Contact}{\b\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard\plain \s6\ql \li0\ri4\keepn\nowidctlpar\tx2835\faauto\outlinelevel5\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Name:\tab +------------------------------------------------------- +\par }\pard\plain \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard\plain \s6\ql \li0\ri4\keepn\nowidctlpar\tx2835\faauto\outlinelevel5\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Address:\tab +------------------------------------------------------- +\par }\pard\plain \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard\plain \s6\ql \li0\ri4\keepn\nowidctlpar\tx2835\faauto\outlinelevel5\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Phone:\tab +------------------------------------------------------- +\par }\pard\plain \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard\plain \s6\ql \li0\ri4\keepn\nowidctlpar\tx2835\faauto\outlinelevel5\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Fax:\tab +------------------------------------------------------- +\par }\pard\plain \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par +\par }\pard\plain \s6\ql \li0\ri4\keepn\nowidctlpar\tx2835\faauto\outlinelevel5\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 Email:\tab +------------------------------------------------------- +\par }\pard\plain \ql \li0\ri4\nowidctlpar\faauto\rin4\lin0\itap0 \f36\fs24\lang1033\langfe1031\cgrid\langnp1033\langfenp1031 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \ql \li20\ri4\nowidctlpar\tx720\tx9440\faauto\rin4\lin20\itap0 {\fs22\lang2057\langfe1031\langnp2057\insrsid11812474 +\par }\pard \qj \li0\ri0\nowidctlpar\tx709\faauto\rin0\lin0\itap0 {\fs22\insrsid11812474 +\par }} \ No newline at end of file diff --git a/doc/gfx/folder.gif b/doc/gfx/folder.gif new file mode 100644 index 0000000..391cfee Binary files /dev/null and b/doc/gfx/folder.gif differ diff --git a/doc/gfx/mac.gif b/doc/gfx/mac.gif new file mode 100644 index 0000000..cf351cd Binary files /dev/null and b/doc/gfx/mac.gif differ diff --git a/doc/gfx/vstpluglogo_small.jpg b/doc/gfx/vstpluglogo_small.jpg new file mode 100644 index 0000000..b6672e0 Binary files /dev/null and b/doc/gfx/vstpluglogo_small.jpg differ diff --git a/doc/gfx/win.gif b/doc/gfx/win.gif new file mode 100644 index 0000000..f114497 Binary files /dev/null and b/doc/gfx/win.gif differ diff --git a/doc/html/Blocksizechange.gif b/doc/html/Blocksizechange.gif new file mode 100644 index 0000000..bf5d3f6 Binary files /dev/null and b/doc/html/Blocksizechange.gif differ diff --git a/doc/html/ControlChanged.gif b/doc/html/ControlChanged.gif new file mode 100644 index 0000000..363df0d Binary files /dev/null and b/doc/html/ControlChanged.gif differ diff --git a/doc/html/IOchange.gif b/doc/html/IOchange.gif new file mode 100644 index 0000000..7a0e2b7 Binary files /dev/null and b/doc/html/IOchange.gif differ diff --git a/doc/html/Initialisation.gif b/doc/html/Initialisation.gif new file mode 100644 index 0000000..eae1940 Binary files /dev/null and b/doc/html/Initialisation.gif differ diff --git a/doc/html/Offlineprocessing.gif b/doc/html/Offlineprocessing.gif new file mode 100644 index 0000000..14c8b3b Binary files /dev/null and b/doc/html/Offlineprocessing.gif differ diff --git a/doc/html/Sampleratechange.gif b/doc/html/Sampleratechange.gif new file mode 100644 index 0000000..4d982d7 Binary files /dev/null and b/doc/html/Sampleratechange.gif differ diff --git a/doc/html/SpeakerarrangementnegotiationforVSTfx.gif b/doc/html/SpeakerarrangementnegotiationforVSTfx.gif new file mode 100644 index 0000000..5d79765 Binary files /dev/null and b/doc/html/SpeakerarrangementnegotiationforVSTfx.gif differ diff --git a/doc/html/Termination.gif b/doc/html/Termination.gif new file mode 100644 index 0000000..b172288 Binary files /dev/null and b/doc/html/Termination.gif differ diff --git a/doc/html/TurnOff.gif b/doc/html/TurnOff.gif new file mode 100644 index 0000000..993729f Binary files /dev/null and b/doc/html/TurnOff.gif differ diff --git a/doc/html/TurnOn.gif b/doc/html/TurnOn.gif new file mode 100644 index 0000000..0c1c0fd Binary files /dev/null and b/doc/html/TurnOn.gif differ diff --git a/doc/html/aeffect_8h.html b/doc/html/aeffect_8h.html new file mode 100644 index 0000000..aed8f93 --- /dev/null +++ b/doc/html/aeffect_8h.html @@ -0,0 +1,786 @@ + + +VST SDK 2.4: aeffect.h File Reference + + + + +
+
+
+
+ +

aeffect.h File Reference

#include <string.h>
+#include <stdint.h>
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

struct  AEffect
struct  ERect

Defines

#define VSTCALLBACK
#define VST_2_1_EXTENSIONS   1
 Version 2.1 extensions (08-06-2000).
#define VST_2_2_EXTENSIONS   1
 Version 2.2 extensions (08-06-2001).
#define VST_2_3_EXTENSIONS   1
 Version 2.3 extensions (20-05-2003).
#define kVstVersion   2400
#define VST_FORCE_DEPRECATED   VST_2_4_EXTENSIONS
#define DECLARE_VST_DEPRECATED(identifier)   __##identifier##Deprecated
#define VST_64BIT_PLATFORM   _WIN64 || __LP64__
#define CCONST(a, b, c, d)   ((((VstInt32)a) << 24) | (((VstInt32)b) << 16) | (((VstInt32)c) << 8) | (((VstInt32)d) << 0))
#define kEffectMagic   CCONST ('V', 's', 't', 'P')

Typedefs

typedef int16_t VstInt16
 16 bit integer type
typedef int32_t VstInt32
 32 bit integer type
typedef int64_t VstInt64
 64 bit integer type
typedef VstInt32 VstIntPtr
 platform-dependent integer type, same size as pointer

Enumerations

enum  VstAEffectFlags {
+  effFlagsHasEditor = 1 << 0, +effFlagsCanReplacing = 1 << 4, +effFlagsProgramChunks = 1 << 5, +effFlagsIsSynth = 1 << 8, +
+  effFlagsNoSoundInStop = 1 << 9, +effFlagsCanDoubleReplacing = 1 << 12, +effFlagsHasClip = 1 << 1, +effFlagsHasVu = 1 << 2, +
+  effFlagsCanMono = 1 << 3, +effFlagsExtIsAsync = 1 << 10, +effFlagsExtHasBuffer = 1 << 11 +
+ }
enum  AEffectOpcodes {
+  effOpen = 0, +effClose, +effSetProgram, +effGetProgram, +
+  effSetProgramName, +effGetProgramName, +effGetParamLabel, +effGetParamDisplay, +
+  effGetParamName, +effGetVu, +effSetSampleRate, +effSetBlockSize, +
+  effMainsChanged, +effEditGetRect, +effEditOpen, +effEditClose, +
+  effEditDraw, +effEditMouse, +effEditKey, +effEditIdle, +
+  effEditTop, +effEditSleep, +effIdentify, +effGetChunk, +
+  effSetChunk, +effNumOpcodes +
+ }
enum  AudioMasterOpcodes {
+  audioMasterAutomate = 0, +audioMasterVersion, +audioMasterCurrentId, +audioMasterIdle, +
+  audioMasterPinConnected +
+ }
enum  VstStringConstants {
+  kVstMaxProgNameLen = 24, +kVstMaxParamStrLen = 8, +kVstMaxVendorStrLen = 64, +kVstMaxProductStrLen = 64, +
+  kVstMaxEffectNameLen = 32 +
+ }

Functions

char * vst_strncpy (char *dst, const char *src, size_t maxLen)
char * vst_strncat (char *dst, const char *src, size_t maxLen)
template<class T>
T * FromVstPtr (VstIntPtr &arg)
template<class T>
VstIntPtr ToVstPtr (T *ptr)
+

Define Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define CCONST (a,
b,
c,
 )    ((((VstInt32)a) << 24) | (((VstInt32)b) << 16) | (((VstInt32)c) << 8) | (((VstInt32)d) << 0))
+
+
+ +

+Four Character Constant (for AEffect->uniqueID) +

+

+ +

+
+ + + + + + + + + +
#define DECLARE_VST_DEPRECATED (identifier   )    __##identifier##Deprecated
+
+
+ +

+Declares identifier as deprecated. +

+

+ +

+
+ + + + +
#define kEffectMagic   CCONST ('V', 's', 't', 'P')
+
+
+ +

+AEffect magic number +

+

+ +

+
+ + + + +
#define kVstVersion   2400
+
+
+ +

+Current VST Version +

+

+ +

+
+ + + + +
#define VST_2_1_EXTENSIONS   1
+
+
+ +

+Version 2.1 extensions (08-06-2000). +

+Define SDK Version (you can generate different versions (from 2.0 to 2.4) of this SDK by setting the unwanted extensions to 0). +

+

+ +

+
+ + + + +
#define VST_2_2_EXTENSIONS   1
+
+
+ +

+Version 2.2 extensions (08-06-2001). +

+ +

+

+ +

+
+ + + + +
#define VST_2_3_EXTENSIONS   1
+
+
+ +

+Version 2.3 extensions (20-05-2003). +

+ +

+

+ +

+
+ + + + +
#define VST_64BIT_PLATFORM   _WIN64 || __LP64__
+
+
+ +

+Define for 64 Bit Platform. +

+

+ +

+
+ + + + +
#define VST_FORCE_DEPRECATED   VST_2_4_EXTENSIONS
+
+
+ +

+Disable for Hosts to serve Plug-ins below VST 2.4 +

+

+ +

+
+ + + + +
#define VSTCALLBACK
+
+
+ +

+ +

+

+


Typedef Documentation

+ +
+
+ + + + +
typedef int16_t VstInt16
+
+
+ +

+16 bit integer type +

+ +

+

+ +

+
+ + + + +
typedef int32_t VstInt32
+
+
+ +

+32 bit integer type +

+ +

+

+ +

+
+ + + + +
typedef int64_t VstInt64
+
+
+ +

+64 bit integer type +

+ +

+

+ +

+
+ + + + +
typedef VstInt32 VstIntPtr
+
+
+ +

+platform-dependent integer type, same size as pointer +

+ +

+

+


Enumeration Type Documentation

+ +
+
+ + + + +
enum AEffectOpcodes
+
+
+ +

+Basic dispatcher Opcodes (Host to Plug-in)

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
effOpen  +no arguments +

+

See also:
AudioEffect::open
+
effClose  +no arguments +

+

See also:
AudioEffect::close
+
effSetProgram  +[value]: new program number +

+

See also:
AudioEffect::setProgram
+
effGetProgram  +[return value]: current program number +

+

See also:
AudioEffect::getProgram
+
effSetProgramName  +[ptr]: char* with new program name, limited to kVstMaxProgNameLen +

+

See also:
AudioEffect::setProgramName
+
effGetProgramName  +[ptr]: char buffer for current program name, limited to kVstMaxProgNameLen +

+

See also:
AudioEffect::getProgramName
+
effGetParamLabel  +[ptr]: char buffer for parameter label, limited to kVstMaxParamStrLen +

+

See also:
AudioEffect::getParameterLabel
+
effGetParamDisplay  +[ptr]: char buffer for parameter display, limited to kVstMaxParamStrLen +

+

See also:
AudioEffect::getParameterDisplay
+
effGetParamName  +[ptr]: char buffer for parameter name, limited to kVstMaxParamStrLen +

+

See also:
AudioEffect::getParameterName
+
effGetVu  +
Deprecated:
deprecated in VST 2.4
+
effSetSampleRate  +[opt]: new sample rate for audio processing +

+

See also:
AudioEffect::setSampleRate
+
effSetBlockSize  +[value]: new maximum block size for audio processing +

+

See also:
AudioEffect::setBlockSize
+
effMainsChanged  +[value]: 0 means "turn off", 1 means "turn on" +

+

See also:
AudioEffect::suspend

+AudioEffect::resume

+
effEditGetRect  +[ptr]: ERect** receiving pointer to editor size +

+

See also:
ERect

+AEffEditor::getRect

+
effEditOpen  +[ptr]: system dependent Window pointer, e.g. HWND on Windows +

+

See also:
AEffEditor::open
+
effEditClose  +no arguments +

+

See also:
AEffEditor::close
+
effEditDraw  +
Deprecated:
deprecated in VST 2.4
+
effEditMouse  +
Deprecated:
deprecated in VST 2.4
+
effEditKey  +
Deprecated:
deprecated in VST 2.4
+
effEditIdle  +no arguments +

+

See also:
AEffEditor::idle
+
effEditTop  +
Deprecated:
deprecated in VST 2.4
+
effEditSleep  +
Deprecated:
deprecated in VST 2.4
+
effIdentify  +
Deprecated:
deprecated in VST 2.4
+
effGetChunk  +[ptr]: void** for chunk data address [index]: 0 for bank, 1 for program +

+

See also:
AudioEffect::getChunk
+
effSetChunk  +[ptr]: chunk data [value]: byte size [index]: 0 for bank, 1 for program +

+

See also:
AudioEffect::setChunk
+
effNumOpcodes  +
+
+ +
+

+ +

+
+ + + + +
enum AudioMasterOpcodes
+
+
+ +

+Basic dispatcher Opcodes (Plug-in to Host)

Enumerator:
+ + + + + + +
audioMasterAutomate  +[index]: parameter index [opt]: parameter value +

+

See also:
AudioEffect::setParameterAutomated
+
audioMasterVersion  +[return value]: Host VST version (for example 2400 for VST 2.4) +

+

See also:
AudioEffect::getMasterVersion
+
audioMasterCurrentId  +[return value]: current unique identifier on shell plug-in +

+

See also:
AudioEffect::getCurrentUniqueId
+
audioMasterIdle  +no arguments +

+

See also:
AudioEffect::masterIdle
+
audioMasterPinConnected  +
Deprecated:
deprecated in VST 2.4 r2
+
+
+ +
+

+ +

+
+ + + + +
enum VstAEffectFlags
+
+
+ +

+AEffect flags

Enumerator:
+ + + + + + + + + + + + +
effFlagsHasEditor  +set if the plug-in provides a custom editor
effFlagsCanReplacing  +supports replacing process mode (which should the default mode in VST 2.4)
effFlagsProgramChunks  +program data is handled in formatless chunks
effFlagsIsSynth  +plug-in is a synth (VSTi), Host may assign mixer channels for its outputs
effFlagsNoSoundInStop  +plug-in does not produce sound when input is all silence
effFlagsCanDoubleReplacing  +plug-in supports double precision processing
effFlagsHasClip  +
Deprecated:
deprecated in VST 2.4
+
effFlagsHasVu  +
Deprecated:
deprecated in VST 2.4
+
effFlagsCanMono  +
Deprecated:
deprecated in VST 2.4
+
effFlagsExtIsAsync  +
Deprecated:
deprecated in VST 2.4
+
effFlagsExtHasBuffer  +
Deprecated:
deprecated in VST 2.4
+
+
+ +
+

+ +

+
+ + + + +
enum VstStringConstants
+
+
+ +

+String length limits (in characters excl. 0 byte)

Enumerator:
+ + + + + + +
kVstMaxProgNameLen  +used for effGetProgramName, effSetProgramName, effGetProgramNameIndexed
kVstMaxParamStrLen  +used for effGetParamLabel, effGetParamDisplay, effGetParamName
kVstMaxVendorStrLen  +used for effGetVendorString, audioMasterGetVendorString
kVstMaxProductStrLen  +used for effGetProductString, audioMasterGetProductString
kVstMaxEffectNameLen  +used for effGetEffectName
+
+ +
+

+


Function Documentation

+ +
+
+
+template<class T>
+ + + + + + + + + +
T* FromVstPtr (VstIntPtr arg  )  [inline]
+
+
+ +

+Cast VstIntPtr to pointer. +

+

+ +

+
+
+template<class T>
+ + + + + + + + + +
VstIntPtr ToVstPtr (T *  ptr  )  [inline]
+
+
+ +

+Cast pointer to VstIntPtr. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char* vst_strncat (char *  dst,
const char *  src,
size_t  maxLen 
) [inline]
+
+
+ +

+String concatenation taking care of null terminator. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char* vst_strncpy (char *  dst,
const char *  src,
size_t  maxLen 
) [inline]
+
+
+ +

+String copy taking care of null terminator. +

+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/aeffectx_8h.html b/doc/html/aeffectx_8h.html new file mode 100644 index 0000000..20b602e --- /dev/null +++ b/doc/html/aeffectx_8h.html @@ -0,0 +1,2072 @@ + + +VST SDK 2.4: aeffectx.h File Reference + + + + +
+
+
+
+ +

aeffectx.h File Reference

#include "aeffect.h"
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Classes

struct  VstEvent
struct  VstEvents
struct  VstMidiEvent
struct  VstMidiSysexEvent
struct  VstTimeInfo
struct  VstVariableIo
struct  VstParameterProperties
struct  VstPinProperties
struct  MidiProgramName
struct  MidiProgramCategory
struct  MidiKeyName
struct  VstSpeakerProperties
struct  VstSpeakerArrangement
struct  VstOfflineTask
struct  VstAudioFile
struct  VstAudioFileMarker
struct  VstWindow
struct  VstKeyCode
struct  VstFileType
struct  VstFileSelect
struct  VstPatchChunkInfo

Enumerations

enum  Vst2StringConstants {
+  kVstMaxNameLen = 64, +kVstMaxLabelLen = 64, +kVstMaxShortLabelLen = 8, +kVstMaxCategLabelLen = 24, +
+  kVstMaxFileNameLen = 100 +
+ }
enum  VstEventTypes {
+  kVstMidiType = 1, +kVstAudioType, +kVstVideoType, +kVstParameterType, +
+  kVstTriggerType, +kVstSysExType +
+ }
enum  VstMidiEventFlags { kVstMidiEventIsRealtime = 1 << 0 + }
enum  VstTimeInfoFlags {
+  kVstTransportChanged = 1, +kVstTransportPlaying = 1 << 1, +kVstTransportCycleActive = 1 << 2, +kVstTransportRecording = 1 << 3, +
+  kVstAutomationWriting = 1 << 6, +kVstAutomationReading = 1 << 7, +kVstNanosValid = 1 << 8, +kVstPpqPosValid = 1 << 9, +
+  kVstTempoValid = 1 << 10, +kVstBarsValid = 1 << 11, +kVstCyclePosValid = 1 << 12, +kVstTimeSigValid = 1 << 13, +
+  kVstSmpteValid = 1 << 14, +kVstClockValid = 1 << 15 +
+ }
enum  VstSmpteFrameRate {
+  kVstSmpte24fps = 0, +kVstSmpte25fps = 1, +kVstSmpte2997fps = 2, +kVstSmpte30fps = 3, +
+  kVstSmpte2997dfps = 4, +kVstSmpte30dfps = 5, +kVstSmpteFilm16mm = 6, +kVstSmpteFilm35mm = 7, +
+  kVstSmpte239fps = 10, +kVstSmpte249fps = 11, +kVstSmpte599fps = 12, +kVstSmpte60fps = 13 +
+ }
enum  VstHostLanguage {
+  kVstLangEnglish = 1, +kVstLangGerman, +kVstLangFrench, +kVstLangItalian, +
+  kVstLangSpanish, +kVstLangJapanese +
+ }
enum  AudioMasterOpcodesX {
+  audioMasterWantMidi = audioMasterPinConnected + 2, +audioMasterGetTime, +audioMasterProcessEvents, +audioMasterSetTime, +
+  audioMasterTempoAt, +audioMasterGetNumAutomatableParameters, +audioMasterGetParameterQuantization, +audioMasterIOChanged, +
+  audioMasterNeedIdle, +audioMasterSizeWindow, +audioMasterGetSampleRate, +audioMasterGetBlockSize, +
+  audioMasterGetInputLatency, +audioMasterGetOutputLatency, +audioMasterGetPreviousPlug, +audioMasterGetNextPlug, +
+  audioMasterWillReplaceOrAccumulate, +audioMasterGetCurrentProcessLevel, +audioMasterGetAutomationState, +audioMasterOfflineStart, +
+  audioMasterOfflineRead, +audioMasterOfflineWrite, +audioMasterOfflineGetCurrentPass, +audioMasterOfflineGetCurrentMetaPass, +
+  audioMasterSetOutputSampleRate, +audioMasterGetOutputSpeakerArrangement, +audioMasterGetVendorString, +audioMasterGetProductString, +
+  audioMasterGetVendorVersion, +audioMasterVendorSpecific, +audioMasterSetIcon, +audioMasterCanDo, +
+  audioMasterGetLanguage, +audioMasterOpenWindow, +audioMasterCloseWindow, +audioMasterGetDirectory, +
+  audioMasterUpdateDisplay, +audioMasterBeginEdit, +audioMasterEndEdit, +audioMasterOpenFileSelector, +
+  audioMasterCloseFileSelector, +audioMasterEditFile, +audioMasterGetChunkFile, +audioMasterGetInputSpeakerArrangement +
+ }
enum  AEffectXOpcodes {
+  effProcessEvents = effSetChunk + 1, +effCanBeAutomated, +effString2Parameter, +effGetNumProgramCategories, +
+  effGetProgramNameIndexed, +effCopyProgram, +effConnectInput, +effConnectOutput, +
+  effGetInputProperties, +effGetOutputProperties, +effGetPlugCategory, +effGetCurrentPosition, +
+  effGetDestinationBuffer, +effOfflineNotify, +effOfflinePrepare, +effOfflineRun, +
+  effProcessVarIo, +effSetSpeakerArrangement, +effSetBlockSizeAndSampleRate, +effSetBypass, +
+  effGetEffectName, +effGetErrorText, +effGetVendorString, +effGetProductString, +
+  effGetVendorVersion, +effVendorSpecific, +effCanDo, +effGetTailSize, +
+  effIdle, +effGetIcon, +effSetViewPosition, +effGetParameterProperties, +
+  effKeysRequired, +effGetVstVersion, +effEditKeyDown, +effEditKeyUp, +
+  effSetEditKnobMode, +effGetMidiProgramName, +effGetCurrentMidiProgram, +effGetMidiProgramCategory, +
+  effHasMidiProgramsChanged, +effGetMidiKeyName, +effBeginSetProgram, +effEndSetProgram, +
+  effGetSpeakerArrangement, +effShellGetNextPlugin, +effStartProcess, +effStopProcess, +
+  effSetTotalSampleToProcess, +effSetPanLaw, +effBeginLoadBank, +effBeginLoadProgram, +
+  effSetProcessPrecision, +effGetNumMidiInputChannels, +effGetNumMidiOutputChannels +
+ }
enum  VstProcessPrecision { kVstProcessPrecision32 = 0, +kVstProcessPrecision64 + }
enum  VstParameterFlags {
+  kVstParameterIsSwitch = 1 << 0, +kVstParameterUsesIntegerMinMax = 1 << 1, +kVstParameterUsesFloatStep = 1 << 2, +kVstParameterUsesIntStep = 1 << 3, +
+  kVstParameterSupportsDisplayIndex = 1 << 4, +kVstParameterSupportsDisplayCategory = 1 << 5, +kVstParameterCanRamp = 1 << 6 +
+ }
enum  VstPinPropertiesFlags { kVstPinIsActive = 1 << 0, +kVstPinIsStereo = 1 << 1, +kVstPinUseSpeaker = 1 << 2 + }
enum  VstPlugCategory {
+  kPlugCategUnknown = 0, +kPlugCategEffect, +kPlugCategSynth, +kPlugCategAnalysis, +
+  kPlugCategMastering, +kPlugCategSpacializer, +kPlugCategRoomFx, +kPlugSurroundFx, +
+  kPlugCategRestoration, +kPlugCategOfflineProcess, +kPlugCategShell, +kPlugCategGenerator, +
+  kPlugCategMaxCount +
+ }
enum  VstMidiProgramNameFlags { kMidiIsOmni = 1 + }
enum  VstSpeakerType {
+  kSpeakerUndefined = 0x7fffffff, +kSpeakerM = 0, +kSpeakerL, +kSpeakerR, +
+  kSpeakerC, +kSpeakerLfe, +kSpeakerLs, +kSpeakerRs, +
+  kSpeakerLc, +kSpeakerRc, +kSpeakerS, +kSpeakerCs = kSpeakerS, +
+  kSpeakerSl, +kSpeakerSr, +kSpeakerTm, +kSpeakerTfl, +
+  kSpeakerTfc, +kSpeakerTfr, +kSpeakerTrl, +kSpeakerTrc, +
+  kSpeakerTrr, +kSpeakerLfe2 +
+ }
enum  VstUserSpeakerType {
+  kSpeakerU32 = -32, +kSpeakerU31, +kSpeakerU30, +kSpeakerU29, +
+  kSpeakerU28, +kSpeakerU27, +kSpeakerU26, +kSpeakerU25, +
+  kSpeakerU24, +kSpeakerU23, +kSpeakerU22, +kSpeakerU21, +
+  kSpeakerU20, +kSpeakerU19, +kSpeakerU18, +kSpeakerU17, +
+  kSpeakerU16, +kSpeakerU15, +kSpeakerU14, +kSpeakerU13, +
+  kSpeakerU12, +kSpeakerU11, +kSpeakerU10, +kSpeakerU9, +
+  kSpeakerU8, +kSpeakerU7, +kSpeakerU6, +kSpeakerU5, +
+  kSpeakerU4, +kSpeakerU3, +kSpeakerU2, +kSpeakerU1 +
+ }
enum  VstSpeakerArrangementType {
+  kSpeakerArrUserDefined = -2, +kSpeakerArrEmpty = -1, +kSpeakerArrMono = 0, +kSpeakerArrStereo, +
+  kSpeakerArrStereoSurround, +kSpeakerArrStereoCenter, +kSpeakerArrStereoSide, +kSpeakerArrStereoCLfe, +
+  kSpeakerArr30Cine, +kSpeakerArr30Music, +kSpeakerArr31Cine, +kSpeakerArr31Music, +
+  kSpeakerArr40Cine, +kSpeakerArr40Music, +kSpeakerArr41Cine, +kSpeakerArr41Music, +
+  kSpeakerArr50, +kSpeakerArr51, +kSpeakerArr60Cine, +kSpeakerArr60Music, +
+  kSpeakerArr61Cine, +kSpeakerArr61Music, +kSpeakerArr70Cine, +kSpeakerArr70Music, +
+  kSpeakerArr71Cine, +kSpeakerArr71Music, +kSpeakerArr80Cine, +kSpeakerArr80Music, +
+  kSpeakerArr81Cine, +kSpeakerArr81Music, +kSpeakerArr102, +kNumSpeakerArr +
+ }
enum  VstOfflineTaskFlags {
+  kVstOfflineUnvalidParameter = 1 << 0, +kVstOfflineNewFile = 1 << 1, +kVstOfflinePlugError = 1 << 10, +kVstOfflineInterleavedAudio = 1 << 11, +
+  kVstOfflineTempOutputFile = 1 << 12, +kVstOfflineFloatOutputFile = 1 << 13, +kVstOfflineRandomWrite = 1 << 14, +kVstOfflineStretch = 1 << 15, +
+  kVstOfflineNoThread = 1 << 16 +
+ }
enum  VstOfflineOption {
+  kVstOfflineAudio, +kVstOfflinePeaks, +kVstOfflineParameter, +kVstOfflineMarker, +
+  kVstOfflineCursor, +kVstOfflineSelection, +kVstOfflineQueryFiles +
+ }
enum  VstAudioFileFlags {
+  kVstOfflineReadOnly = 1 << 0, +kVstOfflineNoRateConversion = 1 << 1, +kVstOfflineNoChannelChange = 1 << 2, +kVstOfflineCanProcessSelection = 1 << 10, +
+  kVstOfflineNoCrossfade = 1 << 11, +kVstOfflineWantRead = 1 << 12, +kVstOfflineWantWrite = 1 << 13, +kVstOfflineWantWriteMarker = 1 << 14, +
+  kVstOfflineWantMoveCursor = 1 << 15, +kVstOfflineWantSelect = 1 << 16 +
+ }
enum  VstVirtualKey {
+  VKEY_BACK = 1, +VKEY_TAB, +VKEY_CLEAR, +VKEY_RETURN, +
+  VKEY_PAUSE, +VKEY_ESCAPE, +VKEY_SPACE, +VKEY_NEXT, +
+  VKEY_END, +VKEY_HOME, +VKEY_LEFT, +VKEY_UP, +
+  VKEY_RIGHT, +VKEY_DOWN, +VKEY_PAGEUP, +VKEY_PAGEDOWN, +
+  VKEY_SELECT, +VKEY_PRINT, +VKEY_ENTER, +VKEY_SNAPSHOT, +
+  VKEY_INSERT, +VKEY_DELETE, +VKEY_HELP, +VKEY_NUMPAD0, +
+  VKEY_NUMPAD1, +VKEY_NUMPAD2, +VKEY_NUMPAD3, +VKEY_NUMPAD4, +
+  VKEY_NUMPAD5, +VKEY_NUMPAD6, +VKEY_NUMPAD7, +VKEY_NUMPAD8, +
+  VKEY_NUMPAD9, +VKEY_MULTIPLY, +VKEY_ADD, +VKEY_SEPARATOR, +
+  VKEY_SUBTRACT, +VKEY_DECIMAL, +VKEY_DIVIDE, +VKEY_F1, +
+  VKEY_F2, +VKEY_F3, +VKEY_F4, +VKEY_F5, +
+  VKEY_F6, +VKEY_F7, +VKEY_F8, +VKEY_F9, +
+  VKEY_F10, +VKEY_F11, +VKEY_F12, +VKEY_NUMLOCK, +
+  VKEY_SCROLL, +VKEY_SHIFT, +VKEY_CONTROL, +VKEY_ALT, +
+  VKEY_EQUALS +
+ }
enum  VstModifierKey { MODIFIER_SHIFT = 1<<0, +MODIFIER_ALTERNATE = 1<<1, +MODIFIER_COMMAND = 1<<2, +MODIFIER_CONTROL = 1<<3 + }
enum  VstFileSelectCommand { kVstFileLoad = 0, +kVstFileSave, +kVstMultipleFilesLoad, +kVstDirectorySelect + }
enum  VstFileSelectType { kVstFileType = 0 + }
enum  VstPanLawType { kLinearPanLaw = 0, +kEqualPowerPanLaw + }
enum  VstProcessLevels {
+  kVstProcessLevelUnknown = 0, +kVstProcessLevelUser, +kVstProcessLevelRealtime, +kVstProcessLevelPrefetch, +
+  kVstProcessLevelOffline +
+ }
enum  VstAutomationStates {
+  kVstAutomationUnsupported = 0, +kVstAutomationOff, +kVstAutomationRead, +kVstAutomationWrite, +
+  kVstAutomationReadWrite +
+ }
+

Enumeration Type Documentation

+ +
+
+ + + + +
enum AEffectXOpcodes
+
+
+ +

+VST 2.x dispatcher Opcodes (Host to Plug-in). Extension of AEffectOpcodes

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
effProcessEvents  +[ptr]: VstEvents* +

+

See also:
AudioEffectX::processEvents
+
effCanBeAutomated  +[index]: parameter index [return value]: 1=true, 0=false +

+

See also:
AudioEffectX::canParameterBeAutomated
+
effString2Parameter  +[index]: parameter index [ptr]: parameter string [return value]: true for success +

+

See also:
AudioEffectX::string2parameter
+
effGetNumProgramCategories  +
Deprecated:
deprecated in VST 2.4
+
effGetProgramNameIndexed  +[index]: program index [ptr]: buffer for program name, limited to kVstMaxProgNameLen [return value]: true for success +

+

See also:
AudioEffectX::getProgramNameIndexed
+
effCopyProgram  +
Deprecated:
deprecated in VST 2.4
+
effConnectInput  +
Deprecated:
deprecated in VST 2.4
+
effConnectOutput  +
Deprecated:
deprecated in VST 2.4
+
effGetInputProperties  +[index]: input index [ptr]: VstPinProperties* [return value]: 1 if supported +

+

See also:
AudioEffectX::getInputProperties
+
effGetOutputProperties  +[index]: output index [ptr]: VstPinProperties* [return value]: 1 if supported +

+

See also:
AudioEffectX::getOutputProperties
+
effGetPlugCategory  +[return value]: category +

+

See also:
VstPlugCategory

+AudioEffectX::getPlugCategory

+
effGetCurrentPosition  +
Deprecated:
deprecated in VST 2.4
+
effGetDestinationBuffer  +
Deprecated:
deprecated in VST 2.4
+
effOfflineNotify  +[ptr]: VstAudioFile array [value]: count [index]: start flag +

+

See also:
AudioEffectX::offlineNotify
+
effOfflinePrepare  +[ptr]: VstOfflineTask array [value]: count +

+

See also:
AudioEffectX::offlinePrepare
+
effOfflineRun  +[ptr]: VstOfflineTask array [value]: count +

+

See also:
AudioEffectX::offlineRun
+
effProcessVarIo  +[ptr]: VstVariableIo* +

+

See also:
AudioEffectX::processVariableIo
+
effSetSpeakerArrangement  +[value]: input VstSpeakerArrangement* [ptr]: output VstSpeakerArrangement* +

+

See also:
AudioEffectX::setSpeakerArrangement
+
effSetBlockSizeAndSampleRate  +
Deprecated:
deprecated in VST 2.4
+
effSetBypass  +[value]: 1 = bypass, 0 = no bypass +

+

See also:
AudioEffectX::setBypass
+
effGetEffectName  +[ptr]: buffer for effect name, limited to kVstMaxEffectNameLen +

+

See also:
AudioEffectX::getEffectName
+
effGetErrorText  +
Deprecated:
deprecated in VST 2.4
+
effGetVendorString  +[ptr]: buffer for effect vendor string, limited to kVstMaxVendorStrLen +

+

See also:
AudioEffectX::getVendorString
+
effGetProductString  +[ptr]: buffer for effect vendor string, limited to kVstMaxProductStrLen +

+

See also:
AudioEffectX::getProductString
+
effGetVendorVersion  +[return value]: vendor-specific version +

+

See also:
AudioEffectX::getVendorVersion
+
effVendorSpecific  +no definition, vendor specific handling +

+

See also:
AudioEffectX::vendorSpecific
+
effCanDo  +[ptr]: "can do" string [return value]: 0: "don't know" -1: "no" 1: "yes" +

+

See also:
AudioEffectX::canDo
+
effGetTailSize  +[return value]: tail size (for example the reverb time of a reverb plug-in); 0 is default (return 1 for 'no tail')
effIdle  +
Deprecated:
deprecated in VST 2.4
+
effGetIcon  +
Deprecated:
deprecated in VST 2.4
+
effSetViewPosition  +
Deprecated:
deprecated in VST 2.4
+
effGetParameterProperties  +[index]: parameter index [ptr]: VstParameterProperties* [return value]: 1 if supported +

+

See also:
AudioEffectX::getParameterProperties
+
effKeysRequired  +
Deprecated:
deprecated in VST 2.4
+
effGetVstVersion  +[return value]: VST version +

+

See also:
AudioEffectX::getVstVersion
+
effEditKeyDown  +[index]: ASCII character [value]: virtual key [opt]: modifiers [return value]: 1 if key used +

+

See also:
AEffEditor::onKeyDown
+
effEditKeyUp  +[index]: ASCII character [value]: virtual key [opt]: modifiers [return value]: 1 if key used +

+

See also:
AEffEditor::onKeyUp
+
effSetEditKnobMode  +[value]: knob mode 0: circular, 1: circular relativ, 2: linear (CKnobMode in VSTGUI) +

+

See also:
AEffEditor::setKnobMode
+
effGetMidiProgramName  +[index]: MIDI channel [ptr]: MidiProgramName* [return value]: number of used programs, 0 if unsupported +

+

See also:
AudioEffectX::getMidiProgramName
+
effGetCurrentMidiProgram  +[index]: MIDI channel [ptr]: MidiProgramName* [return value]: index of current program +

+

See also:
AudioEffectX::getCurrentMidiProgram
+
effGetMidiProgramCategory  +[index]: MIDI channel [ptr]: MidiProgramCategory* [return value]: number of used categories, 0 if unsupported +

+

See also:
AudioEffectX::getMidiProgramCategory
+
effHasMidiProgramsChanged  +[index]: MIDI channel [return value]: 1 if the MidiProgramName(s) or MidiKeyName(s) have changed +

+

See also:
AudioEffectX::hasMidiProgramsChanged
+
effGetMidiKeyName  +[index]: MIDI channel [ptr]: MidiKeyName* [return value]: true if supported, false otherwise +

+

See also:
AudioEffectX::getMidiKeyName
+
effBeginSetProgram  +no arguments +

+

See also:
AudioEffectX::beginSetProgram
+
effEndSetProgram  +no arguments +

+

See also:
AudioEffectX::endSetProgram
+
effGetSpeakerArrangement  +[value]: input VstSpeakerArrangement* [ptr]: output VstSpeakerArrangement* +

+

See also:
AudioEffectX::getSpeakerArrangement
+
effShellGetNextPlugin  +[ptr]: buffer for plug-in name, limited to kVstMaxProductStrLen [return value]: next plugin's uniqueID +

+

See also:
AudioEffectX::getNextShellPlugin
+
effStartProcess  +no arguments +

+

See also:
AudioEffectX::startProcess
+
effStopProcess  +no arguments +

+

See also:
AudioEffectX::stopProcess
+
effSetTotalSampleToProcess  +[value]: number of samples to process, offline only! +

+

See also:
AudioEffectX::setTotalSampleToProcess
+
effSetPanLaw  +[value]: pan law [opt]: gain +

+

See also:
VstPanLawType

+AudioEffectX::setPanLaw

+
effBeginLoadBank  +[ptr]: VstPatchChunkInfo* [return value]: -1: bank can't be loaded, 1: bank can be loaded, 0: unsupported +

+

See also:
AudioEffectX::beginLoadBank
+
effBeginLoadProgram  +[ptr]: VstPatchChunkInfo* [return value]: -1: prog can't be loaded, 1: prog can be loaded, 0: unsupported +

+

See also:
AudioEffectX::beginLoadProgram
+
effSetProcessPrecision  +[value]: +

+

See also:
VstProcessPrecision

+AudioEffectX::setProcessPrecision

+
effGetNumMidiInputChannels  +[return value]: number of used MIDI input channels (1-15) +

+

See also:
AudioEffectX::getNumMidiInputChannels
+
effGetNumMidiOutputChannels  +[return value]: number of used MIDI output channels (1-15) +

+

See also:
AudioEffectX::getNumMidiOutputChannels
+
+
+ +
+

+ +

+
+ + + + +
enum AudioMasterOpcodesX
+
+
+ +

+VST 2.x dispatcher Opcodes (Plug-in to Host). Extension of AudioMasterOpcodes

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
audioMasterWantMidi  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetTime  +[return value]: VstTimeInfo* or null if not supported [value]: request mask +

+

See also:
VstTimeInfoFlags

+AudioEffectX::getTimeInfo

+
audioMasterProcessEvents  +[ptr]: pointer to VstEvents +

+

See also:
VstEvents

+AudioEffectX::sendVstEventsToHost

+
audioMasterSetTime  +
Deprecated:
deprecated in VST 2.4
+
audioMasterTempoAt  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetNumAutomatableParameters  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetParameterQuantization  +
Deprecated:
deprecated in VST 2.4
+
audioMasterIOChanged  +[return value]: 1 if supported +

+

See also:
AudioEffectX::ioChanged
+
audioMasterNeedIdle  +
Deprecated:
deprecated in VST 2.4
+
audioMasterSizeWindow  +[index]: new width [value]: new height [return value]: 1 if supported +

+

See also:
AudioEffectX::sizeWindow
+
audioMasterGetSampleRate  +[return value]: current sample rate +

+

See also:
AudioEffectX::updateSampleRate
+
audioMasterGetBlockSize  +[return value]: current block size +

+

See also:
AudioEffectX::updateBlockSize
+
audioMasterGetInputLatency  +[return value]: input latency in audio samples +

+

See also:
AudioEffectX::getInputLatency
+
audioMasterGetOutputLatency  +[return value]: output latency in audio samples +

+

See also:
AudioEffectX::getOutputLatency
+
audioMasterGetPreviousPlug  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetNextPlug  +
Deprecated:
deprecated in VST 2.4
+
audioMasterWillReplaceOrAccumulate  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetCurrentProcessLevel  +[return value]: current process level +

+

See also:
VstProcessLevels
+
audioMasterGetAutomationState  +[return value]: current automation state +

+

See also:
VstAutomationStates
+
audioMasterOfflineStart  +[index]: numNewAudioFiles [value]: numAudioFiles [ptr]: VstAudioFile* +

+

See also:
AudioEffectX::offlineStart
+
audioMasterOfflineRead  +[index]: bool readSource [value]: VstOfflineOption* +

+

See also:
VstOfflineOption [ptr]: VstOfflineTask*

+VstOfflineTask

+AudioEffectX::offlineRead

+
audioMasterOfflineWrite  +
See also:
audioMasterOfflineRead

+AudioEffectX::offlineRead

+
audioMasterOfflineGetCurrentPass  +
See also:
AudioEffectX::offlineGetCurrentPass
+
audioMasterOfflineGetCurrentMetaPass  +
See also:
AudioEffectX::offlineGetCurrentMetaPass
+
audioMasterSetOutputSampleRate  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetOutputSpeakerArrangement  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetVendorString  +[ptr]: char buffer for vendor string, limited to kVstMaxVendorStrLen +

+

See also:
AudioEffectX::getHostVendorString
+
audioMasterGetProductString  +[ptr]: char buffer for vendor string, limited to kVstMaxProductStrLen +

+

See also:
AudioEffectX::getHostProductString
+
audioMasterGetVendorVersion  +[return value]: vendor-specific version +

+

See also:
AudioEffectX::getHostVendorVersion
+
audioMasterVendorSpecific  +no definition, vendor specific handling +

+

See also:
AudioEffectX::hostVendorSpecific
+
audioMasterSetIcon  +
Deprecated:
deprecated in VST 2.4
+
audioMasterCanDo  +[ptr]: "can do" string [return value]: 1 for supported
audioMasterGetLanguage  +[return value]: language code +

+

See also:
VstHostLanguage
+
audioMasterOpenWindow  +
Deprecated:
deprecated in VST 2.4
+
audioMasterCloseWindow  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetDirectory  +[return value]: FSSpec on MAC, else char* +

+

See also:
AudioEffectX::getDirectory
+
audioMasterUpdateDisplay  +no arguments
audioMasterBeginEdit  +[index]: parameter index +

+

See also:
AudioEffectX::beginEdit
+
audioMasterEndEdit  +[index]: parameter index +

+

See also:
AudioEffectX::endEdit
+
audioMasterOpenFileSelector  +[ptr]: VstFileSelect* [return value]: 1 if supported +

+

See also:
AudioEffectX::openFileSelector
+
audioMasterCloseFileSelector  +[ptr]: VstFileSelect* +

+

See also:
AudioEffectX::closeFileSelector
+
audioMasterEditFile  +
Deprecated:
deprecated in VST 2.4
+
audioMasterGetChunkFile  +
Deprecated:
deprecated in VST 2.4 [ptr]: char[2048] or sizeof (FSSpec) [return value]: 1 if supported
+
See also:
AudioEffectX::getChunkFile
+
audioMasterGetInputSpeakerArrangement  +
Deprecated:
deprecated in VST 2.4
+
+
+ +
+

+ +

+
+ + + + +
enum Vst2StringConstants
+
+
+ +

+String length limits (in characters excl. 0 byte).

Enumerator:
+ + + + + + +
kVstMaxNameLen  +used for MidiProgramName, MidiProgramCategory, MidiKeyName, VstSpeakerProperties, VstPinProperties
kVstMaxLabelLen  +used for VstParameterProperties->label, VstPinProperties->label
kVstMaxShortLabelLen  +used for VstParameterProperties->shortLabel, VstPinProperties->shortLabel
kVstMaxCategLabelLen  +used for VstParameterProperties->label
kVstMaxFileNameLen  +used for VstAudioFile->name
+
+ +
+

+ +

+
+ + + + +
enum VstAudioFileFlags
+
+
+ +

+Flags used in VstAudioFile.

Enumerator:
+ + + + + + + + + + + +
kVstOfflineReadOnly  +set by Host (in call offlineNotify)
kVstOfflineNoRateConversion  +set by Host (in call offlineNotify)
kVstOfflineNoChannelChange  +set by Host (in call offlineNotify)
kVstOfflineCanProcessSelection  +set by plug-in (in call offlineStart)
kVstOfflineNoCrossfade  +set by plug-in (in call offlineStart)
kVstOfflineWantRead  +set by plug-in (in call offlineStart)
kVstOfflineWantWrite  +set by plug-in (in call offlineStart)
kVstOfflineWantWriteMarker  +set by plug-in (in call offlineStart)
kVstOfflineWantMoveCursor  +set by plug-in (in call offlineStart)
kVstOfflineWantSelect  +set by plug-in (in call offlineStart)
+
+ +
+

+ +

+
+ + + + +
enum VstAutomationStates
+
+
+ +

+Automation States returned by audioMasterGetAutomationState.

Enumerator:
+ + + + + + +
kVstAutomationUnsupported  +not supported by Host
kVstAutomationOff  +off
kVstAutomationRead  +read
kVstAutomationWrite  +write
kVstAutomationReadWrite  +read and write
+
+ +
+

+ +

+
+ + + + +
enum VstEventTypes
+
+
+ +

+VstEvent Types used by VstEvent.

Enumerator:
+ + + + + + + +
kVstMidiType  +MIDI event. +

+

See also:
VstMidiEvent
+
kVstAudioType  +
Deprecated:
unused event type
+
kVstVideoType  +
Deprecated:
unused event type
+
kVstParameterType  +
Deprecated:
unused event type
+
kVstTriggerType  +
Deprecated:
unused event type
+
kVstSysExType  +MIDI system exclusive. +

+

See also:
VstMidiSysexEvent
+
+
+ +
+

+ +

+
+ + + + +
enum VstFileSelectCommand
+
+
+ +

+Command constants used in VstFileSelect structure.

Enumerator:
+ + + + + +
kVstFileLoad  +for loading a file
kVstFileSave  +for saving a file
kVstMultipleFilesLoad  +for loading multiple files
kVstDirectorySelect  +for selecting a directory/folder
+
+ +
+

+ +

+
+ + + + +
enum VstFileSelectType
+
+
+ +

+Types used in VstFileSelect structure.

Enumerator:
+ + +
kVstFileType  +regular file selector
+
+ +
+

+ +

+
+ + + + +
enum VstHostLanguage
+
+
+ +

+Language code returned by audioMasterGetLanguage.

Enumerator:
+ + + + + + + +
kVstLangEnglish  +English.
kVstLangGerman  +German.
kVstLangFrench  +French.
kVstLangItalian  +Italian.
kVstLangSpanish  +Spanish.
kVstLangJapanese  +Japanese.
+
+ +
+

+ +

+
+ + + + +
enum VstMidiEventFlags
+
+
+ +

+Flags used in VstMidiEvent.

Enumerator:
+ + +
kVstMidiEventIsRealtime  +means that this event is played life (not in playback from a sequencer track).
+ This allows the Plug-In to handle these flagged events with higher priority, especially when the Plug-In has a big latency (AEffect::initialDelay)
+
+ +
+

+ +

+
+ + + + +
enum VstMidiProgramNameFlags
+
+
+ +

+Flags used in MidiProgramName.

Enumerator:
+ + +
kMidiIsOmni  +default is multi. for omni mode, channel 0 is used for inquiries and program changes
+
+ +
+

+ +

+
+ + + + +
enum VstModifierKey
+
+
+ +

+Modifier flags used in VstKeyCode.

Enumerator:
+ + + + + +
MODIFIER_SHIFT  +Shift.
MODIFIER_ALTERNATE  +Alt.
MODIFIER_COMMAND  +Control on Mac.
MODIFIER_CONTROL  +Ctrl on PC, Apple on Mac.
+
+ +
+

+ +

+
+ + + + +
enum VstOfflineOption
+
+
+ +

+Option passed to offlineRead/offlineWrite.

Enumerator:
+ + + + + + + + +
kVstOfflineAudio  +reading/writing audio samples
kVstOfflinePeaks  +reading graphic representation
kVstOfflineParameter  +reading/writing parameters
kVstOfflineMarker  +reading/writing marker
kVstOfflineCursor  +reading/moving edit cursor
kVstOfflineSelection  +reading/changing selection
kVstOfflineQueryFiles  +to request the Host to call asynchronously offlineNotify
+
+ +
+

+ +

+
+ + + + +
enum VstOfflineTaskFlags
+
+
+ +

+Flags used in VstOfflineTask.

Enumerator:
+ + + + + + + + + + +
kVstOfflineUnvalidParameter  +set by Host
kVstOfflineNewFile  +set by Host
kVstOfflinePlugError  +set by plug-in
kVstOfflineInterleavedAudio  +set by plug-in
kVstOfflineTempOutputFile  +set by plug-in
kVstOfflineFloatOutputFile  +set by plug-in
kVstOfflineRandomWrite  +set by plug-in
kVstOfflineStretch  +set by plug-in
kVstOfflineNoThread  +set by plug-in
+
+ +
+

+ +

+
+ + + + +
enum VstPanLawType
+
+
+ +

+PanLaw Type.

Enumerator:
+ + + +
kLinearPanLaw  +L = pan * M; R = (1 - pan) * M;.
kEqualPowerPanLaw  +L = pow (pan, 0.5) * M; R = pow ((1 - pan), 0.5) * M;.
+
+ +
+

+ +

+
+ + + + +
enum VstParameterFlags
+
+
+ +

+Flags used in VstParameterProperties.

Enumerator:
+ + + + + + + + +
kVstParameterIsSwitch  +parameter is a switch (on/off)
kVstParameterUsesIntegerMinMax  +minInteger, maxInteger valid
kVstParameterUsesFloatStep  +stepFloat, smallStepFloat, largeStepFloat valid
kVstParameterUsesIntStep  +stepInteger, largeStepInteger valid
kVstParameterSupportsDisplayIndex  +displayIndex valid
kVstParameterSupportsDisplayCategory  +category, etc. valid
kVstParameterCanRamp  +set if parameter value can ramp up/down
+
+ +
+

+ +

+
+ + + + +
enum VstPinPropertiesFlags
+
+
+ +

+Flags used in VstPinProperties.

Enumerator:
+ + + + +
kVstPinIsActive  +pin is active, ignored by Host
kVstPinIsStereo  +pin is first of a stereo pair
kVstPinUseSpeaker  +VstPinProperties::arrangementType is valid and can be used to get the wanted arrangement
+
+ +
+

+ +

+
+ + + + +
enum VstPlugCategory
+
+
+ +

+Plug-in Categories.

Enumerator:
+ + + + + + + + + + + + + + +
kPlugCategUnknown  +Unknown, category not implemented.
kPlugCategEffect  +Simple Effect.
kPlugCategSynth  +VST Instrument (Synths, samplers,...).
kPlugCategAnalysis  +Scope, Tuner, ...
kPlugCategMastering  +Dynamics, ...
kPlugCategSpacializer  +Panners, ...
kPlugCategRoomFx  +Delays and Reverbs.
kPlugSurroundFx  +Dedicated surround processor.
kPlugCategRestoration  +Denoiser, ...
kPlugCategOfflineProcess  +Offline Process.
kPlugCategShell  +Plug-in is container of other plug-ins. +

+

See also:
effShellGetNextPlugin
+
kPlugCategGenerator  +ToneGenerator, ...
kPlugCategMaxCount  +Marker to count the categories.
+
+ +
+

+ +

+
+ + + + +
enum VstProcessLevels
+
+
+ +

+Process Levels returned by audioMasterGetCurrentProcessLevel.

Enumerator:
+ + + + + + +
kVstProcessLevelUnknown  +not supported by Host
kVstProcessLevelUser  +1: currently in user thread (GUI)
kVstProcessLevelRealtime  +2: currently in audio thread (where process is called)
kVstProcessLevelPrefetch  +3: currently in 'sequencer' thread (MIDI, timer etc)
kVstProcessLevelOffline  +4: currently offline processing and thus in user thread
+
+ +
+

+ +

+
+ + + + +
enum VstProcessPrecision
+
+
+ +

+Symbolic precision constants used for effSetProcessPrecision.

Enumerator:
+ + + +
kVstProcessPrecision32  +single precision float (32bits)
kVstProcessPrecision64  +double precision (64bits)
+
+ +
+

+ +

+
+ + + + +
enum VstSmpteFrameRate
+
+
+ +

+SMPTE Frame Rates.

Enumerator:
+ + + + + + + + + + + + + +
kVstSmpte24fps  +24 fps
kVstSmpte25fps  +25 fps
kVstSmpte2997fps  +29.97 fps
kVstSmpte30fps  +30 fps
kVstSmpte2997dfps  +29.97 drop
kVstSmpte30dfps  +30 drop
kVstSmpteFilm16mm  +Film 16mm.
kVstSmpteFilm35mm  +Film 35mm.
kVstSmpte239fps  +HDTV: 23.976 fps.
kVstSmpte249fps  +HDTV: 24.976 fps.
kVstSmpte599fps  +HDTV: 59.94 fps.
kVstSmpte60fps  +HDTV: 60 fps.
+
+ +
+

+ +

+
+ + + + +
enum VstSpeakerArrangementType
+
+
+ +

+Speaker Arrangement Types

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
kSpeakerArrUserDefined  +user defined
kSpeakerArrEmpty  +empty arrangement
kSpeakerArrMono  +M.
kSpeakerArrStereo  +L R.
kSpeakerArrStereoSurround  +Ls Rs.
kSpeakerArrStereoCenter  +Lc Rc.
kSpeakerArrStereoSide  +Sl Sr.
kSpeakerArrStereoCLfe  +C Lfe.
kSpeakerArr30Cine  +L R C.
kSpeakerArr30Music  +L R S.
kSpeakerArr31Cine  +L R C Lfe.
kSpeakerArr31Music  +L R Lfe S.
kSpeakerArr40Cine  +L R C S (LCRS).
kSpeakerArr40Music  +L R Ls Rs (Quadro).
kSpeakerArr41Cine  +L R C Lfe S (LCRS+Lfe).
kSpeakerArr41Music  +L R Lfe Ls Rs (Quadro+Lfe).
kSpeakerArr50  +L R C Ls Rs.
kSpeakerArr51  +L R C Lfe Ls Rs.
kSpeakerArr60Cine  +L R C Ls Rs Cs.
kSpeakerArr60Music  +L R Ls Rs Sl Sr.
kSpeakerArr61Cine  +L R C Lfe Ls Rs Cs.
kSpeakerArr61Music  +L R Lfe Ls Rs Sl Sr.
kSpeakerArr70Cine  +L R C Ls Rs Lc Rc.
kSpeakerArr70Music  +L R C Ls Rs Sl Sr.
kSpeakerArr71Cine  +L R C Lfe Ls Rs Lc Rc.
kSpeakerArr71Music  +L R C Lfe Ls Rs Sl Sr.
kSpeakerArr80Cine  +L R C Ls Rs Lc Rc Cs.
kSpeakerArr80Music  +L R C Ls Rs Cs Sl Sr.
kSpeakerArr81Cine  +L R C Lfe Ls Rs Lc Rc Cs.
kSpeakerArr81Music  +L R C Lfe Ls Rs Cs Sl Sr.
kSpeakerArr102  +L R C Lfe Ls Rs Tfl Tfc Tfr Trl Trr Lfe2.
kNumSpeakerArr  +
+
+ +
+

+ +

+
+ + + + +
enum VstSpeakerType
+
+
+ +

+Speaker Types.

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + +
kSpeakerUndefined  +Undefined.
kSpeakerM  +Mono (M).
kSpeakerL  +Left (L).
kSpeakerR  +Right (R).
kSpeakerC  +Center (C).
kSpeakerLfe  +Subbass (Lfe).
kSpeakerLs  +Left Surround (Ls).
kSpeakerRs  +Right Surround (Rs).
kSpeakerLc  +Left of Center (Lc).
kSpeakerRc  +Right of Center (Rc).
kSpeakerS  +Surround (S).
kSpeakerCs  +Center of Surround (Cs) = Surround (S).
kSpeakerSl  +Side Left (Sl).
kSpeakerSr  +Side Right (Sr).
kSpeakerTm  +Top Middle (Tm).
kSpeakerTfl  +Top Front Left (Tfl).
kSpeakerTfc  +Top Front Center (Tfc).
kSpeakerTfr  +Top Front Right (Tfr).
kSpeakerTrl  +Top Rear Left (Trl).
kSpeakerTrc  +Top Rear Center (Trc).
kSpeakerTrr  +Top Rear Right (Trr).
kSpeakerLfe2  +Subbass 2 (Lfe2).
+
+ +
+

+ +

+
+ + + + +
enum VstTimeInfoFlags
+
+
+ +

+Flags used in VstTimeInfo.

Enumerator:
+ + + + + + + + + + + + + + + +
kVstTransportChanged  +indicates that play, cycle or record state has changed
kVstTransportPlaying  +set if Host sequencer is currently playing
kVstTransportCycleActive  +set if Host sequencer is in cycle mode
kVstTransportRecording  +set if Host sequencer is in record mode
kVstAutomationWriting  +set if automation write mode active (record parameter changes)
kVstAutomationReading  +set if automation read mode active (play parameter changes)
kVstNanosValid  +VstTimeInfo::nanoSeconds valid.
kVstPpqPosValid  +VstTimeInfo::ppqPos valid.
kVstTempoValid  +VstTimeInfo::tempo valid.
kVstBarsValid  +VstTimeInfo::barStartPos valid.
kVstCyclePosValid  +VstTimeInfo::cycleStartPos and VstTimeInfo::cycleEndPos valid.
kVstTimeSigValid  +VstTimeInfo::timeSigNumerator and VstTimeInfo::timeSigDenominator valid.
kVstSmpteValid  +VstTimeInfo::smpteOffset and VstTimeInfo::smpteFrameRate valid.
kVstClockValid  +VstTimeInfo::samplesToNextClock valid.
+
+ +
+

+ +

+
+ + + + +
enum VstUserSpeakerType
+
+
+ +

+User-defined speaker types, to be extended in the negative range. Will be handled as their corresponding speaker types with abs values: e.g abs(kSpeakerU1) == kSpeakerL, abs(kSpeakerU2) == kSpeakerR)

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
kSpeakerU32  +
kSpeakerU31  +
kSpeakerU30  +
kSpeakerU29  +
kSpeakerU28  +
kSpeakerU27  +
kSpeakerU26  +
kSpeakerU25  +
kSpeakerU24  +
kSpeakerU23  +
kSpeakerU22  +
kSpeakerU21  +
kSpeakerU20  +== kSpeakerLfe2
kSpeakerU19  +== kSpeakerTrr
kSpeakerU18  +== kSpeakerTrc
kSpeakerU17  +== kSpeakerTrl
kSpeakerU16  +== kSpeakerTfr
kSpeakerU15  +== kSpeakerTfc
kSpeakerU14  +== kSpeakerTfl
kSpeakerU13  +== kSpeakerTm
kSpeakerU12  +== kSpeakerSr
kSpeakerU11  +== kSpeakerSl
kSpeakerU10  +== kSpeakerCs
kSpeakerU9  +== kSpeakerS
kSpeakerU8  +== kSpeakerRc
kSpeakerU7  +== kSpeakerLc
kSpeakerU6  +== kSpeakerRs
kSpeakerU5  +== kSpeakerLs
kSpeakerU4  +== kSpeakerLfe
kSpeakerU3  +== kSpeakerC
kSpeakerU2  +== kSpeakerR
kSpeakerU1  +== kSpeakerL
+
+ +
+

+ +

+
+ + + + +
enum VstVirtualKey
+
+
+ +

+Platform-independent definition of Virtual Keys (used in VstKeyCode).

Enumerator:
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VKEY_BACK  +
VKEY_TAB  +
VKEY_CLEAR  +
VKEY_RETURN  +
VKEY_PAUSE  +
VKEY_ESCAPE  +
VKEY_SPACE  +
VKEY_NEXT  +
VKEY_END  +
VKEY_HOME  +
VKEY_LEFT  +
VKEY_UP  +
VKEY_RIGHT  +
VKEY_DOWN  +
VKEY_PAGEUP  +
VKEY_PAGEDOWN  +
VKEY_SELECT  +
VKEY_PRINT  +
VKEY_ENTER  +
VKEY_SNAPSHOT  +
VKEY_INSERT  +
VKEY_DELETE  +
VKEY_HELP  +
VKEY_NUMPAD0  +
VKEY_NUMPAD1  +
VKEY_NUMPAD2  +
VKEY_NUMPAD3  +
VKEY_NUMPAD4  +
VKEY_NUMPAD5  +
VKEY_NUMPAD6  +
VKEY_NUMPAD7  +
VKEY_NUMPAD8  +
VKEY_NUMPAD9  +
VKEY_MULTIPLY  +
VKEY_ADD  +
VKEY_SEPARATOR  +
VKEY_SUBTRACT  +
VKEY_DECIMAL  +
VKEY_DIVIDE  +
VKEY_F1  +
VKEY_F2  +
VKEY_F3  +
VKEY_F4  +
VKEY_F5  +
VKEY_F6  +
VKEY_F7  +
VKEY_F8  +
VKEY_F9  +
VKEY_F10  +
VKEY_F11  +
VKEY_F12  +
VKEY_NUMLOCK  +
VKEY_SCROLL  +
VKEY_SHIFT  +
VKEY_CONTROL  +
VKEY_ALT  +
VKEY_EQUALS  +
+
+ +
+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/aeffeditor_8h.html b/doc/html/aeffeditor_8h.html new file mode 100644 index 0000000..c15f63a --- /dev/null +++ b/doc/html/aeffeditor_8h.html @@ -0,0 +1,49 @@ + + +VST SDK 2.4: aeffeditor.h File Reference + + + + +
+
+
+
+ +

aeffeditor.h File Reference

#include "audioeffectx.h"
+ + + + + +

Classes

class  AEffEditor
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/annotated.html b/doc/html/annotated.html new file mode 100644 index 0000000..d800eaa --- /dev/null +++ b/doc/html/annotated.html @@ -0,0 +1,71 @@ + + +VST SDK 2.4: Class List + + + + +
+
+
+
+

VST SDK 2.4 Class List

Here are the classes, structs, unions and interfaces with brief descriptions: + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AEffect
AEffEditor
AudioEffect
AudioEffectX
ERect
fxBank
fxProgram
MidiKeyName
MidiProgramCategory
MidiProgramName
VstAudioFile
VstAudioFileMarker
VstEvent
VstEvents
VstFileSelect
VstFileType
VstKeyCode
VstMidiEvent
VstMidiSysexEvent
VstOfflineTask
VstParameterProperties
VstPatchChunkInfo
VstPinProperties
VstSpeakerArrangement
VstSpeakerProperties
VstTimeInfo
VstVariableIo
VstWindow
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/audioeffect_8cpp.html b/doc/html/audioeffect_8cpp.html new file mode 100644 index 0000000..c7f5af9 --- /dev/null +++ b/doc/html/audioeffect_8cpp.html @@ -0,0 +1,50 @@ + + +VST SDK 2.4: audioeffect.cpp File Reference + + + + +
+
+
+
+ +

audioeffect.cpp File Reference

#include "audioeffect.h"
+#include "aeffeditor.h"
+#include <stddef.h>
+#include <stdio.h>
+#include <math.h>
+ + +
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/audioeffect_8h.html b/doc/html/audioeffect_8h.html new file mode 100644 index 0000000..96ddbbb --- /dev/null +++ b/doc/html/audioeffect_8h.html @@ -0,0 +1,49 @@ + + +VST SDK 2.4: audioeffect.h File Reference + + + + +
+
+
+
+ +

audioeffect.h File Reference

#include "pluginterfaces/vst2.x/aeffect.h"
+ + + + + +

Classes

class  AudioEffect
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/audioeffectx_8cpp.html b/doc/html/audioeffectx_8cpp.html new file mode 100644 index 0000000..ae6ce3c --- /dev/null +++ b/doc/html/audioeffectx_8cpp.html @@ -0,0 +1,119 @@ + + +VST SDK 2.4: audioeffectx.cpp File Reference + + + + +
+
+
+
+ +

audioeffectx.cpp File Reference

#include "audioeffectx.h"
+#include "aeffeditor.h"
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Namespaces

namespace  HostCanDos
namespace  PlugCanDos

Variables

const char * HostCanDos::canDoSendVstEvents = "sendVstEvents"
 Host supports send of Vst events to plug-in.
const char * HostCanDos::canDoSendVstMidiEvent = "sendVstMidiEvent"
 Host supports send of MIDI events to plug-in.
const char * HostCanDos::canDoSendVstTimeInfo = "sendVstTimeInfo"
 Host supports send of VstTimeInfo to plug-in.
const char * HostCanDos::canDoReceiveVstEvents = "receiveVstEvents"
 Host can receive Vst events from plug-in.
const char * HostCanDos::canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
 Host can receive MIDI events from plug-in.
const char * HostCanDos::canDoReportConnectionChanges = "reportConnectionChanges"
 Host will indicates the plug-in when something change in plug-in´s routing/connections with suspend/resume/setSpeakerArrangement.
const char * HostCanDos::canDoAcceptIOChanges = "acceptIOChanges"
 Host supports ioChanged ().
const char * HostCanDos::canDoSizeWindow = "sizeWindow"
 used by VSTGUI
const char * HostCanDos::canDoOffline = "offline"
 Host supports offline feature.
const char * HostCanDos::canDoOpenFileSelector = "openFileSelector"
 Host supports function openFileSelector ().
const char * HostCanDos::canDoCloseFileSelector = "closeFileSelector"
 Host supports function closeFileSelector ().
const char * HostCanDos::canDoStartStopProcess = "startStopProcess"
 Host supports functions startProcess () and stopProcess ().
const char * HostCanDos::canDoShellCategory = "shellCategory"
 'shell' handling via uniqueID. If supported by the Host and the Plug-in has the category kPlugCategShell
const char * HostCanDos::canDoSendVstMidiEventFlagIsRealtime = "sendVstMidiEventFlagIsRealtime"
 Host supports flags for VstMidiEvent.
const char * PlugCanDos::canDoSendVstEvents = "sendVstEvents"
 plug-in will send Vst events to Host
const char * PlugCanDos::canDoSendVstMidiEvent = "sendVstMidiEvent"
 plug-in will send MIDI events to Host
const char * PlugCanDos::canDoReceiveVstEvents = "receiveVstEvents"
 plug-in can receive MIDI events from Host
const char * PlugCanDos::canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
 plug-in can receive MIDI events from Host
const char * PlugCanDos::canDoReceiveVstTimeInfo = "receiveVstTimeInfo"
 plug-in can receive Time info from Host
const char * PlugCanDos::canDoOffline = "offline"
 plug-in supports offline functions (offlineNotify, offlinePrepare, offlineRun)
const char * PlugCanDos::canDoMidiProgramNames = "midiProgramNames"
 plug-in supports function getMidiProgramName ()
const char * PlugCanDos::canDoBypass = "bypass"
 plug-in supports function setBypass ()
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/audioeffectx_8h.html b/doc/html/audioeffectx_8h.html new file mode 100644 index 0000000..d6ae7e5 --- /dev/null +++ b/doc/html/audioeffectx_8h.html @@ -0,0 +1,50 @@ + + +VST SDK 2.4: audioeffectx.h File Reference + + + + +
+
+
+
+ +

audioeffectx.h File Reference

#include "audioeffect.h"
+#include "pluginterfaces/vst2.x/aeffectx.h"
+ + + + + +

Classes

class  AudioEffectX
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_a_eff_editor-members.html b/doc/html/class_a_eff_editor-members.html new file mode 100644 index 0000000..436b459 --- /dev/null +++ b/doc/html/class_a_eff_editor-members.html @@ -0,0 +1,56 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

AEffEditor Member List

This is the complete list of members for AEffEditor, including all inherited members.

+ + + + + + + + + + + + + + +
AEffEditor(AudioEffect *effect=0)AEffEditor [inline]
close()AEffEditor [inline, virtual]
effectAEffEditor [protected]
getEffect()AEffEditor [inline, virtual]
getRect(ERect **rect)AEffEditor [inline, virtual]
idle()AEffEditor [inline, virtual]
isOpen()AEffEditor [inline, virtual]
onKeyDown(VstKeyCode &keyCode)AEffEditor [inline, virtual]
onKeyUp(VstKeyCode &keyCode)AEffEditor [inline, virtual]
onWheel(float distance)AEffEditor [inline, virtual]
open(void *ptr)AEffEditor [inline, virtual]
setKnobMode(VstInt32 val)AEffEditor [inline, virtual]
systemWindowAEffEditor [protected]
~AEffEditor()AEffEditor [inline, virtual]
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_a_eff_editor.html b/doc/html/class_a_eff_editor.html new file mode 100644 index 0000000..af504a9 --- /dev/null +++ b/doc/html/class_a_eff_editor.html @@ -0,0 +1,390 @@ + + +VST SDK 2.4: AEffEditor Class Reference + + + + +
+
+
+
+

AEffEditor Class Reference

#include <aeffeditor.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 AEffEditor (AudioEffect *effect=0)
virtual ~AEffEditor ()
virtual AudioEffectgetEffect ()
 Returns associated effect instance.
virtual bool getRect (ERect **rect)
 Query editor size as ERect.
virtual bool open (void *ptr)
 Open editor, pointer to parent windows is platform-dependent (HWND on Windows, WindowRef on Mac).
virtual void close ()
 Close editor (detach from parent window).
virtual bool isOpen ()
 Returns true if editor is currently open.
virtual void idle ()
 Idle call supplied by Host application.
virtual bool onKeyDown (VstKeyCode &keyCode)
 Receive key down event. Return true only if key was really used!
virtual bool onKeyUp (VstKeyCode &keyCode)
 Receive key up event. Return true only if key was really used!
virtual bool onWheel (float distance)
 Handle mouse wheel event, distance is positive or negative to indicate wheel direction.
virtual bool setKnobMode (VstInt32 val)
 Set knob mode (if supported by Host). See CKnobMode in VSTGUI.

Protected Attributes

AudioEffecteffect
 associated effect instance
void * systemWindow
 platform-dependent parent window (HWND or WindowRef)
+


Detailed Description

+VST Effect Editor class. +

+


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + +
AEffEditor::AEffEditor (AudioEffect effect = 0  )  [inline]
+
+
+ +

+

Parameters:
+ + +
effect  +Editor class constructor. Requires pointer to associated effect instance.
+
+
+

+ +

+
+ + + + + + + + +
virtual AEffEditor::~AEffEditor (  )  [inline, virtual]
+
+
+ +

+ +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + +
virtual void AEffEditor::close (  )  [inline, virtual]
+
+
+ +

+Close editor (detach from parent window). +

+ +

+

+ +

+
+ + + + + + + + +
virtual AudioEffect* AEffEditor::getEffect (  )  [inline, virtual]
+
+
+ +

+Returns associated effect instance. +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::getRect (ERect **  rect  )  [inline, virtual]
+
+
+ +

+Query editor size as ERect. +

+ +

+

+ +

+
+ + + + + + + + +
virtual void AEffEditor::idle (  )  [inline, virtual]
+
+
+ +

+Idle call supplied by Host application. +

+ +

+

+ +

+
+ + + + + + + + +
virtual bool AEffEditor::isOpen (  )  [inline, virtual]
+
+
+ +

+Returns true if editor is currently open. +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::onKeyDown (VstKeyCode keyCode  )  [inline, virtual]
+
+
+ +

+Receive key down event. Return true only if key was really used! +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::onKeyUp (VstKeyCode keyCode  )  [inline, virtual]
+
+
+ +

+Receive key up event. Return true only if key was really used! +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::onWheel (float  distance  )  [inline, virtual]
+
+
+ +

+Handle mouse wheel event, distance is positive or negative to indicate wheel direction. +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::open (void *  ptr  )  [inline, virtual]
+
+
+ +

+Open editor, pointer to parent windows is platform-dependent (HWND on Windows, WindowRef on Mac). +

+ +

+

+ +

+
+ + + + + + + + + +
virtual bool AEffEditor::setKnobMode (VstInt32  val  )  [inline, virtual]
+
+
+ +

+Set knob mode (if supported by Host). See CKnobMode in VSTGUI. +

+ +

+

+


Member Data Documentation

+ +
+
+ + + + +
AudioEffect* AEffEditor::effect [protected]
+
+
+ +

+associated effect instance +

+ +

+

+ +

+
+ + + + +
void* AEffEditor::systemWindow [protected]
+
+
+ +

+platform-dependent parent window (HWND or WindowRef) +

+ +

+

+


The documentation for this class was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_audio_effect-members.html b/doc/html/class_audio_effect-members.html new file mode 100644 index 0000000..e7abdf1 --- /dev/null +++ b/doc/html/class_audio_effect-members.html @@ -0,0 +1,93 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

AudioEffect Member List

This is the complete list of members for AudioEffect, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
AudioEffect(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)AudioEffect
audioMasterAudioEffect [protected]
blockSizeAudioEffect [protected]
canDoubleReplacing(bool state=true)AudioEffect [virtual]
canProcessReplacing(bool state=true)AudioEffect [virtual]
cEffectAudioEffect [protected]
close()AudioEffect [inline, virtual]
curProgramAudioEffect [protected]
dB2string(float value, char *text, VstInt32 maxLen)AudioEffect [virtual]
dispatcher(VstInt32 opcode, VstInt32 index, VstIntPtr value, void *ptr, float opt)AudioEffect [virtual]
editorAudioEffect [protected]
float2string(float value, char *text, VstInt32 maxLen)AudioEffect [virtual]
getAeffect()AudioEffect [inline, virtual]
getBlockSize()AudioEffect [inline, virtual]
getChunk(void **data, bool isPreset=false)AudioEffect [inline, virtual]
getCurrentUniqueId()AudioEffect [virtual]
getEditor()AudioEffect [inline, virtual]
getMasterVersion()AudioEffect [virtual]
getParameter(VstInt32 index)AudioEffect [inline, virtual]
getParameterDisplay(VstInt32 index, char *text)AudioEffect [inline, virtual]
getParameterLabel(VstInt32 index, char *label)AudioEffect [inline, virtual]
getParameterName(VstInt32 index, char *text)AudioEffect [inline, virtual]
getProgram()AudioEffect [inline, virtual]
getProgramName(char *name)AudioEffect [inline, virtual]
getSampleRate()AudioEffect [inline, virtual]
Hz2string(float samples, char *text, VstInt32 maxLen)AudioEffect [virtual]
int2string(VstInt32 value, char *text, VstInt32 maxLen)AudioEffect [virtual]
masterIdle()AudioEffect [virtual]
ms2string(float samples, char *text, VstInt32 maxLen)AudioEffect [virtual]
numParamsAudioEffect [protected]
numProgramsAudioEffect [protected]
open()AudioEffect [inline, virtual]
processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)AudioEffect [inline, virtual]
processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)=0AudioEffect [pure virtual]
programsAreChunks(bool state=true)AudioEffect [virtual]
resume()AudioEffect [inline, virtual]
sampleRateAudioEffect [protected]
setBlockSize(VstInt32 blockSize)AudioEffect [inline, virtual]
setChunk(void *data, VstInt32 byteSize, bool isPreset=false)AudioEffect [inline, virtual]
setEditor(AEffEditor *editor)AudioEffect
setInitialDelay(VstInt32 delay)AudioEffect [virtual]
setNumInputs(VstInt32 inputs)AudioEffect [inline, virtual]
setNumOutputs(VstInt32 outputs)AudioEffect [inline, virtual]
setParameter(VstInt32 index, float value)AudioEffect [inline, virtual]
setParameterAutomated(VstInt32 index, float value)AudioEffect [virtual]
setProgram(VstInt32 program)AudioEffect [inline, virtual]
setProgramName(char *name)AudioEffect [inline, virtual]
setSampleRate(float sampleRate)AudioEffect [inline, virtual]
setUniqueID(VstInt32 iD)AudioEffect [inline, virtual]
suspend()AudioEffect [inline, virtual]
~AudioEffect()AudioEffect [virtual]
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + 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 @@ + + +VST SDK 2.4: AudioEffect Class Reference + + + + +
+
+
+
+

AudioEffect Class Reference

#include <audioeffect.h> +

+

Inheritance diagram for AudioEffect: +

+ +AudioEffectX + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 AudioEffect (audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)
 Create an AudioEffect object.
virtual ~AudioEffect ()
 Destroy an AudioEffect object.
virtual VstIntPtr dispatcher (VstInt32 opcode, VstInt32 index, VstIntPtr value, void *ptr, float opt)
 Opcodes dispatcher.
State Transitions
virtual void open ()
 Called when plug-in is initialized.
virtual void close ()
 Called when plug-in will be released.
virtual void suspend ()
 Called when plug-in is switched to off.
virtual void resume ()
 Called when plug-in is switched to on.
Processing
virtual void setSampleRate (float sampleRate)
 Called when the sample rate changes (always in a suspend state).
virtual void setBlockSize (VstInt32 blockSize)
 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.
virtual void processReplacing (float **inputs, float **outputs, VstInt32 sampleFrames)=0
 Process 32 bit (single precision) floats (always in a resume state).
virtual void processDoubleReplacing (double **inputs, double **outputs, VstInt32 sampleFrames)
 Process 64 bit (double precision) floats (always in a resume state).
Parameters
virtual void setParameter (VstInt32 index, float value)
 Called when a parameter changed.
virtual float getParameter (VstInt32 index)
 Return the value of the parameter with index.
virtual void setParameterAutomated (VstInt32 index, float value)
 Called after a control has changed in the editor and when the associated parameter should be automated.
Programs and Persistence
virtual VstInt32 getProgram ()
 Return the index to the current program.
virtual void setProgram (VstInt32 program)
 Set the current program to program.
virtual void setProgramName (char *name)
 Stuff the name field of the current program with name. Limited to kVstMaxProgNameLen.
virtual void getProgramName (char *name)
 Stuff name with the name of the current program. Limited to kVstMaxProgNameLen.
virtual void getParameterLabel (VstInt32 index, char *label)
 Stuff label with the units in which parameter index is displayed (i.e. "sec", "dB", "type", etc...). Limited to kVstMaxParamStrLen.
virtual void getParameterDisplay (VstInt32 index, char *text)
 Stuff text with a string representation ("0.5", "-3", "PLATE", etc...) of the value of parameter index. Limited to kVstMaxParamStrLen.
virtual void getParameterName (VstInt32 index, char *text)
 Stuff text with the name ("Time", "Gain", "RoomType", etc...) of parameter index. Limited to kVstMaxParamStrLen.
virtual VstInt32 getChunk (void **data, bool isPreset=false)
 Host stores plug-in state. Returns the size in bytes of the chunk (plug-in allocates the data array).
virtual VstInt32 setChunk (void *data, VstInt32 byteSize, bool isPreset=false)
 Host restores plug-in state.
Internal Setup
virtual void setUniqueID (VstInt32 iD)
 Must be called to set the plug-ins unique ID!
virtual void setNumInputs (VstInt32 inputs)
 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.
virtual void setNumOutputs (VstInt32 outputs)
 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.
virtual void canProcessReplacing (bool state=true)
 Tells that processReplacing() could be used. Mandatory in VST 2.4!
virtual void canDoubleReplacing (bool state=true)
 Tells that processDoubleReplacing() is implemented.
virtual void programsAreChunks (bool state=true)
 Program data is handled in formatless chunks (using getChunk-setChunks).
virtual void setInitialDelay (VstInt32 delay)
 Use to report the plug-in's latency (Group Delay).
Editor
void setEditor (AEffEditor *editor)
 Should be called if you want to define your own editor.
virtual AEffEditorgetEditor ()
 Returns the attached editor.
Inquiry
virtual AEffectgetAeffect ()
 Returns the AEffect structure.
virtual float getSampleRate ()
 Returns the current sample rate.
virtual VstInt32 getBlockSize ()
 Returns the current Maximum block size.
Host Communication
virtual VstInt32 getMasterVersion ()
 Returns the Host's version (for example 2400 for VST 2.4).
virtual VstInt32 getCurrentUniqueId ()
 Returns current unique identifier when loading shell plug-ins.
virtual void masterIdle ()
 Give idle time to Host application.
Tools (helpers)
virtual void dB2string (float value, char *text, VstInt32 maxLen)
 Stuffs text with an amplitude on the [0.0, 1.0] scale converted to its value in decibels.
virtual void Hz2string (float samples, char *text, VstInt32 maxLen)
 Stuffs text with the frequency in Hertz that has a period of samples.
virtual void ms2string (float samples, char *text, VstInt32 maxLen)
 Stuffs text with the duration in milliseconds of samples frames.
virtual void float2string (float value, char *text, VstInt32 maxLen)
 Stuffs text with a string representation on the floating point value.
virtual void int2string (VstInt32 value, char *text, VstInt32 maxLen)
 Stuffs text with a string representation on the integer value.

Protected Attributes

audioMasterCallback audioMaster
 Host callback.
AEffEditoreditor
 Pointer to the plug-in's editor.
float sampleRate
 Current sample rate.
VstInt32 blockSize
 Maximum block size.
VstInt32 numPrograms
 Number of programs.
VstInt32 numParams
 Number of parameters.
VstInt32 curProgram
 Current program.
AEffect cEffect
 AEffect object
+

Detailed Description

+VST Effect Base Class (VST 1.0). +

+


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
AudioEffect::AudioEffect (audioMasterCallback  audioMaster,
VstInt32  numPrograms,
VstInt32  numParams 
)
+
+
+ +

+Create an AudioEffect object. +

+The constructor of your class is passed a parameter of the type audioMasterCallback. 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 audioMasterCallback that handles the interaction with the plug-in. You pass this on to the base class' constructor and then can forget about it.

+

Parameters:
+ + + + +
audioMaster Passed by the Host and handles interaction
numPrograms Pass the number of programs the plug-in provides
numParams Pass the number of parameters the plug-in provides
+
+
MyPlug::MyPlug (audioMasterCallback audioMaster)
+: AudioEffectX (audioMaster, 1, 1)    // 1 program, 1 parameter only
+{
+        setNumInputs (2); // stereo in
+        setNumOutputs (2); // stereo out
+        setUniqueID ('MyPl'); // you must change this for other plug-ins!
+        canProcessReplacing (); // supports replacing mode
+}
+

+

See also:
setNumInputs, setNumOutputs, setUniqueID, canProcessReplacing
+ +
+

+ +

+
+ + + + + + + + +
AudioEffect::~AudioEffect (  )  [virtual]
+
+
+ +

+Destroy an AudioEffect object. +

+ +

+

+


Member Function Documentation

+ +
+
+ + + + + + + + + +
void AudioEffect::canDoubleReplacing (bool  state = true  )  [virtual]
+
+
+ +

+Tells that processDoubleReplacing() is implemented. +

+

Parameters:
+ + +
state Set to true if supported
+
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::canProcessReplacing (bool  state = true  )  [virtual]
+
+
+ +

+Tells that processReplacing() could be used. Mandatory in VST 2.4! +

+

Parameters:
+ + +
state Set to true if supported
+
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + +
virtual void AudioEffect::close (  )  [inline, virtual]
+
+
+ +

+Called when plug-in will be released. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::dB2string (float  value,
char *  text,
VstInt32  maxLen 
) [virtual]
+
+
+ +

+Stuffs text with an amplitude on the [0.0, 1.0] scale converted to its value in decibels. +

+

Parameters:
+ + + + +
value Value to convert
text String up to length char
maxLen Maximal length of the string
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VstIntPtr AudioEffect::dispatcher (VstInt32  opcode,
VstInt32  index,
VstIntPtr  value,
void *  ptr,
float  opt 
) [virtual]
+
+
+ +

+Opcodes dispatcher. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::float2string (float  value,
char *  text,
VstInt32  maxLen 
) [virtual]
+
+
+ +

+Stuffs text with a string representation on the floating point value. +

+

Parameters:
+ + + + +
value Value to convert
text String up to length char
maxLen Maximal length of the string
+
+ +
+

+ +

+
+ + + + + + + + +
virtual AEffect* AudioEffect::getAeffect (  )  [inline, virtual]
+
+
+ +

+Returns the AEffect structure. +

+ +

+

+ +

+
+ + + + + + + + +
virtual VstInt32 AudioEffect::getBlockSize (  )  [inline, virtual]
+
+
+ +

+Returns the current Maximum block size. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
VstInt32 AudioEffect::getChunk (void **  data,
bool  isPreset = false 
) [inline, virtual]
+
+
+ +

+Host stores plug-in state. Returns the size in bytes of the chunk (plug-in allocates the data array). +

+

Parameters:
+ + + +
data should point to the newly allocated memory block containg state data. You can savely release it in next suspend/resume call.
isPreset true when saving a single program, false for all programs
+
+
Note:
If your plug-in is configured to use chunks (see AudioEffect::programsAreChunks), 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 AudioEffect::setChunk. Alternatively, when not using chunk, the Host will simply save all parameter values.
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffect::getCurrentUniqueId (  )  [virtual]
+
+
+ +

+Returns current unique identifier when loading shell plug-ins. +

+

See also:
AudioEffectX::getNextShellPlugin
+ +
+

+ +

+
+ + + + + + + + +
virtual AEffEditor* AudioEffect::getEditor (  )  [inline, virtual]
+
+
+ +

+Returns the attached editor. +

+ +

+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffect::getMasterVersion (  )  [virtual]
+
+
+ +

+Returns the Host's version (for example 2400 for VST 2.4). +

+Use to ask for the Host's version

Returns:
The Host's version
+ +
+

+ +

+
+ + + + + + + + + +
float AudioEffect::getParameter (VstInt32  index  )  [inline, virtual]
+
+
+ +

+Return the value of the parameter with index. +

+Return the value of parameter index

+

Parameters:
+ + +
index Index of the parameter
+
+
Returns:
A float value between 0.0 and 1.0 inclusive
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void AudioEffect::getParameterDisplay (VstInt32  index,
char *  text 
) [inline, virtual]
+
+
+ +

+Stuff text with a string representation ("0.5", "-3", "PLATE", etc...) of the value of parameter index. Limited to kVstMaxParamStrLen. +

+

Parameters:
+ + + +
index Index of the parameter
text A string up to 8 char
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void AudioEffect::getParameterLabel (VstInt32  index,
char *  label 
) [inline, virtual]
+
+
+ +

+Stuff label with the units in which parameter index is displayed (i.e. "sec", "dB", "type", etc...). Limited to kVstMaxParamStrLen. +

+

Parameters:
+ + + +
index Index of the parameter
label A string up to 8 char
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void AudioEffect::getParameterName (VstInt32  index,
char *  text 
) [inline, virtual]
+
+
+ +

+Stuff text with the name ("Time", "Gain", "RoomType", etc...) of parameter index. Limited to kVstMaxParamStrLen. +

+

Parameters:
+ + + +
index Index of the parameter
text A string up to 8 char
+
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffect::getProgram (  )  [inline, virtual]
+
+
+ +

+Return the index to the current program. +

+

Returns:
Index of the current program
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::getProgramName (char *  name  )  [inline, virtual]
+
+
+ +

+Stuff name with the name of the current program. Limited to kVstMaxProgNameLen. +

+The program name is displayed in the rack, and can be edited by the user.

+

Parameters:
+ + +
name A string up to 24 char
+
+
Warning:
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.
+ +
+

+ +

+
+ + + + + + + + +
virtual float AudioEffect::getSampleRate (  )  [inline, virtual]
+
+
+ +

+Returns the current sample rate. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::Hz2string (float  samples,
char *  text,
VstInt32  maxLen 
) [virtual]
+
+
+ +

+Stuffs text with the frequency in Hertz that has a period of samples. +

+

Parameters:
+ + + + +
samples Number of samples
text String up to length char
maxLen Maximal length of the string
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::int2string (VstInt32  value,
char *  text,
VstInt32  maxLen 
) [virtual]
+
+
+ +

+Stuffs text with a string representation on the integer value. +

+

Parameters:
+ + + + +
value Value to convert
text String up to length char
maxLen Maximal length of the string
+
+ +
+

+ +

+
+ + + + + + + + +
void AudioEffect::masterIdle (  )  [virtual]
+
+
+ +

+Give idle time to Host application. +

+Give idle time to Host application, e.g. if plug-in editor is doing mouse tracking in a modal loop. +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::ms2string (float  samples,
char *  text,
VstInt32  maxLen 
) [virtual]
+
+
+ +

+Stuffs text with the duration in milliseconds of samples frames. +

+

Parameters:
+ + + + +
samples Number of samples
text String up to length char
maxLen Maximal length of the string
+
+ +
+

+ +

+
+ + + + + + + + +
virtual void AudioEffect::open (  )  [inline, virtual]
+
+
+ +

+Called when plug-in is initialized. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
virtual void AudioEffect::processDoubleReplacing (double **  inputs,
double **  outputs,
VstInt32  sampleFrames 
) [inline, virtual]
+
+
+ +

+Process 64 bit (double precision) floats (always in a resume state). +

+

See also:
processReplacing
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void AudioEffect::processReplacing (float **  inputs,
float **  outputs,
VstInt32  sampleFrames 
) [pure virtual]
+
+
+ +

+Process 32 bit (single precision) floats (always in a resume state). +

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

+

Parameters:
+ + + + +
inputs An array of pointers to the data
outputs An array of pointers to where the data can be written to
sampleFrames Number of sample frames to process
+
+
Warning:
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.
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::programsAreChunks (bool  state = true  )  [virtual]
+
+
+ +

+Program data is handled in formatless chunks (using getChunk-setChunks). +

+

Parameters:
+ + +
state Set true if programs are chunks
+
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + +
virtual void AudioEffect::resume (  )  [inline, virtual]
+
+
+ +

+Called when plug-in is switched to on. +

+ +

+

+ +

+
+ + + + + + + + + +
void AudioEffect::setBlockSize (VstInt32  blockSize  )  [inline, virtual]
+
+
+ +

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

+This is called by the Host, and tells the plug-in that the maximum block size passed to processReplacing() will be blockSize.

+

Parameters:
+ + +
blockSize Maximum number of sample frames
+
+
Warning:
You must process exactly sampleFrames number of samples in inside processReplacing, not more!
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
VstInt32 AudioEffect::setChunk (void *  data,
VstInt32  byteSize,
bool  isPreset = false 
) [inline, virtual]
+
+
+ +

+Host restores plug-in state. +

+

Parameters:
+ + + + +
data pointer to state data (owned by Host)
byteSize size of state data
isPreset true when restoring a single program, false for all programs
+
+
See also:
getChunk
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::setEditor (AEffEditor editor  ) 
+
+
+ +

+Should be called if you want to define your own editor. +

+ +

+

+ +

+
+ + + + + + + + + +
void AudioEffect::setInitialDelay (VstInt32  delay  )  [virtual]
+
+
+ +

+Use to report the plug-in's latency (Group Delay). +

+Use to report the Plug-in's latency (Group Delay)

+

Parameters:
+ + +
delay Plug-ins delay in samples
+
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::setNumInputs (VstInt32  inputs  )  [inline, virtual]
+
+
+ +

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

+This number is fixed at construction time and can't change until the plug-in is destroyed.

+

Parameters:
+ + +
inputs The number of inputs
+
+
See also:
isInputConnected()
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::setNumOutputs (VstInt32  outputs  )  [inline, virtual]
+
+
+ +

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

+This number is fixed at construction time and can't change until the plug-in is destroyed.

+

Parameters:
+ + +
outputs The number of outputs
+
+
See also:
isOutputConnected()
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void AudioEffect::setParameter (VstInt32  index,
float  value 
) [inline, virtual]
+
+
+ +

+Called when a parameter changed. +

+Parameters are the individual parameter settings the user can adjust. A VST Host can automate these parameters. Set parameter index to value.

+

Parameters:
+ + + +
index Index of the parameter to change
value A float value between 0.0 and 1.0 inclusive
+
+
Note:
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.
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
void AudioEffect::setParameterAutomated (VstInt32  index,
float  value 
) [virtual]
+
+
+ +

+Called after a control has changed in the editor and when the associated parameter should be automated. +

+

Parameters:
+ + + +
index parameter index
float parameter value
+
+
Note:
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.
+
See also:
setParameter
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::setProgram (VstInt32  program  )  [inline, virtual]
+
+
+ +

+Set the current program to program. +

+

Parameters:
+ + +
Program of the current program
+
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffect::setProgramName (char *  name  )  [inline, virtual]
+
+
+ +

+Stuff the name field of the current program with name. Limited to kVstMaxProgNameLen. +

+The program name is displayed in the rack, and can be edited by the user.

+

Parameters:
+ + +
name A string up to 24 char
+
+
Warning:
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.
+ +
+

+ +

+
+ + + + + + + + + +
virtual void AudioEffect::setSampleRate (float  sampleRate  )  [inline, virtual]
+
+
+ +

+Called when the sample rate changes (always in a suspend state). +

+ +

+

+ +

+
+ + + + + + + + + +
void AudioEffect::setUniqueID (VstInt32  iD  )  [inline, virtual]
+
+
+ +

+Must be called to set the plug-ins unique ID! +

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

+

Parameters:
+ + +
iD Plug-in's unique ID
+
+
Note:
Needs to be called in the plug-in's constructor
+ +
+

+ +

+
+ + + + + + + + +
virtual void AudioEffect::suspend (  )  [inline, virtual]
+
+
+ +

+Called when plug-in is switched to off. +

+ +

+

+


Member Data Documentation

+ +
+
+ + + + +
audioMasterCallback AudioEffect::audioMaster [protected]
+
+
+ +

+Host callback. +

+ +

+

+ +

+
+ + + + +
VstInt32 AudioEffect::blockSize [protected]
+
+
+ +

+Maximum block size. +

+ +

+

+ +

+
+ + + + +
AEffect AudioEffect::cEffect [protected]
+
+
+ +

+AEffect object +

+ +

+

+ +

+
+ + + + +
VstInt32 AudioEffect::curProgram [protected]
+
+
+ +

+Current program. +

+ +

+

+ +

+
+ + + + +
AEffEditor* AudioEffect::editor [protected]
+
+
+ +

+Pointer to the plug-in's editor. +

+ +

+

+ +

+
+ + + + +
VstInt32 AudioEffect::numParams [protected]
+
+
+ +

+Number of parameters. +

+ +

+

+ +

+
+ + + + +
VstInt32 AudioEffect::numPrograms [protected]
+
+
+ +

+Number of programs. +

+ +

+

+ +

+
+ + + + +
float AudioEffect::sampleRate [protected]
+
+
+ +

+Current sample rate. +

+ +

+

+


The documentation for this class was generated from the following files: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_audio_effect.png b/doc/html/class_audio_effect.png new file mode 100644 index 0000000..d2ed25a Binary files /dev/null and b/doc/html/class_audio_effect.png differ diff --git a/doc/html/class_audio_effect_x-members.html b/doc/html/class_audio_effect_x-members.html new file mode 100644 index 0000000..0fd1f01 --- /dev/null +++ b/doc/html/class_audio_effect_x-members.html @@ -0,0 +1,159 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

AudioEffectX Member List

This is the complete list of members for AudioEffectX, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
allocateArrangement(VstSpeakerArrangement **arrangement, VstInt32 nbChannels)AudioEffectX [virtual]
AudioEffect(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)AudioEffect
AudioEffectX(audioMasterCallback audioMaster, VstInt32 numPrograms, VstInt32 numParams)AudioEffectX
audioMasterAudioEffect [protected]
beginEdit(VstInt32 index)AudioEffectX [virtual]
beginLoadBank(VstPatchChunkInfo *ptr)AudioEffectX [inline, virtual]
beginLoadProgram(VstPatchChunkInfo *ptr)AudioEffectX [inline, virtual]
beginSetProgram()AudioEffectX [inline, virtual]
blockSizeAudioEffect [protected]
canDo(char *text)AudioEffectX [inline, virtual]
canDoubleReplacing(bool state=true)AudioEffect [virtual]
canHostDo(char *text)AudioEffectX [virtual]
canParameterBeAutomated(VstInt32 index)AudioEffectX [inline, virtual]
canProcessReplacing(bool state=true)AudioEffect [virtual]
cEffectAudioEffect [protected]
close()AudioEffect [inline, virtual]
closeFileSelector(VstFileSelect *ptr)AudioEffectX [virtual]
copySpeaker(VstSpeakerProperties *to, VstSpeakerProperties *from)AudioEffectX [virtual]
curProgramAudioEffect [protected]
dB2string(float value, char *text, VstInt32 maxLen)AudioEffect [virtual]
deallocateArrangement(VstSpeakerArrangement **arrangement)AudioEffectX [virtual]
dispatcher(VstInt32 opcode, VstInt32 index, VstIntPtr value, void *ptr, float opt)AudioEffect [virtual]
editorAudioEffect [protected]
endEdit(VstInt32 index)AudioEffectX [virtual]
endSetProgram()AudioEffectX [inline, virtual]
float2string(float value, char *text, VstInt32 maxLen)AudioEffect [virtual]
getAeffect()AudioEffect [inline, virtual]
getAutomationState()AudioEffectX [virtual]
getBlockSize()AudioEffect [inline, virtual]
getChunk(void **data, bool isPreset=false)AudioEffect [inline, virtual]
getCurrentMidiProgram(VstInt32 channel, MidiProgramName *currentProgram)AudioEffectX [inline, virtual]
getCurrentProcessLevel()AudioEffectX [virtual]
getCurrentUniqueId()AudioEffect [virtual]
getDirectory()AudioEffectX [virtual]
getEditor()AudioEffect [inline, virtual]
getEffectName(char *name)AudioEffectX [inline, virtual]
getGetTailSize()AudioEffectX [inline, virtual]
getHostLanguage()AudioEffectX [virtual]
getHostProductString(char *text)AudioEffectX [virtual]
getHostVendorString(char *text)AudioEffectX [virtual]
getHostVendorVersion()AudioEffectX [virtual]
getInputLatency()AudioEffectX [virtual]
getInputProperties(VstInt32 index, VstPinProperties *properties)AudioEffectX [inline, virtual]
getMasterVersion()AudioEffect [virtual]
getMidiKeyName(VstInt32 channel, MidiKeyName *keyName)AudioEffectX [inline, virtual]
getMidiProgramCategory(VstInt32 channel, MidiProgramCategory *category)AudioEffectX [inline, virtual]
getMidiProgramName(VstInt32 channel, MidiProgramName *midiProgramName)AudioEffectX [inline, virtual]
getNextShellPlugin(char *name)AudioEffectX [inline, virtual]
getNumMidiInputChannels()AudioEffectX [inline, virtual]
getNumMidiOutputChannels()AudioEffectX [inline, virtual]
getOutputLatency()AudioEffectX [virtual]
getOutputProperties(VstInt32 index, VstPinProperties *properties)AudioEffectX [inline, virtual]
getParameter(VstInt32 index)AudioEffect [inline, virtual]
getParameterDisplay(VstInt32 index, char *text)AudioEffect [inline, virtual]
getParameterLabel(VstInt32 index, char *label)AudioEffect [inline, virtual]
getParameterName(VstInt32 index, char *text)AudioEffect [inline, virtual]
getParameterProperties(VstInt32 index, VstParameterProperties *p)AudioEffectX [inline, virtual]
getPlugCategory()AudioEffectX [virtual]
getProductString(char *text)AudioEffectX [inline, virtual]
getProgram()AudioEffect [inline, virtual]
getProgramName(char *name)AudioEffect [inline, virtual]
getProgramNameIndexed(VstInt32 category, VstInt32 index, char *text)AudioEffectX [inline, virtual]
getSampleRate()AudioEffect [inline, virtual]
getSpeakerArrangement(VstSpeakerArrangement **pluginInput, VstSpeakerArrangement **pluginOutput)AudioEffectX [inline, virtual]
getTimeInfo(VstInt32 filter)AudioEffectX [virtual]
getVendorString(char *text)AudioEffectX [inline, virtual]
getVendorVersion()AudioEffectX [inline, virtual]
getVstVersion()AudioEffectX [inline, virtual]
hasMidiProgramsChanged(VstInt32 channel)AudioEffectX [inline, virtual]
hostVendorSpecific(VstInt32 lArg1, VstIntPtr lArg2, void *ptrArg, float floatArg)AudioEffectX [virtual]
Hz2string(float samples, char *text, VstInt32 maxLen)AudioEffect [virtual]
int2string(VstInt32 value, char *text, VstInt32 maxLen)AudioEffect [virtual]
ioChanged()AudioEffectX [virtual]
isSynth(bool state=true)AudioEffectX [virtual]
masterIdle()AudioEffect [virtual]
matchArrangement(VstSpeakerArrangement **to, VstSpeakerArrangement *from)AudioEffectX [virtual]
ms2string(float samples, char *text, VstInt32 maxLen)AudioEffect [virtual]
noTail(bool state=true)AudioEffectX [virtual]
numParamsAudioEffect [protected]
numProgramsAudioEffect [protected]
open()AudioEffect [inline, virtual]
openFileSelector(VstFileSelect *ptr)AudioEffectX [virtual]
processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)AudioEffect [inline, virtual]
processEvents(VstEvents *events)AudioEffectX [inline, virtual]
processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)=0AudioEffect [pure virtual]
processVariableIo(VstVariableIo *varIo)AudioEffectX [inline, virtual]
programsAreChunks(bool state=true)AudioEffect [virtual]
resume()AudioEffect [inline, virtual]
sampleRateAudioEffect [protected]
sendVstEventsToHost(VstEvents *events)AudioEffectX
setBlockSize(VstInt32 blockSize)AudioEffect [inline, virtual]
setBypass(bool onOff)AudioEffectX [inline, virtual]
setChunk(void *data, VstInt32 byteSize, bool isPreset=false)AudioEffect [inline, virtual]
setEditor(AEffEditor *editor)AudioEffect
setInitialDelay(VstInt32 delay)AudioEffect [virtual]
setNumInputs(VstInt32 inputs)AudioEffect [inline, virtual]
setNumOutputs(VstInt32 outputs)AudioEffect [inline, virtual]
setPanLaw(VstInt32 type, float val)AudioEffectX [inline, virtual]
setParameter(VstInt32 index, float value)AudioEffect [inline, virtual]
setParameterAutomated(VstInt32 index, float value)AudioEffect [virtual]
setProcessPrecision(VstInt32 precision)AudioEffectX [inline, virtual]
setProgram(VstInt32 program)AudioEffect [inline, virtual]
setProgramName(char *name)AudioEffect [inline, virtual]
setSampleRate(float sampleRate)AudioEffect [inline, virtual]
setSpeakerArrangement(VstSpeakerArrangement *pluginInput, VstSpeakerArrangement *pluginOutput)AudioEffectX [inline, virtual]
setTotalSampleToProcess(VstInt32 value)AudioEffectX [inline, virtual]
setUniqueID(VstInt32 iD)AudioEffect [inline, virtual]
sizeWindow(VstInt32 width, VstInt32 height)AudioEffectX [virtual]
startProcess()AudioEffectX [inline, virtual]
stopProcess()AudioEffectX [inline, virtual]
string2parameter(VstInt32 index, char *text)AudioEffectX [inline, virtual]
suspend()AudioEffect [inline, virtual]
updateBlockSize()AudioEffectX [virtual]
updateDisplay()AudioEffectX [virtual]
updateSampleRate()AudioEffectX [virtual]
vendorSpecific(VstInt32 lArg, VstIntPtr lArg2, void *ptrArg, float floatArg)AudioEffectX [inline, virtual]
~AudioEffect()AudioEffect [virtual]
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_audio_effect_x.html b/doc/html/class_audio_effect_x.html new file mode 100644 index 0000000..efaadc5 --- /dev/null +++ b/doc/html/class_audio_effect_x.html @@ -0,0 +1,2406 @@ + + +VST SDK 2.4: AudioEffectX Class Reference + + + + +
+
+
+
+

AudioEffectX Class Reference

#include <audioeffectx.h> +

+

Inheritance diagram for AudioEffectX: +

+ +AudioEffect + +List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

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 (in Audio Thread) that why you could NOT call iochanged (if needed) in this function, do it in fxidle).
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 ()
 Returns number of MIDI input channels used [0, 16].
virtual VstInt32 getNumMidiOutputChannels ()
 Returns number of MIDI output channels used [0, 16].
Realtime
virtual VstTimeInfogetTimeInfo (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).
+

Detailed Description

+Extended VST Effect Class (VST 2.x). +

+


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
AudioEffectX::AudioEffectX (audioMasterCallback  audioMaster,
VstInt32  numPrograms,
VstInt32  numParams 
)
+
+
+ +

+Create an AudioEffectX object. +

+

See also:
AudioEffect()
+ +
+

+


Member Function Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::allocateArrangement (VstSpeakerArrangement **  arrangement,
VstInt32  nbChannels 
) [virtual]
+
+
+ +

+Allocate memory for a VstSpeakerArrangement. +

+

Parameters:
+ + + +
arrangement Pointer to a VstSpeakerArrangement structure
nbChannels Number of Channels
+
+
Returns:
Returns true on success
+
See also:
deallocateArrangement(), copySpeaker(), matchArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::beginEdit (VstInt32  index  )  [virtual]
+
+
+ +

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

+

Parameters:
+ + +
index Index of the parameter
+
+
Returns:
Returns true on success
+
See also:
endEdit()
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::beginLoadBank (VstPatchChunkInfo ptr  )  [inline, virtual]
+
+
+ +

+Called before a Bank is loaded. +

+

Parameters:
+ + +
ptr 
+
+
Returns:
    +
  • -1: if the Bank cannot be loaded,
  • 1: if it can be loaded
  • 0: else (for compatibility)
+
+
See also:
beginLoadProgram()
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::beginLoadProgram (VstPatchChunkInfo ptr  )  [inline, virtual]
+
+
+ +

+Called before a Program is loaded. (called before beginSetProgram). +

+

Parameters:
+ + +
ptr 
+
+
Returns:
    +
  • -1: if the Program cannot be loaded,
  • 1: it can be loaded else,
  • 0: else (for compatibility)
+
+
See also:
beginLoadBank()
+ +
+

+ +

+
+ + + + + + + + +
bool AudioEffectX::beginSetProgram (  )  [inline, virtual]
+
+
+ +

+Called before a program is loaded. +

+

Returns:
    +
  • true: the plug-in took the notification into account
  • false: it did not...
+
+
See also:
endSetProgram()
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::canDo (char *  text  )  [inline, virtual]
+
+
+ +

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

+

Parameters:
+ + +
text A string from plugCanDos
+
+
Returns:
    +
  • 0: don't know (default)
  • 1: yes
  • -1: no
+
+
Note:
This should be supported.
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::canHostDo (char *  text  )  [virtual]
+
+
+ +

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

+

Parameters:
+ + +
text A string from hostCanDos
+
+
Returns:
    +
  • 0 : don't know (default)
  • 1 : yes
  • -1: no
+
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::canParameterBeAutomated (VstInt32  index  )  [inline, virtual]
+
+
+ +

+Indicates if a parameter can be automated. +

+Obviously only useful when the application supports this.

+

Parameters:
+ + +
index Index of the parameter
+
+
Returns:
if supported
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::closeFileSelector (VstFileSelect ptr  )  [virtual]
+
+
+ +

+Close the Host File selector which was opened by openFileSelector. +

+

Parameters:
+ + +
ptr 
+
+
Returns:
Returns true on success
+
See also:
openFileSelector()
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::copySpeaker (VstSpeakerProperties to,
VstSpeakerProperties from 
) [virtual]
+
+
+ +

+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...)

+

Parameters:
+ + + +
to 
from 
+
+
Returns:
Returns true on success
+
See also:
allocateArrangement(), deallocateArrangement(), matchArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::deallocateArrangement (VstSpeakerArrangement **  arrangement  )  [virtual]
+
+
+ +

+Delete/free memory for an allocated speaker arrangement. +

+

Parameters:
+ + +
arrangement Pointer to a VstSpeakerArrangement structure
+
+
Returns:
Returns true on success
+
See also:
allocateArrangement(), copySpeaker(), matchArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::endEdit (VstInt32  index  )  [virtual]
+
+
+ +

+To be called after setParameterAutomated (on Mouse Up). +

+It notifies the Host that this control is no longer moved by the mouse.

+

Parameters:
+ + +
index Index of the parameter
+
+
Returns:
Returns true on success
+
See also:
beginEdit()
+ +
+

+ +

+
+ + + + + + + + +
bool AudioEffectX::endSetProgram (  )  [inline, virtual]
+
+
+ +

+Called after a program was loaded. +

+

Returns:
    +
  • true: the plug-in took the notification into account
  • false: it did not...
+
+
See also:
beginSetProgram()
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getAutomationState (  )  [virtual]
+
+
+ +

+Returns the Host's automation state. +

+

Returns:
VstAutomationStates in aeffectx.h
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
VstInt32 AudioEffectX::getCurrentMidiProgram (VstInt32  channel,
MidiProgramName currentProgram 
) [inline, virtual]
+
+
+ +

+Fill currentProgram with information for the current MIDI program. +

+

Parameters:
+ + + +
channel 
currentProgram 
+
+
Returns:
    +
  • programIndex of the current program
  • -1 if not supported
+
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getCurrentProcessLevel (  )  [virtual]
+
+
+ +

+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:
VstProcessLevels in aeffectx.h
+ +
+

+ +

+
+ + + + + + + + +
void * AudioEffectX::getDirectory (  )  [virtual]
+
+
+ +

+Returns the plug-in's directory. +

+

Returns:
FSSpec on MAC, else char*
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::getEffectName (char *  name  )  [inline, virtual]
+
+
+ +

+Fill text with a string identifying the effect. +

+

Parameters:
+ + +
name A string up to 32 chars
+
+
Returns:
true on success
+ +
+

+ +

+
+ + + + + + + + +
virtual VstInt32 AudioEffectX::getGetTailSize (  )  [inline, virtual]
+
+
+ +

+Returns tail size; 0 is default (return 1 for 'no tail'), used in offline processing too. +

+ +

+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getHostLanguage (  )  [virtual]
+
+
+ +

+Returns the Host's language (VstHostLanguage). +

+

Returns:
VstHostLanguage in aeffectx.h
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::getHostProductString (char *  text  )  [virtual]
+
+
+ +

+Fills text with a string with product name. +

+

Parameters:
+ + +
text String of maximum 64 char
+
+
Returns:
true if supported
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::getHostVendorString (char *  text  )  [virtual]
+
+
+ +

+Fills text with a string identifying the vendor. +

+

Parameters:
+ + +
text String of maximum 64 char
+
+
Returns:
true if supported
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getHostVendorVersion (  )  [virtual]
+
+
+ +

+Returns vendor-specific version (for example 3200 for Nuendo 3.2). +

+

Returns:
Host vendor version
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getInputLatency (  )  [virtual]
+
+
+ +

+Returns the Audio (maybe ASIO) input latency values. +

+

Returns:
ASIO input latency
+
See also:
getOutputLatency()
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getInputProperties (VstInt32  index,
VstPinProperties properties 
) [inline, virtual]
+
+
+ +

+Return the properties of output index. +

+

Parameters:
+ + + +
index The index to the input, starting with 0
properties A pointer to a VstPinProperties structure
+
+
Returns:
true on success
+
See also:
getOutputProperties()
+
Note:
Example
+	bool MyPlug::getInputProperties (VstInt32 index, VstPinProperties* properties)
+	{
+		bool returnCode = false;
+		if (index < kNumInputs)
+		{
+			sprintf (properties->label, "My %1d In", index + 1);
+			properties->flags = kVstPinIsStereo | kVstPinIsActive;
+			returnCode = true;
+		}
+		return returnCode;
+	}
+	
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getMidiKeyName (VstInt32  channel,
MidiKeyName keyName 
) [inline, virtual]
+
+
+ +

+Fill keyName with information for 'thisProgramIndex' and 'thisKeyNumber'. +

+

Parameters:
+ + + +
channel 
keyName If keyName is "" the standard name of the key will be displayed
+
+
Returns:
Return false if no MidiKeyNames defined for 'thisProgramIndex'
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
VstInt32 AudioEffectX::getMidiProgramCategory (VstInt32  channel,
MidiProgramCategory category 
) [inline, virtual]
+
+
+ +

+Fill category with information for 'thisCategoryIndex'. +

+

Parameters:
+ + + +
channel 
category 
+
+
Returns:
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
VstInt32 AudioEffectX::getMidiProgramName (VstInt32  channel,
MidiProgramName midiProgramName 
) [inline, virtual]
+
+
+ +

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

+

Note:
plug-in canDo "midiProgramNames". No effect, if 0 is returned.
+
Warning:
don't mix concepts: the MIDI Programs are totally independent from all other programs present in VST. The main difference is, that there are upto 16 simultaneous active MIDI Programs (one per channel), while there can be only one active "VST"-Program. (You should see the "VST"-Program as the one single main global program, which contains the entire current state of the plug-in.) This function can be called in any sequence.
+
Parameters:
+ + + +
channel MidiChannel: 0-15
midiProgramName Points to MidiProgramName struct
+
+
Returns:
Number of available MIDI Programs on that channel
    +
  • number of used programIndexes
  • 0 if no MidiProgramNames supported
+
+
Note:
Example : plug-in has 3 MidiPrograms on MidiChannel 0.
+	Host calls getMidiProgramName with idx = 0 and MidiProgramName::thisProgramIndex = 0.
+	Plug fills out:
+	MidiProgramName::name[64] = "Program A"
+	MidiProgramName::midiProgram = 0
+	MidiProgramName::midiBankMsb = -1
+	MidiProgramName::midiBankLsb = -1
+	MidiProgramName::parentCategoryIndex = -1
+	MidiProgramName::flags = 0 (if plug isn't "Omni").
+	Plug returns 3.
+	Host calls getMidiProgramName with idx = 0 and MidiProgramName::thisProgramIndex = 1.
+	Plug fills out:
+	MidiProgramName::name[64] = "Program B"
+	MidiProgramName::midiProgram = 1
+	MidiProgramName::midiBankMsb = -1
+	MidiProgramName::midiBankLsb = -1
+	MidiProgramName::parentCategoryIndex = -1
+	MidiProgramName::flags = 0 (if plug isn't "Omni").
+	Plug returns 3.
+	Host calls getMidiProgramName with idx = 0 and MidiProgramName::thisProgramIndex = 2.
+	Plug fills out:
+	MidiProgramName::name[64] = "Program C"
+	MidiProgramName::midiProgram = 2
+	MidiProgramName::midiBankMsb = -1
+	MidiProgramName::midiBankLsb = -1
+	MidiProgramName::parentCategoryIndex = -1
+	MidiProgramName::flags = 0 (if plug isn't "Omni").
+	Plug returns 3.
+	
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::getNextShellPlugin (char *  name  )  [inline, virtual]
+
+
+ +

+This opcode is only called, if the plug-in is of type kPlugCategShell, in order to extract all included sub-plugin´s names. +

+

Parameters:
+ + +
name Points to a char buffer of size 64, which is to be filled with the name of the plug-in including the terminating zero
+
+
Returns:
Return the next plug-in's uniqueID
+
Note:
Example of Implementation
+	//---From the Host side : if found plugin is a Shell category-----------
+	if (effect->getCategory () == kPlugCategShell)
+	{ 
+		// scan shell for subplugins
+		char tempName[64] = {0}; 
+		VstInt32 plugUniqueID = 0;
+		while ((plugUniqueID = effect->dispatchEffect (effShellGetNextPlugin, 0, 0, tempName)) != 0)
+		{ 
+			// subplug needs a name 
+			if (tempName[0] != 0)
+			{
+				...do what you want with this tempName and plugUniqueID
+			}
+		}
+	}
+	//---From the Host side : Intanciate a subplugin of a shell plugin---
+	// retreive the uniqueID of this subplugin the host wants to load
+	// set it to the host currentID
+	currentID = subplugInfo->uniqueID;
+	// call the its shell plugin (main function)
+	main ();
+	// the shell plugin will ask for the currentUniqueID
+	// and should return the chosen subplugin
+	...
+	//---From the plugin-Shell Side: for enumeration of subplugins---------
+	category = kPlugCategShell;
+	->can ask the host if "shellCategory" is supported
+	// at start (instanciation) reset the index for the getNextShellPlugin call.
+	myPluginShell::index = 0;
+	// implementation of getNextShellPlugin (char* name);
+	VstInt32 myPluginShell::getNextShellPlugin (char* name)
+	{
+		strcpy (name, MyNameTable[index]);
+		return MyUniqueIDTable[index++];
+	}
+	....
+	//---From the plugin-Shell Side: when instanciation-----
+	VstInt32 uniqueID = host->getCurrentUniqueID ();
+	if (uniqueID == 0) // the host instanciates the shell
+	{}
+	else // host try to instanciate one of my subplugin...identified by the uniqueID
+	{}
+
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getNumMidiInputChannels (  )  [inline, virtual]
+
+
+ +

+Returns number of MIDI input channels used [0, 16]. +

+Called by the host application to determine how many MIDI input channels are actually used by a plugin e.g. to hide unused channels from the user. For compatibility with VST 2.3 and below, the default return value 0 means 'not implemented' - in this case the host assumes 16 MIDI channels to be present (or none at all).

+

Returns:
Number of MIDI input channels: 1-15, otherwise: 16 or no MIDI channels at all (0)
+
Note:
The VST 2.x protocol is limited to a maximum of 16 MIDI channels as defined by the MIDI Standard. This might change in future revisions of the API.
+
See also:
getNumMidiOutputChannels()
+ PlugCanDos::canDoReceiveVstMidiEvent
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getNumMidiOutputChannels (  )  [inline, virtual]
+
+
+ +

+Returns number of MIDI output channels used [0, 16]. +

+Called by the host application to determine how many MIDI output channels are actually used by a plugin e.g. to hide unused channels from the user. For compatibility with VST 2.3 and below, the default return value 0 means 'not implemented' - in this case the host assumes 16 MIDI channels to be present (or none at all).

+

Returns:
Number of MIDI output channels: 1-15, otherwise: 16 or no MIDI channels at all (0)
+
Note:
The VST 2.x protocol is limited to a maximum of 16 MIDI channels as defined by the MIDI Standard. This might change in future revisions of the API.
+
See also:
getNumMidiInputChannels()
+ PlugCanDos::canDoSendVstMidiEvent
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getOutputLatency (  )  [virtual]
+
+
+ +

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

+

Returns:
ASIO output latency
+
See also:
getInputLatency()
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getOutputProperties (VstInt32  index,
VstPinProperties properties 
) [inline, virtual]
+
+
+ +

+Return the properties of input index. +

+

Parameters:
+ + + +
index The index to the output, starting with 0
properties A pointer to a VstPinProperties structure
+
+
Returns:
true on success
+
See also:
getInputProperties()
+
Note:
Example 1
+	bool MyPlug::getOutputProperties (VstInt32 index, VstPinProperties* properties)
+	{
+		bool returnCode = false;
+		if (index < kNumOutputs)
+		{
+			sprintf (properties->label, "My %1d Out", index + 1);
+			properties->flags = kVstPinIsStereo | kVstPinIsActive;
+			returnCode = true;
+		}
+		return (returnCode);
+	}
+	

+Example 2 : plug-in with 1 mono, 1 stereo and one 5.1 outputs (kNumOutputs = 9):

+	bool MyPlug::getOutputProperties (VstInt32 index, VstPinProperties* properties)
+	{
+		bool returnCode = false;
+		if (index >= 0 && index < kNumOutputs)
+		{
+			properties->flags = kVstPinIsActive;
+			if (index == 0) // mono
+			{
+				strcpy (properties->label, "Mono Out");
+				properties->arrangementType = kSpeakerArrMono;
+			}
+			else if (index == 1) // stereo (1 -> 2)
+			{
+				strcpy (properties->label, "Stereo Out");
+				properties->flags |= kVstPinIsStereo;
+				properties->arrangementType = kSpeakerArrStereo;
+			}
+			else if (index >= 3) // 5.1 (3 -> 8)
+			{
+				strcpy (properties->label, "5.1 Out");
+				properties->flags |= kVstPinUseSpeaker;
+				properties->arrangementType = kSpeakerArr51;
+for old VST Host < 2.3, make 5.1 to stereo/mono/mono/stereo (L R C Lfe Ls Rs)
+				if (index == 3 || index == 7)
+					properties->flags |= kVstPinIsStereo;
+				if (index == 5)
+					strcpy (properties->label, "Center");	
+				else if (index == 6)
+					strcpy (properties->label, "Lfe");	
+				else if (index == 7) // (7 -> 8)
+					strcpy (properties->label, "Stereo Back");
+			}
+			returnCode = true;
+		}
+		return returnCode;
+	}
+	
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getParameterProperties (VstInt32  index,
VstParameterProperties p 
) [inline, virtual]
+
+
+ +

+Return parameter properties. +

+

Parameters:
+ + + +
index Index of the parameter
p Pointer to VstParameterProperties
+
+
Returns:
Return true on success
+ +
+

+ +

+
+ + + + + + + + +
VstPlugCategory AudioEffectX::getPlugCategory (  )  [virtual]
+
+
+ +

+Specify a category that fits the plug (VstPlugCategory). +

+

Returns:
Plug-in's category defined in VstPlugCategory
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::getProductString (char *  text  )  [inline, virtual]
+
+
+ +

+Fill text with a string identifying the product name. +

+

Parameters:
+ + +
text A string up to 64 chars
+
+
Returns:
true on success
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getProgramNameIndexed (VstInt32  category,
VstInt32  index,
char *  text 
) [inline, virtual]
+
+
+ +

+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).

+

Parameters:
+ + + + +
category unused in VST 2.4
index Index of the program in a given category, starting with 0.
text A string up to 24 chars.
+
+
Returns:
true on success
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::getSpeakerArrangement (VstSpeakerArrangement **  pluginInput,
VstSpeakerArrangement **  pluginOutput 
) [inline, virtual]
+
+
+ +

+Return the plug-in's speaker arrangements. +

+

Parameters:
+ + + +
pluginInput A pointer to the input's VstSpeakerArrangement structure.
pluginOutput A pointer to the output's VstSpeakerArrangement structure.
+
+
Returns:
true on success
+
Note:
setSpeakerArrangement() and getSpeakerArrangement() are always called in suspended state. (like setSampleRate() or setBlockSize()).
+
Here an example code to show how the host uses getSpeakerArrangement()
+	VstSpeakerArrangement *plugInputVstArr = 0;
+	VstSpeakerArrangement *plugOutputVstArr = 0;
+	if (getFormatVersion () >= 2300 && getSpeakerArrangement (&plugInputVstArr, &plugOutputVstArr))
+		....
+	
+
See also:
setSpeakerArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
VstTimeInfo * AudioEffectX::getTimeInfo (VstInt32  filter  )  [virtual]
+
+
+ +

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

+

Parameters:
+ + +
filter A mask indicating which fields are requested, as some items may require extensive conversions. See the flags in VstTimeInfo
+
+
Returns:
A pointer to a VstTimeInfo structure or NULL if not implemented by the Host
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::getVendorString (char *  text  )  [inline, virtual]
+
+
+ +

+Fill text with a string identifying the vendor. +

+

Parameters:
+ + +
text A string up to 64 chars
+
+
Returns:
true on success
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getVendorVersion (  )  [inline, virtual]
+
+
+ +

+Return vendor-specific version. +

+

Returns:
The version of the plug-in
+
Note:
This should be upported
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::getVstVersion (  )  [inline, virtual]
+
+
+ +

+Returns the current VST Version (kVstVersion). +

+

Returns:
    +
  • 2xxx : the last VST 2.x plug-in version (by default)
  • 0 : older versions
+
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::hasMidiProgramsChanged (VstInt32  channel  )  [inline, virtual]
+
+
+ +

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

+

Parameters:
+ + +
channel 
+
+
Returns:
    +
  • true: if the MidiProgramNames, MidiKeyNames or MidiControllerNames had changed on this channel
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VstIntPtr AudioEffectX::hostVendorSpecific (VstInt32  lArg1,
VstIntPtr  lArg2,
void *  ptrArg,
float  floatArg 
) [virtual]
+
+
+ +

+No specific definition. +

+ +

+

+ +

+
+ + + + + + + + +
bool AudioEffectX::ioChanged (  )  [virtual]
+
+
+ +

+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().

+

Returns:
true on success
+
See also:
setSpeakerArrangement(), getSpeakerArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffectX::isSynth (bool  state = true  )  [virtual]
+
+
+ +

+Set if plug-in is a synth. +

+Tells the Host that the plug-in is an instrument, i.e. that it will call wantEvents().

+

Parameters:
+ + +
state 
    +
  • true: is an instrument (default)
  • false: is a simple audio effect
+
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::matchArrangement (VstSpeakerArrangement **  to,
VstSpeakerArrangement from 
) [virtual]
+
+
+ +

+"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.

+

Parameters:
+ + + +
to 
from 
+
+
Returns:
Returns true on success
+
See also:
allocateArrangement(), deallocateArrangement(), copySpeaker()
+ +
+

+ +

+
+ + + + + + + + + +
void AudioEffectX::noTail (bool  state = true  )  [virtual]
+
+
+ +

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

+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::openFileSelector (VstFileSelect ptr  )  [virtual]
+
+
+ +

+Open a Host File selector (see aeffectx.h for VstFileSelect definition). +

+

Parameters:
+ + +
ptr 
+
+
Returns:
Returns true on success
+
See also:
closeFileSelector()
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::processEvents (VstEvents events  )  [inline, virtual]
+
+
+ +

+Called when new MIDI events come in. +

+

Returns:
return value is ignored
+
Remarks:
Events are always related to the current audio block. For each process cycle, processEvents() is called once before a processReplacing() call (if new events are available).
+
See also:
VstEvents, VstMidiEvent
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::processVariableIo (VstVariableIo varIo  )  [inline, virtual]
+
+
+ +

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

+

Parameters:
+ + +
varIo 
+
+
Returns:
on success
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::sendVstEventsToHost (VstEvents events  ) 
+
+
+ +

+Send MIDI events back to Host application. +

+Can be called inside processReplacing.

+

Parameters:
+ + +
events Fill with VST events
+
+
Returns:
Returns true on success
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::setBypass (bool  onOff  )  [inline, virtual]
+
+
+ +

+For 'soft-bypass' (this could be automated (in Audio Thread) that why you could NOT call iochanged (if needed) in this function, do it in fxidle). +

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

+

Note:
This bypass feature could be automated by the Host (this means avoid to much CPU requirement in this call)

+If the plug-in supports SoftBypass and it has a latency (initialDelay), in Bypassed state the plug-in has to used the same latency value.

+
Parameters:
+ + +
onOff 
+
+
Returns:
    +
  • true: supports SoftBypass, process will be called, the plug-in should compensate its latency, and copy inputs to outputs
  • false: doesn't support SoftBypass, process will not be called, the Host should bypass the process call
+
+
See also:
processReplacing()
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::setPanLaw (VstInt32  type,
float  val 
) [inline, virtual]
+
+
+ +

+Set the Panning Law used by the Host. +

+

See also:
VstPanLawType.
+ +
+

+ +

+
+ + + + + + + + + +
bool AudioEffectX::setProcessPrecision (VstInt32  precision  )  [inline, virtual]
+
+
+ +

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

+

Parameters:
+ + +
precision kVstProcessPrecision32 or kVstProcessPrecision64
+
+
Returns:
Returns true on success
+
See also:
VstProcessPrecision
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::setSpeakerArrangement (VstSpeakerArrangement pluginInput,
VstSpeakerArrangement pluginOutput 
) [inline, virtual]
+
+
+ +

+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().

+

Parameters:
+ + + +
pluginInput A pointer to the input's VstSpeakerArrangement structure.
pluginOutput A pointer to the output's VstSpeakerArrangement structure.
+
+
Returns:
true on success
+
Note:
setSpeakerArrangement() and getSpeakerArrangement() are always called in suspended state. (like setSampleRate() or setBlockSize()).
+
See also:
getSpeakerArrangement()
+ +
+

+ +

+
+ + + + + + + + + +
VstInt32 AudioEffectX::setTotalSampleToProcess (VstInt32  value  )  [inline, virtual]
+
+
+ +

+Called in offline mode before process() or processVariableIo (). +

+It indicates how many samples will be processed in total.

+

Parameters:
+ + +
value Number of samples to process
+
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::sizeWindow (VstInt32  width,
VstInt32  height 
) [virtual]
+
+
+ +

+Requests to resize the editor window. +

+

Parameters:
+ + + +
width The window's width in pixel
height The window's height in pixel
+
+
Returns:
true on success
+ +
+

+ +

+
+ + + + + + + + +
virtual VstInt32 AudioEffectX::startProcess (  )  [inline, virtual]
+
+
+ +

+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 AudioEffectX::stopProcess (  )  [inline, virtual]
+
+
+ +

+Called after the stop of process call. +

+ +

+

+ +

+
+ + + + + + + + + + + + + + + + + + +
bool AudioEffectX::string2parameter (VstInt32  index,
char *  text 
) [inline, virtual]
+
+
+ +

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

+

Parameters:
+ + + +
index Index of the parameter
text A textual description of the parameter's value. A NULL pointer is used to check the capability (return true).
+
+
Returns:
true on success
+
Note:
Implies setParameter (). text==0 is to be expected to check the capability (returns true)
+ +
+

+ +

+
+ + + + + + + + +
VstInt32 AudioEffectX::updateBlockSize (  )  [virtual]
+
+
+ +

+Returns block size from Host (may issue getBlockSize()). +

+

Returns:
The Host's block size
+
Note:
Will cause application to call AudioEffect's setSampleRate() to be called (when implemented).
+ +
+

+ +

+
+ + + + + + + + +
bool AudioEffectX::updateDisplay (  )  [virtual]
+
+
+ +

+Something has changed in plug-in, request an update display like program (MIDI too) and parameters list in Host. +

+

Returns:
true if supported
+ +
+

+ +

+
+ + + + + + + + +
double AudioEffectX::updateSampleRate (  )  [virtual]
+
+
+ +

+Returns sample rate from Host (may issue setSampleRate()). +

+

Returns:
The Host's sample rate
+ +
+

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
virtual VstIntPtr AudioEffectX::vendorSpecific (VstInt32  lArg,
VstIntPtr  lArg2,
void *  ptrArg,
float  floatArg 
) [inline, virtual]
+
+
+ +

+No definition, vendor specific handling. +

+ +

+

+


The documentation for this class was generated from the following files: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/class_audio_effect_x.png b/doc/html/class_audio_effect_x.png new file mode 100644 index 0000000..f41299c Binary files /dev/null and b/doc/html/class_audio_effect_x.png differ diff --git a/doc/html/deprecated.html b/doc/html/deprecated.html new file mode 100644 index 0000000..9f80a33 --- /dev/null +++ b/doc/html/deprecated.html @@ -0,0 +1,289 @@ + + +VST SDK 2.4: Deprecated List + + + + +
+
+

Deprecated List

+
Member AEffect::ioRatio
+
unused member
+
+

+

+
Member AEffect::offQualities
+
unused member
+
+

+

+
Member AEffect::process
+
Accumulating process mode is deprecated in VST 2.4! Use AEffect::processReplacing instead!
+
+

+

+
Member AEffect::realQualities
+
unused member
+
+

+

+
Class VstWindow
+
Structure used for openWindow and closeWindow (deprecated in VST 2.4).
+
+

+

+
Member effGetVu
+
deprecated in VST 2.4
+
+

+

+
Member effEditDraw
+
deprecated in VST 2.4
+
+

+

+
Member effEditMouse
+
deprecated in VST 2.4
+
+

+

+
Member effEditKey
+
deprecated in VST 2.4
+
+

+

+
Member effEditTop
+
deprecated in VST 2.4
+
+

+

+
Member effEditSleep
+
deprecated in VST 2.4
+
+

+

+
Member effIdentify
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterPinConnected
+
deprecated in VST 2.4 r2
+
+

+

+
Member effFlagsHasClip
+
deprecated in VST 2.4
+
+

+

+
Member effFlagsHasVu
+
deprecated in VST 2.4
+
+

+

+
Member effFlagsCanMono
+
deprecated in VST 2.4
+
+

+

+
Member effFlagsExtIsAsync
+
deprecated in VST 2.4
+
+

+

+
Member effFlagsExtHasBuffer
+
deprecated in VST 2.4
+
+

+

+
Member effGetNumProgramCategories
+
deprecated in VST 2.4
+
+

+

+
Member effCopyProgram
+
deprecated in VST 2.4
+
+

+

+
Member effConnectInput
+
deprecated in VST 2.4
+
+

+

+
Member effConnectOutput
+
deprecated in VST 2.4
+
+

+

+
Member effGetCurrentPosition
+
deprecated in VST 2.4
+
+

+

+
Member effGetDestinationBuffer
+
deprecated in VST 2.4
+
+

+

+
Member effSetBlockSizeAndSampleRate
+
deprecated in VST 2.4
+
+

+

+
Member effGetErrorText
+
deprecated in VST 2.4
+
+

+

+
Member effIdle
+
deprecated in VST 2.4
+
+

+

+
Member effGetIcon
+
deprecated in VST 2.4
+
+

+

+
Member effSetViewPosition
+
deprecated in VST 2.4
+
+

+

+
Member effKeysRequired
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterWantMidi
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterSetTime
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterTempoAt
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetNumAutomatableParameters
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetParameterQuantization
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterNeedIdle
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetPreviousPlug
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetNextPlug
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterWillReplaceOrAccumulate
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterSetOutputSampleRate
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetOutputSpeakerArrangement
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterSetIcon
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterOpenWindow
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterCloseWindow
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterEditFile
+
deprecated in VST 2.4
+
+

+

+
Member audioMasterGetChunkFile
+
deprecated in VST 2.4 [ptr]: char[2048] or sizeof (FSSpec) [return value]: 1 if supported
+
+

+

+
Member audioMasterGetInputSpeakerArrangement
+
deprecated in VST 2.4
+
+

+

+
Member kVstAudioType
+
unused event type
+
+

+

+
Member kVstVideoType
+
unused event type
+
+

+

+
Member kVstParameterType
+
unused event type
+
+

+

+
Member kVstTriggerType
+
unused event type
+
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/dir_2d3252dd12c84c66c1d25b26bb45a1f5.html b/doc/html/dir_2d3252dd12c84c66c1d25b26bb45a1f5.html new file mode 100644 index 0000000..e30b73c --- /dev/null +++ b/doc/html/dir_2d3252dd12c84c66c1d25b26bb45a1f5.html @@ -0,0 +1,55 @@ + + +VST SDK 2.4: G:/newbase/public.sdk/source/vst2.x/ Directory Reference + + + + +
+
+ +

vst2.x Directory Reference

+ + + + + + + + + + + + + + + + +

Files

file  aeffeditor.h
file  audioeffect.cpp
file  audioeffect.h
file  audioeffectx.cpp
file  audioeffectx.h
file  doc.h
file  vstplugmain.cpp
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/dir_77c628dfee72e555f82d5ef53b733f38.html b/doc/html/dir_77c628dfee72e555f82d5ef53b733f38.html new file mode 100644 index 0000000..bc53b37 --- /dev/null +++ b/doc/html/dir_77c628dfee72e555f82d5ef53b733f38.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: G:/newbase/pluginterfaces/vst2.x/ Directory Reference + + + + +
+
+ +

vst2.x Directory Reference

+ + + + + + + + +

Files

file  aeffect.h
file  aeffectx.h
file  vstfxstore.h
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/dir_f81105d3b854bea570aaf3bae5cb64c1.html b/doc/html/dir_f81105d3b854bea570aaf3bae5cb64c1.html new file mode 100644 index 0000000..fbcfcce --- /dev/null +++ b/doc/html/dir_f81105d3b854bea570aaf3bae5cb64c1.html @@ -0,0 +1,43 @@ + + +VST SDK 2.4: G:/newbase/public.sdk/source/ Directory Reference + + + + +
+
+ +

source Directory Reference

+ + + + +

Directories

directory  vst2.x
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/dir_fa0454ab79b4262333bf837ea3d765e9.html b/doc/html/dir_fa0454ab79b4262333bf837ea3d765e9.html new file mode 100644 index 0000000..4d08986 --- /dev/null +++ b/doc/html/dir_fa0454ab79b4262333bf837ea3d765e9.html @@ -0,0 +1,43 @@ + + +VST SDK 2.4: G:/newbase/pluginterfaces/ Directory Reference + + + + +
+
+ +

pluginterfaces Directory Reference

+ + + + +

Directories

directory  vst2.x
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/dirs.html b/doc/html/dirs.html new file mode 100644 index 0000000..e1949ba --- /dev/null +++ b/doc/html/dirs.html @@ -0,0 +1,45 @@ + + +VST SDK 2.4: Directory Hierarchy + + + + +
+
+

VST SDK 2.4 Directories

This directory hierarchy is sorted roughly, but not completely, alphabetically: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/doc_8h.html b/doc/html/doc_8h.html new file mode 100644 index 0000000..6950ba5 --- /dev/null +++ b/doc/html/doc_8h.html @@ -0,0 +1,45 @@ + + +VST SDK 2.4: doc.h File Reference + + + + +
+
+
+
+ +

doc.h File Reference

+ +
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/doxygen.css b/doc/html/doxygen.css new file mode 100644 index 0000000..5d58369 --- /dev/null +++ b/doc/html/doxygen.css @@ -0,0 +1,358 @@ +BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV { + font-family: Geneva, Arial, Helvetica, sans-serif; +} +BODY,TD { + font-size: 90%; +} +H1 { + text-align: center; + font-size: 160%; +} +H2 { + font-size: 120%; +} +H3 { + font-size: 100%; +} +CAPTION { font-weight: bold } +DIV.qindex { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.nav { + width: 100%; + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + padding: 2px; + line-height: 140%; +} +DIV.navtab { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +TD.navtab { + font-size: 70%; +} +A.qindex { + text-decoration: none; + font-weight: bold; + color: #1A419D; +} +A.qindex:visited { + text-decoration: none; + font-weight: bold; + color: #1A419D +} +A.qindex:hover { + text-decoration: none; + background-color: #ddddff; +} +A.qindexHL { + text-decoration: none; + font-weight: bold; + background-color: #6666cc; + color: #ffffff; + border: 1px double #9295C2; +} +A.qindexHL:hover { + text-decoration: none; + background-color: #6666cc; + color: #ffffff; +} +A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff } +A.el { text-decoration: none; font-weight: bold } +A.elRef { font-weight: bold } +A.code:link { text-decoration: none; font-weight: normal; color: #0000FF} +A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF} +A.codeRef:link { font-weight: normal; color: #0000FF} +A.codeRef:visited { font-weight: normal; color: #0000FF} +A:hover { text-decoration: none; background-color: #f2f2ff } +DL.el { margin-left: -1cm } +.fragment { + font-family: monospace, fixed; + font-size: 95%; +} +PRE.fragment { + border: 1px solid #CCCCCC; + background-color: #f5f5f5; + margin-top: 4px; + margin-bottom: 4px; + margin-left: 2px; + margin-right: 8px; + padding-left: 6px; + padding-right: 6px; + padding-top: 4px; + padding-bottom: 4px; +} +DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px } + +DIV.groupHeader { + margin-left: 16px; + margin-top: 12px; + margin-bottom: 6px; + font-weight: bold; +} +DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% } +BODY { + background: white; + color: black; + margin-right: 20px; + margin-left: 20px; +} +TD.indexkey { + background-color: #e8eef2; + font-weight: bold; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TD.indexvalue { + background-color: #e8eef2; + font-style: italic; + padding-right : 10px; + padding-top : 2px; + padding-left : 10px; + padding-bottom : 2px; + margin-left : 0px; + margin-right : 0px; + margin-top : 2px; + margin-bottom : 2px; + border: 1px solid #CCCCCC; +} +TR.memlist { + background-color: #f0f0f0; +} +P.formulaDsp { text-align: center; } +IMG.formulaDsp { } +IMG.formulaInl { vertical-align: middle; } +SPAN.keyword { color: #008000 } +SPAN.keywordtype { color: #604020 } +SPAN.keywordflow { color: #e08000 } +SPAN.comment { color: #800000 } +SPAN.preprocessor { color: #806020 } +SPAN.stringliteral { color: #002080 } +SPAN.charliteral { color: #008080 } +.mdescLeft { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.mdescRight { + padding: 0px 8px 4px 8px; + font-size: 80%; + font-style: italic; + background-color: #FAFAFA; + border-top: 1px none #E0E0E0; + border-right: 1px none #E0E0E0; + border-bottom: 1px none #E0E0E0; + border-left: 1px none #E0E0E0; + margin: 0px; +} +.memItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemLeft { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplItemRight { + padding: 1px 8px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: none; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + background-color: #FAFAFA; + font-size: 80%; +} +.memTemplParams { + padding: 1px 0px 0px 8px; + margin: 4px; + border-top-width: 1px; + border-right-width: 1px; + border-bottom-width: 1px; + border-left-width: 1px; + border-top-color: #E0E0E0; + border-right-color: #E0E0E0; + border-bottom-color: #E0E0E0; + border-left-color: #E0E0E0; + border-top-style: solid; + border-right-style: none; + border-bottom-style: none; + border-left-style: none; + color: #606060; + background-color: #FAFAFA; + font-size: 80%; +} +.search { color: #003399; + font-weight: bold; +} +FORM.search { + margin-bottom: 0px; + margin-top: 0px; +} +INPUT.search { font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +TD.tiny { font-size: 75%; +} +a { + color: #1A41A8; +} +a:visited { + color: #2A3798; +} +.dirtab { padding: 4px; + border-collapse: collapse; + border: 1px solid #84b0c7; +} +TH.dirtab { background: #e8eef2; + font-weight: bold; +} +HR { height: 1px; + border: none; + border-top: 1px solid black; +} + +/* Style for detailed member documentation */ +.memtemplate { + font-size: 80%; + color: #606060; + font-weight: normal; +} +.memnav { + background-color: #e8eef2; + border: 1px solid #84b0c7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} +.memitem { + padding: 4px; + background-color: #eef3f5; + border-width: 1px; + border-style: solid; + border-color: #dedeee; + -moz-border-radius: 8px 8px 8px 8px; +} +.memname { + white-space: nowrap; + font-weight: bold; +} +.memdoc{ + padding-left: 10px; +} +.memproto { + background-color: #d5e1e8; + width: 100%; + border-width: 1px; + border-style: solid; + border-color: #84b0c7; + font-weight: bold; + -moz-border-radius: 8px 8px 8px 8px; +} +.paramkey { + text-align: right; +} +.paramtype { + white-space: nowrap; +} +.paramname { + color: #602020; + font-style: italic; +} +/* End Styling for detailed member documentation */ + +/* for the tree view */ +.ftvtree { + font-family: sans-serif; + margin:0.5em; +} +.directory { font-size: 9pt; font-weight: bold; } +.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; } +.directory > h3 { margin-top: 0; } +.directory p { margin: 0px; white-space: nowrap; } +.directory div { display: none; margin: 0px; } +.directory img { vertical-align: -30%; } + diff --git a/doc/html/doxygen.png b/doc/html/doxygen.png new file mode 100644 index 0000000..f0a274b Binary files /dev/null and b/doc/html/doxygen.png differ diff --git a/doc/html/files.html b/doc/html/files.html new file mode 100644 index 0000000..585c63e --- /dev/null +++ b/doc/html/files.html @@ -0,0 +1,52 @@ + + +VST SDK 2.4: File Index + + + + +
+
+
+
+

VST SDK 2.4 File List

Here is a list of all files with brief descriptions: + + + + + + + + + + +
aeffect.h
aeffectx.h
aeffeditor.h
audioeffect.cpp
audioeffect.h
audioeffectx.cpp
audioeffectx.h
doc.h
vstfxstore.h
vstplugmain.cpp
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/ftv2blank.png b/doc/html/ftv2blank.png new file mode 100644 index 0000000..493c3c0 Binary files /dev/null and b/doc/html/ftv2blank.png differ diff --git a/doc/html/ftv2doc.png b/doc/html/ftv2doc.png new file mode 100644 index 0000000..f72999f Binary files /dev/null and b/doc/html/ftv2doc.png differ diff --git a/doc/html/ftv2folderclosed.png b/doc/html/ftv2folderclosed.png new file mode 100644 index 0000000..d6d0634 Binary files /dev/null and b/doc/html/ftv2folderclosed.png differ diff --git a/doc/html/ftv2folderopen.png b/doc/html/ftv2folderopen.png new file mode 100644 index 0000000..bbe2c91 Binary files /dev/null and b/doc/html/ftv2folderopen.png differ diff --git a/doc/html/ftv2lastnode.png b/doc/html/ftv2lastnode.png new file mode 100644 index 0000000..e7b9ba9 Binary files /dev/null and b/doc/html/ftv2lastnode.png differ diff --git a/doc/html/ftv2link.png b/doc/html/ftv2link.png new file mode 100644 index 0000000..14f3fed Binary files /dev/null and b/doc/html/ftv2link.png differ diff --git a/doc/html/ftv2mlastnode.png b/doc/html/ftv2mlastnode.png new file mode 100644 index 0000000..09ceb6a Binary files /dev/null and b/doc/html/ftv2mlastnode.png differ diff --git a/doc/html/ftv2mnode.png b/doc/html/ftv2mnode.png new file mode 100644 index 0000000..3254c05 Binary files /dev/null and b/doc/html/ftv2mnode.png differ diff --git a/doc/html/ftv2node.png b/doc/html/ftv2node.png new file mode 100644 index 0000000..c9f06a5 Binary files /dev/null and b/doc/html/ftv2node.png differ diff --git a/doc/html/ftv2plastnode.png b/doc/html/ftv2plastnode.png new file mode 100644 index 0000000..0b07e00 Binary files /dev/null and b/doc/html/ftv2plastnode.png differ diff --git a/doc/html/ftv2pnode.png b/doc/html/ftv2pnode.png new file mode 100644 index 0000000..2001b79 Binary files /dev/null and b/doc/html/ftv2pnode.png differ diff --git a/doc/html/ftv2vertline.png b/doc/html/ftv2vertline.png new file mode 100644 index 0000000..b330f3a Binary files /dev/null and b/doc/html/ftv2vertline.png differ diff --git a/doc/html/functions.html b/doc/html/functions.html new file mode 100644 index 0000000..bd92637 --- /dev/null +++ b/doc/html/functions.html @@ -0,0 +1,89 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- a -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x62.html b/doc/html/functions_0x62.html new file mode 100644 index 0000000..5817ac0 --- /dev/null +++ b/doc/html/functions_0x62.html @@ -0,0 +1,90 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- b -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x63.html b/doc/html/functions_0x63.html new file mode 100644 index 0000000..96870f5 --- /dev/null +++ b/doc/html/functions_0x63.html @@ -0,0 +1,102 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- c -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x64.html b/doc/html/functions_0x64.html new file mode 100644 index 0000000..728cfec --- /dev/null +++ b/doc/html/functions_0x64.html @@ -0,0 +1,93 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- d -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x65.html b/doc/html/functions_0x65.html new file mode 100644 index 0000000..aec308a --- /dev/null +++ b/doc/html/functions_0x65.html @@ -0,0 +1,90 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- e -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x66.html b/doc/html/functions_0x66.html new file mode 100644 index 0000000..611a867 --- /dev/null +++ b/doc/html/functions_0x66.html @@ -0,0 +1,90 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- f -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x67.html b/doc/html/functions_0x67.html new file mode 100644 index 0000000..9e6c4eb --- /dev/null +++ b/doc/html/functions_0x67.html @@ -0,0 +1,126 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- g -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x68.html b/doc/html/functions_0x68.html new file mode 100644 index 0000000..f3a4ac5 --- /dev/null +++ b/doc/html/functions_0x68.html @@ -0,0 +1,87 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- h -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x69.html b/doc/html/functions_0x69.html new file mode 100644 index 0000000..89f3dc7 --- /dev/null +++ b/doc/html/functions_0x69.html @@ -0,0 +1,94 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- i -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x6b.html b/doc/html/functions_0x6b.html new file mode 100644 index 0000000..345a796 --- /dev/null +++ b/doc/html/functions_0x6b.html @@ -0,0 +1,83 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- k -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x6c.html b/doc/html/functions_0x6c.html new file mode 100644 index 0000000..f760370 --- /dev/null +++ b/doc/html/functions_0x6c.html @@ -0,0 +1,86 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- l -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x6d.html b/doc/html/functions_0x6d.html new file mode 100644 index 0000000..fdf69c6 --- /dev/null +++ b/doc/html/functions_0x6d.html @@ -0,0 +1,98 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- m -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x6e.html b/doc/html/functions_0x6e.html new file mode 100644 index 0000000..5728af8 --- /dev/null +++ b/doc/html/functions_0x6e.html @@ -0,0 +1,108 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- n -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x6f.html b/doc/html/functions_0x6f.html new file mode 100644 index 0000000..8362c51 --- /dev/null +++ b/doc/html/functions_0x6f.html @@ -0,0 +1,92 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- o -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x70.html b/doc/html/functions_0x70.html new file mode 100644 index 0000000..fe59f1e --- /dev/null +++ b/doc/html/functions_0x70.html @@ -0,0 +1,103 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- p -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x72.html b/doc/html/functions_0x72.html new file mode 100644 index 0000000..ad25904 --- /dev/null +++ b/doc/html/functions_0x72.html @@ -0,0 +1,96 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- r -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x73.html b/doc/html/functions_0x73.html new file mode 100644 index 0000000..c6bb990 --- /dev/null +++ b/doc/html/functions_0x73.html @@ -0,0 +1,128 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- s -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x74.html b/doc/html/functions_0x74.html new file mode 100644 index 0000000..6f89612 --- /dev/null +++ b/doc/html/functions_0x74.html @@ -0,0 +1,94 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- t -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x75.html b/doc/html/functions_0x75.html new file mode 100644 index 0000000..8aa0448 --- /dev/null +++ b/doc/html/functions_0x75.html @@ -0,0 +1,90 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- u -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x76.html b/doc/html/functions_0x76.html new file mode 100644 index 0000000..4720c89 --- /dev/null +++ b/doc/html/functions_0x76.html @@ -0,0 +1,87 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- v -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x77.html b/doc/html/functions_0x77.html new file mode 100644 index 0000000..c300923 --- /dev/null +++ b/doc/html/functions_0x77.html @@ -0,0 +1,86 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- w -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x78.html b/doc/html/functions_0x78.html new file mode 100644 index 0000000..148b861 --- /dev/null +++ b/doc/html/functions_0x78.html @@ -0,0 +1,83 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- x -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x79.html b/doc/html/functions_0x79.html new file mode 100644 index 0000000..a266539 --- /dev/null +++ b/doc/html/functions_0x79.html @@ -0,0 +1,83 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- y -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html new file mode 100644 index 0000000..3b0e373 --- /dev/null +++ b/doc/html/functions_0x7e.html @@ -0,0 +1,84 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all class members with links to the classes they belong to: +

+

- ~ -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html new file mode 100644 index 0000000..ba4925a --- /dev/null +++ b/doc/html/functions_func.html @@ -0,0 +1,230 @@ + + +VST SDK 2.4: Class Members - Functions + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- h -

+

- i -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- u -

+

- v -

+

- ~ -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html new file mode 100644 index 0000000..c3cf1ec --- /dev/null +++ b/doc/html/functions_vars.html @@ -0,0 +1,304 @@ + + +VST SDK 2.4: Class Members - Variables + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- a -

+

- b -

+

- c -

+

- d -

+

- e -

+

- f -

+

- g -

+

- h -

+

- i -

+

- k -

+

- l -

+

- m -

+

- n -

+

- o -

+

- p -

+

- r -

+

- s -

+

- t -

+

- u -

+

- v -

+

- w -

+

- x -

+

- y -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals.html b/doc/html/globals.html new file mode 100644 index 0000000..6c1830f --- /dev/null +++ b/doc/html/globals.html @@ -0,0 +1,124 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- a -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x62.html b/doc/html/globals_0x62.html new file mode 100644 index 0000000..d7b91e1 --- /dev/null +++ b/doc/html/globals_0x62.html @@ -0,0 +1,72 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- b -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x63.html b/doc/html/globals_0x63.html new file mode 100644 index 0000000..9362244 --- /dev/null +++ b/doc/html/globals_0x63.html @@ -0,0 +1,93 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- c -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x64.html b/doc/html/globals_0x64.html new file mode 100644 index 0000000..25819b8 --- /dev/null +++ b/doc/html/globals_0x64.html @@ -0,0 +1,72 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- d -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x65.html b/doc/html/globals_0x65.html new file mode 100644 index 0000000..b9bc3d5 --- /dev/null +++ b/doc/html/globals_0x65.html @@ -0,0 +1,163 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- e -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x66.html b/doc/html/globals_0x66.html new file mode 100644 index 0000000..56b06ff --- /dev/null +++ b/doc/html/globals_0x66.html @@ -0,0 +1,73 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- f -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x6b.html b/doc/html/globals_0x6b.html new file mode 100644 index 0000000..f33b191 --- /dev/null +++ b/doc/html/globals_0x6b.html @@ -0,0 +1,277 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- k -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x6d.html b/doc/html/globals_0x6d.html new file mode 100644 index 0000000..acfd479 --- /dev/null +++ b/doc/html/globals_0x6d.html @@ -0,0 +1,75 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- m -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x74.html b/doc/html/globals_0x74.html new file mode 100644 index 0000000..f559301 --- /dev/null +++ b/doc/html/globals_0x74.html @@ -0,0 +1,72 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- t -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_0x76.html b/doc/html/globals_0x76.html new file mode 100644 index 0000000..2436627 --- /dev/null +++ b/doc/html/globals_0x76.html @@ -0,0 +1,168 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+Here is a list of all file members with links to the files they belong to: +

+

- v -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html new file mode 100644 index 0000000..375f677 --- /dev/null +++ b/doc/html/globals_defs.html @@ -0,0 +1,71 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_enum.html b/doc/html/globals_enum.html new file mode 100644 index 0000000..3cd88da --- /dev/null +++ b/doc/html/globals_enum.html @@ -0,0 +1,85 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_eval.html b/doc/html/globals_eval.html new file mode 100644 index 0000000..7589938 --- /dev/null +++ b/doc/html/globals_eval.html @@ -0,0 +1,115 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- a -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_eval_0x65.html b/doc/html/globals_eval_0x65.html new file mode 100644 index 0000000..0c17fe6 --- /dev/null +++ b/doc/html/globals_eval_0x65.html @@ -0,0 +1,158 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- e -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_eval_0x6b.html b/doc/html/globals_eval_0x6b.html new file mode 100644 index 0000000..d02720c --- /dev/null +++ b/doc/html/globals_eval_0x6b.html @@ -0,0 +1,270 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- k -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_eval_0x6d.html b/doc/html/globals_eval_0x6d.html new file mode 100644 index 0000000..018a37e --- /dev/null +++ b/doc/html/globals_eval_0x6d.html @@ -0,0 +1,70 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- m -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_eval_0x76.html b/doc/html/globals_eval_0x76.html new file mode 100644 index 0000000..9059350 --- /dev/null +++ b/doc/html/globals_eval_0x76.html @@ -0,0 +1,123 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+
+ +
+ +

+  +

+

- v -

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html new file mode 100644 index 0000000..21d0cfb --- /dev/null +++ b/doc/html/globals_func.html @@ -0,0 +1,61 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_type.html b/doc/html/globals_type.html new file mode 100644 index 0000000..fce8df5 --- /dev/null +++ b/doc/html/globals_type.html @@ -0,0 +1,59 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html new file mode 100644 index 0000000..90685ca --- /dev/null +++ b/doc/html/globals_vars.html @@ -0,0 +1,72 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html new file mode 100644 index 0000000..1fdabd2 --- /dev/null +++ b/doc/html/hierarchy.html @@ -0,0 +1,73 @@ + + +VST SDK 2.4: Hierarchical Index + + + + +
+
+
+
+

VST SDK 2.4 Class Hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/history.html b/doc/html/history.html new file mode 100644 index 0000000..59d25ae --- /dev/null +++ b/doc/html/history.html @@ -0,0 +1,62 @@ + + +VST SDK 2.4: Revision History + + + + +
+
+

Revision History

+Revision 2 (2006/11/15)

+ +

+Revision 1 (2006/03/08)

+ +

+Revision 0 (2006/01/19)

+ + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/index.html b/doc/html/index.html new file mode 100644 index 0000000..a0d916c --- /dev/null +++ b/doc/html/index.html @@ -0,0 +1,8 @@ + + +VST SDK 2.4 + + + + + diff --git a/doc/html/intro.html b/doc/html/intro.html new file mode 100644 index 0000000..38a1d04 --- /dev/null +++ b/doc/html/intro.html @@ -0,0 +1,65 @@ + + +VST SDK 2.4: Introduction + + + + +
+
+

Introduction

+What is a VST Plug-In?

+Essentially, a VST Plug-in is a pure audio processing component, and not an audio application: It is a component that is utilized within a host application. This host application provides the audio streams that are processed by the plug-in's code.

+Generally speaking, a VST plug-in it can take a stream of audio data, apply a process to the audio, and return the result to the host application. A VST Plug-In performs its process normally using the processor of the computer; It does not necessarily need dedicated digital signal processors. The audio stream is broken down into a series of blocks. The host supplies the blocks in sequence. The host and its current environment control the block-size. The VST Plug-In maintains the status of all its own parameters relating to the running process: The host does not maintain any information about what the plug-in did with the last block of data it processed.

+From the host application’s point of view, a VST Plug-In is a black box with an arbitrary number of inputs, outputs (MIDI or Audio), and associated parameters. The host needs no implicit knowledge of the plug-in's process to be able to use it. The plug-in process can use whatever parameters it wishes, internally to the process, but depending on the capabilities of the host, it can allow the changes to user parameters to be automated by the host.

+The source code of a VST Plug-In is platform independent, but the delivery system depends on the platform architecture:

+

+To learn more about VST you can subscribe to the VST Developer Mailing List - check the 3rd Party Developer Support section at www.steinberg.net.

+


+

+Audio Processing

+Audio processing in the plug is accomplished by one of 3 methods, namely process (), processReplacing () and processDoubleReplacing (). While process () takes input data, applies its processing algorithm, and then adds the result to the output (accumulating), processReplacing () and processDoubleReplacing (), overwrite the output buffer.

+

Note:
The accumulating process mode is deprecated in VST 2.4. Please implement processReplacing (mandatory!) and processDoubleReplacing (optional).
+Audio data processed by VST Plug-Ins is 32 bit (single precision) and optionally 64 bit (double precision) floating-point data. The default used range is from -1.0 to +1.0 inclusive [-1.0, +1.0] (where 1.0 corresponds to 0dB, 0.5 to -6dB and 0.0 to -oodB). Note that an effect could generate values above this range.

+All parameters - the user parameters, acting directly or indirectly on that data, as automated by the host, are 32 bit floating-point data. They must always range from 0.0 to 1.0 inclusive [0.0, +1.0], regardless of their internal or external representation.

+

See also:
Threading issues
+
+

+Plug-In Implementation

+If you want to develop a VST Plug-In, you may prefer to go straight to the code examples now. These are very simple examples in which you will learn most of the important basic concepts just by reading a few lines of code. As a Plug-In developer you actually need to know very little about hosting a Plug-In. You should concentrate on the AudioEffect (VST 1.0) and AudioEffectX (VST 2.x extensions) base classes.
Note:
Never edit any of the SDK source files. Never ever. The host application relies on them being used as they are provided. Anything can be added or changed by overriding in your private classes derived from AudioEffectX.
+
+

+User Interfaces

+All user-interface issues are entirely separated from the audio processing issues. At its simplest there is an option where you can avoid providing a user interface at all. In this case the host requests character strings from the Plug-In representing each of the parameters. The host can use the separate ASCII strings for the value, the label, and the units of the parameters to construct its own user interface. This is how the simple code-examples, AGain & ADelay, work. This is also often a good way to develop a VST Plug-In, it offers a very short development cycle to start to test the algorithm. The proper interface can come later.

+The next user interface level is provided when the Plug-In defines its own editor. This allows practically any user interface to be defined. A negative aspect is that then you can quickly land up in platform specifics when dealing with the nuts an bolts of the interface issues, even though the audio process, the concepts and methodology remain platform independent.

+The final option is to use a portable framework for creating sophisticated user interfaces. This framework takes the form of the VSTGUI Library files that are available for almost all supported VST platforms. The VSTGUI Library classes and their usage is described in separate documentation.

See also:
VSTGUI on SourceForge
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/license.html b/doc/html/license.html new file mode 100644 index 0000000..6453020 --- /dev/null +++ b/doc/html/license.html @@ -0,0 +1,99 @@ + + +VST SDK 2.4: Licensing Issues + + + + +
+
+

Licensing Issues

The Steinberg VST Plug-In Software Development Kit can be used freely subject to certain licensing conditions by anyone interested in developing Plug-Ins, or to extend an application so that it’s capable of hosting VST Plug-Ins. When you chose to receive the VST Plug-In SDK you declared yourself to be in agreement with the Licensing conditions.

+These notes don’t replace the licensing agreement in any way, but quickly explain what you can and cannot do with the Steinberg VST Plug-In Software Development Kit.

+The License:

+ +

+This SDK:

+ +

+Steinberg:

+ +

+You cannot:

+ +

+You should not:

+ +

+You have to:

+ +

+You can:

+ +

Please read the Licensing Agreement!

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/maceditor.html b/doc/html/maceditor.html new file mode 100644 index 0000000..8762b88 --- /dev/null +++ b/doc/html/maceditor.html @@ -0,0 +1,76 @@ + + +VST SDK 2.4: Macintosh Editor as HIViewRef + + + + +
+
+

Macintosh Editor as HIViewRef

+Introduction

+In the beginning of VST the Plug-In's GUI was attached at the left-top corner without a mechanism for the host to move it. This and the evolution of the macintosh platform makes it necessary to change this old behaviour. The modern way on Mac OS X to do UI design with C/C++ is to use HIViews and window compositing.
+ The VST SDK 2.4 requires the Plug-In to attach one HIView to the window and that this HIView can be moved around and that it can be embedded into other subviews.
+ Hosts which implement VST 2.4 need to provide a window to the Plug-In which is composited if the Plug-In itself uses 2.4. If the Plug-In uses an earlier VST SDK it should provide a non composited window.

+


+

+Adding an HIView on effEditOpen

+As before the ptr in effEditOpen is a WindowRef. You need to add one HIView to the content view of this window.

+

HIViewRef contentView;
+if (HIViewFindByID (HIViewGetRoot ((WindowRef)ptr), kHIViewWindowContentID, &contentView) == noErr)
+        HIViewAddSubview (contentView, myPluginView);
+

+


+

+Closing on effEditClose

+When effEditClose is called you should remove your HIView from the window.

+

HIViewRemoveFromSuperview (myPluginView);
+

+Don't do anything with the window. It is not your window.

+


+

+Resizing the Plug-In

+If you want to resize your view, just do it, but don't resize the host window.

+

HIRect pluginBounds;
+HIViewGetFrame (myPluginView, &pluginBounds);
+pluginBounds.size.width = newWidth;
+pluginBounds.size.height = newHeight;
+HIViewSetFrame (myPluginView, &pluginBounds);
+

+The host needs to listen to bounds changes on the Plug-In view and resize its window accordingly.

+


+

+No more effEditDraw, effEditIdle, effEditMouse, effEditTop, effEditSleep

+You need to use Carbon Events now, which you register on the HIView, not on the window if possible. But don't remove these opcodes from your editor yet, if you want your Plug-In to work in 2.3 hosts.

+


+

+VST 2.4 Plug-Ins and VST 2.3 Hosts

+Now there is a conflict situation that some VST 2.3 hosts may not work with HIViews and window compositing. You should map the mac specific effEdit* opcodes internaly to the same functions you call if you receive one of the appropriate Carbon Events (VSTGUI does this automatically). You also need to define VST_FORCE_DEPRECATED=0 as a preprocessor definition to get the effEdit* opcodes.

+With revision 1 of SDK 2.4 the default value for VST_FORCE_DEPRECATED is zero, if you build for ppc machines.

+

See also:
Apple HIView Programming Guide
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/main.html b/doc/html/main.html new file mode 100644 index 0000000..a3a0279 --- /dev/null +++ b/doc/html/main.html @@ -0,0 +1,50 @@ + + +VST SDK 2.4: Main Page + + + + +
+
+

VST SDK 2.4 Documentation

+

+

+vstpluglogo.jpg +
+

+

Welcome to VST SDK 2.4 Rev.2!

+

+Introduction
+ What's new in VST 2.4
+

+Licensing Issues
+ Acknowledgements
+

+Revision History
+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/namespace_host_can_dos.html b/doc/html/namespace_host_can_dos.html new file mode 100644 index 0000000..9970ae3 --- /dev/null +++ b/doc/html/namespace_host_can_dos.html @@ -0,0 +1,330 @@ + + +VST SDK 2.4: HostCanDos Namespace Reference + + + + +
+
+
+
+

HostCanDos Namespace Reference

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Variables

const char * canDoSendVstEvents = "sendVstEvents"
 Host supports send of Vst events to plug-in.
const char * canDoSendVstMidiEvent = "sendVstMidiEvent"
 Host supports send of MIDI events to plug-in.
const char * canDoSendVstTimeInfo = "sendVstTimeInfo"
 Host supports send of VstTimeInfo to plug-in.
const char * canDoReceiveVstEvents = "receiveVstEvents"
 Host can receive Vst events from plug-in.
const char * canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
 Host can receive MIDI events from plug-in.
const char * canDoReportConnectionChanges = "reportConnectionChanges"
 Host will indicates the plug-in when something change in plug-in´s routing/connections with suspend/resume/setSpeakerArrangement.
const char * canDoAcceptIOChanges = "acceptIOChanges"
 Host supports ioChanged ().
const char * canDoSizeWindow = "sizeWindow"
 used by VSTGUI
const char * canDoOffline = "offline"
 Host supports offline feature.
const char * canDoOpenFileSelector = "openFileSelector"
 Host supports function openFileSelector ().
const char * canDoCloseFileSelector = "closeFileSelector"
 Host supports function closeFileSelector ().
const char * canDoStartStopProcess = "startStopProcess"
 Host supports functions startProcess () and stopProcess ().
const char * canDoShellCategory = "shellCategory"
 'shell' handling via uniqueID. If supported by the Host and the Plug-in has the category kPlugCategShell
const char * canDoSendVstMidiEventFlagIsRealtime = "sendVstMidiEventFlagIsRealtime"
 Host supports flags for VstMidiEvent.
+


Detailed Description

+hostCanDos strings Plug-in -> Host +

+


Variable Documentation

+ +
+
+ + + + +
const char* HostCanDos::canDoSendVstEvents = "sendVstEvents"
+
+
+ +

+Host supports send of Vst events to plug-in. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoSendVstMidiEvent = "sendVstMidiEvent"
+
+
+ +

+Host supports send of MIDI events to plug-in. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoSendVstTimeInfo = "sendVstTimeInfo"
+
+
+ +

+Host supports send of VstTimeInfo to plug-in. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoReceiveVstEvents = "receiveVstEvents"
+
+
+ +

+Host can receive Vst events from plug-in. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
+
+
+ +

+Host can receive MIDI events from plug-in. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoReportConnectionChanges = "reportConnectionChanges"
+
+
+ +

+Host will indicates the plug-in when something change in plug-in´s routing/connections with suspend/resume/setSpeakerArrangement. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoAcceptIOChanges = "acceptIOChanges"
+
+
+ +

+Host supports ioChanged (). +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoSizeWindow = "sizeWindow"
+
+
+ +

+used by VSTGUI +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoOffline = "offline"
+
+
+ +

+Host supports offline feature. +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoOpenFileSelector = "openFileSelector"
+
+
+ +

+Host supports function openFileSelector (). +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoCloseFileSelector = "closeFileSelector"
+
+
+ +

+Host supports function closeFileSelector (). +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoStartStopProcess = "startStopProcess"
+
+
+ +

+Host supports functions startProcess () and stopProcess (). +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoShellCategory = "shellCategory"
+
+
+ +

+'shell' handling via uniqueID. If supported by the Host and the Plug-in has the category kPlugCategShell +

+ +

+

+ +

+
+ + + + +
const char* HostCanDos::canDoSendVstMidiEventFlagIsRealtime = "sendVstMidiEventFlagIsRealtime"
+
+
+ +

+Host supports flags for VstMidiEvent. +

+ +

+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/namespace_plug_can_dos.html b/doc/html/namespace_plug_can_dos.html new file mode 100644 index 0000000..38159ec --- /dev/null +++ b/doc/html/namespace_plug_can_dos.html @@ -0,0 +1,210 @@ + + +VST SDK 2.4: PlugCanDos Namespace Reference + + + + +
+
+
+
+

PlugCanDos Namespace Reference

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

Variables

const char * canDoSendVstEvents = "sendVstEvents"
 plug-in will send Vst events to Host
const char * canDoSendVstMidiEvent = "sendVstMidiEvent"
 plug-in will send MIDI events to Host
const char * canDoReceiveVstEvents = "receiveVstEvents"
 plug-in can receive MIDI events from Host
const char * canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
 plug-in can receive MIDI events from Host
const char * canDoReceiveVstTimeInfo = "receiveVstTimeInfo"
 plug-in can receive Time info from Host
const char * canDoOffline = "offline"
 plug-in supports offline functions (offlineNotify, offlinePrepare, offlineRun)
const char * canDoMidiProgramNames = "midiProgramNames"
 plug-in supports function getMidiProgramName ()
const char * canDoBypass = "bypass"
 plug-in supports function setBypass ()
+


Detailed Description

+plugCanDos strings Host -> Plug-in +

+


Variable Documentation

+ +
+
+ + + + +
const char* PlugCanDos::canDoSendVstEvents = "sendVstEvents"
+
+
+ +

+plug-in will send Vst events to Host +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoSendVstMidiEvent = "sendVstMidiEvent"
+
+
+ +

+plug-in will send MIDI events to Host +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoReceiveVstEvents = "receiveVstEvents"
+
+
+ +

+plug-in can receive MIDI events from Host +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoReceiveVstMidiEvent = "receiveVstMidiEvent"
+
+
+ +

+plug-in can receive MIDI events from Host +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoReceiveVstTimeInfo = "receiveVstTimeInfo"
+
+
+ +

+plug-in can receive Time info from Host +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoOffline = "offline"
+
+
+ +

+plug-in supports offline functions (offlineNotify, offlinePrepare, offlineRun) +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoMidiProgramNames = "midiProgramNames"
+
+
+ +

+plug-in supports function getMidiProgramName () +

+ +

+

+ +

+
+ + + + +
const char* PlugCanDos::canDoBypass = "bypass"
+
+
+ +

+plug-in supports function setBypass () +

+ +

+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html new file mode 100644 index 0000000..ae91519 --- /dev/null +++ b/doc/html/namespacemembers.html @@ -0,0 +1,67 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+Here is a list of all namespace members with links to the namespace documentation for each member: +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html new file mode 100644 index 0000000..e890ca6 --- /dev/null +++ b/doc/html/namespacemembers_vars.html @@ -0,0 +1,67 @@ + + +VST SDK 2.4: Class Members + + + + +
+
+
+
+
+ +
+  +

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html new file mode 100644 index 0000000..9530cde --- /dev/null +++ b/doc/html/namespaces.html @@ -0,0 +1,44 @@ + + +VST SDK 2.4: Namespace Index + + + + +
+
+
+
+

VST SDK 2.4 Namespace List

Here is a list of all namespaces with brief descriptions: + + +
HostCanDos
PlugCanDos
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/others.html b/doc/html/others.html new file mode 100644 index 0000000..3ca286e --- /dev/null +++ b/doc/html/others.html @@ -0,0 +1,53 @@ + + +VST SDK 2.4: Others + + + + +
+
+

Others

+VST Monitor Plug-In

+The VSTMonitor Plug-In provided with this SDK is dedicated to "monitor" the communications between a VST Plug-In and the host which instanciates it: it keeps track of all the calls made by the host to the Plug-In's dispatcher, and of all the calls made by the Plug-In to the host's audiomaster. This is useful to record the sequence of calls done by any host to a VST Plug-In while loading it. Besides VSTMonitor has a "trigger" function which lets the user trigger (via a pop-up menu) any call to the host's audiomaster, to see how the host reacts (and notably to see if the function is implemented by the host...).

+You will find this plug-in in the VSTPlug-ins folder dedicated to each platform. You only need to put it directly in your own VST plug-ins folder in order to make it work.

+Calls made by the host to the plug-in are shown in grey, calls from the plug-in to the host are displayed in red. Internal (to the plug-in) calls are shown in blue.

+All the GUI buttons don't correspond to "real" parameters declared to the host, in order to prevent from disturbing the monitoring. Nevertheless, 3 "real" parameters and 2 programs are declared "publically" (although they are not used internally) to let you see how they are handled by the host.

+

Note:
Many hosts, while loading, open each Vst plug-in, for example to check their IO configuration. This is "hidden" to the user (as the plug-in is always closed as soon as the information needed has been recorded by the host), but VstMonitor can record even those calls, and display them the next time it is opened "normally" in the sequencer. That's why while the host is loading, an alert window may be automatically opened (on Windows platform), asking if the user want to keep track of "what has happened" (and although he has not explicitly opened the plug-in). On Mac, things recorded are kept by default (use Reset -see below- to delete them).
+VstMonitor's buttons:

+

+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/pages.html b/doc/html/pages.html new file mode 100644 index 0000000..22e0b32 --- /dev/null +++ b/doc/html/pages.html @@ -0,0 +1,59 @@ + + +VST SDK 2.4: Page Index + + + + +
+
+

VST SDK 2.4 Related Pages

Here is a list of all related documentation pages: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/sequences.html b/doc/html/sequences.html new file mode 100644 index 0000000..8070c00 --- /dev/null +++ b/doc/html/sequences.html @@ -0,0 +1,99 @@ + + +VST SDK 2.4: VST Calling Sequences + + + + +
+
+

VST Calling Sequences

+Introduction

+The diagrams below illustrate the most important calling sequences taking place between VST host application and plug-in. This is of interest to plug-in developers as well as to host developers.

+


+

+Threading issues

+In general, processEvents(), startProcess(), stopProcess(), process(), processReplacing() and processDoubleReplacing() are called from a time-critical high priority thread (except for offline processing).
+ To satisfy realtime constraints for low latency audio processing, memory allocations and lock-based syncronisation should be avoided.
+ The same applies to setParameter() and setProgram() when playing automation from host. Any others functions are called from UI thread in general.
+ The host takes care that processing and setup functions are isolated from each other. setSampleRate(), setBlockSize(), setProcessPrecision(), etc. calls occur only in suspended state, i.e. before resume() is called.

+


+

+Sequence Diagrams

+ +

+ + + + + + + +
+Initialisation.gif +

Figure 3: A plug-in is initialized

+
+Termination.gif +

Figure 4: A plug-in is terminated

+
+TurnOn.gif +

Figure 1: A plug-in is turned on

+
+TurnOff.gif +

Figure 2: A plug-in is turned off

+
+Sampleratechange.gif +

Figure 6: The sample rate changed

+
+Blocksizechange.gif +

Figure 9: The block size changed

+
+ + + + + + + + + +
+SpeakerarrangementnegotiationforVSTfx.gif +

Figure 5: The speaker arrangements negotiation between the host and the plug-in

+
+IOchange.gif +

Figure 7: The number of IOs changed caused e.g. by user interaction

+
+ControlChanged.gif +

Figure 8: A control changed within the userinterface of the plug-in

+
+Offlineprocessing.gif +

Figure 10: A plug-in processes offline

+
+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_a_effect-members.html b/doc/html/struct_a_effect-members.html new file mode 100644 index 0000000..f163d92 --- /dev/null +++ b/doc/html/struct_a_effect-members.html @@ -0,0 +1,65 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

AEffect Member List

This is the complete list of members for AEffect, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + +
dispatcherAEffect
flagsAEffect
futureAEffect
getParameterAEffect
initialDelayAEffect
ioRatioAEffect
magicAEffect
numInputsAEffect
numOutputsAEffect
numParamsAEffect
numProgramsAEffect
objectAEffect
offQualitiesAEffect
processAEffect
processDoubleReplacingAEffect
processReplacingAEffect
realQualitiesAEffect
resvd1AEffect
resvd2AEffect
setParameterAEffect
uniqueIDAEffect
userAEffect
versionAEffect
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_a_effect.html b/doc/html/struct_a_effect.html new file mode 100644 index 0000000..556d9cb --- /dev/null +++ b/doc/html/struct_a_effect.html @@ -0,0 +1,493 @@ + + +VST SDK 2.4: AEffect Struct Reference + + + + +
+
+
+
+

AEffect Struct Reference

#include <aeffect.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 magic
 must be kEffectMagic ('VstP')
AEffectDispatcherProc dispatcher
AEffectProcessProc process
AEffectSetParameterProc setParameter
AEffectGetParameterProc getParameter
VstInt32 numPrograms
 number of programs
VstInt32 numParams
 all programs are assumed to have numParams parameters
VstInt32 numInputs
 number of audio inputs
VstInt32 numOutputs
 number of audio outputs
VstInt32 flags
VstIntPtr resvd1
 reserved for Host, must be 0
VstIntPtr resvd2
 reserved for Host, must be 0
VstInt32 initialDelay
 for algorithms which need input in the first place (Group delay or latency in Samples). This value should be initialized in a resume state.
VstInt32 realQualities
VstInt32 offQualities
float ioRatio
void * object
 AudioEffect class pointer
void * user
 user-defined pointer
VstInt32 uniqueID
 registered unique identifier (register it at Steinberg 3rd party support Web). This is used to identify a plug-in during save+load of preset and project.
VstInt32 version
 plug-in version (example 1100 for version 1.1.0.0)
AEffectProcessProc processReplacing
AEffectProcessDoubleProc processDoubleReplacing
char future [56]
 reserved for future use (please zero)
+


Detailed Description

+Basic VST Effect "C" Interface. +

+


Member Data Documentation

+ +
+
+ + + + +
AEffectDispatcherProc AEffect::dispatcher
+
+
+ +

+Host to Plug-in dispatcher

See also:
AudioEffect::dispatcher
+ +
+

+ +

+ +
+ +

+

See also:
VstAEffectFlags
+ +
+

+ +

+
+ + + + +
char AEffect::future[56]
+
+
+ +

+reserved for future use (please zero) +

+ +

+

+ +

+
+ + + + +
AEffectGetParameterProc AEffect::getParameter
+
+
+ +

+Returns current value of automatable parameter

See also:
AudioEffect::getParameter
+ +
+

+ +

+ +
+ +

+for algorithms which need input in the first place (Group delay or latency in Samples). This value should be initialized in a resume state. +

+ +

+

+ +

+
+ + + + +
float AEffect::ioRatio
+
+
+ +

+

Deprecated:
unused member
+ +
+

+ +

+ +
+ +

+must be kEffectMagic ('VstP') +

+ +

+

+ +

+ +
+ +

+number of audio inputs +

+ +

+

+ +

+ +
+ +

+number of audio outputs +

+ +

+

+ +

+ +
+ +

+all programs are assumed to have numParams parameters +

+ +

+

+ +

+ +
+ +

+number of programs +

+ +

+

+ +

+
+ + + + +
void* AEffect::object
+
+
+ +

+AudioEffect class pointer +

+ +

+

+ +

+ +
+ +

+

Deprecated:
unused member
+ +
+

+ +

+
+ + + + +
AEffectProcessProc AEffect::process
+
+
+ +

+

Deprecated:
Accumulating process mode is deprecated in VST 2.4! Use AEffect::processReplacing instead!
+ +
+

+ +

+
+ + + + +
AEffectProcessDoubleProc AEffect::processDoubleReplacing
+
+
+ +

+Process double-precision audio samples in replacing mode

See also:
AudioEffect::processDoubleReplacing
+ +
+

+ +

+
+ + + + +
AEffectProcessProc AEffect::processReplacing
+
+
+ +

+Process audio samples in replacing mode

See also:
AudioEffect::processReplacing
+ +
+

+ +

+ +
+ +

+

Deprecated:
unused member
+ +
+

+ +

+ +
+ +

+reserved for Host, must be 0 +

+ +

+

+ +

+ +
+ +

+reserved for Host, must be 0 +

+ +

+

+ +

+
+ + + + +
AEffectSetParameterProc AEffect::setParameter
+
+
+ +

+Set new value of automatable parameter

See also:
AudioEffect::setParameter
+ +
+

+ +

+ +
+ +

+registered unique identifier (register it at Steinberg 3rd party support Web). This is used to identify a plug-in during save+load of preset and project. +

+ +

+

+ +

+
+ + + + +
void* AEffect::user
+
+
+ +

+user-defined pointer +

+ +

+

+ +

+ +
+ +

+plug-in version (example 1100 for version 1.1.0.0) +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_e_rect-members.html b/doc/html/struct_e_rect-members.html new file mode 100644 index 0000000..3c1a60a --- /dev/null +++ b/doc/html/struct_e_rect-members.html @@ -0,0 +1,46 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

ERect Member List

This is the complete list of members for ERect, including all inherited members.

+ + + + +
bottomERect
leftERect
rightERect
topERect
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_e_rect.html b/doc/html/struct_e_rect.html new file mode 100644 index 0000000..0f20fad --- /dev/null +++ b/doc/html/struct_e_rect.html @@ -0,0 +1,133 @@ + + +VST SDK 2.4: ERect Struct Reference + + + + +
+
+
+
+

ERect Struct Reference

#include <aeffect.h> +

+List of all members. + + + + + + + + + + + + + + +

Public Attributes

VstInt16 top
 top coordinate
VstInt16 left
 left coordinate
VstInt16 bottom
 bottom coordinate
VstInt16 right
 right coordinate
+


Detailed Description

+Structure used for effEditGetRect. +

+


Member Data Documentation

+ +
+
+ + + + +
VstInt16 ERect::bottom
+
+
+ +

+bottom coordinate +

+ +

+

+ +

+
+ + + + +
VstInt16 ERect::left
+
+
+ +

+left coordinate +

+ +

+

+ +

+
+ + + + +
VstInt16 ERect::right
+
+
+ +

+right coordinate +

+ +

+

+ +

+
+ + + + +
VstInt16 ERect::top
+
+
+ +

+top coordinate +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_key_name-members.html b/doc/html/struct_midi_key_name-members.html new file mode 100644 index 0000000..3a5e0f2 --- /dev/null +++ b/doc/html/struct_midi_key_name-members.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

MidiKeyName Member List

This is the complete list of members for MidiKeyName, including all inherited members.

+ + + + + +
flagsMidiKeyName
keyNameMidiKeyName
reservedMidiKeyName
thisKeyNumberMidiKeyName
thisProgramIndexMidiKeyName
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_key_name.html b/doc/html/struct_midi_key_name.html new file mode 100644 index 0000000..6545618 --- /dev/null +++ b/doc/html/struct_midi_key_name.html @@ -0,0 +1,153 @@ + + +VST SDK 2.4: MidiKeyName Struct Reference + + + + +
+
+
+
+

MidiKeyName Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 thisProgramIndex
 0 or greater: fill struct for this program index.
VstInt32 thisKeyNumber
 0 - 127. fill struct for this key number.
char keyName [kVstMaxNameLen]
 key name, empty means regular key names
VstInt32 reserved
 zero
VstInt32 flags
 reserved, none defined yet, zero.
+


Detailed Description

+MIDI Key Description. +

+


Member Data Documentation

+ +
+ +
+ +

+reserved, none defined yet, zero. +

+ +

+

+ +

+
+ + + + +
char MidiKeyName::keyName[kVstMaxNameLen]
+
+
+ +

+key name, empty means regular key names +

+ +

+

+ +

+ +
+ +

+zero +

+ +

+

+ +

+ +
+ +

+0 - 127. fill struct for this key number. +

+ +

+

+ +

+ +
+ +

+0 or greater: fill struct for this program index. +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_program_category-members.html b/doc/html/struct_midi_program_category-members.html new file mode 100644 index 0000000..a0d0118 --- /dev/null +++ b/doc/html/struct_midi_program_category-members.html @@ -0,0 +1,46 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

MidiProgramCategory Member List

This is the complete list of members for MidiProgramCategory, including all inherited members.

+ + + + +
flagsMidiProgramCategory
nameMidiProgramCategory
parentCategoryIndexMidiProgramCategory
thisCategoryIndexMidiProgramCategory
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_program_category.html b/doc/html/struct_midi_program_category.html new file mode 100644 index 0000000..7b98c21 --- /dev/null +++ b/doc/html/struct_midi_program_category.html @@ -0,0 +1,133 @@ + + +VST SDK 2.4: MidiProgramCategory Struct Reference + + + + +
+
+
+
+

MidiProgramCategory Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + +

Public Attributes

VstInt32 thisCategoryIndex
 0 or greater: fill struct for this category index.
char name [kVstMaxNameLen]
 name
VstInt32 parentCategoryIndex
 -1:no parent category
VstInt32 flags
 reserved, none defined yet, zero.
+


Detailed Description

+MIDI Program Category. +

+


Member Data Documentation

+ +
+ +
+ +

+reserved, none defined yet, zero. +

+ +

+

+ +

+
+ + + + +
char MidiProgramCategory::name[kVstMaxNameLen]
+
+
+ +

+name +

+ +

+

+ +

+ +
+ +

+-1:no parent category +

+ +

+

+ +

+ +
+ +

+0 or greater: fill struct for this category index. +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_program_name-members.html b/doc/html/struct_midi_program_name-members.html new file mode 100644 index 0000000..2919e97 --- /dev/null +++ b/doc/html/struct_midi_program_name-members.html @@ -0,0 +1,50 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

MidiProgramName Member List

This is the complete list of members for MidiProgramName, including all inherited members.

+ + + + + + + + +
flagsMidiProgramName
midiBankLsbMidiProgramName
midiBankMsbMidiProgramName
midiProgramMidiProgramName
nameMidiProgramName
parentCategoryIndexMidiProgramName
reservedMidiProgramName
thisProgramIndexMidiProgramName
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_midi_program_name.html b/doc/html/struct_midi_program_name.html new file mode 100644 index 0000000..7af6b20 --- /dev/null +++ b/doc/html/struct_midi_program_name.html @@ -0,0 +1,214 @@ + + +VST SDK 2.4: MidiProgramName Struct Reference + + + + +
+
+
+
+

MidiProgramName Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 thisProgramIndex
 0 or greater: fill struct for this program index
char name [kVstMaxNameLen]
 program name
char midiProgram
 -1:off, 0-127
char midiBankMsb
 -1:off, 0-127
char midiBankLsb
 -1:off, 0-127
char reserved
 zero
VstInt32 parentCategoryIndex
 -1:no parent category
VstInt32 flags
 omni etc.
+


Detailed Description

+MIDI Program Description. +

+


Member Data Documentation

+ +
+ +
+ +

+omni etc. +

+

See also:
VstMidiProgramNameFlags
+ +
+

+ +

+ +
+ +

+-1:off, 0-127 +

+ +

+

+ +

+ +
+ +

+-1:off, 0-127 +

+ +

+

+ +

+ +
+ +

+-1:off, 0-127 +

+ +

+

+ +

+
+ + + + +
char MidiProgramName::name[kVstMaxNameLen]
+
+
+ +

+program name +

+ +

+

+ +

+ +
+ +

+-1:no parent category +

+ +

+

+ +

+
+ + + + +
char MidiProgramName::reserved
+
+
+ +

+zero +

+ +

+

+ +

+ +
+ +

+0 or greater: fill struct for this program index +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_audio_file-members.html b/doc/html/struct_vst_audio_file-members.html new file mode 100644 index 0000000..4a018c8 --- /dev/null +++ b/doc/html/struct_vst_audio_file-members.html @@ -0,0 +1,64 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstAudioFile Member List

This is the complete list of members for VstAudioFile, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + +
editCursorPositionVstAudioFile
flagsVstAudioFile
formatVstAudioFile
futureVstAudioFile
hostOwnedVstAudioFile
nameVstAudioFile
numChannelsVstAudioFile
numFramesVstAudioFile
numMarkersVstAudioFile
plugOwnedVstAudioFile
sampleRateVstAudioFile
selectedChannelsMaskVstAudioFile
selectionSizeVstAudioFile
selectionStartVstAudioFile
smpteFrameRateVstAudioFile
tempoVstAudioFile
ticksPerBlackNoteVstAudioFile
timeRulerOffsetVstAudioFile
timeRulerUnitVstAudioFile
timeSigDenominatorVstAudioFile
timeSigNumeratorVstAudioFile
uniqueIdVstAudioFile
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_audio_file.html b/doc/html/struct_vst_audio_file.html new file mode 100644 index 0000000..2d999c3 --- /dev/null +++ b/doc/html/struct_vst_audio_file.html @@ -0,0 +1,493 @@ + + +VST SDK 2.4: VstAudioFile Struct Reference + + + + +
+
+
+
+

VstAudioFile Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 flags
 see enum VstAudioFileFlags
void * hostOwned
 any data private to Host
void * plugOwned
 any data private to plug-in
char name [kVstMaxFileNameLen]
 file title
VstInt32 uniqueId
 uniquely identify a file during a session
double sampleRate
 file sample rate
VstInt32 numChannels
 number of channels (1 for mono, 2 for stereo...)
double numFrames
 number of frames in the audio file
VstInt32 format
 Reserved for future use.
double editCursorPosition
 -1 if no such cursor
double selectionStart
 frame index of first selected frame, or -1
double selectionSize
 number of frames in selection, or 0
VstInt32 selectedChannelsMask
 1 bit per channel
VstInt32 numMarkers
 number of markers in the file
VstInt32 timeRulerUnit
 see doc for possible values
double timeRulerOffset
 offset in time ruler (positive or negative)
double tempo
 as BPM (Beats Per Minute)
VstInt32 timeSigNumerator
 time signature numerator
VstInt32 timeSigDenominator
 time signature denominator
VstInt32 ticksPerBlackNote
 resolution
VstInt32 smpteFrameRate
 SMPTE rate (set as in VstTimeInfo).
char future [64]
 Reserved for future use.
+


Detailed Description

+Structure passed to offlineNotify and offlineStart +

+


Member Data Documentation

+ +
+ +
+ +

+-1 if no such cursor +

+ +

+

+ +

+ +
+ +

+see enum VstAudioFileFlags +

+ +

+

+ +

+ +
+ +

+Reserved for future use. +

+ +

+

+ +

+
+ + + + +
char VstAudioFile::future[64]
+
+
+ +

+Reserved for future use. +

+ +

+

+ +

+
+ + + + +
void* VstAudioFile::hostOwned
+
+
+ +

+any data private to Host +

+ +

+

+ +

+
+ + + + +
char VstAudioFile::name[kVstMaxFileNameLen]
+
+
+ +

+file title +

+ +

+

+ +

+ +
+ +

+number of channels (1 for mono, 2 for stereo...) +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::numFrames
+
+
+ +

+number of frames in the audio file +

+ +

+

+ +

+ +
+ +

+number of markers in the file +

+ +

+

+ +

+
+ + + + +
void* VstAudioFile::plugOwned
+
+
+ +

+any data private to plug-in +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::sampleRate
+
+
+ +

+file sample rate +

+ +

+

+ +

+ +
+ +

+1 bit per channel +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::selectionSize
+
+
+ +

+number of frames in selection, or 0 +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::selectionStart
+
+
+ +

+frame index of first selected frame, or -1 +

+ +

+

+ +

+ +
+ +

+SMPTE rate (set as in VstTimeInfo). +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::tempo
+
+
+ +

+as BPM (Beats Per Minute) +

+ +

+

+ +

+ +
+ +

+resolution +

+ +

+

+ +

+
+ + + + +
double VstAudioFile::timeRulerOffset
+
+
+ +

+offset in time ruler (positive or negative) +

+ +

+

+ +

+ +
+ +

+see doc for possible values +

+ +

+

+ +

+ +
+ +

+time signature denominator +

+ +

+

+ +

+ +
+ +

+time signature numerator +

+ +

+

+ +

+ +
+ +

+uniquely identify a file during a session +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_audio_file_marker-members.html b/doc/html/struct_vst_audio_file_marker-members.html new file mode 100644 index 0000000..1597947 --- /dev/null +++ b/doc/html/struct_vst_audio_file_marker-members.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstAudioFileMarker Member List

This is the complete list of members for VstAudioFileMarker, including all inherited members.

+ + + + + +
idVstAudioFileMarker
nameVstAudioFileMarker
positionVstAudioFileMarker
reservedVstAudioFileMarker
typeVstAudioFileMarker
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_audio_file_marker.html b/doc/html/struct_vst_audio_file_marker.html new file mode 100644 index 0000000..5341c57 --- /dev/null +++ b/doc/html/struct_vst_audio_file_marker.html @@ -0,0 +1,153 @@ + + +VST SDK 2.4: VstAudioFileMarker Struct Reference + + + + +
+
+
+
+

VstAudioFileMarker Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + +

Public Attributes

double position
 marker position
char name [32]
 marker name
VstInt32 type
 marker type
VstInt32 id
 marker identifier
VstInt32 reserved
 reserved for future use
+


Detailed Description

+Audio file marker. +

+


Member Data Documentation

+ +
+ +
+ +

+marker identifier +

+ +

+

+ +

+
+ + + + +
char VstAudioFileMarker::name[32]
+
+
+ +

+marker name +

+ +

+

+ +

+
+ + + + +
double VstAudioFileMarker::position
+
+
+ +

+marker position +

+ +

+

+ +

+ +
+ +

+reserved for future use +

+ +

+

+ +

+ +
+ +

+marker type +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_event-members.html b/doc/html/struct_vst_event-members.html new file mode 100644 index 0000000..0121b7c --- /dev/null +++ b/doc/html/struct_vst_event-members.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstEvent Member List

This is the complete list of members for VstEvent, including all inherited members.

+ + + + + +
byteSizeVstEvent
dataVstEvent
deltaFramesVstEvent
flagsVstEvent
typeVstEvent
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_event.html b/doc/html/struct_vst_event.html new file mode 100644 index 0000000..1bc5ac4 --- /dev/null +++ b/doc/html/struct_vst_event.html @@ -0,0 +1,151 @@ + + +VST SDK 2.4: VstEvent Struct Reference + + + + +
+
+
+
+

VstEvent Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 type
VstInt32 byteSize
 size of this event, excl. type and byteSize
VstInt32 deltaFrames
 sample frames related to the current block start sample position
VstInt32 flags
 generic flags, none defined yet
char data [16]
 data size may vary, depending on event type
+


Detailed Description

+A generic timestamped event. +

+


Member Data Documentation

+ +
+ +
+ +

+size of this event, excl. type and byteSize +

+ +

+

+ +

+
+ + + + +
char VstEvent::data[16]
+
+
+ +

+data size may vary, depending on event type +

+ +

+

+ +

+ +
+ +

+sample frames related to the current block start sample position +

+ +

+

+ +

+ +
+ +

+generic flags, none defined yet +

+ +

+

+ +

+ +
+ +

+

See also:
VstEventTypes
+ +
+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_events-members.html b/doc/html/struct_vst_events-members.html new file mode 100644 index 0000000..31e92d6 --- /dev/null +++ b/doc/html/struct_vst_events-members.html @@ -0,0 +1,45 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstEvents Member List

This is the complete list of members for VstEvents, including all inherited members.

+ + + +
eventsVstEvents
numEventsVstEvents
reservedVstEvents
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_events.html b/doc/html/struct_vst_events.html new file mode 100644 index 0000000..228ec61 --- /dev/null +++ b/doc/html/struct_vst_events.html @@ -0,0 +1,113 @@ + + +VST SDK 2.4: VstEvents Struct Reference + + + + +
+
+
+
+

VstEvents Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + +

Public Attributes

VstInt32 numEvents
 number of Events in array
VstIntPtr reserved
 zero (Reserved for future use)
VstEventevents [2]
 event pointer array, variable size
+


Detailed Description

+A block of events for the current processed audio block. +

+


Member Data Documentation

+ +
+
+ + + + +
VstEvent* VstEvents::events[2]
+
+
+ +

+event pointer array, variable size +

+ +

+

+ +

+ +
+ +

+number of Events in array +

+ +

+

+ +

+ +
+ +

+zero (Reserved for future use) +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_file_select-members.html b/doc/html/struct_vst_file_select-members.html new file mode 100644 index 0000000..4a2f4d6 --- /dev/null +++ b/doc/html/struct_vst_file_select-members.html @@ -0,0 +1,55 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstFileSelect Member List

This is the complete list of members for VstFileSelect, including all inherited members.

+ + + + + + + + + + + + + +
commandVstFileSelect
fileTypesVstFileSelect
futureVstFileSelect
initialPathVstFileSelect
macCreatorVstFileSelect
nbFileTypesVstFileSelect
nbReturnPathVstFileSelect
reservedVstFileSelect
returnMultiplePathsVstFileSelect
returnPathVstFileSelect
sizeReturnPathVstFileSelect
titleVstFileSelect
typeVstFileSelect
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_file_select.html b/doc/html/struct_vst_file_select.html new file mode 100644 index 0000000..0cbe341 --- /dev/null +++ b/doc/html/struct_vst_file_select.html @@ -0,0 +1,310 @@ + + +VST SDK 2.4: VstFileSelect Struct Reference + + + + +
+
+
+
+

VstFileSelect Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 command
VstInt32 type
VstInt32 macCreator
 optional: 0 = no creator
VstInt32 nbFileTypes
 number of fileTypes
VstFileTypefileTypes
 list of fileTypes
char title [1024]
 text to display in file selector's title
char * initialPath
 initial path
char * returnPath
 use with kVstFileLoad and kVstDirectorySelect. null: Host allocates memory, plug-in must call closeOpenFileSelector!
VstInt32 sizeReturnPath
 size of allocated memory for return paths
char ** returnMultiplePaths
 use with kVstMultipleFilesLoad. Host allocates memory, plug-in must call closeOpenFileSelector!
VstInt32 nbReturnPath
 number of selected paths
VstIntPtr reserved
 reserved for Host application
char future [116]
 reserved for future use
+


Detailed Description

+File Selector Description used in audioMasterOpenFileSelector. +

+


Member Data Documentation

+ +
+ +
+ +

+

See also:
VstFileSelectCommand
+ +
+

+ +

+ +
+ +

+list of fileTypes +

+

See also:
VstFileType
+ +
+

+ +

+
+ + + + +
char VstFileSelect::future[116]
+
+
+ +

+reserved for future use +

+ +

+

+ +

+
+ + + + +
char* VstFileSelect::initialPath
+
+
+ +

+initial path +

+ +

+

+ +

+ +
+ +

+optional: 0 = no creator +

+ +

+

+ +

+ +
+ +

+number of fileTypes +

+ +

+

+ +

+ +
+ +

+number of selected paths +

+ +

+

+ +

+ +
+ +

+reserved for Host application +

+ +

+

+ +

+ +
+ +

+use with kVstMultipleFilesLoad. Host allocates memory, plug-in must call closeOpenFileSelector! +

+ +

+

+ +

+
+ + + + +
char* VstFileSelect::returnPath
+
+
+ +

+use with kVstFileLoad and kVstDirectorySelect. null: Host allocates memory, plug-in must call closeOpenFileSelector! +

+ +

+

+ +

+ +
+ +

+size of allocated memory for return paths +

+ +

+

+ +

+
+ + + + +
char VstFileSelect::title[1024]
+
+
+ +

+text to display in file selector's title +

+ +

+

+ +

+ +
+ +

+

See also:
VstFileSelectType
+ +
+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_file_type-members.html b/doc/html/struct_vst_file_type-members.html new file mode 100644 index 0000000..b0b0fe4 --- /dev/null +++ b/doc/html/struct_vst_file_type-members.html @@ -0,0 +1,49 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstFileType Member List

This is the complete list of members for VstFileType, including all inherited members.

+ + + + + + + +
dosTypeVstFileType
macTypeVstFileType
mimeType1VstFileType
mimeType2VstFileType
nameVstFileType
unixTypeVstFileType
VstFileType(const char *_name=0, const char *_macType=0, const char *_dosType=0, const char *_unixType=0, const char *_mimeType1=0, const char *_mimeType2=0)VstFileType [inline]
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_file_type.html b/doc/html/struct_vst_file_type.html new file mode 100644 index 0000000..73588ca --- /dev/null +++ b/doc/html/struct_vst_file_type.html @@ -0,0 +1,230 @@ + + +VST SDK 2.4: VstFileType Struct Reference + + + + +
+
+
+
+

VstFileType Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + +

Public Member Functions

 VstFileType (const char *_name=0, const char *_macType=0, const char *_dosType=0, const char *_unixType=0, const char *_mimeType1=0, const char *_mimeType2=0)

Public Attributes

char name [128]
 display name
char macType [8]
 MacOS type.
char dosType [8]
 Windows file extension.
char unixType [8]
 Unix file extension.
char mimeType1 [128]
 MIME type.
char mimeType2 [128]
 additional MIME type
+


Detailed Description

+File filter used in VstFileSelect. +

+


Constructor & Destructor Documentation

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VstFileType::VstFileType (const char *  _name = 0,
const char *  _macType = 0,
const char *  _dosType = 0,
const char *  _unixType = 0,
const char *  _mimeType1 = 0,
const char *  _mimeType2 = 0 
) [inline]
+
+
+ +

+ +

+

+


Member Data Documentation

+ +
+
+ + + + +
char VstFileType::dosType[8]
+
+
+ +

+Windows file extension. +

+ +

+

+ +

+
+ + + + +
char VstFileType::macType[8]
+
+
+ +

+MacOS type. +

+ +

+

+ +

+
+ + + + +
char VstFileType::mimeType1[128]
+
+
+ +

+MIME type. +

+ +

+

+ +

+
+ + + + +
char VstFileType::mimeType2[128]
+
+
+ +

+additional MIME type +

+ +

+

+ +

+
+ + + + +
char VstFileType::name[128]
+
+
+ +

+display name +

+ +

+

+ +

+
+ + + + +
char VstFileType::unixType[8]
+
+
+ +

+Unix file extension. +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_key_code-members.html b/doc/html/struct_vst_key_code-members.html new file mode 100644 index 0000000..f9908d6 --- /dev/null +++ b/doc/html/struct_vst_key_code-members.html @@ -0,0 +1,45 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstKeyCode Member List

This is the complete list of members for VstKeyCode, including all inherited members.

+ + + +
characterVstKeyCode
modifierVstKeyCode
virtVstKeyCode
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_key_code.html b/doc/html/struct_vst_key_code.html new file mode 100644 index 0000000..31e9e6d --- /dev/null +++ b/doc/html/struct_vst_key_code.html @@ -0,0 +1,109 @@ + + +VST SDK 2.4: VstKeyCode Struct Reference + + + + +
+
+
+
+

VstKeyCode Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + +

Public Attributes

VstInt32 character
 ASCII character.
unsigned char virt
unsigned char modifier
+


Detailed Description

+Structure used for keyUp/keyDown. +

+


Member Data Documentation

+ +
+ +
+ +

+ASCII character. +

+ +

+

+ +

+
+ + + + +
unsigned char VstKeyCode::modifier
+
+
+ +

+

See also:
VstModifierKey
+ +
+

+ +

+
+ + + + +
unsigned char VstKeyCode::virt
+
+
+ +

+

See also:
VstVirtualKey
+ +
+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_midi_event-members.html b/doc/html/struct_vst_midi_event-members.html new file mode 100644 index 0000000..63983a0 --- /dev/null +++ b/doc/html/struct_vst_midi_event-members.html @@ -0,0 +1,53 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstMidiEvent Member List

This is the complete list of members for VstMidiEvent, including all inherited members.

+ + + + + + + + + + + +
byteSizeVstMidiEvent
deltaFramesVstMidiEvent
detuneVstMidiEvent
flagsVstMidiEvent
midiDataVstMidiEvent
noteLengthVstMidiEvent
noteOffsetVstMidiEvent
noteOffVelocityVstMidiEvent
reserved1VstMidiEvent
reserved2VstMidiEvent
typeVstMidiEvent
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_midi_event.html b/doc/html/struct_vst_midi_event.html new file mode 100644 index 0000000..46d8cbe --- /dev/null +++ b/doc/html/struct_vst_midi_event.html @@ -0,0 +1,271 @@ + + +VST SDK 2.4: VstMidiEvent Struct Reference + + + + +
+
+
+
+

VstMidiEvent Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 type
 kVstMidiType
VstInt32 byteSize
 sizeof (VstMidiEvent)
VstInt32 deltaFrames
 sample frames related to the current block start sample position
VstInt32 flags
VstInt32 noteLength
 (in sample frames) of entire note, if available, else 0
VstInt32 noteOffset
 offset (in sample frames) into note from note start if available, else 0
char midiData [4]
 1 to 3 MIDI bytes; midiData[3] is reserved (zero)
char detune
 -64 to +63 cents; for scales other than 'well-tempered' ('microtuning')
char noteOffVelocity
 Note Off Velocity [0, 127].
char reserved1
 zero (Reserved for future use)
char reserved2
 zero (Reserved for future use)
+


Detailed Description

+MIDI Event (to be casted from VstEvent). +

+


Member Data Documentation

+ +
+ +
+ +

+sizeof (VstMidiEvent) +

+ +

+

+ +

+ +
+ +

+sample frames related to the current block start sample position +

+ +

+

+ +

+
+ + + + +
char VstMidiEvent::detune
+
+
+ +

+-64 to +63 cents; for scales other than 'well-tempered' ('microtuning') +

+ +

+

+ +

+ +
+ +

+

See also:
VstMidiEventFlags
+ +
+

+ +

+
+ + + + +
char VstMidiEvent::midiData[4]
+
+
+ +

+1 to 3 MIDI bytes; midiData[3] is reserved (zero) +

+ +

+

+ +

+ +
+ +

+(in sample frames) of entire note, if available, else 0 +

+ +

+

+ +

+ +
+ +

+offset (in sample frames) into note from note start if available, else 0 +

+ +

+

+ +

+ +
+ +

+Note Off Velocity [0, 127]. +

+ +

+

+ +

+
+ + + + +
char VstMidiEvent::reserved1
+
+
+ +

+zero (Reserved for future use) +

+ +

+

+ +

+
+ + + + +
char VstMidiEvent::reserved2
+
+
+ +

+zero (Reserved for future use) +

+ +

+

+ +

+ +
+ +

+kVstMidiType +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_midi_sysex_event-members.html b/doc/html/struct_vst_midi_sysex_event-members.html new file mode 100644 index 0000000..a0545d3 --- /dev/null +++ b/doc/html/struct_vst_midi_sysex_event-members.html @@ -0,0 +1,50 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstMidiSysexEvent Member List

This is the complete list of members for VstMidiSysexEvent, including all inherited members.

+ + + + + + + + +
byteSizeVstMidiSysexEvent
deltaFramesVstMidiSysexEvent
dumpBytesVstMidiSysexEvent
flagsVstMidiSysexEvent
resvd1VstMidiSysexEvent
resvd2VstMidiSysexEvent
sysexDumpVstMidiSysexEvent
typeVstMidiSysexEvent
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_midi_sysex_event.html b/doc/html/struct_vst_midi_sysex_event.html new file mode 100644 index 0000000..821e523 --- /dev/null +++ b/doc/html/struct_vst_midi_sysex_event.html @@ -0,0 +1,213 @@ + + +VST SDK 2.4: VstMidiSysexEvent Struct Reference + + + + +
+
+
+
+

VstMidiSysexEvent Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 type
 kVstSysexType
VstInt32 byteSize
 sizeof (VstMidiSysexEvent)
VstInt32 deltaFrames
 sample frames related to the current block start sample position
VstInt32 flags
 none defined yet (should be zero)
VstInt32 dumpBytes
 byte size of sysexDump
VstIntPtr resvd1
 zero (Reserved for future use)
char * sysexDump
 sysex dump
VstIntPtr resvd2
 zero (Reserved for future use)
+


Detailed Description

+MIDI Sysex Event (to be casted from VstEvent). +

+


Member Data Documentation

+ +
+ +
+ +

+sizeof (VstMidiSysexEvent) +

+ +

+

+ +

+ +
+ +

+sample frames related to the current block start sample position +

+ +

+

+ +

+ +
+ +

+byte size of sysexDump +

+ +

+

+ +

+ +
+ +

+none defined yet (should be zero) +

+ +

+

+ +

+ +
+ +

+zero (Reserved for future use) +

+ +

+

+ +

+ +
+ +

+zero (Reserved for future use) +

+ +

+

+ +

+
+ + + + +
char* VstMidiSysexEvent::sysexDump
+
+
+ +

+sysex dump +

+ +

+

+ +

+ +
+ +

+kVstSysexType +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_offline_task-members.html b/doc/html/struct_vst_offline_task-members.html new file mode 100644 index 0000000..bd0b8cc --- /dev/null +++ b/doc/html/struct_vst_offline_task-members.html @@ -0,0 +1,73 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstOfflineTask Member List

This is the complete list of members for VstOfflineTask, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
destinationFormatVstOfflineTask
destinationSampleRateVstOfflineTask
extraBufferVstOfflineTask
flagsVstOfflineTask
futureVstOfflineTask
hostOwnedVstOfflineTask
indexVstOfflineTask
inputBufferVstOfflineTask
maxFramesToWriteVstOfflineTask
numDestinationChannelsVstOfflineTask
numFramesInSourceFileVstOfflineTask
numFramesToProcessVstOfflineTask
numSourceChannelsVstOfflineTask
outputBufferVstOfflineTask
outputTextVstOfflineTask
plugOwnedVstOfflineTask
positionToProcessFromVstOfflineTask
processNameVstOfflineTask
progressVstOfflineTask
progressModeVstOfflineTask
progressTextVstOfflineTask
readCountVstOfflineTask
readPositionVstOfflineTask
returnValueVstOfflineTask
sizeInputBufferVstOfflineTask
sizeOutputBufferVstOfflineTask
sourceFormatVstOfflineTask
sourceSampleRateVstOfflineTask
valueVstOfflineTask
writeCountVstOfflineTask
writePositionVstOfflineTask
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_offline_task.html b/doc/html/struct_vst_offline_task.html new file mode 100644 index 0000000..0ca4fa7 --- /dev/null +++ b/doc/html/struct_vst_offline_task.html @@ -0,0 +1,673 @@ + + +VST SDK 2.4: VstOfflineTask Struct Reference + + + + +
+
+
+
+

VstOfflineTask Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

char processName [96]
 set by plug-in
double readPosition
 set by plug-in/Host
double writePosition
 set by plug-in/Host
VstInt32 readCount
 set by plug-in/Host
VstInt32 writeCount
 set by plug-in
VstInt32 sizeInputBuffer
 set by Host
VstInt32 sizeOutputBuffer
 set by Host
void * inputBuffer
 set by Host
void * outputBuffer
 set by Host
double positionToProcessFrom
 set by Host
double numFramesToProcess
 set by Host
double maxFramesToWrite
 set by plug-in
void * extraBuffer
 set by plug-in
VstInt32 value
 set by Host or plug-in
VstInt32 index
 set by Host or plug-in
double numFramesInSourceFile
 set by Host
double sourceSampleRate
 set by Host or plug-in
double destinationSampleRate
 set by Host or plug-in
VstInt32 numSourceChannels
 set by Host or plug-in
VstInt32 numDestinationChannels
 set by Host or plug-in
VstInt32 sourceFormat
 set by Host
VstInt32 destinationFormat
 set by plug-in
char outputText [512]
 set by plug-in or Host
double progress
 set by plug-in
VstInt32 progressMode
 Reserved for future use.
char progressText [100]
 set by plug-in
VstInt32 flags
 set by Host and plug-in; see enum VstOfflineTaskFlags
VstInt32 returnValue
 Reserved for future use.
void * hostOwned
 set by Host
void * plugOwned
 set by plug-in
char future [1024]
 Reserved for future use.
+


Detailed Description

+Offline Task Description. +

+


Member Data Documentation

+ +
+ +
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+
+ + + + +
void* VstOfflineTask::extraBuffer
+
+
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+set by Host and plug-in; see enum VstOfflineTaskFlags +

+ +

+

+ +

+
+ + + + +
char VstOfflineTask::future[1024]
+
+
+ +

+Reserved for future use. +

+ +

+

+ +

+
+ + + + +
void* VstOfflineTask::hostOwned
+
+
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+
+ + + + +
void* VstOfflineTask::inputBuffer
+
+
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+
+ + + + +
void* VstOfflineTask::outputBuffer
+
+
+ +

+set by Host +

+ +

+

+ +

+
+ + + + +
char VstOfflineTask::outputText[512]
+
+
+ +

+set by plug-in or Host +

+ +

+

+ +

+
+ + + + +
void* VstOfflineTask::plugOwned
+
+
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+
+ + + + +
char VstOfflineTask::processName[96]
+
+
+ +

+set by plug-in +

+ +

+

+ +

+
+ + + + +
double VstOfflineTask::progress
+
+
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+Reserved for future use. +

+ +

+

+ +

+
+ + + + +
char VstOfflineTask::progressText[100]
+
+
+ +

+set by plug-in +

+ +

+

+ +

+ +
+ +

+set by plug-in/Host +

+ +

+

+ +

+
+ + + + +
double VstOfflineTask::readPosition
+
+
+ +

+set by plug-in/Host +

+ +

+

+ +

+ +
+ +

+Reserved for future use. +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+ +
+ +

+set by Host or plug-in +

+ +

+

+ +

+ +
+ +

+set by plug-in +

+ +

+

+ +

+
+ + + + +
double VstOfflineTask::writePosition
+
+
+ +

+set by plug-in/Host +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_parameter_properties-members.html b/doc/html/struct_vst_parameter_properties-members.html new file mode 100644 index 0000000..409cc04 --- /dev/null +++ b/doc/html/struct_vst_parameter_properties-members.html @@ -0,0 +1,58 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstParameterProperties Member List

This is the complete list of members for VstParameterProperties, including all inherited members.

+ + + + + + + + + + + + + + + + +
categoryVstParameterProperties
categoryLabelVstParameterProperties
displayIndexVstParameterProperties
flagsVstParameterProperties
futureVstParameterProperties
labelVstParameterProperties
largeStepFloatVstParameterProperties
largeStepIntegerVstParameterProperties
maxIntegerVstParameterProperties
minIntegerVstParameterProperties
numParametersInCategoryVstParameterProperties
reservedVstParameterProperties
shortLabelVstParameterProperties
smallStepFloatVstParameterProperties
stepFloatVstParameterProperties
stepIntegerVstParameterProperties
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_parameter_properties.html b/doc/html/struct_vst_parameter_properties.html new file mode 100644 index 0000000..8ab3412 --- /dev/null +++ b/doc/html/struct_vst_parameter_properties.html @@ -0,0 +1,371 @@ + + +VST SDK 2.4: VstParameterProperties Struct Reference + + + + +
+
+
+
+

VstParameterProperties Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

float stepFloat
 float step
float smallStepFloat
 small float step
float largeStepFloat
 large float step
char label [kVstMaxLabelLen]
 parameter label
VstInt32 flags
VstInt32 minInteger
 integer minimum
VstInt32 maxInteger
 integer maximum
VstInt32 stepInteger
 integer step
VstInt32 largeStepInteger
 large integer step
char shortLabel [kVstMaxShortLabelLen]
 short label, recommended: 6 + delimiter
VstInt16 displayIndex
 index where this parameter should be displayed (starting with 0)
VstInt16 category
 0: no category, else group index + 1
VstInt16 numParametersInCategory
 number of parameters in category
VstInt16 reserved
 zero
char categoryLabel [kVstMaxCategLabelLen]
 category label, e.g. "Osc 1"
char future [16]
 reserved for future use
+


Detailed Description

+Parameter Properties used in effGetParameterProperties. +

+


Member Data Documentation

+ +
+ +
+ +

+0: no category, else group index + 1 +

+ +

+

+ +

+
+ + + + +
char VstParameterProperties::categoryLabel[kVstMaxCategLabelLen]
+
+
+ +

+category label, e.g. "Osc 1" +

+ +

+

+ +

+ +
+ +

+index where this parameter should be displayed (starting with 0) +

+ +

+

+ +

+ +
+ +

+

See also:
VstParameterFlags
+ +
+

+ +

+
+ + + + +
char VstParameterProperties::future[16]
+
+
+ +

+reserved for future use +

+ +

+

+ +

+
+ + + + +
char VstParameterProperties::label[kVstMaxLabelLen]
+
+
+ +

+parameter label +

+ +

+

+ +

+ +
+ +

+large float step +

+ +

+

+ +

+ +
+ +

+large integer step +

+ +

+

+ +

+ +
+ +

+integer maximum +

+ +

+

+ +

+ +
+ +

+integer minimum +

+ +

+

+ +

+ +
+ +

+number of parameters in category +

+ +

+

+ +

+ +
+ +

+zero +

+ +

+

+ +

+
+ + + + +
char VstParameterProperties::shortLabel[kVstMaxShortLabelLen]
+
+
+ +

+short label, recommended: 6 + delimiter +

+ +

+

+ +

+ +
+ +

+small float step +

+ +

+

+ +

+ +
+ +

+float step +

+ +

+

+ +

+ +
+ +

+integer step +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_patch_chunk_info-members.html b/doc/html/struct_vst_patch_chunk_info-members.html new file mode 100644 index 0000000..f8c07b0 --- /dev/null +++ b/doc/html/struct_vst_patch_chunk_info-members.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstPatchChunkInfo Member List

This is the complete list of members for VstPatchChunkInfo, including all inherited members.

+ + + + + +
futureVstPatchChunkInfo
numElementsVstPatchChunkInfo
pluginUniqueIDVstPatchChunkInfo
pluginVersionVstPatchChunkInfo
versionVstPatchChunkInfo
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_patch_chunk_info.html b/doc/html/struct_vst_patch_chunk_info.html new file mode 100644 index 0000000..1bbe908 --- /dev/null +++ b/doc/html/struct_vst_patch_chunk_info.html @@ -0,0 +1,153 @@ + + +VST SDK 2.4: VstPatchChunkInfo Struct Reference + + + + +
+
+
+
+

VstPatchChunkInfo Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 version
 Format Version (should be 1).
VstInt32 pluginUniqueID
 UniqueID of the plug-in.
VstInt32 pluginVersion
 Plug-in Version.
VstInt32 numElements
 Number of Programs (Bank) or Parameters (Program).
char future [48]
 Reserved for future use.
+


Detailed Description

+Structure used for effBeginLoadBank/effBeginLoadProgram. +

+


Member Data Documentation

+ +
+
+ + + + +
char VstPatchChunkInfo::future[48]
+
+
+ +

+Reserved for future use. +

+ +

+

+ +

+ +
+ +

+Number of Programs (Bank) or Parameters (Program). +

+ +

+

+ +

+ +
+ +

+UniqueID of the plug-in. +

+ +

+

+ +

+ +
+ +

+Plug-in Version. +

+ +

+

+ +

+ +
+ +

+Format Version (should be 1). +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_pin_properties-members.html b/doc/html/struct_vst_pin_properties-members.html new file mode 100644 index 0000000..9214fbc --- /dev/null +++ b/doc/html/struct_vst_pin_properties-members.html @@ -0,0 +1,47 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstPinProperties Member List

This is the complete list of members for VstPinProperties, including all inherited members.

+ + + + + +
arrangementTypeVstPinProperties
flagsVstPinProperties
futureVstPinProperties
labelVstPinProperties
shortLabelVstPinProperties
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_pin_properties.html b/doc/html/struct_vst_pin_properties.html new file mode 100644 index 0000000..9b7c0d3 --- /dev/null +++ b/doc/html/struct_vst_pin_properties.html @@ -0,0 +1,149 @@ + + +VST SDK 2.4: VstPinProperties Struct Reference + + + + +
+
+
+
+

VstPinProperties Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + +

Public Attributes

char label [kVstMaxLabelLen]
 pin name
VstInt32 flags
VstInt32 arrangementType
char shortLabel [kVstMaxShortLabelLen]
 short name (recommended: 6 + delimiter)
char future [48]
 reserved for future use
+


Detailed Description

+Pin Properties used in effGetInputProperties and effGetOutputProperties. +

+


Member Data Documentation

+ +
+ +
+ +

+

See also:
VstSpeakerArrangementType
+ +
+

+ +

+ +
+ +

+

See also:
VstPinPropertiesFlags
+ +
+

+ +

+
+ + + + +
char VstPinProperties::future[48]
+
+
+ +

+reserved for future use +

+ +

+

+ +

+
+ + + + +
char VstPinProperties::label[kVstMaxLabelLen]
+
+
+ +

+pin name +

+ +

+

+ +

+
+ + + + +
char VstPinProperties::shortLabel[kVstMaxShortLabelLen]
+
+
+ +

+short name (recommended: 6 + delimiter) +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_speaker_arrangement-members.html b/doc/html/struct_vst_speaker_arrangement-members.html new file mode 100644 index 0000000..5fd06b6 --- /dev/null +++ b/doc/html/struct_vst_speaker_arrangement-members.html @@ -0,0 +1,45 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstSpeakerArrangement Member List

This is the complete list of members for VstSpeakerArrangement, including all inherited members.

+ + + +
numChannelsVstSpeakerArrangement
speakersVstSpeakerArrangement
typeVstSpeakerArrangement
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_speaker_arrangement.html b/doc/html/struct_vst_speaker_arrangement.html new file mode 100644 index 0000000..1f58926 --- /dev/null +++ b/doc/html/struct_vst_speaker_arrangement.html @@ -0,0 +1,114 @@ + + +VST SDK 2.4: VstSpeakerArrangement Struct Reference + + + + +
+
+
+
+

VstSpeakerArrangement Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + +

Public Attributes

VstInt32 type
 e.g. kSpeakerArr51 for 5.1
VstInt32 numChannels
 number of channels in this speaker arrangement
VstSpeakerProperties speakers [8]
 variable sized speaker array
+


Detailed Description

+Speaker Arrangement. +

+


Member Data Documentation

+ +
+ +
+ +

+number of channels in this speaker arrangement +

+ +

+

+ +

+ +
+ +

+variable sized speaker array +

+ +

+

+ +

+ +
+ +

+e.g. kSpeakerArr51 for 5.1 +

+

See also:
VstSpeakerArrangementType
+ +
+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_speaker_properties-members.html b/doc/html/struct_vst_speaker_properties-members.html new file mode 100644 index 0000000..ebe549f --- /dev/null +++ b/doc/html/struct_vst_speaker_properties-members.html @@ -0,0 +1,49 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstSpeakerProperties Member List

This is the complete list of members for VstSpeakerProperties, including all inherited members.

+ + + + + + + +
azimuthVstSpeakerProperties
elevationVstSpeakerProperties
futureVstSpeakerProperties
nameVstSpeakerProperties
radiusVstSpeakerProperties
reservedVstSpeakerProperties
typeVstSpeakerProperties
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_speaker_properties.html b/doc/html/struct_vst_speaker_properties.html new file mode 100644 index 0000000..53303cb --- /dev/null +++ b/doc/html/struct_vst_speaker_properties.html @@ -0,0 +1,191 @@ + + +VST SDK 2.4: VstSpeakerProperties Struct Reference + + + + +
+
+
+
+

VstSpeakerProperties Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

float azimuth
 unit: rad, range: -PI...PI, exception: 10.f for LFE channel
float elevation
 unit: rad, range: -PI/2...PI/2, exception: 10.f for LFE channel
float radius
 unit: meter, exception: 0.f for LFE channel
float reserved
 zero (reserved for future use)
char name [kVstMaxNameLen]
 for new setups, new names should be given (L/R/C... won't do)
VstInt32 type
char future [28]
 reserved for future use
+


Detailed Description

+Speaker Properties. The origin for azimuth is right (as by math conventions dealing with radians). The elevation origin is also right, visualizing a rotation of a circle across the -pi/pi axis of the horizontal circle. Thus, an elevation of -pi/2 corresponds to bottom, and a speaker standing on the left, and 'beaming' upwards would have an azimuth of -pi, and an elevation of pi/2. For user interface representation, grads are more likely to be used, and the origins will obviously 'shift' accordingly. +

+


Member Data Documentation

+ +
+ +
+ +

+unit: rad, range: -PI...PI, exception: 10.f for LFE channel +

+ +

+

+ +

+ +
+ +

+unit: rad, range: -PI/2...PI/2, exception: 10.f for LFE channel +

+ +

+

+ +

+
+ + + + +
char VstSpeakerProperties::future[28]
+
+
+ +

+reserved for future use +

+ +

+

+ +

+
+ + + + +
char VstSpeakerProperties::name[kVstMaxNameLen]
+
+
+ +

+for new setups, new names should be given (L/R/C... won't do) +

+ +

+

+ +

+
+ + + + +
float VstSpeakerProperties::radius
+
+
+ +

+unit: meter, exception: 0.f for LFE channel +

+ +

+

+ +

+ +
+ +

+zero (reserved for future use) +

+ +

+

+ +

+ +
+ +

+

See also:
VstSpeakerType
+ +
+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_time_info-members.html b/doc/html/struct_vst_time_info-members.html new file mode 100644 index 0000000..8d914f8 --- /dev/null +++ b/doc/html/struct_vst_time_info-members.html @@ -0,0 +1,56 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstTimeInfo Member List

This is the complete list of members for VstTimeInfo, including all inherited members.

+ + + + + + + + + + + + + + +
barStartPosVstTimeInfo
cycleEndPosVstTimeInfo
cycleStartPosVstTimeInfo
flagsVstTimeInfo
nanoSecondsVstTimeInfo
ppqPosVstTimeInfo
samplePosVstTimeInfo
sampleRateVstTimeInfo
samplesToNextClockVstTimeInfo
smpteFrameRateVstTimeInfo
smpteOffsetVstTimeInfo
tempoVstTimeInfo
timeSigDenominatorVstTimeInfo
timeSigNumeratorVstTimeInfo
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_time_info.html b/doc/html/struct_vst_time_info.html new file mode 100644 index 0000000..31c2dda --- /dev/null +++ b/doc/html/struct_vst_time_info.html @@ -0,0 +1,334 @@ + + +VST SDK 2.4: VstTimeInfo Struct Reference + + + + +
+
+
+
+

VstTimeInfo Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

double samplePos
 current Position in audio samples (always valid)
double sampleRate
 current Sample Rate in Herz (always valid)
double nanoSeconds
 System Time in nanoseconds (10^-9 second).
double ppqPos
 Musical Position, in Quarter Note (1.0 equals 1 Quarter Note).
double tempo
 current Tempo in BPM (Beats Per Minute)
double barStartPos
 last Bar Start Position, in Quarter Note
double cycleStartPos
 Cycle Start (left locator), in Quarter Note.
double cycleEndPos
 Cycle End (right locator), in Quarter Note.
VstInt32 timeSigNumerator
 Time Signature Numerator (e.g. 3 for 3/4).
VstInt32 timeSigDenominator
 Time Signature Denominator (e.g. 4 for 3/4).
VstInt32 smpteOffset
 SMPTE offset (in SMPTE subframes (bits; 1/80 of a frame)). The current SMPTE position can be calculated using samplePos, sampleRate, and smpteFrameRate.
VstInt32 smpteFrameRate
VstInt32 samplesToNextClock
 MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest clock).
VstInt32 flags
+


Detailed Description

+VstTimeInfo requested via audioMasterGetTime.
See also:
AudioEffectX::getTimeInfo
+
Note:
VstTimeInfo::samplePos :Current Position. It must always be valid, and should not cost a lot to ask for. The sample position is ahead of the time displayed to the user. In sequencer stop mode, its value does not change. A 32 bit integer is too small for sample positions, and it's a double to make it easier to convert between ppq and samples.

+VstTimeInfo::ppqPos : At tempo 120, 1 quarter makes 1/2 second, so 2.0 ppq translates to 48000 samples at 48kHz sample rate. .25 ppq is one sixteenth note then. if you need something like 480ppq, you simply multiply ppq by that scaler.

+VstTimeInfo::barStartPos : Say we're at bars/beats readout 3.3.3. That's 2 bars + 2 q + 2 sixteenth, makes 2 * 4 + 2 + .25 = 10.25 ppq. at tempo 120, that's 10.25 * .5 = 5.125 seconds, times 48000 = 246000 samples (if my calculator servers me well :-).

+VstTimeInfo::samplesToNextClock : MIDI Clock Resolution (24 per Quarter Note), can be negative the distance to the next midi clock (24 ppq, pulses per quarter) in samples. unless samplePos falls precicely on a midi clock, this will either be negative such that the previous MIDI clock is addressed, or positive when referencing the following (future) MIDI clock.

+ +

+


Member Data Documentation

+ +
+
+ + + + +
double VstTimeInfo::barStartPos
+
+
+ +

+last Bar Start Position, in Quarter Note +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::cycleEndPos
+
+
+ +

+Cycle End (right locator), in Quarter Note. +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::cycleStartPos
+
+
+ +

+Cycle Start (left locator), in Quarter Note. +

+ +

+

+ +

+ +
+ +

+

See also:
VstTimeInfoFlags
+ +
+

+ +

+
+ + + + +
double VstTimeInfo::nanoSeconds
+
+
+ +

+System Time in nanoseconds (10^-9 second). +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::ppqPos
+
+
+ +

+Musical Position, in Quarter Note (1.0 equals 1 Quarter Note). +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::samplePos
+
+
+ +

+current Position in audio samples (always valid) +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::sampleRate
+
+
+ +

+current Sample Rate in Herz (always valid) +

+ +

+

+ +

+ +
+ +

+MIDI Clock Resolution (24 Per Quarter Note), can be negative (nearest clock). +

+ +

+

+ +

+ +
+ +

+

See also:
VstSmpteFrameRate
+ +
+

+ +

+ +
+ +

+SMPTE offset (in SMPTE subframes (bits; 1/80 of a frame)). The current SMPTE position can be calculated using samplePos, sampleRate, and smpteFrameRate. +

+ +

+

+ +

+
+ + + + +
double VstTimeInfo::tempo
+
+
+ +

+current Tempo in BPM (Beats Per Minute) +

+ +

+

+ +

+ +
+ +

+Time Signature Denominator (e.g. 4 for 3/4). +

+ +

+

+ +

+ +
+ +

+Time Signature Numerator (e.g. 3 for 3/4). +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_variable_io-members.html b/doc/html/struct_vst_variable_io-members.html new file mode 100644 index 0000000..c2db033 --- /dev/null +++ b/doc/html/struct_vst_variable_io-members.html @@ -0,0 +1,48 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstVariableIo Member List

This is the complete list of members for VstVariableIo, including all inherited members.

+ + + + + + +
inputsVstVariableIo
numSamplesInputVstVariableIo
numSamplesInputProcessedVstVariableIo
numSamplesOutputVstVariableIo
numSamplesOutputProcessedVstVariableIo
outputsVstVariableIo
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_variable_io.html b/doc/html/struct_vst_variable_io.html new file mode 100644 index 0000000..4d1b2db --- /dev/null +++ b/doc/html/struct_vst_variable_io.html @@ -0,0 +1,173 @@ + + +VST SDK 2.4: VstVariableIo Struct Reference + + + + +
+
+
+
+

VstVariableIo Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + +

Public Attributes

float ** inputs
 input audio buffers
float ** outputs
 output audio buffers
VstInt32 numSamplesInput
 number of incoming samples
VstInt32 numSamplesOutput
 number of outgoing samples
VstInt32numSamplesInputProcessed
 number of samples actually processed of input
VstInt32numSamplesOutputProcessed
 number of samples actually processed of output
+


Detailed Description

+Variable IO for Offline Processing. +

+


Member Data Documentation

+ +
+
+ + + + +
float** VstVariableIo::inputs
+
+
+ +

+input audio buffers +

+ +

+

+ +

+ +
+ +

+number of incoming samples +

+ +

+

+ +

+ +
+ +

+number of samples actually processed of input +

+ +

+

+ +

+ +
+ +

+number of outgoing samples +

+ +

+

+ +

+ +
+ +

+number of samples actually processed of output +

+ +

+

+ +

+
+ + + + +
float** VstVariableIo::outputs
+
+
+ +

+output audio buffers +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_window-members.html b/doc/html/struct_vst_window-members.html new file mode 100644 index 0000000..af9063f --- /dev/null +++ b/doc/html/struct_vst_window-members.html @@ -0,0 +1,52 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

VstWindow Member List

This is the complete list of members for VstWindow, including all inherited members.

+ + + + + + + + + + +
futureVstWindow
heightVstWindow
parentVstWindow
styleVstWindow
titleVstWindow
userHandleVstWindow
widthVstWindow
winHandleVstWindow
xPosVstWindow
yPosVstWindow
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/struct_vst_window.html b/doc/html/struct_vst_window.html new file mode 100644 index 0000000..cd79c5d --- /dev/null +++ b/doc/html/struct_vst_window.html @@ -0,0 +1,224 @@ + + +VST SDK 2.4: VstWindow Struct Reference + + + + +
+
+
+
+

VstWindow Struct Reference

#include <aeffectx.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

char title [128]
VstInt16 xPos
VstInt16 yPos
VstInt16 width
VstInt16 height
VstInt32 style
void * parent
void * userHandle
void * winHandle
char future [104]
+


Detailed Description

+
Deprecated:
Structure used for openWindow and closeWindow (deprecated in VST 2.4).
+ +

+


Member Data Documentation

+ +
+
+ + + + +
char VstWindow::future[104]
+
+
+ +

+ +

+

+ +

+ +
+ +

+ +

+

+ +

+
+ + + + +
void* VstWindow::parent
+
+
+ +

+ +

+

+ +

+ +
+ +

+ +

+

+ +

+
+ + + + +
char VstWindow::title[128]
+
+
+ +

+ +

+

+ +

+
+ + + + +
void* VstWindow::userHandle
+
+
+ +

+ +

+

+ +

+ +
+ +

+ +

+

+ +

+
+ + + + +
void* VstWindow::winHandle
+
+
+ +

+ +

+

+ +

+ +
+ +

+ +

+

+ +

+ +
+ +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/structfx_bank-members.html b/doc/html/structfx_bank-members.html new file mode 100644 index 0000000..2b7749d --- /dev/null +++ b/doc/html/structfx_bank-members.html @@ -0,0 +1,56 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

fxBank Member List

This is the complete list of members for fxBank, including all inherited members.

+ + + + + + + + + + + + + + +
byteSizefxBank
chunkfxBank
chunkMagicfxBank
contentfxBank
currentProgramfxBank
datafxBank
futurefxBank
fxIDfxBank
fxMagicfxBank
fxVersionfxBank
numProgramsfxBank
programsfxBank
sizefxBank
versionfxBank
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/structfx_bank.html b/doc/html/structfx_bank.html new file mode 100644 index 0000000..7cffb4d --- /dev/null +++ b/doc/html/structfx_bank.html @@ -0,0 +1,337 @@ + + +VST SDK 2.4: fxBank Struct Reference + + + + +
+
+
+
+

fxBank Struct Reference

#include <vstfxstore.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 chunkMagic
 'CcnK'
VstInt32 byteSize
 size of this chunk, excl. magic + byteSize
VstInt32 fxMagic
 'FxBk' (regular) or 'FBCh' (opaque chunk)
VstInt32 version
 format version (1 or 2)
VstInt32 fxID
 fx unique ID
VstInt32 fxVersion
 fx version
VstInt32 numPrograms
 number of programs
VstInt32 currentProgram
 version 2: current program number
char future [124]
 reserved, should be zero
union {
   fxProgram   programs [1]
 variable number of programs
   struct {
      VstInt32   size
 size of bank data
      char   chunk [1]
 variable sized array with opaque bank data
   }   data
 bank chunk data
content
 bank content depending on fxMagic
+


Detailed Description

+Bank (fxb) structure. +

+


Member Data Documentation

+ +
+ +
+ +

+size of this chunk, excl. magic + byteSize +

+ +

+

+ +

+
+ + + + +
char fxBank::chunk[1]
+
+
+ +

+variable sized array with opaque bank data +

+ +

+

+ +

+ +
+ +

+'CcnK' +

+ +

+

+ +

+
+ + + + +
union { ... } fxBank::content
+
+
+ +

+bank content depending on fxMagic +

+ +

+

+ +

+ +
+ +

+version 2: current program number +

+ +

+

+ +

+
+ + + + +
struct { ... } fxBank::data
+
+
+ +

+bank chunk data +

+ +

+

+ +

+
+ + + + +
char fxBank::future[124]
+
+
+ +

+reserved, should be zero +

+ +

+

+ +

+
+ + + + +
VstInt32 fxBank::fxID
+
+
+ +

+fx unique ID +

+ +

+

+ +

+ +
+ +

+'FxBk' (regular) or 'FBCh' (opaque chunk) +

+ +

+

+ +

+ +
+ +

+fx version +

+ +

+

+ +

+ +
+ +

+number of programs +

+ +

+

+ +

+
+ + + + +
fxProgram fxBank::programs[1]
+
+
+ +

+variable number of programs +

+ +

+

+ +

+
+ + + + +
VstInt32 fxBank::size
+
+
+ +

+size of bank data +

+ +

+

+ +

+ +
+ +

+format version (1 or 2) +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/structfx_program-members.html b/doc/html/structfx_program-members.html new file mode 100644 index 0000000..0681af2 --- /dev/null +++ b/doc/html/structfx_program-members.html @@ -0,0 +1,55 @@ + + +VST SDK 2.4: Member List + + + + +
+
+
+
+

fxProgram Member List

This is the complete list of members for fxProgram, including all inherited members.

+ + + + + + + + + + + + + +
byteSizefxProgram
chunkfxProgram
chunkMagicfxProgram
contentfxProgram
datafxProgram
fxIDfxProgram
fxMagicfxProgram
fxVersionfxProgram
numParamsfxProgram
paramsfxProgram
prgNamefxProgram
sizefxProgram
versionfxProgram
+ + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/structfx_program.html b/doc/html/structfx_program.html new file mode 100644 index 0000000..97a81bb --- /dev/null +++ b/doc/html/structfx_program.html @@ -0,0 +1,317 @@ + + +VST SDK 2.4: fxProgram Struct Reference + + + + +
+
+
+
+

fxProgram Struct Reference

#include <vstfxstore.h> +

+List of all members. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Public Attributes

VstInt32 chunkMagic
 'CcnK'
VstInt32 byteSize
 size of this chunk, excl. magic + byteSize
VstInt32 fxMagic
 'FxCk' (regular) or 'FPCh' (opaque chunk)
VstInt32 version
 format version (currently 1)
VstInt32 fxID
 fx unique ID
VstInt32 fxVersion
 fx version
VstInt32 numParams
 number of parameters
char prgName [28]
 program name (null-terminated ASCII string)
union {
   float   params [1]
 variable sized array with parameter values
   struct {
      VstInt32   size
 size of program data
      char   chunk [1]
 variable sized array with opaque program data
   }   data
 program chunk data
content
 program content depending on fxMagic
+


Detailed Description

+Program (fxp) structure. +

+


Member Data Documentation

+ +
+ +
+ +

+size of this chunk, excl. magic + byteSize +

+ +

+

+ +

+
+ + + + +
char fxProgram::chunk[1]
+
+
+ +

+variable sized array with opaque program data +

+ +

+

+ +

+ +
+ +

+'CcnK' +

+ +

+

+ +

+
+ + + + +
union { ... } fxProgram::content
+
+
+ +

+program content depending on fxMagic +

+ +

+

+ +

+
+ + + + +
struct { ... } fxProgram::data
+
+
+ +

+program chunk data +

+ +

+

+ +

+ +
+ +

+fx unique ID +

+ +

+

+ +

+ +
+ +

+'FxCk' (regular) or 'FPCh' (opaque chunk) +

+ +

+

+ +

+ +
+ +

+fx version +

+ +

+

+ +

+ +
+ +

+number of parameters +

+ +

+

+ +

+
+ + + + +
float fxProgram::params[1]
+
+
+ +

+variable sized array with parameter values +

+ +

+

+ +

+
+ + + + +
char fxProgram::prgName[28]
+
+
+ +

+program name (null-terminated ASCII string) +

+ +

+

+ +

+ +
+ +

+size of program data +

+ +

+

+ +

+ +
+ +

+format version (currently 1) +

+ +

+

+


The documentation for this struct was generated from the following file: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/tab_b.gif b/doc/html/tab_b.gif new file mode 100644 index 0000000..0d62348 Binary files /dev/null and b/doc/html/tab_b.gif differ diff --git a/doc/html/tab_l.gif b/doc/html/tab_l.gif new file mode 100644 index 0000000..9b1e633 Binary files /dev/null and b/doc/html/tab_l.gif differ diff --git a/doc/html/tab_r.gif b/doc/html/tab_r.gif new file mode 100644 index 0000000..ce9dd9f Binary files /dev/null and b/doc/html/tab_r.gif differ diff --git a/doc/html/tabs.css b/doc/html/tabs.css new file mode 100644 index 0000000..a61552a --- /dev/null +++ b/doc/html/tabs.css @@ -0,0 +1,102 @@ +/* tabs styles, based on http://www.alistapart.com/articles/slidingdoors */ + +DIV.tabs +{ + float : left; + width : 100%; + background : url("tab_b.gif") repeat-x bottom; + margin-bottom : 4px; +} + +DIV.tabs UL +{ + margin : 0px; + padding-left : 10px; + list-style : none; +} + +DIV.tabs LI, DIV.tabs FORM +{ + display : inline; + margin : 0px; + padding : 0px; +} + +DIV.tabs FORM +{ + float : right; +} + +DIV.tabs A +{ + float : left; + background : url("tab_r.gif") no-repeat right top; + border-bottom : 1px solid #84B0C7; + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + +DIV.tabs A:hover +{ + background-position: 100% -150px; +} + +DIV.tabs A:link, DIV.tabs A:visited, +DIV.tabs A:active, DIV.tabs A:hover +{ + color: #1A419D; +} + +DIV.tabs SPAN +{ + float : left; + display : block; + background : url("tab_l.gif") no-repeat left top; + padding : 5px 9px; + white-space : nowrap; +} + +DIV.tabs INPUT +{ + float : right; + display : inline; + font-size : 1em; +} + +DIV.tabs TD +{ + font-size : x-small; + font-weight : bold; + text-decoration : none; +} + + + +/* Commented Backslash Hack hides rule from IE5-Mac \*/ +DIV.tabs SPAN {float : none;} +/* End IE5-Mac hack */ + +DIV.tabs A:hover SPAN +{ + background-position: 0% -150px; +} + +DIV.tabs LI#current A +{ + background-position: 100% -150px; + border-width : 0px; +} + +DIV.tabs LI#current SPAN +{ + background-position: 0% -150px; + padding-bottom : 6px; +} + +DIV.nav +{ + background : none; + border : none; + border-bottom : 1px solid #84B0C7; +} diff --git a/doc/html/thanks.html b/doc/html/thanks.html new file mode 100644 index 0000000..ec626cf --- /dev/null +++ b/doc/html/thanks.html @@ -0,0 +1,40 @@ + + +VST SDK 2.4: Acknowledgements + + + + +
+
+

Acknowledgements

The VSTGUI interfaces & libraries were created by Yvan Grabit and Michael Schmidt (additional development Matthias Juwan, Arne Scheffler). The time they have invested has really made the huge inroads into cross-platform code compatibility.

+Thanks too, to Philippe Goutier who provided the VST Offline Interface.

+Not forgetting Dave Nicholson, Julien Junod, Pierre Jean Camillieri, Janne Roeper, Rene Hansen who did some additional typing.

+There were many more people involved in the creation of this interface, not all of whom can be mentioned here. We extend our thanks not just to the Steinberg Staff and Associates that contributed but also to the many other developers from other parties have helped with their input - mainly all the nice people on the VST Plug-In DEVELOPER MAILING LIST

+Thanks to all of you for having made this possible.

+Charlie Steinberg 2006 + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/tree.html b/doc/html/tree.html new file mode 100644 index 0000000..fa6397b --- /dev/null +++ b/doc/html/tree.html @@ -0,0 +1,180 @@ + + + + + + + TreeView + + + + +
+

VST SDK 2.4

+
+

o*Main Page

+

o+Class List

+ +

o+Class Hierarchy

+ +

o*Class Members

+

o+Namespace List

+ +

o*Namespace Members

+

o+File List

+ +

o+Directories

+
+

|o+pluginterfaces

+
+

||\*vst2.x

+
+

|\+source

+
+

| \*vst2.x

+
+
+

o*File Members

+

\+Related Pages

+ +
+
+ + diff --git a/doc/html/vstfxstore_8h.html b/doc/html/vstfxstore_8h.html new file mode 100644 index 0000000..b15db02 --- /dev/null +++ b/doc/html/vstfxstore_8h.html @@ -0,0 +1,138 @@ + + +VST SDK 2.4: vstfxstore.h File Reference + + + + +
+
+
+
+ +

vstfxstore.h File Reference

#include "aeffect.h"
+ + + + + + + + + + + + + + + + + + +

Classes

struct  fxProgram
struct  fxBank

Defines

#define cMagic   'CcnK'
#define fMagic   'FxCk'
#define bankMagic   'FxBk'
#define chunkPresetMagic   'FPCh'
#define chunkBankMagic   'FBCh'
+

Define Documentation

+ +
+
+ + + + +
#define bankMagic   'FxBk'
+
+
+ +

+Regular Bank (fxb) identifier. +

+

+ +

+
+ + + + +
#define chunkBankMagic   'FBCh'
+
+
+ +

+Bank (fxb) identifier for opaque chunk data. +

+

+ +

+
+ + + + +
#define chunkPresetMagic   'FPCh'
+
+
+ +

+Program (fxp) identifier for opaque chunk data. +

+

+ +

+
+ + + + +
#define cMagic   'CcnK'
+
+
+ +

+Root chunk identifier for Programs (fxp) and Banks (fxb). +

+

+ +

+
+ + + + +
#define fMagic   'FxCk'
+
+
+ +

+Regular Program (fxp) identifier. +

+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/vstoffline.html b/doc/html/vstoffline.html new file mode 100644 index 0000000..58fd3b0 --- /dev/null +++ b/doc/html/vstoffline.html @@ -0,0 +1,1391 @@ + + +VST SDK 2.4: VST Offline Processing + + + + +
+
+

VST Offline Processing

Introduction

+

The VST offline interface is a powerful API that allows a Plug-In to freely read + audio files open in the host, to transform them or to generate new audio files. + The main features are:

+ +

 

+

Declaring an offline Plug-In

+

The host knows if a given Plug-In supports the offline interface through the + canDo function, as follows: +

+ +

Overview of the interface

+

Three structures are dedicated to the offline interface:

+ +

 There are also three enums: +

+ +

Three host opcodes are defined:

+ +

with the corresponding functions in AudioEffectX:

+ +

Three Plug-In opcodes are defined:

+ +

with the corresponding functions in AudioEffectX:

+ +

An offline process results from a nested sequence of calls, as follows:

+
    +
  1. + The host calls offlineNotify, passing an array of + VstAudioFile structures that describe all files that can be read and written. + There is also a "start" argument that indicates to the Plug-In whether the + process should begin or not. The "start" argument is true e.g. after the user + presses the "Process" button (which should be under the host control). The + "start" argument is false if the call results from any change in the file + environment of the host. + +
  2. + In its implementation of offlineNotify, the Plug-In + states which file(s) it wants to read and write, by setting flags in the + VstAudioFile structures. Then the Plug-In calls the function offlineStart. The + last argument of offlineStart allows the Plug-In to create one or more new + files.  + +
  3. + In its implementation of offlineStart, the host + initializes an array of VstOfflineTask structures, one for each file to read + or/and write. Then the host calls: offlinePrepare. + +
  4. + In its implementation of offlinePrepare, the Plug-In + continues the initialization of the VstOfflineTask structures (eg. set the + sample rate and number of channels in new files). + +
  5. + If offlinePrepare returns true, the host finalizes + the preparation of the VstOfflineTask structures (eg. allocate i/o audio + buffers), then calls offlineRun. + +
  6. + In its implementation of offlineRun, the Plug-In can call the host functions + offlineRead and offlineWrite at will, until its audio processing is completed. + The approach is therefore opposite to the realtime interface: the Plug-In here + instructs the host about which files to read and write, in which order, at + which rate. A small diagram can illustrate the nested sequence of calls. + Functions in red are called by the host and implemented by the Plug-In. + Functions in blue are called by the Plug-In and implemented by the host. +
  7. +
+
+

offlineNotify

+

 { +

+
+

offlineStart +

+

{

+
+

offlinePrepare

+

offlineRun

+

 { +

+
+

. ..

+

offlineRead

+

offlineWrite

+

 . .. +

+
+

}

+
+

}

+
+

} +

+
+

 

+

Details of the interface

+

struct VstAudioFile

+

This structure describes an audio file already open in the host. This + description is systemindependent: no file path is specified. A Plug-In does not + query the host about available files; instead, it gets informed about the + available files when the host calls the function offlineNotify. +
+ Note: there is an option, however, to force the host to send a notification + (see kVstOfflineQueryFiles). +
+ The host sets all the members of this structure, unless notified otherwise.
+

+
+

VstInt32 flags

+

See enum VstAudioFileFlags. Both host and Plug-In can set flags.

+

void* hostOwned

+

Any data private to host.

+

void* plugOwned

+

Any data private to Plug-In. This value is (optionally) set by the Plug-In in + its implementation of offlineNotify. This value is then copied by the host into + the VstOfflineTask structure (plugOwned member), when offlineStart is called + (this allows the Plug-In, if necessary, to make a link between the + offlineNotify call and the offlinePrepare/offlineRun calls).

+

char name[100] +

+

Name of the file (no path, just name without any file extension). This can be + used by the Plug-In to display in its user interface the list of all files + available for processing. This is useful if the Plug-In requires the user to + select more than one file to perform its job (eg. mixer, file comparer, + etc...).

+

VstInt32 uniqueId

+

This value identifies a file instance in the host, during a session. Not two + file instances must ever get the same ID during a session. If a file gets + closed and is reopen later, it must be attributed an ID that was never + attributed so far during the session. From the host side, this can be easily + implemented with a simple global counter. This ID can be a useful reference for + a Plug-In, if its user interface maintains a list of files that the user can + select.

+

double sampleRate

+

sample rate of the file

+

VstInt32 numChannels

+

number of channels: 1 for mono, 2 for stereo, etc...

+

double numFrames

+

number of frames in the audio file 

+

VstInt32 format

+

reserved for future. Currently 0.

+

double editCursorPosition

+

frame index of the edit cursor, or -1 if no such cursor exists. This member + represents the "edit-cursor" position, if any, but never the "playback-cursor" + position.

+

double selectionStart

+

frame index of first selected frame, or -1 if there is no selection

+

double selectionSize

+

number of frames in selection. Zero if no selection.

+

VstInt32 selectedChannelsMask

+

Bit mask describing which channels are selected. One bit per channel. Eg. value + 3 means that both channels of a stereo file are selected. +

+

VstInt32 numMarkers

+

number of markers in the file. The Plug-In can use offlineRead to get details + about the markers. +

+

VstInt32 timeRulerUnit

+

If the Plug-In needs to display time values, it might be nice to match the unit + system selected by the user for the file in the host. This is the reason why + this member, and the following ones, are provided. Possible values: 0: + undefined 1: samples units 2: hours/minutes/seconds/milliseconds 3: smpte 4: + measures and beats +

+

double timeRulerOffset

+

frame offset of the time ruler for the window that displays the audio file. + Usually 0 but could be negative or positive. +

+

double tempo

+

-1 if not used by the file's time ruler, else BPM units. +

+

VstInt32 timeSigNumerator

+

-1 if not used by the file's time ruler, else number of beats per measure +

+

VstInt32 timeSigDenominator

+

-1 if not used by the file's time ruler, else number of beats per whole note +

+

VstInt32 ticksPerBlackNote

+

 -1 if not used by the file's time ruler, else sequencer resolution +

+

VstInt32 smpteFrameRate

+

 -1 if not used by the file's time ruler, else refers to VstTimeInfo for + the meaning.
+

+
+


+

+

enum VstAudioFileFlags

+

This refers to the possible flags for the member flag of the structure + VstAudioFile:

+

The host sets its flags before calling offlineNotify. The Plug-In sets its flags + in its implementation of offlineNotify, before calling offlineStart. +

+
+

+

+
+

kVstOfflineReadOnly +

+
+

Set by host. Means that the file can't be modified, it can only be read. If the + Plug-In tries to write it later, the host should return false from + offlineWrite. +

+
+

kVstOfflineNoRateConversion +

+
+

Set by host. Means that the file can't have its sample rate modified.

+
+

kVstOfflineNoChannelChange +

+
+

Set by host. Means that the number of channels can't be changed (eg. the host + might not allow an in-place mono to stereo conversion). +

+
+

kVstOfflineCanProcessSelection +

+

Set by the Plug-In if its process can be applied to a limited part of a file. If + no selection exists, the entire file range is used. The host checks this flag + and, accordingly, initializes the members positionToProcessFrom and + numFramesToProcess in the structure VstOfflineTask. Setting this flag is a + common case, but a counter example is e.g. a sample rate converter (the sample + rate is global to a file and can't be applied to a limited part of a file).

+
+

kVstOfflineNoCrossfade +

+

Consider the case of a Plug-In transforming only a part of a file. To avoid a + click at the edges (between the processed part and the non-processed part) the + host might perform a short crossfade with the old samples, according to user + preferences. However, a Plug-In might want to reject this option for some + reasons (eg. the Plug-In performs a local glitch restoration and wants to + perform the crossfade itself). In that case, the Plug-In should set this flag + to instruct the host not to perform any crossfade. +

+

kVstOfflineWantRead +

+

If the Plug-In wants to read the file, it should set this flag. E.g. a + signal-generator Plug-In would never set that flag. If this flag is not set and + the Plug-In tries to read the file later, the host should return false from + offlineRead.

+

kVstOfflineWantWrite

+

If the Plug-In wants to overwrite part or the entire file, it should set this + flag. E.g. an analyzer plugin would never set that flag. Note: as an + alternative, the Plug-In can choose to create a new file, rather than + overwriting the source file (see offlineStart). If this flag is not set and the + Plug-In tries to write the file later, the host should return false from + offlineWrite.

+

kVstOfflineWantWriteMarker +

+

If the Plug-In wants to modify or create markers in the file, it should set this + flag. If this flag is not set and the Plug-In tries to move or create a marker + later, the host should return false from offlineWrite. +

+

kVstOfflineWantMoveCursor

+

If the Plug-In wants to move the edit-cursor of the file, it should set this + flag. If this flag is not set and the Plug-In tries to move the edit-cursor + later, the host should return false from offlineWrite.

+

kVstOfflineWantSelect +

+

If the Plug-In wants to select samples in the file, it should set this flag. If + this flag is not set and the Plug-In tries to select samples later, the host + should return false from offlineWrite.
+

+
+


+

+
+

struct VstOfflineTask

+

This structure is used in offlinePrepare, offlineRun, offlineRead and + offlineWrite functions. Its main purpose is to be a parameter-holder to + instruct the host to read/write an existing file, or to write a new file. + However, it can also be used as a parameter-holder for other purposes, as we + shall see later (see VstOfflineOption). Thus, certain members of this structure + have a different meaning according to the option selected when calling + offlineRead and offlineWrite. For the sake of simplicity, we now mainly cover + the common case of reading/writing audio samples. +
+ An important principle to understand from the beginning, is that each file + which is read or/and written is associated with a single VstOfflineTask + structure.
+
+

+
+

char processName[96] +

+

Set by Plug-In in offlinePrepare. The host to label the process can + use this name. E.g. the host might display that name in a menu entry called + "Undo ....". +
+ If the process uses multiple VstOfflineTask structures, only the first one + needs to have this field set (or all other VstOfflineTask structures should + have the same label). +
+ This field might be erased later during the process, therefore the host should + make a copy of it. +
+

+

double readPosition +

+

Position, as frames, of the read "head" in the audio file. Set both by + Plug-In and host: +
+ This value should be set by the Plug-In, before calling offlineRead, to + instruct the host. +
+ On the other hand, the host updates the value to reflect the read position + after the call to offlineRead. +
+

+

double writePosition +

+

Position, as frames, of the write "head" in the audio file. Set both + by Plug-In and host: +
+ This value should be set by the Plug-In, before calling offlineWrite, to + instruct the host. +
+ On the other hand, the host updates the value to reflect the write position + after the call to offlineWrite. +
+

+

VstInt32 readCount

+

Number of audio frames to read. +
+ Set by Plug-In, before calling offlineRead. +
+ When returning from offlineRead, readCount contains the number of actually read + frames. If the Plug-In tries to read beyond the end of the file (not considered + as an error), the float buffers are completed with blank frames by the host. In + that case, the number of blank frames is returned in the member value. In other + words, the sum (readCount + value) after the call is equal to the value of + readCount before the call. +
+

+

VstInt32 writeCount +

+

Number of audio frames to write. +
+ Set by Plug-In, before calling offlineWrite. +
+ Never set by the host. If the host can't write the samples because of a + disk-full situation, the host should return false from offlineWrite. +
+

+

VstInt32 sizeInputBuffer +

+

Size, as frames, of the audio input buffer. +
+ Set by host before calling offlineRun. +
+ This value remains unchanged during the whole process. A Plug-In can't read + more than this number of samples in a single call to offlineRead. +
+

+

VstInt32 sizeOutputBuffer +

+

Size, as frames, of the audio output buffer. +
+ Set by host before calling offlineRun. +
+ This value remains unchanged during the whole process. A Plug-In can't write + more than this number of samples in a single call to offlineWrite. +
+

+

void* inputBuffer +

+

void* outputBuffer +

+

Both set by host, before calling offlineRun. The actual type of the + pointer depends on the channel mode: if the Plug-In has set the flag + kVstOfflineInterleavedAudio, then the type is float* (array of interleaved + samples). In the other case, the type is float** (array of array of samples). + The latter is the standard case. +
+

+

double positionToProcessFrom +

+

double numFramesToProcess +

+

Set by host, according to the flags set in enum VstAudioFileFlags. This defines + the frame range that the Plug-In should read for its process. +
+ If required for its algorithm, the Plug-In is allowed to read before and after + this range (if the range is a subset of the file), but only that range of + samples should be transformed. +
+

+

double maxFramesToWrite +

+

Set by Plug-In in offlinePrepare. This value could be used by the host for + optimization purposes (to select a proper write algorithm), and also to check + if the disk space is sufficient before starting the process.
+ If the Plug-In writes no audio, this value should be 0. +
+ If the number of written samples is the same as the number of read samples, + this value should be equal to numFramesToProcess. +
+ If the Plug-Ins does not know exactly the number of frames, this value should + be an approximate value, large enough for sure, but as small as possible (if + the Plug-In later tries to write more frames than this number, an error would + be issued by the host). +
+ If the Plug-Ins does not know at all, this value should be -1 (this is the + default value of this member). +
+

+

void* extraBuffer +

+

This is set by the Plug-In. This is a buffer which is used to read/write other + data than audio. Meaning depends on the offlineRead/offlineWrite option (see + VstOfflineOption). +
+

+

VstInt32 value +

+

Set by Plug-In or host. Meaning depends on the offlineRead/offlineWrite option + (see VstOfflineOption). +
+

+

VstInt32 index +

+

Set by Plug-In or host. Meaning depends on the offlineRead/offlineWrite option + (see VstOfflineOption). +
+ This value is also optionally set by the Plug-In during offlinePrepare, as + follows: +
+ If the Plug-In generates a new file out of an existing file, then it should + initialize this value with the index of the VstOfflineTask structure + corresponding to the source file. This is not mandatory, but this info could be + of interest for the host. Be default, index is -1 when offlinePrepare is + called. +
+

+

double numFramesInSourceFile +

+

Number of frames in source file. This is set by the host in offlineStart. +
+ This value is only set for existing source files. +
+ If the VstOfflineTask structure refers to a file created by the host on behalf + of the Plug-In, this value is 0. +
+

+

double sourceSampleRate +

+

Sample rate of the source file. Set by host. +
+ If the VstOfflineTask structure refers to a file created by the host on behalf + of the Plug-In, this value is 0. In that case, the Plug-In must initialize this + value when offlinePrepare is called (in that case, same value as + destinationSampleRate). +
+

+

double destinationSampleRate +

+

Sample rate of the destination file. Set by Plug-In in offlinePrepare (but + previously initialized by host as sourceSampleRate). +
+ If the VstOfflineTask structure refers to a file created by the host on behalf + of the Plug-In, this value is 0. In that case, the Plug-In must initialize this + value when offlinePrepare is called (in that case, same value as + sourceSampleRate). +

+

VstInt32 numSourceChannels +

+

Number of channels in the source file. Set by host. +
+ Note: if the mode kVstOfflineCanProcessSelection is active, and if only one + channel of a stereo file is selected, then numSourceChannels should be set to + 1. In that case, the file appears as a mono file from the Plug-In point of + view. +
+ If the VstOfflineTask structure refers to a file created by the host on behalf + of the Plug-In, this value is 0. In that case, the Plug-In must initialize this + value when offlinePrepare is called (in that case, same value as + numDestinationChannels). +
+

+

VstInt32 numDestinationChannels +

+

Number of channels in the destination file. Set by Plug-In in offlinePrepare + (but previously initialized by host as numSourceChannels). This value is + required for the host to allocate the proper outputBuffer. If the + VstOfflineTask structure refers to a file created by the host on behalf of the + Plug-In, this value is 0. In that case, the Plug-In must initialize this value + when offlinePrepare is called (in that case, same value as numSourceChannels). +
+

+

VstInt32 sourceFormat +

+

Reserved for future. +
+ Set by host. +
+

+

VstInt32 destinationFormat +

+

Reserved for future. +
+ Set by Plug-In. +
+

+

char outputText [512] +

+

There are three uses for this member: +
+ If the Plug-In has instructed the host to create a new file (see offlineStart), + then the Plug-In can optionally provide its name in this member, with a fully + qualified path (this file name must be selected by the user from the Plug-In + user interface). In that case, the file is saved by the host in the default + audio file format for the platform (this could also be a host specific option). + This name has to be initialized when offlinePrepare is called. +
+ Note: the host, if a demo version, might reject this option! +
+ If outputText is empty (common case), then the host creates the file in a + folder dedicated to temporary files. Later, it's up to the user to save the + file from the host. +
+ Before returning from a function with false, the Plug-In can set the flag + kVstOfflinePlugError and then (over)write the outputText member. In that case, + the host should display the message to the user. If the host sets the flag + kVstOfflineUnvalidParameter, then the host might as well fill up the outputText + member, to give a hint to the Plug-In, for pure debugging purposes. +
+

+

double progress +

+

Set by Plug-In to inform the host about the current progress of the whole + operation. The value must be in the range 0 to 1. If the value is not in this + range (e.g. -1), the host must ignore it. +
+ The Plug-In should, if possible, update this value each time before calling + offlineRead and offlineWrite (this would give the host enough occasions to + update a progress indicator to give feedback to the user). 

+

 If the process has to perform several "passes", the progress value is + allowed to go from 0 to 1 several times. However, ideally, a single 0 to 1 pass + is better for the user's feedback. +
+ The progress value is meant to be global: if there are several VstOfflineTask + involved, the progress value should be "independent" from each task (yet, this + global progress should be set in each VstOfflineTask structure passed to + VstOfflineTask and offlineWrite calls). +
+

+

VstInt32 progressMode +

+

Reserved for the future. +
+

+

char progressText[100] +

+

Set by Plug-In, to describe what's going on. Can be updated any time. Optional. +
+

+

VstInt32 flags +

+

Set by host and Plug-In. See enum VstOfflineTaskFlags. +
+

+

VstInt32 returnValue +

+

Reserved for the future. +
+

+

void* hostOwned

+ Any data private to host void* plugOwned Any data private to Plug-In. This + value is firstly initialized by the host, in offlineStart, with the value of + the member plugOwned from the structure VstAudioFile (if the VstOfflineTask + corresponds to an existing file).
+
+


+

+

enum VstOfflineTaskFlags
+

+
+

kVstOfflineUnvalidParameter +

+

Sets by host if the Plug-In passes an unvalid parameter. In that case, the host + might fill up the member outputText, to give a hint to the Plug-In, for + debugging purposes. +
+

+

kVstOfflineNewFile +

+

Set by the host to indicate that this VstOfflineTask represents a task that + creates/reads/writes a new file. +
+

+

kVstOfflinePlugError +

+

If an error happens in the Plug-In itself (not an error notified by the host), + then the Plug-In could optionally set this flag before returning false from its + function to indicate to the host that the member outputText (now) contains a + description of the error. The host is then in charge of displaying the message + to the user. The Plug-In should never try to display itself an error message + from the offlineRun function, since offlineRun could happen in a background + task. +

+

kVstOfflineInterleavedAudio +

+

The Plug-In should set this flag if it wants to get data in interleaved format. + By default, this is not the case. +
+

+

kVstOfflineTempOutputFile +

+

The Plug-In should set this flag in offlinePrepare, if the file to create must + be a temporary one. In that case, the file is deleted at the end of the process + (else, the file is usually open by the host at the end of the process). +
+ This flag can obviously be set only for a new file, not for an existing file. +
+

+

kVstOfflineFloatOutputFile +

+

If the Plug-In needs creating a file made of float samples, this flag should be + set. Else, the default file format is dependant on the host (could be 16 bit, + 24 bit, float...). This can be useful if the Plug-In needs to store temporary + results to disk, without fear of clipping.
+

+

+ kVstOfflineRandomWrite +

+

If the Plug-In needs to write randomly (not sequentially) a file, it should set + this flag. This flag should also be set if the file is to be written + sequentially more than once. This is a hint for the host to select a proper + writing procedure. If this flag is not set, the host could return false from + offlineWrite, if the Plug-In attempts a non-sequential writing. +
+

+

kVstOfflineStretch +

+

If the Plug-In time-stretches part or all of a file (eg. resampling), it should + set this flag. This instructs the host to move and stretch the relative file + markers, if any, to match the change. This also is of great importance in mode + "process-selection" (see kVstOfflineCanProcessSelection), as it instructs the + host to replace only the selection, whatever the number of written samples. + Let's take an example: if there are 10000 selected input samples (from 0 to + 9999) and 20000 samples are output by the Plug-In, then: 1) if the flag + kVstOfflineStretch is set: the host simply replaces the samples 0-9999 with the + new 20000 samples, and also moves/stretches the file markers as required. Note + that this requires the host to "push" the samples above position 20000 (to + insert the 10000 new samples). 2) if the flag kVstOfflineStretch is not set: + the host replaces the samples 0-19999 with the new 20000 samples (eg. echo + Plug-In that reads samples beyond the end of the selection, to merge the tail + of the echo). +
+

+

kVstOfflineNoThread +

+

The host might either create a background thread to run the process, or run it + inside the main application thread. The Plug-In does not decide about this. + However, it can happen that a process is so short that creating a thread would + be a waste of time. In that case, the Plug-In can set this flag as a hint to + the host. 

+
+

struct VstAudioFileMarker +

+
+

double position +

+

Position of the marker +
+

+

char name[32] +

+

Name of the marker +
+

+

VstInt32 type +

+

The host might not support all types. We currently define: +
+ 0: undefined +
+ 1: generic marker +
+ 2: temporary marker (not saved with the file) +
+ 3: loop start marker +
+ 4: loop end marker +
+ 5: section start (whatever "section" might mean for the host)
+ 6: section end +
+

+

VstInt32 id +

+

This value is set by the host to identify a marker in a file. It can be any + value but 0, which is reserved to indicate a new marker (see option + kVstOfflineMarker). Not two markers can ever get the same ID for a given file. +
+

+
+

enum VstOfflineOption +

+

The functions offlineRead and offlineWrite have an argument (VstOfflineOption) + that allows to read/write different types of data. Let's see what these options + are: +
+

+

kVstOfflineAudio +

+

Use this option to read/write audio samples. See also description of + VstOfflineTask. +
+ Reading can happen randomly. This means that any time during the process, a + Plug-In is allowed to jump at any frame position and read from that point. +
+ Random reading can occur either in a read-only file or in a file currently + being written. +
+ If a Plug-In tries to read beyond the end of the file (not to be considered as + an error by the host), the buffers are completed with blank samples by the + host. See comments about readCount on that subject. +
+ Writing can happen randomly. This means that a file can be (over)written any + number of times and in any order. See kVstOfflineRandomWrite. +
+ If writing is to happen at a position beyond the end of the file, the host must + extend the file as required and fill the gap with zeroes. +
+ Delayed overwriting. When a Plug-In tries to overwrite part of an existing + source file, the host should in fact write the samples in a separate file. When + the process is finished, it's up to the host to actually replace the source + samples. This feature is required to let to the Plug-In have the possibility to + read the original samples at any time during a process.
+ One important consequence of the above feature is that any writing, whatever + the situation, always occur in a new - possibly temporary - file. This is why + all write positions that a Plug-In ever specifies, should always relate to the + origin Zero. +
+ E.g. if a Plug-In wants to overwrite samples [10000-19999], it should specify + write position in the range [0-9999]. It's up to the host to do the rest, + later, to achieve the desired effect. +
+ A Plug-In can never "overwrite" before the position given by the member + positionToProcessFrom; it is only possible to overwrite a continuous block + starting from positionToProcessFrom. If the Plug-In starts overwriting after + positionToProcessFrom, the gap if filled up with blank samples. +
+ To ease the undo/redo handling of the host (usually based on audio blocks), + there is a rule to obey when "overwriting" a source file: +
+ Only one continuous segment of a source file can be overwritten during a single + task. E.g. it is not allowed to overwrite samples 0 to 10000 then samples 50000 + to 60000, hoping that intermediary samples are preserved. If a Plug-In does so, + the result is undefined. However, if a Plug-In really needs to do so, it must + simply transfer itself the intermediary samples. 

+

kVstOfflinePeaks +

+

The Plug-In UI might need to display part or all of a file. Reading a whole file + (for display purposes) is a time consuming operation; this is why most hosts + maintain a "peak file" that stores a "summary" of the audio file. With the + kVstOfflinePeaks option, a Plug-In can benefit from this host + functionality. This option is only to be used with offlineRead, not + offlineWrite. The required parameters of VstOfflineTask are the following ones: +
+

+ + An element of the array could be represented as follows: +
+ struct { int16 y1; int16 y2; } +
+ There are two ways to interpret the data written by the host into the buffer: +
+ If the member index is set to 0 by the host, then the sound view is much + "compressed". In that case, a peak at a given position is represented by a + vertical line below and above the horizontal axis of the display. The value y1 + represents the positive coordinate, above the axis, and the y2 coordinate, the + negative value below the axis. +
+ y1 is always in the range 0 to 32767. It has to be scaled by the Plug-In, + according to its display's height. +
+ y2 is always in the range -32767 to 0. It has to be scaled by the Plug-In, + according to its display's height. If the member index is set to 1 by the host, + then the sound view is less "compressed" and should be displayed as a + continuous curve.
+ In this case, y1 is always in the range -32767 to 32767. It has to be scaled by + the Plug-In, according to its display's height. +
+ y2 is always 0 and should be ignored. +
+ Note: since the buffer that is used with this option is the buffer normally + used for audio samples, the pixel data is interleaved or not, according to the + mode kVstOfflineInterleavedAudio, as selected for that VstOfflineTask + structure. +
+ It is only possible to call this function on a source file, not on a file being + written during a process. If the host does not implement this function, + offlineRead returns false. The Plug-In could then read itself the audio + (kVstOfflineAudio option) to display the wave.
+
+

kVstOfflineParameter +

+ If the host supports this option, the Plug-In can read and write parameters + along the audio-file. A "parameter" is a float value or byte array. Each + parameter is attributed an index (e.g. if there are 3 float values and 2 + arrays, the indexes go from 0 to 4). +
+ Examples of use: parameter automation; storage of meta-information (e.g. pitch) + usable by the same plugin, later during the same process, or in another process + by another Plug-In, etc. +
+ The host is free to implement the underlying parameter storage, as it likes. + However, it is easy to understand that parameters should be stored in a sorted + vector, each one attached to a frame index. +
+ The parameters are usually maintained in RAM by the host, therefore the Plug-In + should not over-use this feature and for instance write one parameter per + sample! +
+ The host might choose to save the parameters into a project-file, or to embed + them into the audio file header, or not to save them at all (ie. all parameters + get erased when the audio file closes). +
+
+
Writing parameters with offlineWrite: +
+ processName: name of the parameter family. +
+
+ If a Plug-In X writes parameters to a file, then a Plug-In Y can retrieve the + parameters only if it provides the right family name. +
+ The name must be made unique enough, to prevent any clash. +
+ This member only needs to be set for the first parameter to record during the + process. +
+ If this first parameter belongs to a new family, the host destroys all + previously stored parameters. +
+ +
+ value
: version of the parameter family. +
+
+ Freely under the control of the Plug-In. This member only needs to be set for + the first parameter to record during the process. +
+ +
+ index
: index of parameter to write. +
+ +
+ writeCount
: 0 if writing a float parameter, else byte size of the + parameter array. +
+ +
+ extraBuffer
: buffer allocated by the Plug-In to pass the parameter. +
+
+ For writing a float, this pointer is actually a float* pointer, else this is a + pointer to the array. +
+ If this pointer is NULL, then the parameter at that position, if any, is + deleted. If this pointer is NULL and the writePosition is negative, all + parameters are erased. +
+ +
+ writePosition
: position where to write the parameter. +
+
+ Since parameters are not stored "inside" the audio samples, it does not matter + if the write position is temporarily beyond the end of the audio file.
+ For the sake of simplicity (when reading back later), it is not possible to + write more than one parameter at a given position. If this happens, the old + parameter gets erased. If this parameter is negative and extraBuffer is NULL, + all parameters get erased. +
+
+
Reading parameters with offlineRead: +
+ At the beginning, the Plug-In is usually ignorant about what parameters are + stored, and where. The first call to offlineRead is therefore a special one, as + follows: +
+ The Plug-In initializes the member extraBuffer to 0 and the member readPosition + to the position it wants to get informed about (usually, 0). When returning + from offlineRead, the host has initialized the following parameters: +
+ +
+ processName
: name of the parameter family, or nothing if no recorded + parameter. +
+
+ If the name of this parameter family is not supported by the Plug-In, the + Plug-In should not try to read the parameters. +
+ +
+ value
: version of the recorded parameter family. Might be useful for + the Plug-In. +
+ +
+ readPosition
: the frame index at which the next parameter is found + (this value was unchanged by the host if there was already a parameter there). +
+ +
+ readCount
: if the parameter is an array, this is its size (as bytes), + else the value is 0. +
+ +
+ index
: the index of the parameter, or -1 if no parameter was found. +
+
+ In order to retrieve the parameters one by one, the Plug-In can then use + offlineRead in the following way: +
+ +
+

kVstOfflineMarker +

+ With this option, the Plug-In can create one or more markers in the file, or + move existing ones. +
+ To know which markers currently exist in a given file, the Plug-In can use + offlineRead, with the following parameters: +
+ + To write new markers: +
+ + To move existing markers: +
+ + To copy markers from one file to another: +
+ If the Plug-In creates a new file out of a source file, it might be convenient + to copy the source file markers into the new file. In this case, the Plug-In + can call the offlineWrite function with the following parameters: +
+ +


+

+

kVstOfflineCursor +

+ By calling offlineRead with this option, the Plug-In retrieves the file's + edit-cursor position: +
+ + To move the edit cursor to a certain location, the Plug-In should initialize + the following members: +
+ +
+

kVstOfflineSelection +

+ By calling offlineRead with this option, the Plug-In retrieves the current + sample selection in the file: +
+ + To set a selection in the file, the Plug-In should initialize the above + members. +
+ If the host does not support the selection of individual channels, it should + ignore index and select all channels. +
+ If the host does not support sample selections, offlineWrite should return + false. +

kVstOfflineQueryFiles +

+

If the Plug-In desires to get notified about which files are available in the + host, it should call offlineRead with this option. +
+ The first parameter of offlineRead (VstOfflineTask*) should be NULL. On + receiving this call, the host should call, immedialty or later, offlineNotify, + with the start parameter set to false. In other words, the + kVstOfflineQueryFiles option is a way to force the host to call offlineNotify, + in order to get informed about open files (normally, the host only calls + offlineNotify if a change happens in the set of open files). It is important to + insist on the fact that the host is free to call kVstOfflineQueryFiles + asynchronously, ie. not immediatly when kVstOfflineQueryFiles is called. +
+ Normally, this option is only used if the Plug-In needs to be notified about + the file information, in order to update its user interface. 

+

Functions +

+
bool offlineNotify(VstAudioFile* ptr, VstInt32 numAudioFiles, bool start)
+

The host calls this Plug-In function in two cases: +
+

+ +

+ The purpose of this notification is to give the Plug-In a chance to update its + user interface according to the host environment. +
+ For example: +
+ The Plug-In might display the list of all files available for processing; this + list needs to be updated if a new file is open or closed in the host.
+ The Plug-In might display some information about the file with the focus: this + needs to change if a new file gains the focus. +
+ Etc... +
+ Tip: since the VstAudioFile structure contains + parameters that are likely to often change, such as cursor position or sample + selection, the offlineNotify function might be called often. Therefore, a good + design for a Plug-In that needs to update its user interface would be to cache + the VstAudioFile settings, so as to actually update its user interface only + when really required (eg. if the Plug-In does not care about the editcursor + position in a file. It should not update its user-interface only if the + edit-cursor position happens to move in a file). +
+
+ The host as aparameter passes an array of VstAudioFile structures. +
+ The number of elements in this array is given by the parameter numAudioFiles. +
+ numAudioFiles is 0 if there is no open file in the host, and in that case, the + parameter "ptr" is NULL. +
+ The first element of the array always represents the file with the focus. +
+ If the "start" argument is true, the Plug-In should start the process by + calling offlineStart. Else, the Plug-In might, or might not, starts a read-only + process, to update its user-interface. See offlineStart. +

+

Whatever the state of the start argument, the Plug-In should return false from + the function if it can't process the file(s) open in the host. E.g. if the + Plug-In only works with stereo files, and the file with the focus is mono, the + Plug-In should return false from this function. This allows the host, for + instance, to disable the process button of the user interface. +
+ Important: the Plug-In should not initialize anything internally at this + stage. All internal initialization and cleanup required for the process should + happen inside offlineRun, and only there. 

+
bool offlinePrepare(VstOfflineTask* offline, VstInt32 count)
+

The host calls this function so that the Plug-In complements the + VstOfflineTask structure(s). If everything is fine, the function should + return true. Important: the Plug-In should not initialize anything + internally at this stage. All internal initialization and cleanup required for + the process should happen inside offlineRun, and only + there.
+
+

+
bool offlineRun(VstOfflineTask* offline, VstInt32 count)
+

This function is called by the host once the VstOfflineTask structure(s) is(are) + ready. Within this function, the Plug-In does its audio processing and calls + offlineRead and offlineWrite at will. If + any error is detected during this procedure, the function should return false. +
+ Important: all internal initialization and cleanup required for the + process should happen inside offlineRun, and only + there. E.g. if the Plug-In should allocate some memory, this should be done + inside this function (as well as the deallocation).
+
+

+
bool offlineStart(VstAudioFile* ptr, VstInt32 numAudioFiles, VstInt32 numNewAudioFiles)
+

When the function offlineNotify is called, the + Plug-In might decide to start a process. For this purpose, the Plug-In has to + decide which file(s) to process, and also if some new file(s) should be + created. +
+ By setting the member flag of each VstAudioFile structure, + the Plug-In instructs the host about which file(s) should be processed. In many + cases, only the first VstAudioFile element (the focused file) is concerned. +
+ The parameter numAudioFiles is simply the one passed from offlineNotify. +
+ The parameter numNewAudioFiles is the number of files that the Plug-In want to + create. +
+ E.g. if the Plug-In selects one file from the VstAudioFile array and sets the + value of numNewAudioFiles to 1, the host will create two VstOfflineTask + structures. By convention, all VstOfflineTask structures corresponding to new + files are placed by the host at the end of the array passed to offlineRun (ie, + the front of the array corresponds to already existing files). +
+ It is not allowed for a Plug-In to call offlineStart if the Plug-In is not + itself called with offlineNotify. This is to ensure a synchronous protocol with + the host. If the Plug-In would call offlineStart asynchronously, maybe the + VstAudioFile structures would not be valid anymore at that time, resulting in + an undefined behaviour.
+
+

+
bool offlineRead(VstOfflineTask* offline, VstOfflineOption option, bool readSource = true)
+

This function is called by the Plug-In to read data. See enum VstOfflineOption + to see what kind of data can be read, apart audio samples.

+

About the parameter readSource:

+

As already seen, a single VstOfflineTask structure can be used both to read an + existing file, and to overwrite it. Moreover, the offline specification states + that it is possible, at any time, to read both the original samples and the new + ones (the "overwritten" samples). This is the reason for the readSource + parameter: set it to true to read the original samples and to false to read the + recently written samples.
+
+

+
bool offlineWrite(VstOfflineTask* offline, VstOfflineOption option)
+

This function is called by the Plug-In to write data. +
+ See enum VstOfflineOption to see what kind of + data can be written, apart audio samples. +
+
+
+

+ + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/vstparamstruct.html b/doc/html/vstparamstruct.html new file mode 100644 index 0000000..eb0630a --- /dev/null +++ b/doc/html/vstparamstruct.html @@ -0,0 +1,566 @@ + + +VST SDK 2.4: VST Parameters Structure + + + + +
+
+

VST Parameters Structure

Introduction

+ +

+In general, VST Plug-Ins present a flat, unsorted list of parameters to the host application, and finally to the user. +The VST Parameters Structure XML definition provides an easy way to structure parameters of existing VST Plug-Ins hierarchically, without having to recompile the Plug-In binary. +

+ +

+Windows:
+
+The host application searches for a .vstxml file next to the Plug-In DLL (e.g. if your Plug-In is in '...\Vstplugins\MyEffect.dll' the corresponding XML file must be named '...\Vstplugins\MyEffect.vstxml'). +Alternatively, the Parameter Structure XML can be embedded in the DLL as a resource (resource type VSTXML, resource identifier 1). +Please note that an external .vstxml file always overrides the embedded resource! +

+ +

+Mac OS X:
+
+The .vstxml file is in the Resources Folder of the bundle and its name is constructed from the CFBundleName. +

+ +

Example:

+ + + + + +
+
+<VSTPluginProperties>
+	<VSTParametersStructure>
+		<!-- Value Types: -->
+		<ValueType name="SwitchOnOff">
+			<Entry name="Off" value="[0, 0.5["/>
+			<Entry name="On"  value="[0.5, 1]"/>
+		</ValueType>
+	
+		<!-- Templates: -->
+		<Template name="Channel">
+			<Param name="Bypass" shortName="Byp." type="SwitchOnOff" id="offset+1"/>
+			...
+		</Template>
+	
+		<!-- Global: -->
+		<Param name="Volume" shortName="Vol." label="dB" id="0"/>
+	
+		<Group name="Channel 1" template="Channel" values="offset=10"/>
+		<Group name="Channel 2" template="Channel" values="offset=20"/>
+		...
+	</VSTParametersStructure>
+</VSTPluginProperties>
+
+ +

+The following tags are used to describe a parameter structure: +

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VSTPluginPropertiesoptional root tag
VSTParametersStructureparameters structure tag
Paramdescribes a single parameter with name, label, id etc.
Groupencloses a group of parameters, can be nested
Templatedefines a parameter group, can be "instanciated" multiple times
ValueTypedefinition of an internal value type, contains a list of Entry tags
Entrydescribes a single state of a ValueType
+

+ +

Advanced topics:

+ + + + +
+ +

XML Definitions Reference

+ + +

Param

+ + + + + +
+
+ <Param id="..." name="..." + label="..." shortName="..." type="..." numberOfStates="..." defaultValue="..."/> +
+
+ +

+Describes a Plug-In parameter. +

+ +

Attributes:

+ +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ id + + corresponds to zero-based index in flat parameter list.
+ can either be an integer constant (e.g. "100") or an expression which evaluates + to an integer (e.g. "offset + 1"). + See Relative Parameter Addressing for details. +
+ name + + parameter name visible to the user (e.g. "Volume"). +
+ label + + parameter label visible in generic editor or on remote control (e.g. "dB") +
+ shortName + + short parameter name, displayed on remote controls.
+ can be a list of several names of different lengths, separated by colons + (e.g. "OSC Frequ., OSCFrq., Frq"). The host application selects best fitting string + for current remote displays. +
+ type + + user defined (see ValueType) + or predefined value type. Default type is a linear fader between 0.0 and 1.0
+
+ Predefined types:
+ - switch : parameter toggles between 0 and 1 +
+ numberOfStates + + defines how many states this parameter can have:
+
+ + state N = [N / numberOfStates, (N + 1) / numberOfStates[
+ state N = (long)(value * numberOfStates) +
+
+ defaultValue + + default value normalized between [0.0, 1.0] +
+

+ +

Remarks:

+ +

+Most VST Plug-Ins already provide parameter attributes like name, label, etc. and support string conversion. +The XML description always overwrites Plug-In -provided attributes! +Everything not described in XML is taken from the Plug-In at runtime. +

+ +
+ + +

Group

+ + + + + +
+
+ <Group name="..." template="..." values="..."/> +
+
+ +

+Groups are used to create hierarchical parameter structures. A <Group> either contains <Param> tags directly, +or is defined by a Template. +

+ +

Attributes:

+ +

+ + + + + + + + + + + + + +
+ name + + group name visible to the user (e.g. "Channel 1", "LFO Section",...) +
+ template + + Name of template defining this group (optional). +
+ values + + List of arguments passed to the template + (see Relative Parameter Addressing for details).
+
+ Each arguments consists of a name and an integer value (e.g. "offset=100"). + Multiple arguments are separated by semicolons, whitespaces are ignored + (e.g. "offset1=100; offset2=100"). +
+

+ +
+ + +

Template

+ + + + + +
+
+ <Template name="..."/> +
+
+ +

+Assume a Plug-In with 16 channels, each consisting of an identical set of parameters. You only have to +describe a channel once as a template and create 16 "instances" using the <Group> tag. +If each channel contains let's say 20 parameters, which appear continuously in the flat parameter list, +they can be addressed using an offset value instead of absolute indices +(see Relative Parameter Addressing for details). +

+ +

Attributes:

+ +

+ + + + + +
+ name + + internal template name, referred to by groups. +
+

+ +
+ + +

ValueType

+ + + + + +
+
+ <ValueType name="..." label="..."/> +
+
+ +

+Defines an internal value type by a list of <Entry> tags. +

+ +

Attributes:

+ +

+ + + + + + + + + +
+ name + + internal value type name, referred to by parameters. +
+ label + + value label (e.g. "dB") +
+

+ +

Remarks:

+ +

+The label attribute is used as parameter label if the label field of a <Param> +tag using this value type is empty. +

+ +
+ + +

Entry

+ + + + + +
+
+ <Entry name="..." value="..."/> +
+
+ +

+Each entry in a <ValueType> list provides a string representation for +a certain parameter state. A simple example would be a toggle parameter with two +states named "On" and "Off". The string "Off" should be displayed if the normalized parameter value is between +0.0 and 0.5 (exclusively), and "On" if it is >= 0.5 and <= 1.0. +

+ +

Attributes:

+ +

+ + + + + + + + + +
+ name + + name of parameter state, displayed to the user (e.g. "On", "Off", "Sine", "Square",...) +
+ value + + optional: describes the parameter range this state corresponds to, + using the mathematical range definition [a, b].
+
+ Exclusive range:
+     e.g. "[0.0,0.5[" -> if value >= 0.0 and < 0.5
+
+ Inclusive range:
+     e.g. "[0.5,1.0]" -> if value >= 0.5 and <= 1.0 +
+

+ +

Remarks:

+ +

+The value range is optional. If not specified, the limits of a state are calculated based on the total number of entries +in the value type:
+
+a = index / total
+b = (index + 1) / total;
+

+ +
+ + +

Relative Parameter Addressing

+ +

+Relative parameter addressing is used to describe parameter IDs inside templates. +Instead of assigning a parameter index directly, an expression - mostly consisting of a "base address" variable and +a constant offset value - can be used. The variable is passed to the template each time it is "instanciated" as a +group. +

+ +

Example:

+ +

+ + + + + +
+
Parameter list:
+ +
+...
+
+11: Volume CH1
+...
+
+21: Volume CH2
+...
+
+31: Volume CH3
+...
+		
+
+
XML code:

+ + + + + +
+
+<Template name="Channel">
+	<Param name="Volume" id="offset+1"/>
+</Template>
+
+<Group name="CH 1" template="Channel" values="offset=10"/>
+<Group name="CH 2" template="Channel" values="offset=20"/>
+<Group name="CH 3" template="Channel" values="offset=30"/>
+
+
+ + +
+

+ +
+ + +

Example

+ + + + + +
+
+<!-- =========================================================== -->
+<!-- XML definition of VST parameters for Dynamics Plug-In====== -->
+<!-- Draft 0.1================================================== -->
+<!-- Date: 14.11.2005=========================================== -->
+<!-- =========================================================== -->
+
+<VSTPluginProperties>
+	
+	<VSTParametersStructure>
+		<!--  Create Global Params================================== -->
+		<Param name="Routing" shortName="Rout"                id="13"/>
+
+		<!--  Create AutoGate Group================================= --> 
+		<Group name="AutoGate">
+			<Param name="On"                 type="switch"       id="0"/>
+			<Param name="Thresh"   shortName="ThrHo" label="dB"  id="3"/>
+			<Param name="Attack"   shortName="Att"   label="ms"  id="4"/>
+			<Param name="Hold"                       label="ms"  id="5"/>
+			<Param name="Release"  shortName="Rel"   label="ms"  id="6"/>
+			<Param name="Auto"                                   id="7"/>
+			<Param name="Mode"                                   id="9"/>
+			<Param name="Calib"                                  id="10"/>
+			<Param name="LowFreq"  shortName="LoFrq" label="Hz"  id="11"/>
+			<Param name="HighFreq" shortName="HiFrq" label="Hz"  id="12"/>
+		</Group>
+
+		<!--  Create Compressor Group======================================= --> 
+		<Group name="Compressor">
+			<Param name="On"           type="switch"           id="1"/>
+			<Param name="Thresh"  shortName="ThrHo" label="dB" id="14"/>
+			<Param name="Ratio"                                id="15"/>
+			<Param name="Attack"  shortName="Att"  label="ms"  id="16"/>
+			<Param name="Release" shortName="Rel"  label="ms"  id="17"/>
+			<Param name="MakeUp"  shortName="MkUp" label="dB"  id="18"/>
+			<Param name="Auto"                                 id="19"/>
+			<Param name="RMS"                                  id="20"/>
+		</Group>
+
+		<!--  Create Limiter Group======================================= --> 
+		<Group name="Limiter">
+			<Param name="On"                type="switch"       id="2"/>
+			<Param name="Thresh"  shortName="ThrHo"  label="dB" id="21"/>
+			<Param name="Release" shortName="Rel"    label="ms" id="22"/>
+			<Param name="Auto"                                  id="23"/>
+		</Group>
+
+	</VSTParametersStructure>
+</VSTPluginProperties>
+
+
+
+ + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/vstpluglogo.jpg b/doc/html/vstpluglogo.jpg new file mode 100644 index 0000000..b4a2464 Binary files /dev/null and b/doc/html/vstpluglogo.jpg differ diff --git a/doc/html/vstplugmain_8cpp.html b/doc/html/vstplugmain_8cpp.html new file mode 100644 index 0000000..36fbf3f --- /dev/null +++ b/doc/html/vstplugmain_8cpp.html @@ -0,0 +1,111 @@ + + +VST SDK 2.4: vstplugmain.cpp File Reference + + + + +
+
+
+
+ +

vstplugmain.cpp File Reference

#include "audioeffect.h"
+ + + + + + + + + + +

Defines

#define VST_EXPORT

Functions

AudioEffectcreateEffectInstance (audioMasterCallback audioMaster)
VST_EXPORT AEffectVSTPluginMain (audioMasterCallback audioMaster)
+

Define Documentation

+ +
+
+ + + + +
#define VST_EXPORT
+
+
+ +

+ +

+

+


Function Documentation

+ +
+
+ + + + + + + + + +
AudioEffect* createEffectInstance (audioMasterCallback  audioMaster  ) 
+
+
+ +

+Must be implemented externally. +

+

+ +

+
+ + + + + + + + + +
VST_EXPORT AEffect* VSTPluginMain (audioMasterCallback  audioMaster  ) 
+
+
+ +

+Prototype of the export function main +

+

+ + + + Empty + + + + + + +
+


+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/html/whatsnew.html b/doc/html/whatsnew.html new file mode 100644 index 0000000..2f15cad --- /dev/null +++ b/doc/html/whatsnew.html @@ -0,0 +1,88 @@ + + +VST SDK 2.4: What's new in VST 2.4 + + + + +
+
+

What's new in VST 2.4

+64 Bit Platform Compatibility

+With VST SDK 2.4 you can compile native VST Plug-Ins for 64 Bit Platforms (e.g. Windows XP x64 Edition). The formerly used 'long' data type has been replaced by VstInt32 and VstIntPtr: +
+

+Double Precision Processing

+A new process function has been added to support 64 bit (double precision) floating-point audio samples. Please note that this function is optional, whereas the processReplacing function for 32 bit (single precision) floating-point samples is mandatory!
See also:
AudioEffect::canDoubleReplacing
+ AudioEffect::processDoubleReplacing
+ AudioEffectX::setProcessPrecision
+
+

+MIDI Events

+New enum VstMidiEventFlags for VstMidiEvent::flags with value kVstMidiEventIsRealtime which indicates that an event is played live, not from a sequencer track. This allows the Plug-In to handle these flagged events with higher priority, especially when the Plug-In has a high latency (AEffect::initialDelay).
+
+ Two new methods (getNumMidiInputChannels and getNumMidiOutputChannels) allow the Plug-In to inform the host how many MIDI channels are actually used for input and/or output. In this case the host doesnt need to display all 16 MIDI channels to the user, if the Plug-In uses less than 16.
See also:
AudioEffectX::getNumMidiInputChannels
+ AudioEffectX::getNumMidiOutputChannels
+
+

+VST Parameters Structure

+The VST Parameters Structure XML definition provides an easy way to structure parameters of existing VST Plug-Ins hierarchically, without having to recompile the Plug-In binary. The VST SDK package contains a tool to test, extract and embed VSTXML resources.

+

See also:
VST Parameters Structure
+
+

+Macintosh Editor Changes

+All Plug-Ins built with this SDK must support composited windows on OSX.

+

See also:
Macintosh Editor as HIViewRef
+
+

+Deprecated Features

+The VST Protocol is a historically grown technology. In Version 2.4 the API has undergone a general cleanup. Some rarely (or not at all) used features and inconsistent or redundant parts of the protocol have been declared as deprecated. Deprecated opcodes and data structures are still available in the SDK headers, but their names are modified if the VST_FORCE_DEPRECATED compile switch is active (1 by default) - this might cause errors when compiling existing code.

+What does it mean? Exisiting (already released) Hosts and Plug-Ins of course remain uninfluenced. If you create a new Plug with VST SDK 2.4 it should work in any existing host as well. However, there are some details that might cause compatibility problems:

+

+To support VST Plug-Ins <= 2.4 in new Host Applications, you'll have to implement workarounds. In the long run, deprecated features shouldn't be used anymore. Future versions of VST SDK will not contain them at all.

+

See also:
Deprecated List
+
+

+Other Changes

+You might have already noticed some more minor changes in VST SDK 2.4: + + + + Empty + + + + + + +
+
+
+Copyright ©2006 Steinberg Media Technologies. +All Rights Reserved. +
+ + + diff --git a/doc/sdk.menu.html b/doc/sdk.menu.html new file mode 100644 index 0000000..2815754 --- /dev/null +++ b/doc/sdk.menu.html @@ -0,0 +1,38 @@ + + + + Steinberg VST SDK 2.4 :: Menu + + + + + + + + + + + + + + + + + +
+ SDK Overview + +   + + VST SDK Documentation + +   + + VSTGUI Documentation +
+ + + + \ No newline at end of file diff --git a/doc/sdk.overview.html b/doc/sdk.overview.html new file mode 100644 index 0000000..e8a6721 --- /dev/null +++ b/doc/sdk.overview.html @@ -0,0 +1,301 @@ + + + + Steinberg VST SDK 2.4 :: Overview + + + + + + + + + + + + +
+ + + Steinberg VST SDK 2.4 Overview +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ artwork + +   + + VST Logo Artwork +
+ bin + +   + + SDK Binaries +
+        win + +   + + Tools for Windows platform +
+        mac + +   + + Tools for MacOS X platform +
+ doc + +   + + VST SDK Documentation and Licensing Agreement +
+ pluginterfaces + +   + + Interface Files +
+        vst2.x + +   + + VST 2.x Interfaces +
+ public.sdk + +   + + SDK Source Files +
+        samples + +   + +   +
+              vst2.x + +   + + VST 2.x Plug-in and Host samples +
+                 win + +   + + Windows platform samples (Win32 and x64, requires Visual C++ 2005) +
+                 win.vc2003 + +   + + Legacy Windows platform samples (Win32 only, requires Visual C++ 2003) +
+                 win.vc6 + +   + + Legacy Windows platform samples (Win32 only, requires Visual C++ 6.0) +
+                 mac + +   + + MacOS X platform samples (PPC and MacIntel architecture, requires XCode 2.2) +
+        source + +   + +   +
+              vst2.x + +   + + VST 2.x Base Classes +
+ vstgui.sf + +   + + VSTGUI Library +
+        drawtest + +   + +   +
+                 win + +   + + Visual C++ 2005 project file (Win32 and x64) +
+                 win.vc6 + +   + + Visual C++ 6.0 project file (Win32 only) +
+                 mac + +   + + XCode 2.2 project file (PPC and MacIntel) +
+        vstgui + +   + + VSTGUI source code (stable 3.0 branch from Sourceforge.net) +
+                 Documentation + +   + + VSTGUI Documentation +
+ +
+ +
+ +
+
+
+Copyright ©2006 Steinberg Media Technologies GmbH. +All Rights Reserved. +
+
+ + + + + \ No newline at end of file diff --git a/doc/sdkdoc.css b/doc/sdkdoc.css new file mode 100644 index 0000000..4d616a9 --- /dev/null +++ b/doc/sdkdoc.css @@ -0,0 +1,130 @@ +*------------------------------------------------------------------------ + Created: Maik Oppermann, 1.3.2000 + Modified: Matthias Juwan, 07/2002 +/*------------------------------------------------------------------------*/ + +body +{ + background: white; color:black; + font-family:Tahoma; font-size:8pt; font-weight:normal; +} + +p { margin-left:8pt; } + +div, p /* netscape ignores body font settings */ +{ + font-family:Tahoma; font-size:8pt; font-weight:normal; +} + +td { font-size:8pt; font-family:Tahoma; font-weight:normal; } +th { font-size:8pt; font-family:Tahoma; text-weight:bold; text-align:left; color:black; background:lightgrey; } + +a:link { color:darkblue; font-weight:normal; } +a:visited { color:darkblue; font-weight:normal; } +a:active { color:blue; font-weight:normal; } + +.subgroup +{ + margin-top:5pt; margin-bottom: 5pt; + margin-left:5pt; +} + +/*------------------------------------------------------------------------*/ +/* "framework" header box */ +/*------------------------------------------------------------------------*/ + +.framehead +{ + margin-left:0pt; /* for netscape */ + padding:2px; + background: darkblue; color:white; + border-color: darkblue; border-style:solid; border-width:0.1px; + font-family:Arial,"sans-serif"; font-size:12pt; font-weight:bold; font-style:italic; +} + +/* even links are white in the header */ + +.framehead a:link { color:white; text-decoration:none; } +.framehead a:visited { color:white; text-decoration:none; } +.framehead a:active { color:white; text-decoration:none; } + + +/*------------------------------------------------------------------------*/ +h1 +{ + font-size:16.5pt; font-weight:bold; +} + +h2 +{ + margin-top:5pt; margin-bottom: 10pt; + margin-left:5pt; + font-size:12.5pt; font-weight:bold; +} + +h3 /* class name heading */ +{ + margin-top:5pt; margin-bottom: 10pt; + margin-left:5pt; + color: darkblue; + font-size:12.5pt; font-weight:bold; +} + +h4 /* heading with colored background (Inheritance, Description, ...) */ +{ + margin-top:5pt; margin-bottom: 10pt; + margin-left:5pt; + border-color:lightblue; border-style:solid; border-width:0px; + /*background: lightsteelblue; color:black;*/ + font-size:10pt; font-weight:bold; +} + +.include /* include file name */ +{ + background:lightgrey; + color:black; + border-color:black; border-style:solid; border-width:1px; + padding:4pt; + margin-left:10pt; + margin-right:10pt; + white-space:pre; +} + +/*------------------------------------------------------------------------*/ +/* a span tag inside a method can be used to format method names */ +/*------------------------------------------------------------------------*/ +div.methods span +{ + /*font-style:italic;*/ + color: darkblue; +} + +/*------------------------------------------------------------------------*/ +/* box for c++ (or other) source code */ +/*------------------------------------------------------------------------*/ +.cpp +{ + background:lightyellow; + color:black; + border-color:black; border-style:solid; border-width:1px; + padding:4pt; + margin-left:10pt; + margin-right:10pt; + font-family:"Courier New",monospace; font-size:8pt; + white-space:pre; +} + + +/*------------------------------------------------------------------------*/ +/* menu frame */ +/*------------------------------------------------------------------------*/ + +body.menu +{ + background: white; color:black; + font-family:Arial,"sans-serif"; font-size:11pt; font-weight:normal; +} + +.menu a:link { font-weight:normal; } +.menu a:visited { font-weight:normal; } +.menu a:active { font-weight:normal; } -- cgit v1.2.3-70-g09d2