1 {\rtf1\ansi\ansicpg1252\cocoartf1265\cocoasubrtf210
2 \cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;\f1\fmodern\fcharset0 Courier-BoldOblique;\f2\fmodern\fcharset0 Courier;
3 \f3\fmodern\fcharset0 Courier-Bold;}
4 {\colortbl;\red255\green255\blue255;\red0\green81\blue14;}
5 {\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid1\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid1}
6 {\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid101\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid2}
7 {\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid201\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid3}
8 {\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid301\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid4}
9 {\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid401\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid5}
10 {\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid501\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid6}
11 {\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid601\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid7}
12 {\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid701\'01\uc0\u8226 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid8}
13 {\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{hyphen\}}{\leveltext\leveltemplateid801\'01\uc0\u8259 ;}{\levelnumbers;}\fi-360\li720\lin720 }{\listname ;}\listid9}}
14 {\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}}
15 \paperw11900\paperh16840\vieww25380\viewh19600\viewkind0
17 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
19 \f0\b\fs38 \cf0 WDL-OL IPlug Examples Instructions
21 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
23 \b0 \cf0 www.olilarkin.co.uk\
24 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720\pardirnatural
26 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720\pardirnatural
28 \b\fs28 \cf0 Introduction
30 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
32 This folder contains example/template projects to demonstrate how to use different features of my modified IPlug and WDL. They also serve as a testbed to make sure that the various aspects are working. Each folder contains scripts which automate the build process and package everything along with a pdf manual in an installer. The scripts also code sign binaries/installers and set icons where required.\
34 Projects are provided for Visual Studio 2013 and Xcode 6. You cannot downgrade the VS2013 projects to work with older versions. There are also codeblocks projects for building VST2 plugins on windows but these are not maintained and will probably require some edits in order to compile. \
36 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
41 Some of these are optional, but without them the build-scripts will need to be edited, otherwise you'll get errors.\
46 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
48 \b0 \cf0 {\listtext \'95 }Msysgit {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/msysgit/"}}{\fldrslt http://code.google.com/p/msysgit/}}
50 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
52 \b0 \cf0 {\listtext \'95 }VS2013 Express C++ & Windows SDK 7.1 or VS2013 Professional\
53 {\listtext \'95 }Python 2.x {\field{\*\fldinst{HYPERLINK "http://www.python.org/"}}{\fldrslt http://www.python.org/}}\
54 {\listtext \'95 }Innosetup {\field{\*\fldinst{HYPERLINK "http://www.jrsoftware.org/isinfo.php"}}{\fldrslt http://www.jrsoftware.org/isinfo.php}}\
55 {\listtext \'95 }7zip {\field{\*\fldinst{HYPERLINK "http://www.7-zip.org/"}}{\fldrslt http://www.7-zip.org/}} (if you want to zip instead of make an installer)\
56 {\listtext \'95 }Pace tools and certificate for code signing AAX binaries\
57 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
62 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
64 \b0 \cf0 {\listtext \'95 }Git-osx {\field{\*\fldinst{HYPERLINK "http://code.google.com/p/git-osx-installer/"}}{\fldrslt http://code.google.com/p/git-osx-installer/}}
66 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
68 \b0 \cf0 {\listtext \'95 }Xcode 6.x installed, including command-line tools (may also work on xcode3/4/5 but not tested)\
69 {\listtext \'95 }Coreaudio SDK (now called the \'93Core Audio Utility Classes\'94) {\field{\*\fldinst{HYPERLINK "https://developer.apple.com/library/mac/samplecode/CoreAudioUtilityClasses/History/History.html#//apple_ref/doc/uid/DTS40012328-RevisionHistory-DontLinkElementID_1"}}{\fldrslt https://developer.apple.com/library/mac/samplecode/CoreAudioUtilityClasses/History/History.html#//apple_ref/doc/uid/DTS40012328-RevisionHistory-DontLinkElementID_1}}\
70 {\listtext \'95 }If using Xcode6, you may want to install the MacOSX10.5.sdk or MacOSX10.6.sdk in \cf2 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/ {\field{\*\fldinst{HYPERLINK "https://github.com/phracker/MacOSX-SDKs"}}{\fldrslt \cf0 https://github.com/phracker/MacOSX-SDKs}}\cf0 \
71 {\listtext \'95 }Packages for building OSX installers {\field{\*\fldinst{HYPERLINK "http://s.sudre.free.fr/Software/Packages/about.html"}}{\fldrslt http://s.sudre.free.fr/Software/Packages/about.html}}\
72 {\listtext \'95 }setfileicon utility {\field{\*\fldinst{HYPERLINK "http://maxao.free.fr/telechargements/setfileicon.gz"}}{\fldrslt http://maxao.free.fr/telechargements/setfileicon.gz}}\
73 {\listtext \'95 }Mac Developer ID Certificates for code signing installers for 10.8>\
74 {\listtext \'95 }Mac 3rd Party App Dev Certificates for code signing binaries and installers for the Mac App Store\
75 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
76 \ls6\ilvl0\cf0 {\listtext \'95 }Pace tools and certificate for code signing AAX binaries\
77 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
79 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720\pardirnatural
81 \b\fs28 \cf0 About the examples:\
82 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\pardirnatural
85 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720\pardirnatural
87 \b0 \cf0 {\listtext \'95 }IPlugChunks - shows how to use chunks in a plugin. Chunks allow you to store arbitrary data in the plugin's state as apposed to just a value for each parameter.\
88 {\listtext \'95 }IPlugControls - demos the various IControl classes (example by Captain Caveman)\
89 {\listtext \'95 }IPlugConvoEngine - demos WDL_ConvolutionEngine() - Cockos' fast convolution engine (example by Tale)\
90 {\listtext \'95 }IPlugDistortion - demos Tale's bessel filter implementation for realtime oversampling (example by Tale)\
91 {\listtext \'95 }IPlugEEL - demonstrates using Cockos' EEL library for run-time expression evaluation \
92 {\listtext \'95 }IPlugEffect - The most basic IPlug plugin, a gain control similar to AGain in the VST2 SDK, however it has a GUI\
93 {\listtext \'95 }IPlugGUIResize - has three buttons to choose different gui sizes at runtime\
94 {\listtext \'95 }IPlugHostDetect - displays the host name and version (not very reliable at the moment)\
95 {\listtext \'95 }IPlugMonoSynth - a basic monophonic IPlug synth, showing how to handle MIDI messages sample accurately. Also shows how to use Tale's IKeyboardControl.\
96 {\listtext \'95 }IPlugMouseTest - demonstrates an XY pad IControl which is linked to two plugin parameters\
97 {\listtext \'95 }IPlugMultiChannel - demos a multi-channel IPlug plugin, and how to test if channels are connected\
98 {\listtext \'95 }IPlugMultiTargets - a midi effect plugin that also demos compilation to IOS, getting tempo info, and pop up menus\
99 {\listtext \'95 }IPlugOpenGL - using OpenGL in IPlug\
100 {\listtext \'95 }IPlugPlush - shows how to use Cockos' Plush to do basic 3D Graphics\
101 {\listtext \'95 }IPlugPolySynth - a basic polyphonic IPlug synth\
102 {\listtext \'95 }IPlugResampler - demonstrates using WDL_Resampler\
103 {\listtext \'95 }IPlugSideChain - a plugin that shows how to setup a sidechain input, for VST3, AU and RTAS\
104 {\listtext \'95 }IPlugText - demos different ways to draw text\
105 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
107 The IPlugEffect project is the main starting project I use. If you are not interested in AAX, RTAS etc, I suggest you duplicate this and manually remove those targets to give you a new clean starting template with just your preferred formats in it.\
109 Rather than changing settings for individual targets/projects inside the Xcode Project/Visual Studio solutions, most customisations can be done in the xcconfig and property sheets.\
111 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
116 If you wish to use Xcode6 (RECOMMENDED) (Xcode3 won't fully work on 10.7+), you will need to change the COMPILER and BASE_SDK build settings in
118 \b0 . Don't let Xcode "validate project settings", which can cause problems.\
121 \i COMPILER = com.apple.compilers.llvm.clang.1_0\
122 BASE_SDK = macosx10.5 (or 10.6)
125 If you want to compile RTAS, it is also necessary to update the PluginLibrary Xcode projects to use these compilers and sdks. RTAS probably won't compile against the 10.7+ SDK\
127 Apple have changed the default location of the CoreAudio SDK on Xcode4+. Download CoreAudioUtilityClasses.zip {\field{\*\fldinst{HYPERLINK "https://developer.apple.com/library/mac/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html"}}{\fldrslt https://developer.apple.com/library/mac/samplecode/CoreAudioUtilityClasses/Introduction/Intro.html}} and extract to the CA_SDK folder. Set CA_SDK in common.xcconfig to match\
129 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720\pardirnatural
131 \b\fs28 \cf0 About the supported formats:
133 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
135 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
140 You need to two files from the Steinberg VST2.4 SDK to the folder VST_SDK, see VST_SDK/readme.txt\
142 - On OSX by default I build to the system VST2 folder
143 \b /Library/Audio/Plug-Ins/VST/
144 \b0 - You will need to have write permissions to this folder. If you want to build to the user VST2 folder, you'll need to edit the
146 \b0 file and also modify the installer scripts\
150 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
153 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
154 \cf0 Extract the Steinberg VST3.6.0 SDK to the folder
156 \b0 but get ready to revert two of the files using git... \
158 - WDL-OL has slightly customised xcode and VS2010 projects for the VST3 base library. Make sure you didn't overwrite them when you extracted the VST3 SDK or if you did just revert the changes in git.\
161 \i VST3_SDK\\base\\mac\\base.xcodeproj/*
164 \i VST3_SDK\\base\\win\\base_vc10.vcxproj\
167 - On windows, make sure you have a folder
168 \b C:\\Program Files\\Common Files\\VST3
170 \i0 otherwise the copy files build stage will cause the build to fail\
172 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
173 \cf0 - On OSX by default I build to the system VST3 folder
174 \b /Library/Audio/Plug-Ins/VST3/
175 \b0 - You will need to have write permissions to this folder. If you want to build to the user VST3 folder, you'll need to edit the
177 \b0 file and also modify the installer scripts\
178 \pard\tx220\tx720\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720\li720\fi-720
183 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
185 - Sign up to be a registered avid plugin developer. Once you have access to it, Extract
186 \b PT_90_PlugInSDK.zip
190 \b config_SDK_for_Mac.command
191 \b0 to develop on mac. \
193 - On windows, the debug builds of the RTAS plugin link against the release versions of the Digidesign PluginLib and define
195 \b0 . Without this the binaries won't be accepted by ProTools. The Digidesign examples have the same problem.\
197 - Don't be tempted to change any optimisation settings in the AVID/Digidesign
199 \b0 . If you enable optimisation, the plugin will crash - this is how it is in the release builds of the PTSDK examples too.\
201 - On windows, make sure you have a folder
202 \b C:\\Program Files\\Digidesign\\ProTools_3PDev\\dae\\Plug-Ins
203 \b0 , otherwise the copy files build stage will cause the build to fail. On a 64bit operating system, that should be
204 \b C:\\Program Files (x86)\\Digidesign\\ProTools_3PDev\\dae\\Plug-Ins\
207 \b0 - On OSX you will probably need to update the AVID/Digidesign xcconfig files and modify the
209 \b0 variable to macosx10.5, since it is set to 10.4u by default\
211 - On OSX, any C source code that you include (i.e. file extension is .c) can cause errors due to the RTAS precompiled header file getting compiled as C rather than C++. You can avoid this problem by renaming you .c file to .cpp or including it in a static library, or making a mycsourcecode.cpp file that has #include "mycsourcecode.c"\
213 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
217 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
225 - If you want to compile against the 10.5 SDK on OSX (see
227 \b0 ) , you must change the
230 \b AAX_Library.xcodeproj
234 \b ExamplePlugIns/Common/Mac/CommonDebugSettings.xcconfig
236 \b ExamplePlugIns/Common/Mac/CommonReleaseSettings.xcconfig
239 GCC_VERSION = com.apple.compilers.gcc.4_2\
240 SDKROOT = macosx10.5\
241 MACOSX_DEPLOYMENT_TARGET = 10.5\
244 - In order to compile AAX binaries that run in the release build of ProTools, you will need to code-sign those binaries (see Avid docs)\
246 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
251 - When building AUs, bear in mind that some hosts keep a cache... see debugging notes below.\
252 - there is a special shell script
253 \b validate_audiounit.command
254 \b0 that will run the
256 \b0 command line app with the correct IDs for your plugin (see below) and can also set up the leaks test, which is useful for debugging. Type
258 \b0 or see {\field{\*\fldinst{HYPERLINK "http://developer.apple.com/library/mac/#technotes/tn2204/_index.html"}}{\fldrslt here }}for info.\
259 - By default I build to the system audiounits folder
260 \b /Library/Audio/Plug-Ins/Components/
261 \b0 - You will need to have write permissions to this folder. If you want to build to the user audiounits folder, you'll need to edit the .xcconfig file and also modify the installer scripts\
267 - Audio and Midi is provided via RTAudio and RTMidi by Gary Scavone. To build on windows you need to extract some files into
270 \b ASIO_SDK/readme.txt
277 - Make sure you have Xcode 3.2.6 and iOS SDK 4.3 or Xcode 4.x and iOS SDK 4.3, from apple. In order to actually put an app on a device, you need to sign up and pay for an IOS developer membership.\
278 - NOTE: IPlug on IOS doesn't use IGraphics or IControl etc\'85 you have to implement a new GUI using apple's UIKit, an example is provided which illustrates how to communicate with the normal IPlug code. If you're project is for multiple targets, you need to
280 \b0 around any code that uses IPlug's graphics facilities.\
281 - Please note that IOS support is not heavily tested\
286 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
288 \b0 \cf0 The template projects use static linking with the MSVC2013 runtime libraries (/MT). If you change that you may need to provide the MSVC redistributable in your installer, google for "Microsoft Visual C++ 2013 Redistributable Package"\
290 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
295 For OSX 10.8 GateKeeper you will need to code-sign your installer and the .app with a valid signature obtained from Apple (maybe eventually also the plugin binaries). For the app store you need to add entitlements in order to comply with the sandbox regulations. These things are done by the makedist-* build scripts.\
297 If compiling against the 10.7 SDK or higher carbon GUIs will be inefficient due to unnecessary redraws\
299 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
301 \b\fs28 \cf0 Duplicating Projects\
302 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
305 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
307 \b0 \cf0 The IPlugExamples folder contains a python script to duplicate an IPlug project. This allows you to very quickly create a new project based on one of the examples. It does a multiple file find and replace to substitute the new name of the project for the old name, and also to change the manufacturer name. Once you have done this you only need to change two more things by hand in resource.h to make your plugin unique.\
309 You can duplicate a project as follows with the following commands in the OSX terminal or on the windows command prompt. In this example i will copy the IPlugEffect project to a new project called MyNewPlugin\'85\
311 - open terminal or cmd.exe and navigate to the IPlugExamples folder\
313 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
315 \f1\i\b \cf0 duplicate.py [inputprojectname] [outputprojectname] [manufacturername]\
316 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
320 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
323 \f1\i\b duplicate.py IPlugEffect MyNewPlugin OliLarkin\
324 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
328 \f1\i\b ./duplicate.py
332 \f3\b MyNewPlugin/resource.h
340 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
342 \b\fs28 \cf0 Debugging Setups\
343 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\pardeftab720
347 \b0 .xcscheme files are set up to use some common hosts for debugging the various formats in Xcode.
350 \pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardeftab720
352 \b0\fs24 \cf0 To debug an Audiounit using auval, remember to change the auval executable arguments to match plugin's type and IDs:
353 \b aufx/aumf/aumu PLUG_UNIQUE_ID PLUG_MFR_ID
356 AU hosts cache information about the plugin I/O channels etc, so I have added a build script that deletes the caches after a build. If this becomes annoying (it will cause Logic to rescan plugins) you can disable it.\
359 \b validate_audiounit.command
360 \b0 shell script which will is a helper that runs auval with your plugins' unique IDs, and optionally performs the leaks test.\
362 The windows debug setups use {\field{\*\fldinst{HYPERLINK "http://www.hermannseib.com/english/savihost.htm"}}{\fldrslt SAVIHost}} for VST2 debugging, and VST3PluginTestHost for VST3 debugging (in Steinberg VST3.5 SDK)\
364 You should install VSTHost to
365 \b C:\\Program Files\\VSTHost\\vsthost.exe
366 \b0 (on x64 you should install the 64bit version here)\
368 To debug RTAS you need to install the PT Dev build. By default my debugging setup expects it to be installed in
369 \b /Applications/Avid/ProTools_3PDev
371 \b %ProgramFiles%\\ Avid\\ProTools_3PDev
376 \b\fs28 Installers & one-click build scripts\
380 \b0 The example projects contain shell scripts for both Windows (
383 \b makedist-mac.command
384 \b0 ) that build everything, code-sign (where relevant) and package the products in an installer including license, readme.txt, changelog.txt and manual. On Windows the installer program "Innosetup" is used, on OSX "Packages". A python script
386 \b0 is called to look at
388 \b0 and get the version from the
390 \b0 . It then updates the
392 \b0 files and installer scripts with the version number (in the format major.minor.bugfix). If you aren't building some components, e.g. RTAS, the build scripts may need to be modified. Please alter the license and readme text and remove my name from them if you release a plugin publicly. On OSX the script can also code-sign the standalone app and builds a .pkg for the appstore (commented out).