aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johnson <jinx6568@sover.net>2018-12-30 16:59:53 -0500
committerChris Johnson <jinx6568@sover.net>2018-12-30 16:59:53 -0500
commitb908c9f07f4e26875c5b7bb99b2bb6d829b17d9a (patch)
treefe33ba7e7a63d3f0661b6f96e8efe7fb597562c4
parent35ee7938c7c86758d0b5e6413679db9bb7b90ab2 (diff)
downloadairwindows-lv2-port-b908c9f07f4e26875c5b7bb99b2bb6d829b17d9a.tar.gz
airwindows-lv2-port-b908c9f07f4e26875c5b7bb99b2bb6d829b17d9a.tar.bz2
airwindows-lv2-port-b908c9f07f4e26875c5b7bb99b2bb6d829b17d9a.zip
Crystal
-rwxr-xr-xplugins/LinuxVST/CMakeLists.txt1
-rwxr-xr-xplugins/LinuxVST/src/Crystal/Crystal.cpp146
-rwxr-xr-xplugins/LinuxVST/src/Crystal/Crystal.h74
-rwxr-xr-xplugins/LinuxVST/src/Crystal/CrystalProc.cpp434
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.cpp324
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.exp1
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.h147
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.r61
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.mode1v31358
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser128
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev31506
-rwxr-xr-xplugins/MacAU/Crystal/Crystal.xcodeproj/project.pbxproj490
-rwxr-xr-xplugins/MacAU/Crystal/CrystalVersion.h58
-rwxr-xr-xplugins/MacAU/Crystal/English.lproj/InfoPlist.stringsbin0 -> 372 bytes
-rwxr-xr-xplugins/MacAU/Crystal/Info.plist28
-rwxr-xr-xplugins/MacAU/Crystal/version.plist16
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser108
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev31501
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj2201
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/contents.xcworkspacedata7
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstatebin0 -> 12075 bytes
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstatebin0 -> 10373 bytes
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.mode1v31372
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.pbxuser143
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme80
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist22
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist22
-rwxr-xr-xplugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme57
-rwxr-xr-xplugins/MacVST/Crystal/mac/Info.plist24
-rwxr-xr-xplugins/MacVST/Crystal/mac/PkgInfo1
-rwxr-xr-xplugins/MacVST/Crystal/mac/xcode_vst_prefix.h17
-rwxr-xr-xplugins/MacVST/Crystal/source/Crystal.cpp146
-rwxr-xr-xplugins/MacVST/Crystal/source/Crystal.h74
-rwxr-xr-xplugins/MacVST/Crystal/source/CrystalProc.cpp434
-rwxr-xr-xplugins/WinVST/Crystal/.vs/Console4Channel64/v14/.suobin0 -> 32768 bytes
-rwxr-xr-xplugins/WinVST/Crystal/.vs/VSTProject/v14/.suobin0 -> 22528 bytes
-rwxr-xr-xplugins/WinVST/Crystal/Crystal.cpp146
-rwxr-xr-xplugins/WinVST/Crystal/Crystal.h74
-rwxr-xr-xplugins/WinVST/Crystal/CrystalProc.cpp434
-rwxr-xr-xplugins/WinVST/Crystal/VSTProject.sln28
-rwxr-xr-xplugins/WinVST/Crystal/VSTProject.vcxproj183
-rwxr-xr-xplugins/WinVST/Crystal/VSTProject.vcxproj.filters48
-rwxr-xr-xplugins/WinVST/Crystal/VSTProject.vcxproj.user19
-rwxr-xr-xplugins/WinVST/Crystal/vstplug.def3
44 files changed, 11916 insertions, 0 deletions
diff --git a/plugins/LinuxVST/CMakeLists.txt b/plugins/LinuxVST/CMakeLists.txt
index f80f674..2c96e55 100755
--- a/plugins/LinuxVST/CMakeLists.txt
+++ b/plugins/LinuxVST/CMakeLists.txt
@@ -39,6 +39,7 @@ add_airwindows_plugin(Console5Buss)
add_airwindows_plugin(Console5Channel)
add_airwindows_plugin(Console5DarkCh)
add_airwindows_plugin(CrunchyGrooveWear)
+add_airwindows_plugin(Crystal)
add_airwindows_plugin(CStrip)
add_airwindows_plugin(DCVoltage)
add_airwindows_plugin(DeEss)
diff --git a/plugins/LinuxVST/src/Crystal/Crystal.cpp b/plugins/LinuxVST/src/Crystal/Crystal.cpp
new file mode 100755
index 0000000..705fe2a
--- /dev/null
+++ b/plugins/LinuxVST/src/Crystal/Crystal.cpp
@@ -0,0 +1,146 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Crystal(audioMaster);}
+
+Crystal::Crystal(audioMasterCallback audioMaster) :
+ AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
+{
+ A = 0.7;
+ B = 1.0;
+ C = 0.333; //0.0 to 3.0 range
+ D = 1.0;
+ for(int count = 0; count < 34; count++) {bL[count] = 0; bR[count] = 0;}
+ lastSampleL = 0.0;
+ lastSampleR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
+ //this is reset: values being initialized only once. Startup values, whatever they are.
+
+ _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
+ _canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
+ _canDo.insert("x2in2out");
+ setNumInputs(kNumInputs);
+ setNumOutputs(kNumOutputs);
+ setUniqueID(kUniqueId);
+ canProcessReplacing(); // supports output replacing
+ canDoubleReplacing(); // supports double precision processing
+ programsAreChunks(true);
+ vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
+}
+
+Crystal::~Crystal() {}
+VstInt32 Crystal::getVendorVersion () {return 1000;}
+void Crystal::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
+void Crystal::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
+//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
+//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
+
+static float pinParameter(float data)
+{
+ if (data < 0.0f) return 0.0f;
+ if (data > 1.0f) return 1.0f;
+ return data;
+}
+
+VstInt32 Crystal::getChunk (void** data, bool isPreset)
+{
+ float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
+ chunkData[0] = A;
+ chunkData[1] = B;
+ chunkData[2] = C;
+ chunkData[3] = D;
+ /* Note: The way this is set up, it will break if you manage to save settings on an Intel
+ machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
+ started with. */
+
+ *data = chunkData;
+ return kNumParameters * sizeof(float);
+}
+
+VstInt32 Crystal::setChunk (void* data, VstInt32 byteSize, bool isPreset)
+{
+ float *chunkData = (float *)data;
+ A = pinParameter(chunkData[0]);
+ B = pinParameter(chunkData[1]);
+ C = pinParameter(chunkData[2]);
+ D = pinParameter(chunkData[3]);
+ /* We're ignoring byteSize as we found it to be a filthy liar */
+
+ /* calculate any other fields you need here - you could copy in
+ code from setParameter() here. */
+ return 0;
+}
+
+void Crystal::setParameter(VstInt32 index, float value) {
+ switch (index) {
+ case kParamA: A = value; break;
+ case kParamB: B = value; break;
+ case kParamC: C = value; break;
+ case kParamD: D = value; break;
+ default: throw; // unknown parameter, shouldn't happen!
+ }
+}
+
+float Crystal::getParameter(VstInt32 index) {
+ switch (index) {
+ case kParamA: return A; break;
+ case kParamB: return B; break;
+ case kParamC: return C; break;
+ case kParamD: return D; break;
+ default: break; // unknown parameter, shouldn't happen!
+ } return 0.0; //we only need to update the relevant name, this is simple to manage
+}
+
+void Crystal::getParameterName(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "Hardnss", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "Personl", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "Drive", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this is our labels for displaying in the VST host
+}
+
+void Crystal::getParameterDisplay(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
+ case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
+ case kParamC: float2string (C*3.0, text, kVstMaxParamStrLen); break;
+ case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this displays the values and handles 'popups' where it's discrete choices
+}
+
+void Crystal::getParameterLabel(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ }
+}
+
+VstInt32 Crystal::canDo(char *text)
+{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
+
+bool Crystal::getEffectName(char* name) {
+ vst_strncpy(name, "Crystal", kVstMaxProductStrLen); return true;
+}
+
+VstPlugCategory Crystal::getPlugCategory() {return kPlugCategEffect;}
+
+bool Crystal::getProductString(char* text) {
+ vst_strncpy (text, "airwindows Crystal", kVstMaxProductStrLen); return true;
+}
+
+bool Crystal::getVendorString(char* text) {
+ vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
+}
diff --git a/plugins/LinuxVST/src/Crystal/Crystal.h b/plugins/LinuxVST/src/Crystal/Crystal.h
new file mode 100755
index 0000000..45ebb6a
--- /dev/null
+++ b/plugins/LinuxVST/src/Crystal/Crystal.h
@@ -0,0 +1,74 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Created 8/12/11 by SPIAdmin
+ * Copyright (c) 2011 __MyCompanyName__, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#define __Crystal_H
+
+#ifndef __audioeffect__
+#include "audioeffectx.h"
+#endif
+
+#include <set>
+#include <string>
+#include <math.h>
+
+enum {
+ kParamA = 0,
+ kParamB = 1,
+ kParamC = 2,
+ kParamD = 3,
+ kNumParameters = 4
+}; //
+
+const int kNumPrograms = 0;
+const int kNumInputs = 2;
+const int kNumOutputs = 2;
+const unsigned long kUniqueId = 'crys'; //Change this to what the AU identity is!
+
+class Crystal :
+ public AudioEffectX
+{
+public:
+ Crystal(audioMasterCallback audioMaster);
+ ~Crystal();
+ virtual bool getEffectName(char* name); // The plug-in name
+ virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
+ virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
+ virtual bool getVendorString(char* text); // Vendor info
+ virtual VstInt32 getVendorVersion(); // Version number
+ virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
+ virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
+ virtual void getProgramName(char *name); // read the name from the host
+ virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
+ virtual VstInt32 getChunk (void** data, bool isPreset);
+ virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
+ virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
+ virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
+ virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
+ virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
+ virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
+ virtual VstInt32 canDo(char *text);
+private:
+ char _programName[kVstMaxProgNameLen + 1];
+ std::set< std::string > _canDo;
+
+ double bL[35];
+ double lastSampleL;
+ double bR[35];
+ double lastSampleR;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+
+};
+
+#endif
diff --git a/plugins/LinuxVST/src/Crystal/CrystalProc.cpp b/plugins/LinuxVST/src/Crystal/CrystalProc.cpp
new file mode 100755
index 0000000..9c62355
--- /dev/null
+++ b/plugins/LinuxVST/src/Crystal/CrystalProc.cpp
@@ -0,0 +1,434 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
+{
+ float* in1 = inputs[0];
+ float* in2 = inputs[1];
+ float* out1 = outputs[0];
+ float* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 32-bit floating point
+ float fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 32 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
+
+void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
+{
+ double* in1 = inputs[0];
+ double* in2 = inputs[1];
+ double* out1 = outputs[0];
+ double* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 64-bit floating point
+ double fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 64 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
diff --git a/plugins/MacAU/Crystal/Crystal.cpp b/plugins/MacAU/Crystal/Crystal.cpp
new file mode 100755
index 0000000..f57a72e
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.cpp
@@ -0,0 +1,324 @@
+/*
+* File: Crystal.cpp
+*
+* Version: 1.0
+*
+* Created: 12/9/18
+*
+* Copyright: Copyright © 2018 Airwindows, All Rights Reserved
+*
+* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
+* consideration of your agreement to the following terms, and your use, installation, modification
+* or redistribution of this Apple software constitutes acceptance of these terms. If you do
+* not agree with these terms, please do not use, install, modify or redistribute this Apple
+* software.
+*
+* In consideration of your agreement to abide by the following terms, and subject to these terms,
+* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
+* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
+* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
+* redistribute the Apple Software in its entirety and without modifications, you must retain this
+* notice and the following text and disclaimers in all such redistributions of the Apple Software.
+* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
+* endorse or promote products derived from the Apple Software without specific prior written
+* permission from Apple. Except as expressly stated in this notice, no other rights or
+* licenses, express or implied, are granted by Apple herein, including but not limited to any
+* patent rights that may be infringed by your derivative works or by other works in which the
+* Apple Software may be incorporated.
+*
+* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
+* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
+* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
+* OR IN COMBINATION WITH YOUR PRODUCTS.
+*
+* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
+* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
+* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+/*=============================================================================
+ Crystal.cpp
+
+=============================================================================*/
+#include "Crystal.h"
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+COMPONENT_ENTRY(Crystal)
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::Crystal
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Crystal::Crystal(AudioUnit component)
+ : AUEffectBase(component)
+{
+ CreateElements();
+ Globals()->UseIndexedParameters(kNumberOfParameters);
+ SetParameter(kParam_One, kDefaultValue_ParamOne );
+ SetParameter(kParam_Two, kDefaultValue_ParamTwo );
+ SetParameter(kParam_Three, kDefaultValue_ParamThree );
+ SetParameter(kParam_Four, kDefaultValue_ParamFour );
+
+#if AU_DEBUG_DISPATCHER
+ mDebugDispatcher = new AUDebugDispatcher (this);
+#endif
+
+}
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::GetParameterValueStrings
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ComponentResult Crystal::GetParameterValueStrings(AudioUnitScope inScope,
+ AudioUnitParameterID inParameterID,
+ CFArrayRef * outStrings)
+{
+
+ return kAudioUnitErr_InvalidProperty;
+}
+
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::GetParameterInfo
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ComponentResult Crystal::GetParameterInfo(AudioUnitScope inScope,
+ AudioUnitParameterID inParameterID,
+ AudioUnitParameterInfo &outParameterInfo )
+{
+ ComponentResult result = noErr;
+
+ outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
+ | kAudioUnitParameterFlag_IsReadable;
+
+ if (inScope == kAudioUnitScope_Global) {
+ switch(inParameterID)
+ {
+ case kParam_One:
+ AUBase::FillInParameterName (outParameterInfo, kParameterOneName, false);
+ outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
+ outParameterInfo.minValue = 0.0;
+ outParameterInfo.maxValue = 1.0;
+ outParameterInfo.defaultValue = kDefaultValue_ParamOne;
+ break;
+ case kParam_Two:
+ AUBase::FillInParameterName (outParameterInfo, kParameterTwoName, false);
+ outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
+ outParameterInfo.minValue = 0.0;
+ outParameterInfo.maxValue = 1.0;
+ outParameterInfo.defaultValue = kDefaultValue_ParamTwo;
+ break;
+ case kParam_Three:
+ AUBase::FillInParameterName (outParameterInfo, kParameterThreeName, false);
+ outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
+ outParameterInfo.minValue = 0.0;
+ outParameterInfo.maxValue = 3.0;
+ outParameterInfo.defaultValue = kDefaultValue_ParamThree;
+ break;
+ case kParam_Four:
+ AUBase::FillInParameterName (outParameterInfo, kParameterFourName, false);
+ outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
+ outParameterInfo.minValue = 0.0;
+ outParameterInfo.maxValue = 1.0;
+ outParameterInfo.defaultValue = kDefaultValue_ParamFour;
+ break;
+ default:
+ result = kAudioUnitErr_InvalidParameter;
+ break;
+ }
+ } else {
+ result = kAudioUnitErr_InvalidParameter;
+ }
+
+
+
+ return result;
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::GetPropertyInfo
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ComponentResult Crystal::GetPropertyInfo (AudioUnitPropertyID inID,
+ AudioUnitScope inScope,
+ AudioUnitElement inElement,
+ UInt32 & outDataSize,
+ Boolean & outWritable)
+{
+ return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::GetProperty
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ComponentResult Crystal::GetProperty( AudioUnitPropertyID inID,
+ AudioUnitScope inScope,
+ AudioUnitElement inElement,
+ void * outData )
+{
+ return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
+}
+
+// Crystal::Initialize
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ComponentResult Crystal::Initialize()
+{
+ ComponentResult result = AUEffectBase::Initialize();
+ if (result == noErr)
+ Reset(kAudioUnitScope_Global, 0);
+ return result;
+}
+
+#pragma mark ____CrystalEffectKernel
+
+
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::CrystalKernel::Reset()
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+void Crystal::CrystalKernel::Reset()
+{
+ for(int count = 0; count < 34; count++) {b[count] = 0;}
+ lastSample = 0.0;
+ fpNShape = 0.0;
+}
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Crystal::CrystalKernel::Process
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+void Crystal::CrystalKernel::Process( const Float32 *inSourceP,
+ Float32 *inDestP,
+ UInt32 inFramesToProcess,
+ UInt32 inNumChannels,
+ bool &ioSilence )
+{
+ UInt32 nSampleFrames = inFramesToProcess;
+ const Float32 *sourceP = inSourceP;
+ Float32 *destP = inDestP;
+
+ Float64 threshold = GetParameter( kParam_One );
+ Float64 hardness;
+ Float64 breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ Float64 bridgerectifier;
+ Float64 sqdrive = GetParameter( kParam_Two );
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ Float64 indrive = GetParameter( kParam_Three );
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ Float64 randy;
+ Float64 outlevel = GetParameter( kParam_Four );
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (nSampleFrames-- > 0) {
+ long double inputSample = *sourceP;
+
+ static int noisesource = 0;
+ int residue;
+ double applyresidue;
+ noisesource = noisesource % 1700021; noisesource++;
+ residue = noisesource * noisesource;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSample += applyresidue;
+ if (inputSample<1.2e-38 && -inputSample<1.2e-38) {
+ inputSample -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSample *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ b[23] = b[22]; b[22] = b[21]; b[21] = b[20]; b[20] = b[19]; b[19] = b[18]; b[18] = b[17]; b[17] = b[16]; b[16] = b[15];
+ b[15] = b[14]; b[14] = b[13]; b[13] = b[12]; b[12] = b[11]; b[11] = b[10]; b[10] = b[9]; b[9] = b[8]; b[8] = b[7];
+ b[7] = b[6]; b[6] = b[5]; b[5] = b[4]; b[4] = b[3]; b[3] = b[2]; b[2] = b[1]; b[1] = b[0]; b[0] = inputSample * sqdrive;
+ inputSample += (b[1] * (0.38856694371895023 + (0.14001177830115491*fabs(b[1]))));
+ inputSample -= (b[2] * (0.17469488984546111 + (0.05204541941091459*fabs(b[2]))));
+ inputSample += (b[3] * (0.11643521461774288 - (0.01193121216518472*fabs(b[3]))));
+ inputSample -= (b[4] * (0.08874416268268183 - (0.05867502375036486*fabs(b[4]))));
+ inputSample += (b[5] * (0.07222999223073785 - (0.08519974113692971*fabs(b[5]))));
+ inputSample -= (b[6] * (0.06103207678880003 - (0.09230674983449150*fabs(b[6]))));
+ inputSample += (b[7] * (0.05277389277465404 - (0.08487342372497046*fabs(b[7]))));
+ inputSample -= (b[8] * (0.04631144388636078 - (0.06976851898821038*fabs(b[8]))));
+ inputSample += (b[9] * (0.04102721072495113 - (0.05337974329110802*fabs(b[9]))));
+ inputSample -= (b[10] * (0.03656047655964371 - (0.03990914278458497*fabs(b[10]))));
+ inputSample += (b[11] * (0.03268677450573373 - (0.03090433934018759*fabs(b[11]))));
+ inputSample -= (b[12] * (0.02926012259262895 - (0.02585223214266682*fabs(b[12]))));
+ inputSample += (b[13] * (0.02618257163789973 - (0.02326667039588473*fabs(b[13]))));
+ inputSample -= (b[14] * (0.02338568277879992 - (0.02167067760829789*fabs(b[14]))));
+ inputSample += (b[15] * (0.02082142324645262 - (0.02013392273267951*fabs(b[15]))));
+ inputSample -= (b[16] * (0.01845525966656259 - (0.01833038930966512*fabs(b[16]))));
+ inputSample += (b[17] * (0.01626113504980445 - (0.01631893218593511*fabs(b[17]))));
+ inputSample -= (b[18] * (0.01422084088669267 - (0.01427828125219885*fabs(b[18]))));
+ inputSample += (b[19] * (0.01231993595709338 - (0.01233991521342998*fabs(b[19]))));
+ inputSample -= (b[20] * (0.01054774630451013 - (0.01054774630542346*fabs(b[20]))));
+ inputSample += (b[21] * (0.00889548162355088 - (0.00889548162263755*fabs(b[21]))));
+ inputSample -= (b[22] * (0.00735749099304526 - (0.00735749099395860*fabs(b[22]))));
+ inputSample += (b[23] * (0.00592812350468000 - (0.00592812350376666*fabs(b[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSample) > threshold)
+ {
+ bridgerectifier = (fabs(inputSample)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSample > 0) inputSample = bridgerectifier+threshold;
+ else inputSample = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSample*(1-randy))+(lastSample*randy)) * outlevel;
+ lastSample = inputSample;
+ inputSample = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 32-bit floating point
+ Float32 fpTemp = inputSample;
+ fpNShape += (inputSample-fpTemp);
+ inputSample += fpNShape;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 32 bit output
+
+ *destP = inputSample;
+
+ sourceP += inNumChannels; destP += inNumChannels;
+ }
+ fpNShape *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
+
diff --git a/plugins/MacAU/Crystal/Crystal.exp b/plugins/MacAU/Crystal/Crystal.exp
new file mode 100755
index 0000000..0b5c855
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.exp
@@ -0,0 +1 @@
+_CrystalEntry
diff --git a/plugins/MacAU/Crystal/Crystal.h b/plugins/MacAU/Crystal/Crystal.h
new file mode 100755
index 0000000..e2046ab
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.h
@@ -0,0 +1,147 @@
+/*
+* File: Crystal.h
+*
+* Version: 1.0
+*
+* Created: 12/9/18
+*
+* Copyright: Copyright © 2018 Airwindows, All Rights Reserved
+*
+* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
+* consideration of your agreement to the following terms, and your use, installation, modification
+* or redistribution of this Apple software constitutes acceptance of these terms. If you do
+* not agree with these terms, please do not use, install, modify or redistribute this Apple
+* software.
+*
+* In consideration of your agreement to abide by the following terms, and subject to these terms,
+* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
+* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
+* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
+* redistribute the Apple Software in its entirety and without modifications, you must retain this
+* notice and the following text and disclaimers in all such redistributions of the Apple Software.
+* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
+* endorse or promote products derived from the Apple Software without specific prior written
+* permission from Apple. Except as expressly stated in this notice, no other rights or
+* licenses, express or implied, are granted by Apple herein, including but not limited to any
+* patent rights that may be infringed by your derivative works or by other works in which the
+* Apple Software may be incorporated.
+*
+* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
+* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
+* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
+* OR IN COMBINATION WITH YOUR PRODUCTS.
+*
+* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
+* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
+* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#include "AUEffectBase.h"
+#include "CrystalVersion.h"
+
+#if AU_DEBUG_DISPATCHER
+ #include "AUDebugDispatcher.h"
+#endif
+
+
+#ifndef __Crystal_h__
+#define __Crystal_h__
+
+
+#pragma mark ____Crystal Parameters
+
+// parameters
+static const float kDefaultValue_ParamOne = 0.70;
+static const float kDefaultValue_ParamTwo = 1.0;
+static const float kDefaultValue_ParamThree = 1.0;
+static const float kDefaultValue_ParamFour = 1.0;
+//let's assume we always have a default of 0.0, for no effect
+
+static CFStringRef kParameterOneName = CFSTR("Hardness");
+static CFStringRef kParameterTwoName = CFSTR("Personality");
+static CFStringRef kParameterThreeName = CFSTR("Drive");
+static CFStringRef kParameterFourName = CFSTR("Output Level");
+//Alter the name if desired, but using the plugin name is a start
+
+enum {
+ kParam_One =0,
+ kParam_Two =1,
+ kParam_Three =2,
+ kParam_Four =3,
+ //Add your parameters here...
+ kNumberOfParameters=4
+};
+
+#pragma mark ____Crystal
+class Crystal : public AUEffectBase
+{
+public:
+ Crystal(AudioUnit component);
+#if AU_DEBUG_DISPATCHER
+ virtual ~Crystal () { delete mDebugDispatcher; }
+#endif
+
+ virtual AUKernelBase * NewKernel() { return new CrystalKernel(this); }
+
+ virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
+ AudioUnitParameterID inParameterID,
+ CFArrayRef * outStrings);
+
+ virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
+ AudioUnitParameterID inParameterID,
+ AudioUnitParameterInfo &outParameterInfo);
+
+ virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
+ AudioUnitScope inScope,
+ AudioUnitElement inElement,
+ UInt32 & outDataSize,
+ Boolean & outWritable );
+
+ virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
+ AudioUnitScope inScope,
+ AudioUnitElement inElement,
+ void * outData);
+
+ virtual ComponentResult Initialize();
+ virtual bool SupportsTail () { return true; }
+ virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
+ virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
+
+ /*! @method Version */
+ virtual ComponentResult Version() { return kCrystalVersion; }
+
+
+
+protected:
+ class CrystalKernel : public AUKernelBase // most of the real work happens here
+ {
+public:
+ CrystalKernel(AUEffectBase *inAudioUnit )
+ : AUKernelBase(inAudioUnit)
+ {
+ }
+
+ // *Required* overides for the process method for this effect
+ // processes one channel of interleaved samples
+ virtual void Process( const Float32 *inSourceP,
+ Float32 *inDestP,
+ UInt32 inFramesToProcess,
+ UInt32 inNumChannels,
+ bool &ioSilence);
+
+ virtual void Reset();
+
+ private:
+ Float64 b[35];
+ Float64 lastSample;
+ long double fpNShape;
+ };
+};
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+
+#endif \ No newline at end of file
diff --git a/plugins/MacAU/Crystal/Crystal.r b/plugins/MacAU/Crystal/Crystal.r
new file mode 100755
index 0000000..775687f
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.r
@@ -0,0 +1,61 @@
+/*
+* File: Crystal.r
+*
+* Version: 1.0
+*
+* Created: 12/9/18
+*
+* Copyright: Copyright © 2018 Airwindows, All Rights Reserved
+*
+* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
+* consideration of your agreement to the following terms, and your use, installation, modification
+* or redistribution of this Apple software constitutes acceptance of these terms. If you do
+* not agree with these terms, please do not use, install, modify or redistribute this Apple
+* software.
+*
+* In consideration of your agreement to abide by the following terms, and subject to these terms,
+* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
+* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
+* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
+* redistribute the Apple Software in its entirety and without modifications, you must retain this
+* notice and the following text and disclaimers in all such redistributions of the Apple Software.
+* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
+* endorse or promote products derived from the Apple Software without specific prior written
+* permission from Apple. Except as expressly stated in this notice, no other rights or
+* licenses, express or implied, are granted by Apple herein, including but not limited to any
+* patent rights that may be infringed by your derivative works or by other works in which the
+* Apple Software may be incorporated.
+*
+* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
+* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
+* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
+* OR IN COMBINATION WITH YOUR PRODUCTS.
+*
+* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
+* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
+* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#include <AudioUnit/AudioUnit.r>
+
+#include "CrystalVersion.h"
+
+// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
+#define kAudioUnitResID_Crystal 1000
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Crystal~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+#define RES_ID kAudioUnitResID_Crystal
+#define COMP_TYPE kAudioUnitType_Effect
+#define COMP_SUBTYPE Crystal_COMP_SUBTYPE
+#define COMP_MANUF Crystal_COMP_MANF
+
+#define VERSION kCrystalVersion
+#define NAME "Airwindows: Crystal"
+#define DESCRIPTION "Crystal AU"
+#define ENTRY_POINT "CrystalEntry"
+
+#include "AUResources.r" \ No newline at end of file
diff --git a/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.mode1v3 b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.mode1v3
new file mode 100755
index 0000000..f301be9
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.mode1v3
@@ -0,0 +1,1358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BD3CCBC148831C90062E48C</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>build</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>get-info</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>8BA05AEB0720742700365D66</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>20</integer>
+ <integer>19</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 445}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 463}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>203 321 788 504 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>MyNewFile14.java</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {580, 269}}</string>
+ <key>RubberWindowFrame</key>
+ <string>203 321 788 504 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>269pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 274}, {580, 189}}</string>
+ <key>RubberWindowFrame</key>
+ <string>203 321 788 504 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>189pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>580pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>8B563EC9161B5E170067FE32</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>8B563ECA161B5E170067FE32</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>2</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>8BD3CCBD148831C90062E48C</string>
+ <string>/Developer/Library/Xcode/Project Templates/System Plug-in/Audio Unit Effect/Audio Unit Effect/StarterAU.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>203 321 788 504 0 0 1440 878 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 218}}</string>
+ <key>RubberWindowFrame</key>
+ <string>668 222 500 500 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 223}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>668 222 500 500 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>459pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BD3CCBD148831C90062E48C</string>
+ <string>8B563ECB161B5E170067FE32</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowContentMinSize</key>
+ <string>486 300</string>
+ <key>WindowString</key>
+ <string>668 222 500 500 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>8BD3CCBD148831C90062E48C</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 250}}</string>
+ <key>RubberWindowFrame</key>
+ <string>516 632 650 250 0 0 1680 1027 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.0950012207031</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
new file mode 100755
index 0000000..7ed81d1
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
@@ -0,0 +1,128 @@
+// !$*UTF8*$!
+{
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Crystal */;
+ codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 292,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 252,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 566521916;
+ PBXWorkspaceStateSaveDate = 566521916;
+ };
+ perUserProjectItems = {
+ 8BBB31EA21BDBFE700825986 /* PlistBookmark */ = 8BBB31EA21BDBFE700825986 /* PlistBookmark */;
+ 8BBB350621C472FB00825986 /* PlistBookmark */ = 8BBB350621C472FB00825986 /* PlistBookmark */;
+ };
+ sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 8BA05A660720730100365D66 /* Crystal.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1082, 4225}}";
+ sepNavSelRange = "{15530, 0}";
+ sepNavVisRange = "{9843, 3243}";
+ sepNavWindowFrame = "{{457, 44}, {1129, 834}}";
+ };
+ };
+ 8BA05A690720730100365D66 /* CrystalVersion.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1082, 767}}";
+ sepNavSelRange = "{2880, 0}";
+ sepNavVisRange = "{32, 2911}";
+ sepNavWindowFrame = "{{15, 39}, {1129, 834}}";
+ };
+ };
+ 8BBB31EA21BDBFE700825986 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ CFBundleName,
+ );
+ name = /Users/christopherjohnson/Desktop/Crystal/Info.plist;
+ rLen = 0;
+ rLoc = 9223372036854775808;
+ };
+ 8BBB350621C472FB00825986 /* PlistBookmark */ = {
+ isa = PlistBookmark;
+ fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
+ fallbackIsa = PBXBookmark;
+ isK = 0;
+ kPath = (
+ CFBundleName,
+ );
+ name = /Users/christopherjohnson/Desktop/MacAU/Crystal/Info.plist;
+ rLen = 0;
+ rLoc = 9223372036854775807;
+ };
+ 8BC6025B073B072D006C4272 /* Crystal.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1082, 1911}}";
+ sepNavSelRange = "{5476, 0}";
+ sepNavVisRange = "{2711, 1740}";
+ sepNavWindowFrame = "{{731, 44}, {1129, 834}}";
+ };
+ };
+ 8BD3CCB8148830B20062E48C /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 8BD3CCB9148830B20062E48C /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ activeExec = 0;
+ };
+}
diff --git a/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
new file mode 100755
index 0000000..0364ddc
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
@@ -0,0 +1,1506 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>AIODescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>perspectivev3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BD7274F1D46E5A5000176F0</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.defaultV3</string>
+ <key>MajorVersion</key>
+ <integer>34</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>All-In-One</string>
+ <key>Notifications</key>
+ <array>
+ <dict>
+ <key>XCObserverAutoDisconnectKey</key>
+ <true/>
+ <key>XCObserverDefintionKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>0</integer>
+ </dict>
+ <key>XCObserverFactoryKey</key>
+ <string>XCPerspectivesSpecificationIdentifier</string>
+ <key>XCObserverGUIDKey</key>
+ <string>XCObserverProjectIdentifier</string>
+ <key>XCObserverNotificationKey</key>
+ <string>PBXStatusBuildStateMessageNotification</string>
+ <key>XCObserverTargetKey</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>XCObserverTriggerKey</key>
+ <string>awakenModuleWithObserver:</string>
+ <key>XCObserverValidationKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>841</integer>
+ <integer>841</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23ED40692098700951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>288</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>8BA05A56072072A900365D66</string>
+ <string>089C167CFE841241C02AAC07</string>
+ <string>1C37FBAC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>4</integer>
+ <integer>2</integer>
+ <integer>1</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {288, 595}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <false/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {305, 613}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>288</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>708 184 841 654 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>305pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BD7274A1D46E5A5000176F0</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Info.plist</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BD7274B1D46E5A5000176F0</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Info.plist</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>8BBB350621C472FB00825986</string>
+ <key>history</key>
+ <array>
+ <string>8BBB31EA21BDBFE700825986</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {531, 229}}</string>
+ <key>RubberWindowFrame</key>
+ <string>708 184 841 654 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>229pt</string>
+ </dict>
+ <dict>
+ <key>Proportion</key>
+ <string>379pt</string>
+ <key>Tabs</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {531, 352}}</string>
+ <key>RubberWindowFrame</key>
+ <string>708 184 841 654 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE00692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXCVSModuleFilterTypeKey</key>
+ <integer>1032</integer>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE10692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1023</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1012</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {531, 339}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>531pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDockableTabModule</string>
+ <string>XCDetailModule</string>
+ <string>PBXProjectFindModule</string>
+ <string>PBXCVSModule</string>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BBB350721C472FC00825986</string>
+ <string>1CA23ED40692098700951B8B</string>
+ <string>8BBB350821C472FC00825986</string>
+ <string>8BD7274A1D46E5A5000176F0</string>
+ <string>8BBB350921C472FC00825986</string>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <string>1CA23EE00692099D00951B8B</string>
+ <string>1CA23EE10692099D00951B8B</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>debugger-restart-executable</string>
+ <string>debugger-pause</string>
+ <string>debugger-step-over</string>
+ <string>debugger-step-into</string>
+ <string>debugger-step-out</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>servicesModulebreakpoints</string>
+ <string>debugger-show-console-window</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string>PBXDebugSessionModule</string>
+ <key>IconName</key>
+ <string>DebugTabIcon</string>
+ <key>Identifier</key>
+ <string>perspective.debug</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7628064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {810, 0}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {395, 214}}</string>
+ <string>{{395, 0}, {415, 214}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {810, 214}}</string>
+ <string>{{0, 214}, {810, 227}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7629064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 5}, {810, 441}}</string>
+ <key>PBXDebugSessionStackFrameViewKey</key>
+ <dict>
+ <key>DebugVariablesTableConfiguration</key>
+ <array>
+ <string>Name</string>
+ <real>120</real>
+ <string>Value</string>
+ <real>85</real>
+ <string>Summary</string>
+ <real>185</real>
+ </array>
+ <key>Frame</key>
+ <string>{{395, 0}, {415, 214}}</string>
+ </dict>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>441pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXDebugCLIModule</string>
+ <string>PBXDebugSessionModule</string>
+ <string>PBXDebugProcessAndThreadModule</string>
+ <string>PBXDebugProcessViewModule</string>
+ <string>PBXDebugThreadViewModule</string>
+ <string>PBXDebugStackFrameViewModule</string>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BD727EC1D46ECF1000176F0</string>
+ <string>1CCC7628064C1048000F2A68</string>
+ <string>1CCC7629064C1048000F2A68</string>
+ <string>8BD727ED1D46ECF1000176F0</string>
+ <string>8BD727EE1D46ECF1000176F0</string>
+ <string>8BD727EF1D46ECF1000176F0</string>
+ <string>8BD727F01D46ECF1000176F0</string>
+ <string>8BD727E71D46ECD9000176F0</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <true/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>566522619.99816501</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>2</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string></string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>8BBB350A21C472FC00825986</string>
+ <string>/Users/christopherjohnson/Desktop/MacAU/Crystal/Crystal.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>708 184 841 654 0 0 1440 878 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052900623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 215}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 222}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>458pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAA5065D492600B07095</string>
+ <string>1C78EAA6065D492600B07095</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {700, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>149 87 700 400 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <string>1C530D5C069F1CE1000CFCEE</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>149 87 440 400 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scmV3</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {369, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {616, 353}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {369, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>94</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EABA065D492600B07095</string>
+ <string>1C78EABB065D492600B07095</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacAU/Crystal/Crystal.xcodeproj/project.pbxproj b/plugins/MacAU/Crystal/Crystal.xcodeproj/project.pbxproj
new file mode 100755
index 0000000..f675273
--- /dev/null
+++ b/plugins/MacAU/Crystal/Crystal.xcodeproj/project.pbxproj
@@ -0,0 +1,490 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 45;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; };
+ 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; };
+ 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; };
+ 8B4119B70749654200361ABE /* Crystal.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Crystal.r */; };
+ 8BA05A6B0720730100365D66 /* Crystal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Crystal.cpp */; };
+ 8BA05A6E0720730100365D66 /* CrystalVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* CrystalVersion.h */; };
+ 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; };
+ 8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; };
+ 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; };
+ 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; };
+ 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; };
+ 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; };
+ 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; };
+ 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; };
+ 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; };
+ 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; };
+ 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; };
+ 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; };
+ 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; };
+ 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; };
+ 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; };
+ 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; };
+ 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; };
+ 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; };
+ 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; };
+ 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; };
+ 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; };
+ 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; };
+ 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; };
+ 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; };
+ 8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; };
+ 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; };
+ 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; };
+ 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
+ 8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
+ 8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
+ 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; };
+ 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; };
+ 8BC6025C073B072D006C4272 /* Crystal.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Crystal.h */; };
+ 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
+ F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; };
+ F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
+ 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
+ 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
+ 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
+ 8BA05A660720730100365D66 /* Crystal.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Crystal.cpp; sourceTree = "<group>"; };
+ 8BA05A670720730100365D66 /* Crystal.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Crystal.exp; sourceTree = "<group>"; };
+ 8BA05A680720730100365D66 /* Crystal.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Crystal.r; sourceTree = "<group>"; };
+ 8BA05A690720730100365D66 /* CrystalVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CrystalVersion.h; sourceTree = "<group>"; };
+ 8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
+ 8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
+ 8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
+ 8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
+ 8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
+ 8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
+ 8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
+ 8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
+ 8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
+ 8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
+ 8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
+ 8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
+ 8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
+ 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
+ 8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
+ 8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
+ 8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
+ 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; };
+ 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; };
+ 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
+ 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
+ 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
+ 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
+ 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
+ 8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
+ 8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
+ 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
+ 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
+ 8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
+ 8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
+ 8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+ 8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
+ 8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
+ 8BC6025B073B072D006C4272 /* Crystal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Crystal.h; sourceTree = "<group>"; };
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+ 8D01CCD20486CAD60068D4B7 /* Crystal.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Crystal.component; sourceTree = BUILT_PRODUCTS_DIR; };
+ F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; };
+ F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
+ 8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
+ 8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 089C166AFE841209C02AAC07 /* Crystal */ = {
+ isa = PBXGroup;
+ children = (
+ 08FB77ADFE841716C02AAC07 /* Source */,
+ 089C167CFE841241C02AAC07 /* Resources */,
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+ 19C28FB4FE9D528D11CA2CBB /* Products */,
+ );
+ name = Crystal;
+ sourceTree = "<group>";
+ };
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
+ 8BA05B01072074F900365D66 /* CoreServices.framework */,
+ 8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
+ 8BA05AFA072074E100365D66 /* AudioUnit.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 089C167CFE841241C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */,
+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77ADFE841716C02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 8BA05A56072072A900365D66 /* AU Source */,
+ 8BA05AEB0720742700365D66 /* PublicUtility */,
+ 8BA05A7D072073D200365D66 /* AUPublic */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 19C28FB4FE9D528D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 8D01CCD20486CAD60068D4B7 /* Crystal.component */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 8BA05A56072072A900365D66 /* AU Source */ = {
+ isa = PBXGroup;
+ children = (
+ 8BC6025B073B072D006C4272 /* Crystal.h */,
+ 8BA05A660720730100365D66 /* Crystal.cpp */,
+ 8BA05A670720730100365D66 /* Crystal.exp */,
+ 8BA05A680720730100365D66 /* Crystal.r */,
+ 8BA05A690720730100365D66 /* CrystalVersion.h */,
+ );
+ name = "AU Source";
+ sourceTree = "<group>";
+ };
+ 8BA05A7D072073D200365D66 /* AUPublic */ = {
+ isa = PBXGroup;
+ children = (
+ 8BA05A7E072073D200365D66 /* AUBase */,
+ 8BA05A99072073D200365D66 /* OtherBases */,
+ 8BA05AA6072073D200365D66 /* Utility */,
+ );
+ name = AUPublic;
+ path = Extras/CoreAudio/AudioUnits/AUPublic;
+ sourceTree = SYSTEM_DEVELOPER_DIR;
+ };
+ 8BA05A7E072073D200365D66 /* AUBase */ = {
+ isa = PBXGroup;
+ children = (
+ 8BA05A7F072073D200365D66 /* AUBase.cpp */,
+ 8BA05A80072073D200365D66 /* AUBase.h */,
+ 8BA05A81072073D200365D66 /* AUDispatch.cpp */,
+ 8BA05A82072073D200365D66 /* AUDispatch.h */,
+ 8BA05A83072073D200365D66 /* AUInputElement.cpp */,
+ 8BA05A84072073D200365D66 /* AUInputElement.h */,
+ 8BA05A85072073D200365D66 /* AUOutputElement.cpp */,
+ 8BA05A86072073D200365D66 /* AUOutputElement.h */,
+ 8BA05A87072073D200365D66 /* AUResources.r */,
+ 8BA05A88072073D200365D66 /* AUScopeElement.cpp */,
+ 8BA05A89072073D200365D66 /* AUScopeElement.h */,
+ 8BA05A8A072073D200365D66 /* ComponentBase.cpp */,
+ 8BA05A8B072073D200365D66 /* ComponentBase.h */,
+ );
+ path = AUBase;
+ sourceTree = "<group>";
+ };
+ 8BA05A99072073D200365D66 /* OtherBases */ = {
+ isa = PBXGroup;
+ children = (
+ 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */,
+ 8BA05A9B072073D200365D66 /* AUEffectBase.h */,
+ );
+ path = OtherBases;
+ sourceTree = "<group>";
+ };
+ 8BA05AA6072073D200365D66 /* Utility */ = {
+ isa = PBXGroup;
+ children = (
+ F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */,
+ F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */,
+ 8BA05AA7072073D200365D66 /* AUBuffer.cpp */,
+ 8BA05AA8072073D200365D66 /* AUBuffer.h */,
+ 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */,
+ 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */,
+ 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */,
+ 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */,
+ 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */,
+ );
+ path = Utility;
+ sourceTree = "<group>";
+ };
+ 8BA05AEB0720742700365D66 /* PublicUtility */ = {
+ isa = PBXGroup;
+ children = (
+ 8BA05B050720754400365D66 /* CAAUParameter.cpp */,
+ 8BA05B060720754400365D66 /* CAAUParameter.h */,
+ 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */,
+ 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */,
+ 8BA05AE10720742100365D66 /* CAMutex.cpp */,
+ 8BA05AE20720742100365D66 /* CAMutex.h */,
+ 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */,
+ 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */,
+ 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */,
+ 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */,
+ 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */,
+ );
+ name = PublicUtility;
+ path = Extras/CoreAudio/PublicUtility;
+ sourceTree = SYSTEM_DEVELOPER_DIR;
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8D01CCC70486CAD60068D4B7 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8BA05A6E0720730100365D66 /* CrystalVersion.h in Headers */,
+ 8BA05AAF072073D300365D66 /* AUBase.h in Headers */,
+ 8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */,
+ 8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */,
+ 8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */,
+ 8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */,
+ 8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */,
+ 8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */,
+ 8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */,
+ 8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */,
+ 8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */,
+ 8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */,
+ 8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */,
+ 8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */,
+ 8BA05AE80720742100365D66 /* CAMutex.h in Headers */,
+ 8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */,
+ 8BA05B080720754400365D66 /* CAAUParameter.h in Headers */,
+ 8BC6025C073B072D006C4272 /* Crystal.h in Headers */,
+ 3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */,
+ 3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */,
+ F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Crystal" */;
+ buildPhases = (
+ 8D01CCC70486CAD60068D4B7 /* Headers */,
+ 8D01CCC90486CAD60068D4B7 /* Resources */,
+ 8D01CCCB0486CAD60068D4B7 /* Sources */,
+ 8D01CCCD0486CAD60068D4B7 /* Frameworks */,
+ 8D01CCCF0486CAD60068D4B7 /* Rez */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Crystal;
+ productInstallPath = "$(HOME)/Library/Bundles";
+ productName = Crystal;
+ productReference = 8D01CCD20486CAD60068D4B7 /* Crystal.component */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Crystal" */;
+ compatibilityVersion = "Xcode 3.1";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 089C166AFE841209C02AAC07 /* Crystal */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ 8D01CCC60486CAD60068D4B7 /* Crystal */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D01CCC90486CAD60068D4B7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 8D01CCCF0486CAD60068D4B7 /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8B4119B70749654200361ABE /* Crystal.r in Rez */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D01CCCB0486CAD60068D4B7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 8BA05A6B0720730100365D66 /* Crystal.cpp in Sources */,
+ 8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */,
+ 8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */,
+ 8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */,
+ 8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */,
+ 8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */,
+ 8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */,
+ 8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */,
+ 8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */,
+ 8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */,
+ 8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */,
+ 8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */,
+ 8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */,
+ 8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */,
+ 3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */,
+ F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ 089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 089C167EFE841241C02AAC07 /* English */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ 3E4BA244089833B7007656EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ EXPORTED_SYMBOLS_FILE = Crystal.exp;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GENERATE_PKGINFO_FILE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
+ LIBRARY_STYLE = Bundle;
+ OTHER_LDFLAGS = "-bundle";
+ OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
+ PRODUCT_NAME = Crystal;
+ WRAPPER_EXTENSION = component;
+ };
+ name = Debug;
+ };
+ 3E4BA245089833B7007656EC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ x86_64,
+ );
+ EXPORTED_SYMBOLS_FILE = Crystal.exp;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GENERATE_PKGINFO_FILE = YES;
+ INFOPLIST_FILE = Info.plist;
+ INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
+ LIBRARY_STYLE = Bundle;
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
+ OTHER_LDFLAGS = "-bundle";
+ OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
+ PRODUCT_NAME = Crystal;
+ SDKROOT = macosx10.5;
+ STRIP_INSTALLED_PRODUCT = YES;
+ STRIP_STYLE = all;
+ WRAPPER_EXTENSION = component;
+ };
+ name = Release;
+ };
+ 3E4BA248089833B7007656EC /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ COPY_PHASE_STRIP = NO;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ SDKROOT = macosx10.6;
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Debug;
+ };
+ 3E4BA249089833B7007656EC /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ SDKROOT = macosx10.6;
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Crystal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 3E4BA244089833B7007656EC /* Debug */,
+ 3E4BA245089833B7007656EC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Crystal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 3E4BA248089833B7007656EC /* Debug */,
+ 3E4BA249089833B7007656EC /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/plugins/MacAU/Crystal/CrystalVersion.h b/plugins/MacAU/Crystal/CrystalVersion.h
new file mode 100755
index 0000000..249faf4
--- /dev/null
+++ b/plugins/MacAU/Crystal/CrystalVersion.h
@@ -0,0 +1,58 @@
+/*
+* File: CrystalVersion.h
+*
+* Version: 1.0
+*
+* Created: 12/9/18
+*
+* Copyright: Copyright © 2018 Airwindows, All Rights Reserved
+*
+* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
+* consideration of your agreement to the following terms, and your use, installation, modification
+* or redistribution of this Apple software constitutes acceptance of these terms. If you do
+* not agree with these terms, please do not use, install, modify or redistribute this Apple
+* software.
+*
+* In consideration of your agreement to abide by the following terms, and subject to these terms,
+* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
+* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
+* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
+* redistribute the Apple Software in its entirety and without modifications, you must retain this
+* notice and the following text and disclaimers in all such redistributions of the Apple Software.
+* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
+* endorse or promote products derived from the Apple Software without specific prior written
+* permission from Apple. Except as expressly stated in this notice, no other rights or
+* licenses, express or implied, are granted by Apple herein, including but not limited to any
+* patent rights that may be infringed by your derivative works or by other works in which the
+* Apple Software may be incorporated.
+*
+* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
+* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
+* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
+* OR IN COMBINATION WITH YOUR PRODUCTS.
+*
+* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
+* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
+* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
+* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
+* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*
+*/
+#ifndef __CrystalVersion_h__
+#define __CrystalVersion_h__
+
+
+#ifdef DEBUG
+ #define kCrystalVersion 0xFFFFFFFF
+#else
+ #define kCrystalVersion 0x00010000
+#endif
+
+//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
+#define Crystal_COMP_MANF 'Dthr'
+#define Crystal_COMP_SUBTYPE 'crys'
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
+
+#endif
+
diff --git a/plugins/MacAU/Crystal/English.lproj/InfoPlist.strings b/plugins/MacAU/Crystal/English.lproj/InfoPlist.strings
new file mode 100755
index 0000000..545db65
--- /dev/null
+++ b/plugins/MacAU/Crystal/English.lproj/InfoPlist.strings
Binary files differ
diff --git a/plugins/MacAU/Crystal/Info.plist b/plugins/MacAU/Crystal/Info.plist
new file mode 100755
index 0000000..01dc683
--- /dev/null
+++ b/plugins/MacAU/Crystal/Info.plist
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
+ <key>CFBundleName</key>
+ <string>${PROJECTNAMEASIDENTIFIER}</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleSignature</key>
+ <string>DthX</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+</dict>
+</plist>
diff --git a/plugins/MacAU/Crystal/version.plist b/plugins/MacAU/Crystal/version.plist
new file mode 100755
index 0000000..11edf8a
--- /dev/null
+++ b/plugins/MacAU/Crystal/version.plist
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>BuildVersion</key>
+ <string>3</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>ProjectName</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>SourceVersion</key>
+ <string>590000</string>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
new file mode 100755
index 0000000..bf745a3
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.pbxuser
@@ -0,0 +1,108 @@
+// !$*UTF8*$!
+{
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Crystal */;
+ codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 364,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 324,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 566521896;
+ PBXWorkspaceStateSaveDate = 566521896;
+ };
+ sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 2407DEB6089929BA00EB68BF /* Crystal.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {848, 1872}}";
+ sepNavSelRange = "{4865, 0}";
+ sepNavVisRange = "{3147, 2345}";
+ sepNavWindowFrame = "{{13, 47}, {895, 831}}";
+ };
+ };
+ 245463B80991757100464AD3 /* Crystal.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {866, 975}}";
+ sepNavSelRange = "{2489, 0}";
+ sepNavVisRange = "{343, 2267}";
+ sepNavWindowFrame = "{{20, 47}, {895, 831}}";
+ };
+ };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
+ sepNavSelRange = "{10616, 0}";
+ sepNavVisRange = "{9653, 2414}";
+ sepNavWindowFrame = "{{15, 42}, {895, 831}}";
+ };
+ };
+ 24D8286F09A914000093AEF8 /* CrystalProc.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {1253, 6734}}";
+ sepNavSelRange = "{23821, 0}";
+ sepNavVisRange = "{12049, 1671}";
+ sepNavWindowFrame = "{{72, 56}, {1300, 822}}";
+ };
+ };
+ 8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+ 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ activeExec = 0;
+ };
+}
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3 b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
new file mode 100755
index 0000000..a08084d
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/christopherjohnson.perspectivev3
@@ -0,0 +1,1501 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>AIODescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>perspectivev3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B02375D1D42B1C400E1E8C8</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.defaultV3</string>
+ <key>MajorVersion</key>
+ <integer>34</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>All-In-One</string>
+ <key>Notifications</key>
+ <array>
+ <dict>
+ <key>XCObserverAutoDisconnectKey</key>
+ <true/>
+ <key>XCObserverDefintionKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>0</integer>
+ </dict>
+ <key>XCObserverFactoryKey</key>
+ <string>XCPerspectivesSpecificationIdentifier</string>
+ <key>XCObserverGUIDKey</key>
+ <string>XCObserverProjectIdentifier</string>
+ <key>XCObserverNotificationKey</key>
+ <string>PBXStatusBuildStateMessageNotification</string>
+ <key>XCObserverTargetKey</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>XCObserverTriggerKey</key>
+ <string>awakenModuleWithObserver:</string>
+ <key>XCObserverValidationKey</key>
+ <dict>
+ <key>PBXStatusErrorsKey</key>
+ <integer>2</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>810</integer>
+ <integer>810</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23ED40692098700951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>185</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>1C37FBAC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>6</integer>
+ <integer>4</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {185, 428}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <false/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {202, 446}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>185</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>17 376 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>202pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B0237581D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8B0237591D42B1C400E1E8C8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.CommonNavigatorGroupSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {603, 102}}</string>
+ <key>RubberWindowFrame</key>
+ <string>17 376 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>102pt</string>
+ </dict>
+ <dict>
+ <key>Proportion</key>
+ <string>339pt</string>
+ <key>Tabs</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {603, 312}}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE00692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXCVSModuleFilterTypeKey</key>
+ <integer>1032</integer>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA23EE10692099D00951B8B</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 31}, {603, 297}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1023</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1012</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{10, 27}, {603, 312}}</string>
+ <key>RubberWindowFrame</key>
+ <string>17 376 810 487 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ </dict>
+ </array>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>603pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDockableTabModule</string>
+ <string>XCDetailModule</string>
+ <string>PBXProjectFindModule</string>
+ <string>PBXCVSModule</string>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BBB351421C4819F00825986</string>
+ <string>1CA23ED40692098700951B8B</string>
+ <string>8BBB351521C4819F00825986</string>
+ <string>8B0237581D42B1C400E1E8C8</string>
+ <string>8BBB351621C4819F00825986</string>
+ <string>1CA23EDF0692099D00951B8B</string>
+ <string>1CA23EE00692099D00951B8B</string>
+ <string>1CA23EE10692099D00951B8B</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>XCToolbarPerspectiveControl</string>
+ <string>NSToolbarSeparatorItem</string>
+ <string>active-combo-popup</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>debugger-restart-executable</string>
+ <string>debugger-pause</string>
+ <string>debugger-step-over</string>
+ <string>debugger-step-into</string>
+ <string>debugger-step-out</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>servicesModulebreakpoints</string>
+ <string>debugger-show-console-window</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string>PBXDebugSessionModule</string>
+ <key>IconName</key>
+ <string>DebugTabIcon</string>
+ <key>Identifier</key>
+ <string>perspective.debug</string>
+ <key>IsVertical</key>
+ <integer>1</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7628064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {810, 0}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>0%</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {395, 213}}</string>
+ <string>{{395, 0}, {415, 213}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {810, 213}}</string>
+ <string>{{0, 213}, {810, 225}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CCC7629064C1048000F2A68</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {810, 438}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>443pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>XCModuleDock</string>
+ <string>PBXDebugCLIModule</string>
+ <string>PBXDebugSessionModule</string>
+ <string>XCConsole</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CC8E6A5069209BD00BB180A</string>
+ <string>1CC8E6A6069209BD00BB180A</string>
+ <string>1CCC7628064C1048000F2A68</string>
+ <string>1CCC7629064C1048000F2A68</string>
+ <string>1CC8E6A7069209BD00BB180A</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <true/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>566526367.832932</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>2</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string></string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>8BBB351721C4819F00825986</string>
+ <string>/Users/christopherjohnson/Desktop/Crystal/Crystal.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>17 376 810 487 0 0 1440 878 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052900623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {500, 215}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>218pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 222}, {500, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>458pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAA5065D492600B07095</string>
+ <string>1C78EAA6065D492600B07095</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowString</key>
+ <string>192 257 500 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {700, 358}}</string>
+ <key>RubberWindowFrame</key>
+ <string>149 87 700 400 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>358pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <string>1C530D5C069F1CE1000CFCEE</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>149 87 440 400 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D5B069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.09500122070312</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scmV3</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>166pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>8BCAE52E1D49920D0047D4BD</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {472, 302}}</string>
+ <key>RubberWindowFrame</key>
+ <string>569 378 472 322 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>302pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>302pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <false/>
+ <key>TableOfContents</key>
+ <array>
+ <string>8BCAE52F1D49920D0047D4BD</string>
+ <string>8BCAE5301D49920D0047D4BD</string>
+ <string>8BCAE52E1D49920D0047D4BD</string>
+ </array>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>569 378 472 322 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>8BCAE52F1D49920D0047D4BD</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {369, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {616, 353}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {369, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>94</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>354pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EABA065D492600B07095</string>
+ <string>1C78EABB065D492600B07095</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>597 125 616 374 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj
new file mode 100755
index 0000000..871c751
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.pbxproj
@@ -0,0 +1,2201 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 2407DEB9089929BA00EB68BF /* Crystal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Crystal.cpp */; };
+ 245463B90991757100464AD3 /* Crystal.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Crystal.h */; };
+ 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF910F90D1DD003BB5A7 /* aeffect.h */; };
+ 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */; };
+ 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */; };
+ 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FF990F90D1DD003BB5A7 /* adelay.h */; };
+ 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */; };
+ 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */; };
+ 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFAB0F90D1DD003BB5A7 /* again.h */; };
+ 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */; };
+ 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */; };
+ 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */; };
+ 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */; };
+ 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */; };
+ 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */; };
+ 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */; };
+ 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */; };
+ 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200050F90D1DD003BB5A7 /* controlsgui.h */; };
+ 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */; };
+ 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */; };
+ 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */; };
+ 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */; };
+ 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */; };
+ 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */; };
+ 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */; };
+ 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2001F0F90D1DD003BB5A7 /* ctabview.h */; };
+ 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201470F90D1DE003BB5A7 /* plugguieditor.h */; };
+ 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201490F90D1DE003BB5A7 /* vstcontrols.h */; };
+ 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014B0F90D1DE003BB5A7 /* vstgui.h */; };
+ 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */; };
+ 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */; };
+ 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */; };
+ 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */; };
+ 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */ = {isa = PBXBuildFile; fileRef = 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */; };
+ 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */; };
+ 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */; };
+ 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */; };
+ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
+ 24D8287009A914000093AEF8 /* CrystalProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* CrystalProc.cpp */; };
+ 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = again;
+ };
+ 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4476974093DAE42008998C4;
+ remoteInfo = adelay;
+ };
+ 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4FF52220929FBF500DDED7A;
+ remoteInfo = vstxsynth;
+ };
+ 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4476A10093DCAF9008998C4;
+ remoteInfo = surrounddelay;
+ };
+ 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4FF52F3092A312800DDED7A;
+ remoteInfo = minihost;
+ };
+ 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = AudioUnit;
+ };
+ 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ proxyType = 2;
+ remoteGlobalIDString = F4C9F1D407B2320800010DAD;
+ remoteInfo = VST;
+ };
+ 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = 8D01CCD20486CAD60068D4B7;
+ remoteInfo = AudioUnit;
+ };
+ 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = F4C9F1D407B2320800010DAD;
+ remoteInfo = VST;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ 2407DE920899296600EB68BF /* Crystal.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Crystal.vst; sourceTree = BUILT_PRODUCTS_DIR; };
+ 2407DEB6089929BA00EB68BF /* Crystal.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Crystal.cpp; path = source/Crystal.cpp; sourceTree = "<group>"; };
+ 2434720A098313350063BBF1 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
+ 245463B80991757100464AD3 /* Crystal.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Crystal.h; path = source/Crystal.h; sourceTree = "<group>"; };
+ 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10014.bmp; sourceTree = "<group>"; };
+ 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10015.bmp; sourceTree = "<group>"; };
+ 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10016.bmp; sourceTree = "<group>"; };
+ 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = controlsgui.cpp; sourceTree = "<group>"; };
+ 24A200050F90D1DD003BB5A7 /* controlsgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = controlsgui.h; sourceTree = "<group>"; };
+ 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteditor.cpp; sourceTree = "<group>"; };
+ 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteditor.h; sourceTree = "<group>"; };
+ 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtesteffect.cpp; sourceTree = "<group>"; };
+ 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtesteffect.h; sourceTree = "<group>"; };
+ 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestmain.cpp; sourceTree = "<group>"; };
+ 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pdrawtestview.cpp; sourceTree = "<group>"; };
+ 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pdrawtestview.h; sourceTree = "<group>"; };
+ 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = pprimitivesviews.cpp; sourceTree = "<group>"; };
+ 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = pprimitivesviews.h; sourceTree = "<group>"; };
+ 24A200100F90D1DD003BB5A7 /* drawtest.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.def; sourceTree = "<group>"; };
+ 24A200110F90D1DD003BB5A7 /* drawtest.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.rc; sourceTree = "<group>"; };
+ 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = drawtest.vcproj; sourceTree = "<group>"; };
+ 24A200140F90D1DD003BB5A7 /* drawtest.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsp; sourceTree = "<group>"; };
+ 24A200150F90D1DD003BB5A7 /* drawtest.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.dsw; sourceTree = "<group>"; };
+ 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = aeffguieditor.cpp; sourceTree = "<group>"; };
+ 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffguieditor.h; sourceTree = "<group>"; };
+ 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cfileselector.cpp; sourceTree = "<group>"; };
+ 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cfileselector.h; sourceTree = "<group>"; };
+ 24A2001B0F90D1DD003BB5A7 /* Changelog */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Changelog; sourceTree = "<group>"; };
+ 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = cscrollview.cpp; sourceTree = "<group>"; };
+ 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cscrollview.h; sourceTree = "<group>"; };
+ 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ctabview.cpp; sourceTree = "<group>"; };
+ 24A2001F0F90D1DD003BB5A7 /* ctabview.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ctabview.h; sourceTree = "<group>"; };
+ 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8cpp.html; sourceTree = "<group>"; };
+ 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = aeffguieditor_8h.html; sourceTree = "<group>"; };
+ 24A200240F90D1DD003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = annotated.html; sourceTree = "<group>"; };
+ 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8cpp.html; sourceTree = "<group>"; };
+ 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cfileselector_8h.html; sourceTree = "<group>"; };
+ 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_a_eff_g_u_i_editor-members.html"; sourceTree = "<group>"; };
+ 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_a_eff_g_u_i_editor.html; sourceTree = "<group>"; };
+ 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_anim_knob-members.html"; sourceTree = "<group>"; };
+ 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_anim_knob.html; sourceTree = "<group>"; };
+ 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_anim_knob.png; sourceTree = "<group>"; };
+ 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_attribute_list_entry-members.html"; sourceTree = "<group>"; };
+ 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_attribute_list_entry.html; sourceTree = "<group>"; };
+ 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_auto_animation-members.html"; sourceTree = "<group>"; };
+ 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_auto_animation.html; sourceTree = "<group>"; };
+ 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_auto_animation.png; sourceTree = "<group>"; };
+ 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_bitmap-members.html"; sourceTree = "<group>"; };
+ 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_bitmap.html; sourceTree = "<group>"; };
+ 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_bitmap.png; sourceTree = "<group>"; };
+ 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_c_view-members.html"; sourceTree = "<group>"; };
+ 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_c_view.html; sourceTree = "<group>"; };
+ 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control-members.html"; sourceTree = "<group>"; };
+ 24A200370F90D1DD003BB5A7 /* class_c_control.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control.html; sourceTree = "<group>"; };
+ 24A200380F90D1DD003BB5A7 /* class_c_control.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control.png; sourceTree = "<group>"; };
+ 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_control_listener-members.html"; sourceTree = "<group>"; };
+ 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_control_listener.html; sourceTree = "<group>"; };
+ 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_control_listener.png; sourceTree = "<group>"; };
+ 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_drag_container-members.html"; sourceTree = "<group>"; };
+ 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_drag_container.html; sourceTree = "<group>"; };
+ 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_drag_container.png; sourceTree = "<group>"; };
+ 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_draw_context-members.html"; sourceTree = "<group>"; };
+ 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_draw_context.html; sourceTree = "<group>"; };
+ 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_draw_context.png; sourceTree = "<group>"; };
+ 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_file_selector-members.html"; sourceTree = "<group>"; };
+ 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_file_selector.html; sourceTree = "<group>"; };
+ 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_frame-members.html"; sourceTree = "<group>"; };
+ 24A200450F90D1DD003BB5A7 /* class_c_frame.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_frame.html; sourceTree = "<group>"; };
+ 24A200460F90D1DD003BB5A7 /* class_c_frame.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_frame.png; sourceTree = "<group>"; };
+ 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_slider-members.html"; sourceTree = "<group>"; };
+ 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_slider.html; sourceTree = "<group>"; };
+ 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_slider.png; sourceTree = "<group>"; };
+ 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_horizontal_switch-members.html"; sourceTree = "<group>"; };
+ 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_horizontal_switch.html; sourceTree = "<group>"; };
+ 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_horizontal_switch.png; sourceTree = "<group>"; };
+ 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_kick_button-members.html"; sourceTree = "<group>"; };
+ 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_kick_button.html; sourceTree = "<group>"; };
+ 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_kick_button.png; sourceTree = "<group>"; };
+ 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_knob-members.html"; sourceTree = "<group>"; };
+ 24A200510F90D1DD003BB5A7 /* class_c_knob.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_knob.html; sourceTree = "<group>"; };
+ 24A200520F90D1DD003BB5A7 /* class_c_knob.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_knob.png; sourceTree = "<group>"; };
+ 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_bitmap-members.html"; sourceTree = "<group>"; };
+ 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_bitmap.html; sourceTree = "<group>"; };
+ 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_bitmap.png; sourceTree = "<group>"; };
+ 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_movie_button-members.html"; sourceTree = "<group>"; };
+ 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_movie_button.html; sourceTree = "<group>"; };
+ 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_movie_button.png; sourceTree = "<group>"; };
+ 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_offscreen_context-members.html"; sourceTree = "<group>"; };
+ 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_offscreen_context.html; sourceTree = "<group>"; };
+ 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_offscreen_context.png; sourceTree = "<group>"; };
+ 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_on_off_button-members.html"; sourceTree = "<group>"; };
+ 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_on_off_button.html; sourceTree = "<group>"; };
+ 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_on_off_button.png; sourceTree = "<group>"; };
+ 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu-members.html"; sourceTree = "<group>"; };
+ 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu.html; sourceTree = "<group>"; };
+ 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu.png; sourceTree = "<group>"; };
+ 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_option_menu_scheme-members.html"; sourceTree = "<group>"; };
+ 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_option_menu_scheme.html; sourceTree = "<group>"; };
+ 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_option_menu_scheme.png; sourceTree = "<group>"; };
+ 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_param_display-members.html"; sourceTree = "<group>"; };
+ 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_param_display.html; sourceTree = "<group>"; };
+ 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_param_display.png; sourceTree = "<group>"; };
+ 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_reference_counter-members.html"; sourceTree = "<group>"; };
+ 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_reference_counter.html; sourceTree = "<group>"; };
+ 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_reference_counter.png; sourceTree = "<group>"; };
+ 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_rocker_switch-members.html"; sourceTree = "<group>"; };
+ 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_rocker_switch.html; sourceTree = "<group>"; };
+ 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_rocker_switch.png; sourceTree = "<group>"; };
+ 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_container-members.html"; sourceTree = "<group>"; };
+ 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_container.html; sourceTree = "<group>"; };
+ 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_container.png; sourceTree = "<group>"; };
+ 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scroll_view-members.html"; sourceTree = "<group>"; };
+ 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scroll_view.html; sourceTree = "<group>"; };
+ 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scroll_view.png; sourceTree = "<group>"; };
+ 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_scrollbar-members.html"; sourceTree = "<group>"; };
+ 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_scrollbar.html; sourceTree = "<group>"; };
+ 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_scrollbar.png; sourceTree = "<group>"; };
+ 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_slider-members.html"; sourceTree = "<group>"; };
+ 24A200780F90D1DD003BB5A7 /* class_c_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_slider.html; sourceTree = "<group>"; };
+ 24A200790F90D1DD003BB5A7 /* class_c_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_slider.png; sourceTree = "<group>"; };
+ 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_special_digit-members.html"; sourceTree = "<group>"; };
+ 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_special_digit.html; sourceTree = "<group>"; };
+ 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_special_digit.png; sourceTree = "<group>"; };
+ 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen-members.html"; sourceTree = "<group>"; };
+ 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen.html; sourceTree = "<group>"; };
+ 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen.png; sourceTree = "<group>"; };
+ 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_splash_screen_view-members.html"; sourceTree = "<group>"; };
+ 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_splash_screen_view.html; sourceTree = "<group>"; };
+ 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_splash_screen_view.png; sourceTree = "<group>"; };
+ 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_button-members.html"; sourceTree = "<group>"; };
+ 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_button.html; sourceTree = "<group>"; };
+ 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_button.png; sourceTree = "<group>"; };
+ 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_child_view-members.html"; sourceTree = "<group>"; };
+ 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_child_view.html; sourceTree = "<group>"; };
+ 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_child_view.png; sourceTree = "<group>"; };
+ 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_tab_view-members.html"; sourceTree = "<group>"; };
+ 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_tab_view.html; sourceTree = "<group>"; };
+ 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_tab_view.png; sourceTree = "<group>"; };
+ 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_edit-members.html"; sourceTree = "<group>"; };
+ 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_edit.html; sourceTree = "<group>"; };
+ 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_edit.png; sourceTree = "<group>"; };
+ 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_text_label-members.html"; sourceTree = "<group>"; };
+ 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_text_label.html; sourceTree = "<group>"; };
+ 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_text_label.png; sourceTree = "<group>"; };
+ 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_slider-members.html"; sourceTree = "<group>"; };
+ 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_slider.html; sourceTree = "<group>"; };
+ 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_slider.png; sourceTree = "<group>"; };
+ 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vertical_switch-members.html"; sourceTree = "<group>"; };
+ 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vertical_switch.html; sourceTree = "<group>"; };
+ 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vertical_switch.png; sourceTree = "<group>"; };
+ 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view-members.html"; sourceTree = "<group>"; };
+ 24A200990F90D1DD003BB5A7 /* class_c_view.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view.html; sourceTree = "<group>"; };
+ 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view.png; sourceTree = "<group>"; };
+ 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_view_container-members.html"; sourceTree = "<group>"; };
+ 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_view_container.html; sourceTree = "<group>"; };
+ 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_view_container.png; sourceTree = "<group>"; };
+ 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_c_vu_meter-members.html"; sourceTree = "<group>"; };
+ 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_c_vu_meter.html; sourceTree = "<group>"; };
+ 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_c_vu_meter.png; sourceTree = "<group>"; };
+ 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_i_scrollbar_drawer-members.html"; sourceTree = "<group>"; };
+ 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_i_scrollbar_drawer.html; sourceTree = "<group>"; };
+ 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "class_plugin_g_u_i_editor-members.html"; sourceTree = "<group>"; };
+ 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = class_plugin_g_u_i_editor.html; sourceTree = "<group>"; };
+ 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8cpp.html; sourceTree = "<group>"; };
+ 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = cscrollview_8h.html; sourceTree = "<group>"; };
+ 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8cpp.html; sourceTree = "<group>"; };
+ 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = ctabview_8h.html; sourceTree = "<group>"; };
+ 24A200A90F90D1DD003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = deprecated.html; sourceTree = "<group>"; };
+ 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = doc_8h.html; sourceTree = "<group>"; };
+ 24A200AB0F90D1DD003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = "<group>"; };
+ 24A200AC0F90D1DD003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = "<group>"; };
+ 24A200AD0F90D1DD003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = files.html; sourceTree = "<group>"; };
+ 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = "<group>"; };
+ 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = "<group>"; };
+ 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = "<group>"; };
+ 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = "<group>"; };
+ 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = "<group>"; };
+ 24A200B30F90D1DE003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = "<group>"; };
+ 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = "<group>"; };
+ 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = "<group>"; };
+ 24A200B60F90D1DE003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = "<group>"; };
+ 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = "<group>"; };
+ 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = "<group>"; };
+ 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = "<group>"; };
+ 24A200BA0F90D1DE003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions.html; sourceTree = "<group>"; };
+ 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x62.html; sourceTree = "<group>"; };
+ 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x63.html; sourceTree = "<group>"; };
+ 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x64.html; sourceTree = "<group>"; };
+ 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x65.html; sourceTree = "<group>"; };
+ 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x66.html; sourceTree = "<group>"; };
+ 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x67.html; sourceTree = "<group>"; };
+ 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x68.html; sourceTree = "<group>"; };
+ 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x69.html; sourceTree = "<group>"; };
+ 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6b.html; sourceTree = "<group>"; };
+ 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6c.html; sourceTree = "<group>"; };
+ 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6d.html; sourceTree = "<group>"; };
+ 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6e.html; sourceTree = "<group>"; };
+ 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x6f.html; sourceTree = "<group>"; };
+ 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x70.html; sourceTree = "<group>"; };
+ 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x72.html; sourceTree = "<group>"; };
+ 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x73.html; sourceTree = "<group>"; };
+ 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x74.html; sourceTree = "<group>"; };
+ 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x75.html; sourceTree = "<group>"; };
+ 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x76.html; sourceTree = "<group>"; };
+ 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x77.html; sourceTree = "<group>"; };
+ 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x78.html; sourceTree = "<group>"; };
+ 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x79.html; sourceTree = "<group>"; };
+ 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7a.html; sourceTree = "<group>"; };
+ 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_0x7e.html; sourceTree = "<group>"; };
+ 24A200D30F90D1DE003BB5A7 /* functions_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_eval.html; sourceTree = "<group>"; };
+ 24A200D40F90D1DE003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func.html; sourceTree = "<group>"; };
+ 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x62.html; sourceTree = "<group>"; };
+ 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x63.html; sourceTree = "<group>"; };
+ 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x64.html; sourceTree = "<group>"; };
+ 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x65.html; sourceTree = "<group>"; };
+ 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x66.html; sourceTree = "<group>"; };
+ 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x67.html; sourceTree = "<group>"; };
+ 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x68.html; sourceTree = "<group>"; };
+ 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x69.html; sourceTree = "<group>"; };
+ 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6c.html; sourceTree = "<group>"; };
+ 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6d.html; sourceTree = "<group>"; };
+ 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6e.html; sourceTree = "<group>"; };
+ 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x6f.html; sourceTree = "<group>"; };
+ 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x70.html; sourceTree = "<group>"; };
+ 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x72.html; sourceTree = "<group>"; };
+ 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x73.html; sourceTree = "<group>"; };
+ 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x74.html; sourceTree = "<group>"; };
+ 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x75.html; sourceTree = "<group>"; };
+ 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x76.html; sourceTree = "<group>"; };
+ 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x77.html; sourceTree = "<group>"; };
+ 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_func_0x7e.html; sourceTree = "<group>"; };
+ 24A200E90F90D1DE003BB5A7 /* functions_rela.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_rela.html; sourceTree = "<group>"; };
+ 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars.html; sourceTree = "<group>"; };
+ 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x62.html; sourceTree = "<group>"; };
+ 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x63.html; sourceTree = "<group>"; };
+ 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x64.html; sourceTree = "<group>"; };
+ 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x65.html; sourceTree = "<group>"; };
+ 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x66.html; sourceTree = "<group>"; };
+ 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x67.html; sourceTree = "<group>"; };
+ 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x68.html; sourceTree = "<group>"; };
+ 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x69.html; sourceTree = "<group>"; };
+ 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6b.html; sourceTree = "<group>"; };
+ 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6c.html; sourceTree = "<group>"; };
+ 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6d.html; sourceTree = "<group>"; };
+ 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6e.html; sourceTree = "<group>"; };
+ 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x6f.html; sourceTree = "<group>"; };
+ 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x70.html; sourceTree = "<group>"; };
+ 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x72.html; sourceTree = "<group>"; };
+ 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x73.html; sourceTree = "<group>"; };
+ 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x74.html; sourceTree = "<group>"; };
+ 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x75.html; sourceTree = "<group>"; };
+ 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x76.html; sourceTree = "<group>"; };
+ 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x77.html; sourceTree = "<group>"; };
+ 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x78.html; sourceTree = "<group>"; };
+ 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x79.html; sourceTree = "<group>"; };
+ 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = functions_vars_0x7a.html; sourceTree = "<group>"; };
+ 24A201020F90D1DE003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals.html; sourceTree = "<group>"; };
+ 24A201030F90D1DE003BB5A7 /* globals_0x61.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x61.html; sourceTree = "<group>"; };
+ 24A201040F90D1DE003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x62.html; sourceTree = "<group>"; };
+ 24A201050F90D1DE003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x63.html; sourceTree = "<group>"; };
+ 24A201060F90D1DE003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x65.html; sourceTree = "<group>"; };
+ 24A201070F90D1DE003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x66.html; sourceTree = "<group>"; };
+ 24A201080F90D1DE003BB5A7 /* globals_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x67.html; sourceTree = "<group>"; };
+ 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6b.html; sourceTree = "<group>"; };
+ 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6d.html; sourceTree = "<group>"; };
+ 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6e.html; sourceTree = "<group>"; };
+ 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x6f.html; sourceTree = "<group>"; };
+ 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x71.html; sourceTree = "<group>"; };
+ 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x72.html; sourceTree = "<group>"; };
+ 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x73.html; sourceTree = "<group>"; };
+ 24A201100F90D1DE003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x74.html; sourceTree = "<group>"; };
+ 24A201110F90D1DE003BB5A7 /* globals_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x75.html; sourceTree = "<group>"; };
+ 24A201120F90D1DE003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x76.html; sourceTree = "<group>"; };
+ 24A201130F90D1DE003BB5A7 /* globals_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_0x77.html; sourceTree = "<group>"; };
+ 24A201140F90D1DE003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_defs.html; sourceTree = "<group>"; };
+ 24A201150F90D1DE003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_enum.html; sourceTree = "<group>"; };
+ 24A201160F90D1DE003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_eval.html; sourceTree = "<group>"; };
+ 24A201170F90D1DE003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_type.html; sourceTree = "<group>"; };
+ 24A201180F90D1DE003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = globals_vars.html; sourceTree = "<group>"; };
+ 24A201190F90D1DE003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = hierarchy.html; sourceTree = "<group>"; };
+ 24A2011A0F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = "<group>"; };
+ 24A2011B0F90D1DE003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = intro.html; sourceTree = "<group>"; };
+ 24A2011C0F90D1DE003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = license.html; sourceTree = "<group>"; };
+ 24A2011D0F90D1DE003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = maceditor.html; sourceTree = "<group>"; };
+ 24A2011E0F90D1DE003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = main.html; sourceTree = "<group>"; };
+ 24A2011F0F90D1DE003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = others.html; sourceTree = "<group>"; };
+ 24A201200F90D1DE003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = pages.html; sourceTree = "<group>"; };
+ 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8cpp.html; sourceTree = "<group>"; };
+ 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = plugguieditor_8h.html; sourceTree = "<group>"; };
+ 24A201230F90D1DE003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = sequences.html; sourceTree = "<group>"; };
+ 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_color-members.html"; sourceTree = "<group>"; };
+ 24A201250F90D1DE003BB5A7 /* struct_c_color.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_color.html; sourceTree = "<group>"; };
+ 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_point-members.html"; sourceTree = "<group>"; };
+ 24A201270F90D1DE003BB5A7 /* struct_c_point.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_point.html; sourceTree = "<group>"; };
+ 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_c_rect-members.html"; sourceTree = "<group>"; };
+ 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_c_rect.html; sourceTree = "<group>"; };
+ 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_e_rect-members.html"; sourceTree = "<group>"; };
+ 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_e_rect.html; sourceTree = "<group>"; };
+ 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_select-members.html"; sourceTree = "<group>"; };
+ 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_select.html; sourceTree = "<group>"; };
+ 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_file_type-members.html"; sourceTree = "<group>"; };
+ 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_file_type.html; sourceTree = "<group>"; };
+ 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = "struct_vst_key_code-members.html"; sourceTree = "<group>"; };
+ 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = struct_vst_key_code.html; sourceTree = "<group>"; };
+ 24A201320F90D1DE003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = "<group>"; };
+ 24A201330F90D1DE003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = "<group>"; };
+ 24A201340F90D1DE003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = "<group>"; };
+ 24A201350F90D1DE003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = "<group>"; };
+ 24A201360F90D1DE003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = thanks.html; sourceTree = "<group>"; };
+ 24A201370F90D1DE003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = tree.html; sourceTree = "<group>"; };
+ 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8cpp.html; sourceTree = "<group>"; };
+ 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstcontrols_8h.html; sourceTree = "<group>"; };
+ 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8cpp.html; sourceTree = "<group>"; };
+ 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstgui_8h.html; sourceTree = "<group>"; };
+ 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstkeycode_8h.html; sourceTree = "<group>"; };
+ 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstoffline.html; sourceTree = "<group>"; };
+ 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstparamstruct.html; sourceTree = "<group>"; };
+ 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugscarbon_8h.html; sourceTree = "<group>"; };
+ 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmac_8h.html; sourceTree = "<group>"; };
+ 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsmacho_8h.html; sourceTree = "<group>"; };
+ 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = vstplugsquartz_8h.html; sourceTree = "<group>"; };
+ 24A201430F90D1DE003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = whatsnew.html; sourceTree = "<group>"; };
+ 24A201440F90D1DE003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html.documentation; path = index.html; sourceTree = "<group>"; };
+ 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "Migrating from 2.3.rtf"; sourceTree = "<group>"; };
+ 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = plugguieditor.cpp; sourceTree = "<group>"; };
+ 24A201470F90D1DE003BB5A7 /* plugguieditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = plugguieditor.h; sourceTree = "<group>"; };
+ 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstcontrols.cpp; sourceTree = "<group>"; };
+ 24A201490F90D1DE003BB5A7 /* vstcontrols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstcontrols.h; sourceTree = "<group>"; };
+ 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstgui.cpp; sourceTree = "<group>"; };
+ 24A2014B0F90D1DE003BB5A7 /* vstgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstgui.h; sourceTree = "<group>"; };
+ 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstkeycode.h; sourceTree = "<group>"; };
+ 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugscarbon.h; sourceTree = "<group>"; };
+ 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmac.h; sourceTree = "<group>"; };
+ 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsmacho.h; sourceTree = "<group>"; };
+ 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstplugsquartz.h; sourceTree = "<group>"; };
+ 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */ = {isa = PBXFileReference; lastKnownFileType = file; path = Thumbs.db; sourceTree = "<group>"; };
+ 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; path = VST_Logo_Usage_Guideline.pdf; sourceTree = "<group>"; };
+ 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = VSTLogoAlpha.png; sourceTree = "<group>"; };
+ 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoBlack.jpg; sourceTree = "<group>"; };
+ 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = VSTLogoWhite.jpg; sourceTree = "<group>"; };
+ 24A2FEC60F90D1DC003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.bundle"; path = VSTMonitor; sourceTree = "<group>"; };
+ 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = PkgInfo; sourceTree = "<group>"; };
+ 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50000.bmp; sourceTree = "<group>"; };
+ 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50001.bmp; sourceTree = "<group>"; };
+ 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50002.bmp; sourceTree = "<group>"; };
+ 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50003.bmp; sourceTree = "<group>"; };
+ 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50004.bmp; sourceTree = "<group>"; };
+ 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50005.bmp; sourceTree = "<group>"; };
+ 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50006.bmp; sourceTree = "<group>"; };
+ 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50007.bmp; sourceTree = "<group>"; };
+ 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp50008.bmp; sourceTree = "<group>"; };
+ 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */ = {isa = PBXFileReference; lastKnownFileType = wrapper.application; path = VSTParamTool.app; sourceTree = "<group>"; };
+ 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstmonitor.dll; sourceTree = "<group>"; };
+ 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */ = {isa = PBXFileReference; lastKnownFileType = file; path = vstparamtool.exe; sourceTree = "<group>"; };
+ 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = folder.gif; sourceTree = "<group>"; };
+ 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = mac.gif; sourceTree = "<group>"; };
+ 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo_small.jpg; sourceTree = "<group>"; };
+ 24A2FEDD0F90D1DC003BB5A7 /* win.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = win.gif; sourceTree = "<group>"; };
+ 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffect_8h.html; sourceTree = "<group>"; };
+ 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffectx_8h.html; sourceTree = "<group>"; };
+ 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = aeffeditor_8h.html; sourceTree = "<group>"; };
+ 24A2FEE20F90D1DC003BB5A7 /* annotated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = annotated.html; sourceTree = "<group>"; };
+ 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8cpp.html; sourceTree = "<group>"; };
+ 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffect_8h.html; sourceTree = "<group>"; };
+ 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8cpp.html; sourceTree = "<group>"; };
+ 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = audioeffectx_8h.html; sourceTree = "<group>"; };
+ 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Blocksizechange.gif; sourceTree = "<group>"; };
+ 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_a_eff_editor-members.html"; sourceTree = "<group>"; };
+ 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_a_eff_editor.html; sourceTree = "<group>"; };
+ 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect-members.html"; sourceTree = "<group>"; };
+ 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect.html; sourceTree = "<group>"; };
+ 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect.png; sourceTree = "<group>"; };
+ 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "class_audio_effect_x-members.html"; sourceTree = "<group>"; };
+ 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = class_audio_effect_x.html; sourceTree = "<group>"; };
+ 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = class_audio_effect_x.png; sourceTree = "<group>"; };
+ 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = ControlChanged.gif; sourceTree = "<group>"; };
+ 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = deprecated.html; sourceTree = "<group>"; };
+ 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_2d3252dd12c84c66c1d25b26bb45a1f5.html; sourceTree = "<group>"; };
+ 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_77c628dfee72e555f82d5ef53b733f38.html; sourceTree = "<group>"; };
+ 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_f81105d3b854bea570aaf3bae5cb64c1.html; sourceTree = "<group>"; };
+ 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dir_fa0454ab79b4262333bf837ea3d765e9.html; sourceTree = "<group>"; };
+ 24A2FEF60F90D1DC003BB5A7 /* dirs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = dirs.html; sourceTree = "<group>"; };
+ 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = doc_8h.html; sourceTree = "<group>"; };
+ 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = doxygen.css; sourceTree = "<group>"; };
+ 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = doxygen.png; sourceTree = "<group>"; };
+ 24A2FEFA0F90D1DC003BB5A7 /* files.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = files.html; sourceTree = "<group>"; };
+ 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2blank.png; sourceTree = "<group>"; };
+ 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2doc.png; sourceTree = "<group>"; };
+ 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderclosed.png; sourceTree = "<group>"; };
+ 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2folderopen.png; sourceTree = "<group>"; };
+ 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2lastnode.png; sourceTree = "<group>"; };
+ 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2link.png; sourceTree = "<group>"; };
+ 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mlastnode.png; sourceTree = "<group>"; };
+ 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2mnode.png; sourceTree = "<group>"; };
+ 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2node.png; sourceTree = "<group>"; };
+ 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2plastnode.png; sourceTree = "<group>"; };
+ 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2pnode.png; sourceTree = "<group>"; };
+ 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = ftv2vertline.png; sourceTree = "<group>"; };
+ 24A2FF070F90D1DC003BB5A7 /* functions.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions.html; sourceTree = "<group>"; };
+ 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x62.html; sourceTree = "<group>"; };
+ 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x63.html; sourceTree = "<group>"; };
+ 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x64.html; sourceTree = "<group>"; };
+ 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x65.html; sourceTree = "<group>"; };
+ 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x66.html; sourceTree = "<group>"; };
+ 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x67.html; sourceTree = "<group>"; };
+ 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x68.html; sourceTree = "<group>"; };
+ 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x69.html; sourceTree = "<group>"; };
+ 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6c.html; sourceTree = "<group>"; };
+ 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6e.html; sourceTree = "<group>"; };
+ 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x6f.html; sourceTree = "<group>"; };
+ 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x70.html; sourceTree = "<group>"; };
+ 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x72.html; sourceTree = "<group>"; };
+ 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x73.html; sourceTree = "<group>"; };
+ 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x74.html; sourceTree = "<group>"; };
+ 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x75.html; sourceTree = "<group>"; };
+ 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x76.html; sourceTree = "<group>"; };
+ 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x77.html; sourceTree = "<group>"; };
+ 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x78.html; sourceTree = "<group>"; };
+ 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x79.html; sourceTree = "<group>"; };
+ 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_0x7e.html; sourceTree = "<group>"; };
+ 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_func.html; sourceTree = "<group>"; };
+ 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = functions_vars.html; sourceTree = "<group>"; };
+ 24A2FF210F90D1DC003BB5A7 /* globals.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals.html; sourceTree = "<group>"; };
+ 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x62.html; sourceTree = "<group>"; };
+ 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x63.html; sourceTree = "<group>"; };
+ 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x64.html; sourceTree = "<group>"; };
+ 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x65.html; sourceTree = "<group>"; };
+ 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x66.html; sourceTree = "<group>"; };
+ 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x74.html; sourceTree = "<group>"; };
+ 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_0x76.html; sourceTree = "<group>"; };
+ 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_defs.html; sourceTree = "<group>"; };
+ 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_enum.html; sourceTree = "<group>"; };
+ 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval.html; sourceTree = "<group>"; };
+ 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x65.html; sourceTree = "<group>"; };
+ 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6b.html; sourceTree = "<group>"; };
+ 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x6d.html; sourceTree = "<group>"; };
+ 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_eval_0x76.html; sourceTree = "<group>"; };
+ 24A2FF320F90D1DC003BB5A7 /* globals_func.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_func.html; sourceTree = "<group>"; };
+ 24A2FF330F90D1DC003BB5A7 /* globals_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_type.html; sourceTree = "<group>"; };
+ 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = globals_vars.html; sourceTree = "<group>"; };
+ 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = hierarchy.html; sourceTree = "<group>"; };
+ 24A2FF360F90D1DC003BB5A7 /* history.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = history.html; sourceTree = "<group>"; };
+ 24A2FF370F90D1DC003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
+ 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Initialisation.gif; sourceTree = "<group>"; };
+ 24A2FF390F90D1DC003BB5A7 /* intro.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = intro.html; sourceTree = "<group>"; };
+ 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = IOchange.gif; sourceTree = "<group>"; };
+ 24A2FF3B0F90D1DC003BB5A7 /* license.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = license.html; sourceTree = "<group>"; };
+ 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = maceditor.html; sourceTree = "<group>"; };
+ 24A2FF3D0F90D1DC003BB5A7 /* main.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = main.html; sourceTree = "<group>"; };
+ 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_host_can_dos.html; sourceTree = "<group>"; };
+ 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespace_plug_can_dos.html; sourceTree = "<group>"; };
+ 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers.html; sourceTree = "<group>"; };
+ 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespacemembers_vars.html; sourceTree = "<group>"; };
+ 24A2FF420F90D1DC003BB5A7 /* namespaces.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = namespaces.html; sourceTree = "<group>"; };
+ 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Offlineprocessing.gif; sourceTree = "<group>"; };
+ 24A2FF440F90D1DC003BB5A7 /* others.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = others.html; sourceTree = "<group>"; };
+ 24A2FF450F90D1DC003BB5A7 /* pages.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = pages.html; sourceTree = "<group>"; };
+ 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Sampleratechange.gif; sourceTree = "<group>"; };
+ 24A2FF470F90D1DC003BB5A7 /* sequences.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sequences.html; sourceTree = "<group>"; };
+ 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = SpeakerarrangementnegotiationforVSTfx.gif; sourceTree = "<group>"; };
+ 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_a_effect-members.html"; sourceTree = "<group>"; };
+ 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_a_effect.html; sourceTree = "<group>"; };
+ 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_e_rect-members.html"; sourceTree = "<group>"; };
+ 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_e_rect.html; sourceTree = "<group>"; };
+ 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_key_name-members.html"; sourceTree = "<group>"; };
+ 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_key_name.html; sourceTree = "<group>"; };
+ 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_category-members.html"; sourceTree = "<group>"; };
+ 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_category.html; sourceTree = "<group>"; };
+ 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_midi_program_name-members.html"; sourceTree = "<group>"; };
+ 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_midi_program_name.html; sourceTree = "<group>"; };
+ 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file-members.html"; sourceTree = "<group>"; };
+ 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file.html; sourceTree = "<group>"; };
+ 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_audio_file_marker-members.html"; sourceTree = "<group>"; };
+ 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_audio_file_marker.html; sourceTree = "<group>"; };
+ 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_event.html; sourceTree = "<group>"; };
+ 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_events-members.html"; sourceTree = "<group>"; };
+ 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_events.html; sourceTree = "<group>"; };
+ 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_select-members.html"; sourceTree = "<group>"; };
+ 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_select.html; sourceTree = "<group>"; };
+ 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_file_type-members.html"; sourceTree = "<group>"; };
+ 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_file_type.html; sourceTree = "<group>"; };
+ 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_key_code-members.html"; sourceTree = "<group>"; };
+ 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_key_code.html; sourceTree = "<group>"; };
+ 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_event.html; sourceTree = "<group>"; };
+ 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_midi_sysex_event-members.html"; sourceTree = "<group>"; };
+ 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_midi_sysex_event.html; sourceTree = "<group>"; };
+ 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_offline_task-members.html"; sourceTree = "<group>"; };
+ 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_offline_task.html; sourceTree = "<group>"; };
+ 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_parameter_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_parameter_properties.html; sourceTree = "<group>"; };
+ 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_patch_chunk_info-members.html"; sourceTree = "<group>"; };
+ 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_patch_chunk_info.html; sourceTree = "<group>"; };
+ 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_pin_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_pin_properties.html; sourceTree = "<group>"; };
+ 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_arrangement-members.html"; sourceTree = "<group>"; };
+ 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_arrangement.html; sourceTree = "<group>"; };
+ 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_speaker_properties-members.html"; sourceTree = "<group>"; };
+ 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_speaker_properties.html; sourceTree = "<group>"; };
+ 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_time_info-members.html"; sourceTree = "<group>"; };
+ 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_time_info.html; sourceTree = "<group>"; };
+ 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_variable_io-members.html"; sourceTree = "<group>"; };
+ 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_variable_io.html; sourceTree = "<group>"; };
+ 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "struct_vst_window-members.html"; sourceTree = "<group>"; };
+ 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = struct_vst_window.html; sourceTree = "<group>"; };
+ 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_bank-members.html"; sourceTree = "<group>"; };
+ 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_bank.html; sourceTree = "<group>"; };
+ 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "structfx_program-members.html"; sourceTree = "<group>"; };
+ 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = structfx_program.html; sourceTree = "<group>"; };
+ 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_b.gif; sourceTree = "<group>"; };
+ 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_l.gif; sourceTree = "<group>"; };
+ 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = tab_r.gif; sourceTree = "<group>"; };
+ 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = tabs.css; sourceTree = "<group>"; };
+ 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = Termination.gif; sourceTree = "<group>"; };
+ 24A2FF800F90D1DD003BB5A7 /* thanks.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = thanks.html; sourceTree = "<group>"; };
+ 24A2FF810F90D1DD003BB5A7 /* tree.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = tree.html; sourceTree = "<group>"; };
+ 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOff.gif; sourceTree = "<group>"; };
+ 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */ = {isa = PBXFileReference; lastKnownFileType = image.gif; path = TurnOn.gif; sourceTree = "<group>"; };
+ 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstfxstore_8h.html; sourceTree = "<group>"; };
+ 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstoffline.html; sourceTree = "<group>"; };
+ 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstparamstruct.html; sourceTree = "<group>"; };
+ 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = vstpluglogo.jpg; sourceTree = "<group>"; };
+ 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = vstplugmain_8cpp.html; sourceTree = "<group>"; };
+ 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = whatsnew.html; sourceTree = "<group>"; };
+ 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.menu.html; sourceTree = "<group>"; };
+ 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = sdk.overview.html; sourceTree = "<group>"; };
+ 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.css; path = sdkdoc.css; sourceTree = "<group>"; };
+ 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = "VST Licensing Agreement.rtf"; sourceTree = "<group>"; };
+ 24A2FF8E0F90D1DD003BB5A7 /* index.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = index.html; sourceTree = "<group>"; };
+ 24A2FF910F90D1DD003BB5A7 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
+ 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
+ 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
+ 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelay.cpp; sourceTree = "<group>"; };
+ 24A2FF990F90D1DD003BB5A7 /* adelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = adelay.h; sourceTree = "<group>"; };
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = adelaymain.cpp; sourceTree = "<group>"; };
+ 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00128.bmp; sourceTree = "<group>"; };
+ 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00129.bmp; sourceTree = "<group>"; };
+ 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp00130.bmp; sourceTree = "<group>"; };
+ 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.rc; sourceTree = "<group>"; };
+ 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = sdeditor.cpp; sourceTree = "<group>"; };
+ 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = sdeditor.h; sourceTree = "<group>"; };
+ 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = surrounddelay.cpp; sourceTree = "<group>"; };
+ 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = surrounddelay.h; sourceTree = "<group>"; };
+ 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = again.cpp; sourceTree = "<group>"; };
+ 24A2FFAB0F90D1DD003BB5A7 /* again.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = again.h; sourceTree = "<group>"; };
+ 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = "<group>"; };
+ 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "minihost-Info.plist"; sourceTree = "<group>"; };
+ 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "vst 2.4 examples.xcodeproj"; sourceTree = "<group>"; };
+ 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = vst2.4Info.plist; sourceTree = "<group>"; };
+ 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minieditor.cpp; sourceTree = "<group>"; };
+ 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = minihost.cpp; sourceTree = "<group>"; };
+ 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = "<group>"; };
+ 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.rc; sourceTree = "<group>"; };
+ 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.vstxml; sourceTree = "<group>"; };
+ 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = gmnames.h; sourceTree = "<group>"; };
+ 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynth.cpp; sourceTree = "<group>"; };
+ 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstxsynth.h; sourceTree = "<group>"; };
+ 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstxsynthproc.cpp; sourceTree = "<group>"; };
+ 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = "<group>"; };
+ 24A2FFC60F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = "<group>"; };
+ 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstplug.def; sourceTree = "<group>"; };
+ 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = adelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = again.vcproj; sourceTree = "<group>"; };
+ 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = minihost.vcproj; sourceTree = "<group>"; };
+ 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.sln; sourceTree = "<group>"; };
+ 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = surrounddelay.vcproj; sourceTree = "<group>"; };
+ 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = vstxsynth.vcproj; sourceTree = "<group>"; };
+ 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = adelay.dsp; sourceTree = "<group>"; };
+ 24A2FFD10F90D1DD003BB5A7 /* again.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = again.dsp; sourceTree = "<group>"; };
+ 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = minihost.dsp; sourceTree = "<group>"; };
+ 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = samples.dsw; sourceTree = "<group>"; };
+ 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = surrounddelay.dsp; sourceTree = "<group>"; };
+ 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vstxsynth.dsp; sourceTree = "<group>"; };
+ 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
+ 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
+ 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
+ 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
+ 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
+ 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.exports; path = audiounit.exp; sourceTree = "<group>"; };
+ 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = "cw_vst_prefix.pch++"; sourceTree = "<group>"; };
+ 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */ = {isa = PBXFileReference; lastKnownFileType = file; path = drawtest.cw9prj; sourceTree = "<group>"; };
+ 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = drawtest.plc; sourceTree = "<group>"; };
+ 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcode; sourceTree = "<group>"; };
+ 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = drawtest.xcodeproj; sourceTree = "<group>"; };
+ 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+ 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_au_prefix.h; sourceTree = "<group>"; };
+ 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = xcode_vst_prefix.h; sourceTree = "<group>"; };
+ 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = audiounit.r; sourceTree = "<group>"; };
+ 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00001.png; sourceTree = "<group>"; };
+ 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp00100.png; sourceTree = "<group>"; };
+ 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bmp01000.png; sourceTree = "<group>"; };
+ 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10001.bmp; sourceTree = "<group>"; };
+ 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10002.bmp; sourceTree = "<group>"; };
+ 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10003.bmp; sourceTree = "<group>"; };
+ 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10004.bmp; sourceTree = "<group>"; };
+ 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10005.bmp; sourceTree = "<group>"; };
+ 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10006.bmp; sourceTree = "<group>"; };
+ 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10007.bmp; sourceTree = "<group>"; };
+ 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10008.bmp; sourceTree = "<group>"; };
+ 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10009.bmp; sourceTree = "<group>"; };
+ 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10010.bmp; sourceTree = "<group>"; };
+ 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10011.bmp; sourceTree = "<group>"; };
+ 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10012.bmp; sourceTree = "<group>"; };
+ 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */ = {isa = PBXFileReference; lastKnownFileType = image.bmp; path = bmp10013.bmp; sourceTree = "<group>"; };
+ 24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
+ 24D8286F09A914000093AEF8 /* CrystalProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CrystalProc.cpp; path = source/CrystalProc.cpp; sourceTree = "<group>"; };
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXGroup section */
+ 089C166AFE841209C02AAC07 /* FM-Chopper */ = {
+ isa = PBXGroup;
+ children = (
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
+ 19C28FB4FE9D528D11CA2CBB /* Products */,
+ 089C167CFE841241C02AAC07 /* Resources */,
+ 08FB77ADFE841716C02AAC07 /* Source */,
+ 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */,
+ );
+ name = "FM-Chopper";
+ sourceTree = "<group>";
+ };
+ 089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
+ isa = PBXGroup;
+ children = (
+ 2434720A098313350063BBF1 /* QuickTime.framework */,
+ 08EA7FFBFE8413EDC02AAC07 /* Carbon.framework */,
+ );
+ name = "External Frameworks and Libraries";
+ sourceTree = "<group>";
+ };
+ 089C167CFE841241C02AAC07 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
+ 24CFB70307E7A0220081BD57 /* PkgInfo */,
+ 8D01CCD10486CAD60068D4B7 /* Info.plist */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ 08FB77ADFE841716C02AAC07 /* Source */ = {
+ isa = PBXGroup;
+ children = (
+ 2407DEB6089929BA00EB68BF /* Crystal.cpp */,
+ 24D8286F09A914000093AEF8 /* CrystalProc.cpp */,
+ 245463B80991757100464AD3 /* Crystal.h */,
+ );
+ name = Source;
+ sourceTree = "<group>";
+ };
+ 19C28FB4FE9D528D11CA2CBB /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 2407DE920899296600EB68BF /* Crystal.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A200030F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200040F90D1DD003BB5A7 /* controlsgui.cpp */,
+ 24A200050F90D1DD003BB5A7 /* controlsgui.h */,
+ 24A200060F90D1DD003BB5A7 /* pdrawtesteditor.cpp */,
+ 24A200070F90D1DD003BB5A7 /* pdrawtesteditor.h */,
+ 24A200080F90D1DD003BB5A7 /* pdrawtesteffect.cpp */,
+ 24A200090F90D1DD003BB5A7 /* pdrawtesteffect.h */,
+ 24A2000A0F90D1DD003BB5A7 /* pdrawtestmain.cpp */,
+ 24A2000B0F90D1DD003BB5A7 /* pdrawtestview.cpp */,
+ 24A2000C0F90D1DD003BB5A7 /* pdrawtestview.h */,
+ 24A2000D0F90D1DD003BB5A7 /* pprimitivesviews.cpp */,
+ 24A2000E0F90D1DD003BB5A7 /* pprimitivesviews.h */,
+ );
+ name = source;
+ path = /vstsdk2.4/vstgui.sf/drawtest/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2000F0F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200100F90D1DD003BB5A7 /* drawtest.def */,
+ 24A200110F90D1DD003BB5A7 /* drawtest.rc */,
+ 24A200120F90D1DD003BB5A7 /* drawtest.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/vstgui.sf/drawtest/win;
+ sourceTree = "<absolute>";
+ };
+ 24A200130F90D1DD003BB5A7 /* win.vc6 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200140F90D1DD003BB5A7 /* drawtest.dsp */,
+ 24A200150F90D1DD003BB5A7 /* drawtest.dsw */,
+ );
+ name = win.vc6;
+ path = /vstsdk2.4/vstgui.sf/drawtest/win.vc6;
+ sourceTree = "<absolute>";
+ };
+ 24A200160F90D1DD003BB5A7 /* vstgui */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200170F90D1DD003BB5A7 /* aeffguieditor.cpp */,
+ 24A200180F90D1DD003BB5A7 /* aeffguieditor.h */,
+ 24A200190F90D1DD003BB5A7 /* cfileselector.cpp */,
+ 24A2001A0F90D1DD003BB5A7 /* cfileselector.h */,
+ 24A2001B0F90D1DD003BB5A7 /* Changelog */,
+ 24A2001C0F90D1DD003BB5A7 /* cscrollview.cpp */,
+ 24A2001D0F90D1DD003BB5A7 /* cscrollview.h */,
+ 24A2001E0F90D1DD003BB5A7 /* ctabview.cpp */,
+ 24A2001F0F90D1DD003BB5A7 /* ctabview.h */,
+ 24A200200F90D1DD003BB5A7 /* Documentation */,
+ 24A201460F90D1DE003BB5A7 /* plugguieditor.cpp */,
+ 24A201470F90D1DE003BB5A7 /* plugguieditor.h */,
+ 24A201480F90D1DE003BB5A7 /* vstcontrols.cpp */,
+ 24A201490F90D1DE003BB5A7 /* vstcontrols.h */,
+ 24A2014A0F90D1DE003BB5A7 /* vstgui.cpp */,
+ 24A2014B0F90D1DE003BB5A7 /* vstgui.h */,
+ 24A2014C0F90D1DE003BB5A7 /* vstkeycode.h */,
+ 24A2014D0F90D1DE003BB5A7 /* vstplugscarbon.h */,
+ 24A2014E0F90D1DE003BB5A7 /* vstplugsmac.h */,
+ 24A2014F0F90D1DE003BB5A7 /* vstplugsmacho.h */,
+ 24A201500F90D1DE003BB5A7 /* vstplugsquartz.h */,
+ );
+ name = vstgui;
+ path = /vstsdk2.4/vstgui.sf/vstgui;
+ sourceTree = "<absolute>";
+ };
+ 24A200200F90D1DD003BB5A7 /* Documentation */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200210F90D1DD003BB5A7 /* html */,
+ 24A201440F90D1DE003BB5A7 /* index.html */,
+ 24A201450F90D1DE003BB5A7 /* Migrating from 2.3.rtf */,
+ );
+ name = Documentation;
+ path = /vstsdk2.4/vstgui.sf/vstgui/Documentation;
+ sourceTree = "<absolute>";
+ };
+ 24A200210F90D1DD003BB5A7 /* html */ = {
+ isa = PBXGroup;
+ children = (
+ 24A200220F90D1DD003BB5A7 /* aeffguieditor_8cpp.html */,
+ 24A200230F90D1DD003BB5A7 /* aeffguieditor_8h.html */,
+ 24A200240F90D1DD003BB5A7 /* annotated.html */,
+ 24A200250F90D1DD003BB5A7 /* cfileselector_8cpp.html */,
+ 24A200260F90D1DD003BB5A7 /* cfileselector_8h.html */,
+ 24A200270F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor-members.html */,
+ 24A200280F90D1DD003BB5A7 /* class_a_eff_g_u_i_editor.html */,
+ 24A200290F90D1DD003BB5A7 /* class_c_anim_knob-members.html */,
+ 24A2002A0F90D1DD003BB5A7 /* class_c_anim_knob.html */,
+ 24A2002B0F90D1DD003BB5A7 /* class_c_anim_knob.png */,
+ 24A2002C0F90D1DD003BB5A7 /* class_c_attribute_list_entry-members.html */,
+ 24A2002D0F90D1DD003BB5A7 /* class_c_attribute_list_entry.html */,
+ 24A2002E0F90D1DD003BB5A7 /* class_c_auto_animation-members.html */,
+ 24A2002F0F90D1DD003BB5A7 /* class_c_auto_animation.html */,
+ 24A200300F90D1DD003BB5A7 /* class_c_auto_animation.png */,
+ 24A200310F90D1DD003BB5A7 /* class_c_bitmap-members.html */,
+ 24A200320F90D1DD003BB5A7 /* class_c_bitmap.html */,
+ 24A200330F90D1DD003BB5A7 /* class_c_bitmap.png */,
+ 24A200340F90D1DD003BB5A7 /* class_c_c_view-members.html */,
+ 24A200350F90D1DD003BB5A7 /* class_c_c_view.html */,
+ 24A200360F90D1DD003BB5A7 /* class_c_control-members.html */,
+ 24A200370F90D1DD003BB5A7 /* class_c_control.html */,
+ 24A200380F90D1DD003BB5A7 /* class_c_control.png */,
+ 24A200390F90D1DD003BB5A7 /* class_c_control_listener-members.html */,
+ 24A2003A0F90D1DD003BB5A7 /* class_c_control_listener.html */,
+ 24A2003B0F90D1DD003BB5A7 /* class_c_control_listener.png */,
+ 24A2003C0F90D1DD003BB5A7 /* class_c_drag_container-members.html */,
+ 24A2003D0F90D1DD003BB5A7 /* class_c_drag_container.html */,
+ 24A2003E0F90D1DD003BB5A7 /* class_c_drag_container.png */,
+ 24A2003F0F90D1DD003BB5A7 /* class_c_draw_context-members.html */,
+ 24A200400F90D1DD003BB5A7 /* class_c_draw_context.html */,
+ 24A200410F90D1DD003BB5A7 /* class_c_draw_context.png */,
+ 24A200420F90D1DD003BB5A7 /* class_c_file_selector-members.html */,
+ 24A200430F90D1DD003BB5A7 /* class_c_file_selector.html */,
+ 24A200440F90D1DD003BB5A7 /* class_c_frame-members.html */,
+ 24A200450F90D1DD003BB5A7 /* class_c_frame.html */,
+ 24A200460F90D1DD003BB5A7 /* class_c_frame.png */,
+ 24A200470F90D1DD003BB5A7 /* class_c_horizontal_slider-members.html */,
+ 24A200480F90D1DD003BB5A7 /* class_c_horizontal_slider.html */,
+ 24A200490F90D1DD003BB5A7 /* class_c_horizontal_slider.png */,
+ 24A2004A0F90D1DD003BB5A7 /* class_c_horizontal_switch-members.html */,
+ 24A2004B0F90D1DD003BB5A7 /* class_c_horizontal_switch.html */,
+ 24A2004C0F90D1DD003BB5A7 /* class_c_horizontal_switch.png */,
+ 24A2004D0F90D1DD003BB5A7 /* class_c_kick_button-members.html */,
+ 24A2004E0F90D1DD003BB5A7 /* class_c_kick_button.html */,
+ 24A2004F0F90D1DD003BB5A7 /* class_c_kick_button.png */,
+ 24A200500F90D1DD003BB5A7 /* class_c_knob-members.html */,
+ 24A200510F90D1DD003BB5A7 /* class_c_knob.html */,
+ 24A200520F90D1DD003BB5A7 /* class_c_knob.png */,
+ 24A200530F90D1DD003BB5A7 /* class_c_movie_bitmap-members.html */,
+ 24A200540F90D1DD003BB5A7 /* class_c_movie_bitmap.html */,
+ 24A200550F90D1DD003BB5A7 /* class_c_movie_bitmap.png */,
+ 24A200560F90D1DD003BB5A7 /* class_c_movie_button-members.html */,
+ 24A200570F90D1DD003BB5A7 /* class_c_movie_button.html */,
+ 24A200580F90D1DD003BB5A7 /* class_c_movie_button.png */,
+ 24A200590F90D1DD003BB5A7 /* class_c_offscreen_context-members.html */,
+ 24A2005A0F90D1DD003BB5A7 /* class_c_offscreen_context.html */,
+ 24A2005B0F90D1DD003BB5A7 /* class_c_offscreen_context.png */,
+ 24A2005C0F90D1DD003BB5A7 /* class_c_on_off_button-members.html */,
+ 24A2005D0F90D1DD003BB5A7 /* class_c_on_off_button.html */,
+ 24A2005E0F90D1DD003BB5A7 /* class_c_on_off_button.png */,
+ 24A2005F0F90D1DD003BB5A7 /* class_c_option_menu-members.html */,
+ 24A200600F90D1DD003BB5A7 /* class_c_option_menu.html */,
+ 24A200610F90D1DD003BB5A7 /* class_c_option_menu.png */,
+ 24A200620F90D1DD003BB5A7 /* class_c_option_menu_scheme-members.html */,
+ 24A200630F90D1DD003BB5A7 /* class_c_option_menu_scheme.html */,
+ 24A200640F90D1DD003BB5A7 /* class_c_option_menu_scheme.png */,
+ 24A200650F90D1DD003BB5A7 /* class_c_param_display-members.html */,
+ 24A200660F90D1DD003BB5A7 /* class_c_param_display.html */,
+ 24A200670F90D1DD003BB5A7 /* class_c_param_display.png */,
+ 24A200680F90D1DD003BB5A7 /* class_c_reference_counter-members.html */,
+ 24A200690F90D1DD003BB5A7 /* class_c_reference_counter.html */,
+ 24A2006A0F90D1DD003BB5A7 /* class_c_reference_counter.png */,
+ 24A2006B0F90D1DD003BB5A7 /* class_c_rocker_switch-members.html */,
+ 24A2006C0F90D1DD003BB5A7 /* class_c_rocker_switch.html */,
+ 24A2006D0F90D1DD003BB5A7 /* class_c_rocker_switch.png */,
+ 24A2006E0F90D1DD003BB5A7 /* class_c_scroll_container-members.html */,
+ 24A2006F0F90D1DD003BB5A7 /* class_c_scroll_container.html */,
+ 24A200700F90D1DD003BB5A7 /* class_c_scroll_container.png */,
+ 24A200710F90D1DD003BB5A7 /* class_c_scroll_view-members.html */,
+ 24A200720F90D1DD003BB5A7 /* class_c_scroll_view.html */,
+ 24A200730F90D1DD003BB5A7 /* class_c_scroll_view.png */,
+ 24A200740F90D1DD003BB5A7 /* class_c_scrollbar-members.html */,
+ 24A200750F90D1DD003BB5A7 /* class_c_scrollbar.html */,
+ 24A200760F90D1DD003BB5A7 /* class_c_scrollbar.png */,
+ 24A200770F90D1DD003BB5A7 /* class_c_slider-members.html */,
+ 24A200780F90D1DD003BB5A7 /* class_c_slider.html */,
+ 24A200790F90D1DD003BB5A7 /* class_c_slider.png */,
+ 24A2007A0F90D1DD003BB5A7 /* class_c_special_digit-members.html */,
+ 24A2007B0F90D1DD003BB5A7 /* class_c_special_digit.html */,
+ 24A2007C0F90D1DD003BB5A7 /* class_c_special_digit.png */,
+ 24A2007D0F90D1DD003BB5A7 /* class_c_splash_screen-members.html */,
+ 24A2007E0F90D1DD003BB5A7 /* class_c_splash_screen.html */,
+ 24A2007F0F90D1DD003BB5A7 /* class_c_splash_screen.png */,
+ 24A200800F90D1DD003BB5A7 /* class_c_splash_screen_view-members.html */,
+ 24A200810F90D1DD003BB5A7 /* class_c_splash_screen_view.html */,
+ 24A200820F90D1DD003BB5A7 /* class_c_splash_screen_view.png */,
+ 24A200830F90D1DD003BB5A7 /* class_c_tab_button-members.html */,
+ 24A200840F90D1DD003BB5A7 /* class_c_tab_button.html */,
+ 24A200850F90D1DD003BB5A7 /* class_c_tab_button.png */,
+ 24A200860F90D1DD003BB5A7 /* class_c_tab_child_view-members.html */,
+ 24A200870F90D1DD003BB5A7 /* class_c_tab_child_view.html */,
+ 24A200880F90D1DD003BB5A7 /* class_c_tab_child_view.png */,
+ 24A200890F90D1DD003BB5A7 /* class_c_tab_view-members.html */,
+ 24A2008A0F90D1DD003BB5A7 /* class_c_tab_view.html */,
+ 24A2008B0F90D1DD003BB5A7 /* class_c_tab_view.png */,
+ 24A2008C0F90D1DD003BB5A7 /* class_c_text_edit-members.html */,
+ 24A2008D0F90D1DD003BB5A7 /* class_c_text_edit.html */,
+ 24A2008E0F90D1DD003BB5A7 /* class_c_text_edit.png */,
+ 24A2008F0F90D1DD003BB5A7 /* class_c_text_label-members.html */,
+ 24A200900F90D1DD003BB5A7 /* class_c_text_label.html */,
+ 24A200910F90D1DD003BB5A7 /* class_c_text_label.png */,
+ 24A200920F90D1DD003BB5A7 /* class_c_vertical_slider-members.html */,
+ 24A200930F90D1DD003BB5A7 /* class_c_vertical_slider.html */,
+ 24A200940F90D1DD003BB5A7 /* class_c_vertical_slider.png */,
+ 24A200950F90D1DD003BB5A7 /* class_c_vertical_switch-members.html */,
+ 24A200960F90D1DD003BB5A7 /* class_c_vertical_switch.html */,
+ 24A200970F90D1DD003BB5A7 /* class_c_vertical_switch.png */,
+ 24A200980F90D1DD003BB5A7 /* class_c_view-members.html */,
+ 24A200990F90D1DD003BB5A7 /* class_c_view.html */,
+ 24A2009A0F90D1DD003BB5A7 /* class_c_view.png */,
+ 24A2009B0F90D1DD003BB5A7 /* class_c_view_container-members.html */,
+ 24A2009C0F90D1DD003BB5A7 /* class_c_view_container.html */,
+ 24A2009D0F90D1DD003BB5A7 /* class_c_view_container.png */,
+ 24A2009E0F90D1DD003BB5A7 /* class_c_vu_meter-members.html */,
+ 24A2009F0F90D1DD003BB5A7 /* class_c_vu_meter.html */,
+ 24A200A00F90D1DD003BB5A7 /* class_c_vu_meter.png */,
+ 24A200A10F90D1DD003BB5A7 /* class_i_scrollbar_drawer-members.html */,
+ 24A200A20F90D1DD003BB5A7 /* class_i_scrollbar_drawer.html */,
+ 24A200A30F90D1DD003BB5A7 /* class_plugin_g_u_i_editor-members.html */,
+ 24A200A40F90D1DD003BB5A7 /* class_plugin_g_u_i_editor.html */,
+ 24A200A50F90D1DD003BB5A7 /* cscrollview_8cpp.html */,
+ 24A200A60F90D1DD003BB5A7 /* cscrollview_8h.html */,
+ 24A200A70F90D1DD003BB5A7 /* ctabview_8cpp.html */,
+ 24A200A80F90D1DD003BB5A7 /* ctabview_8h.html */,
+ 24A200A90F90D1DD003BB5A7 /* deprecated.html */,
+ 24A200AA0F90D1DD003BB5A7 /* doc_8h.html */,
+ 24A200AB0F90D1DD003BB5A7 /* doxygen.css */,
+ 24A200AC0F90D1DD003BB5A7 /* doxygen.png */,
+ 24A200AD0F90D1DD003BB5A7 /* files.html */,
+ 24A200AE0F90D1DD003BB5A7 /* ftv2blank.png */,
+ 24A200AF0F90D1DD003BB5A7 /* ftv2doc.png */,
+ 24A200B00F90D1DD003BB5A7 /* ftv2folderclosed.png */,
+ 24A200B10F90D1DE003BB5A7 /* ftv2folderopen.png */,
+ 24A200B20F90D1DE003BB5A7 /* ftv2lastnode.png */,
+ 24A200B30F90D1DE003BB5A7 /* ftv2link.png */,
+ 24A200B40F90D1DE003BB5A7 /* ftv2mlastnode.png */,
+ 24A200B50F90D1DE003BB5A7 /* ftv2mnode.png */,
+ 24A200B60F90D1DE003BB5A7 /* ftv2node.png */,
+ 24A200B70F90D1DE003BB5A7 /* ftv2plastnode.png */,
+ 24A200B80F90D1DE003BB5A7 /* ftv2pnode.png */,
+ 24A200B90F90D1DE003BB5A7 /* ftv2vertline.png */,
+ 24A200BA0F90D1DE003BB5A7 /* functions.html */,
+ 24A200BB0F90D1DE003BB5A7 /* functions_0x62.html */,
+ 24A200BC0F90D1DE003BB5A7 /* functions_0x63.html */,
+ 24A200BD0F90D1DE003BB5A7 /* functions_0x64.html */,
+ 24A200BE0F90D1DE003BB5A7 /* functions_0x65.html */,
+ 24A200BF0F90D1DE003BB5A7 /* functions_0x66.html */,
+ 24A200C00F90D1DE003BB5A7 /* functions_0x67.html */,
+ 24A200C10F90D1DE003BB5A7 /* functions_0x68.html */,
+ 24A200C20F90D1DE003BB5A7 /* functions_0x69.html */,
+ 24A200C30F90D1DE003BB5A7 /* functions_0x6b.html */,
+ 24A200C40F90D1DE003BB5A7 /* functions_0x6c.html */,
+ 24A200C50F90D1DE003BB5A7 /* functions_0x6d.html */,
+ 24A200C60F90D1DE003BB5A7 /* functions_0x6e.html */,
+ 24A200C70F90D1DE003BB5A7 /* functions_0x6f.html */,
+ 24A200C80F90D1DE003BB5A7 /* functions_0x70.html */,
+ 24A200C90F90D1DE003BB5A7 /* functions_0x72.html */,
+ 24A200CA0F90D1DE003BB5A7 /* functions_0x73.html */,
+ 24A200CB0F90D1DE003BB5A7 /* functions_0x74.html */,
+ 24A200CC0F90D1DE003BB5A7 /* functions_0x75.html */,
+ 24A200CD0F90D1DE003BB5A7 /* functions_0x76.html */,
+ 24A200CE0F90D1DE003BB5A7 /* functions_0x77.html */,
+ 24A200CF0F90D1DE003BB5A7 /* functions_0x78.html */,
+ 24A200D00F90D1DE003BB5A7 /* functions_0x79.html */,
+ 24A200D10F90D1DE003BB5A7 /* functions_0x7a.html */,
+ 24A200D20F90D1DE003BB5A7 /* functions_0x7e.html */,
+ 24A200D30F90D1DE003BB5A7 /* functions_eval.html */,
+ 24A200D40F90D1DE003BB5A7 /* functions_func.html */,
+ 24A200D50F90D1DE003BB5A7 /* functions_func_0x62.html */,
+ 24A200D60F90D1DE003BB5A7 /* functions_func_0x63.html */,
+ 24A200D70F90D1DE003BB5A7 /* functions_func_0x64.html */,
+ 24A200D80F90D1DE003BB5A7 /* functions_func_0x65.html */,
+ 24A200D90F90D1DE003BB5A7 /* functions_func_0x66.html */,
+ 24A200DA0F90D1DE003BB5A7 /* functions_func_0x67.html */,
+ 24A200DB0F90D1DE003BB5A7 /* functions_func_0x68.html */,
+ 24A200DC0F90D1DE003BB5A7 /* functions_func_0x69.html */,
+ 24A200DD0F90D1DE003BB5A7 /* functions_func_0x6c.html */,
+ 24A200DE0F90D1DE003BB5A7 /* functions_func_0x6d.html */,
+ 24A200DF0F90D1DE003BB5A7 /* functions_func_0x6e.html */,
+ 24A200E00F90D1DE003BB5A7 /* functions_func_0x6f.html */,
+ 24A200E10F90D1DE003BB5A7 /* functions_func_0x70.html */,
+ 24A200E20F90D1DE003BB5A7 /* functions_func_0x72.html */,
+ 24A200E30F90D1DE003BB5A7 /* functions_func_0x73.html */,
+ 24A200E40F90D1DE003BB5A7 /* functions_func_0x74.html */,
+ 24A200E50F90D1DE003BB5A7 /* functions_func_0x75.html */,
+ 24A200E60F90D1DE003BB5A7 /* functions_func_0x76.html */,
+ 24A200E70F90D1DE003BB5A7 /* functions_func_0x77.html */,
+ 24A200E80F90D1DE003BB5A7 /* functions_func_0x7e.html */,
+ 24A200E90F90D1DE003BB5A7 /* functions_rela.html */,
+ 24A200EA0F90D1DE003BB5A7 /* functions_vars.html */,
+ 24A200EB0F90D1DE003BB5A7 /* functions_vars_0x62.html */,
+ 24A200EC0F90D1DE003BB5A7 /* functions_vars_0x63.html */,
+ 24A200ED0F90D1DE003BB5A7 /* functions_vars_0x64.html */,
+ 24A200EE0F90D1DE003BB5A7 /* functions_vars_0x65.html */,
+ 24A200EF0F90D1DE003BB5A7 /* functions_vars_0x66.html */,
+ 24A200F00F90D1DE003BB5A7 /* functions_vars_0x67.html */,
+ 24A200F10F90D1DE003BB5A7 /* functions_vars_0x68.html */,
+ 24A200F20F90D1DE003BB5A7 /* functions_vars_0x69.html */,
+ 24A200F30F90D1DE003BB5A7 /* functions_vars_0x6b.html */,
+ 24A200F40F90D1DE003BB5A7 /* functions_vars_0x6c.html */,
+ 24A200F50F90D1DE003BB5A7 /* functions_vars_0x6d.html */,
+ 24A200F60F90D1DE003BB5A7 /* functions_vars_0x6e.html */,
+ 24A200F70F90D1DE003BB5A7 /* functions_vars_0x6f.html */,
+ 24A200F80F90D1DE003BB5A7 /* functions_vars_0x70.html */,
+ 24A200F90F90D1DE003BB5A7 /* functions_vars_0x72.html */,
+ 24A200FA0F90D1DE003BB5A7 /* functions_vars_0x73.html */,
+ 24A200FB0F90D1DE003BB5A7 /* functions_vars_0x74.html */,
+ 24A200FC0F90D1DE003BB5A7 /* functions_vars_0x75.html */,
+ 24A200FD0F90D1DE003BB5A7 /* functions_vars_0x76.html */,
+ 24A200FE0F90D1DE003BB5A7 /* functions_vars_0x77.html */,
+ 24A200FF0F90D1DE003BB5A7 /* functions_vars_0x78.html */,
+ 24A201000F90D1DE003BB5A7 /* functions_vars_0x79.html */,
+ 24A201010F90D1DE003BB5A7 /* functions_vars_0x7a.html */,
+ 24A201020F90D1DE003BB5A7 /* globals.html */,
+ 24A201030F90D1DE003BB5A7 /* globals_0x61.html */,
+ 24A201040F90D1DE003BB5A7 /* globals_0x62.html */,
+ 24A201050F90D1DE003BB5A7 /* globals_0x63.html */,
+ 24A201060F90D1DE003BB5A7 /* globals_0x65.html */,
+ 24A201070F90D1DE003BB5A7 /* globals_0x66.html */,
+ 24A201080F90D1DE003BB5A7 /* globals_0x67.html */,
+ 24A201090F90D1DE003BB5A7 /* globals_0x6b.html */,
+ 24A2010A0F90D1DE003BB5A7 /* globals_0x6d.html */,
+ 24A2010B0F90D1DE003BB5A7 /* globals_0x6e.html */,
+ 24A2010C0F90D1DE003BB5A7 /* globals_0x6f.html */,
+ 24A2010D0F90D1DE003BB5A7 /* globals_0x71.html */,
+ 24A2010E0F90D1DE003BB5A7 /* globals_0x72.html */,
+ 24A2010F0F90D1DE003BB5A7 /* globals_0x73.html */,
+ 24A201100F90D1DE003BB5A7 /* globals_0x74.html */,
+ 24A201110F90D1DE003BB5A7 /* globals_0x75.html */,
+ 24A201120F90D1DE003BB5A7 /* globals_0x76.html */,
+ 24A201130F90D1DE003BB5A7 /* globals_0x77.html */,
+ 24A201140F90D1DE003BB5A7 /* globals_defs.html */,
+ 24A201150F90D1DE003BB5A7 /* globals_enum.html */,
+ 24A201160F90D1DE003BB5A7 /* globals_eval.html */,
+ 24A201170F90D1DE003BB5A7 /* globals_type.html */,
+ 24A201180F90D1DE003BB5A7 /* globals_vars.html */,
+ 24A201190F90D1DE003BB5A7 /* hierarchy.html */,
+ 24A2011A0F90D1DE003BB5A7 /* index.html */,
+ 24A2011B0F90D1DE003BB5A7 /* intro.html */,
+ 24A2011C0F90D1DE003BB5A7 /* license.html */,
+ 24A2011D0F90D1DE003BB5A7 /* maceditor.html */,
+ 24A2011E0F90D1DE003BB5A7 /* main.html */,
+ 24A2011F0F90D1DE003BB5A7 /* others.html */,
+ 24A201200F90D1DE003BB5A7 /* pages.html */,
+ 24A201210F90D1DE003BB5A7 /* plugguieditor_8cpp.html */,
+ 24A201220F90D1DE003BB5A7 /* plugguieditor_8h.html */,
+ 24A201230F90D1DE003BB5A7 /* sequences.html */,
+ 24A201240F90D1DE003BB5A7 /* struct_c_color-members.html */,
+ 24A201250F90D1DE003BB5A7 /* struct_c_color.html */,
+ 24A201260F90D1DE003BB5A7 /* struct_c_point-members.html */,
+ 24A201270F90D1DE003BB5A7 /* struct_c_point.html */,
+ 24A201280F90D1DE003BB5A7 /* struct_c_rect-members.html */,
+ 24A201290F90D1DE003BB5A7 /* struct_c_rect.html */,
+ 24A2012A0F90D1DE003BB5A7 /* struct_e_rect-members.html */,
+ 24A2012B0F90D1DE003BB5A7 /* struct_e_rect.html */,
+ 24A2012C0F90D1DE003BB5A7 /* struct_vst_file_select-members.html */,
+ 24A2012D0F90D1DE003BB5A7 /* struct_vst_file_select.html */,
+ 24A2012E0F90D1DE003BB5A7 /* struct_vst_file_type-members.html */,
+ 24A2012F0F90D1DE003BB5A7 /* struct_vst_file_type.html */,
+ 24A201300F90D1DE003BB5A7 /* struct_vst_key_code-members.html */,
+ 24A201310F90D1DE003BB5A7 /* struct_vst_key_code.html */,
+ 24A201320F90D1DE003BB5A7 /* tab_b.gif */,
+ 24A201330F90D1DE003BB5A7 /* tab_l.gif */,
+ 24A201340F90D1DE003BB5A7 /* tab_r.gif */,
+ 24A201350F90D1DE003BB5A7 /* tabs.css */,
+ 24A201360F90D1DE003BB5A7 /* thanks.html */,
+ 24A201370F90D1DE003BB5A7 /* tree.html */,
+ 24A201380F90D1DE003BB5A7 /* vstcontrols_8cpp.html */,
+ 24A201390F90D1DE003BB5A7 /* vstcontrols_8h.html */,
+ 24A2013A0F90D1DE003BB5A7 /* vstgui_8cpp.html */,
+ 24A2013B0F90D1DE003BB5A7 /* vstgui_8h.html */,
+ 24A2013C0F90D1DE003BB5A7 /* vstkeycode_8h.html */,
+ 24A2013D0F90D1DE003BB5A7 /* vstoffline.html */,
+ 24A2013E0F90D1DE003BB5A7 /* vstparamstruct.html */,
+ 24A2013F0F90D1DE003BB5A7 /* vstplugscarbon_8h.html */,
+ 24A201400F90D1DE003BB5A7 /* vstplugsmac_8h.html */,
+ 24A201410F90D1DE003BB5A7 /* vstplugsmacho_8h.html */,
+ 24A201420F90D1DE003BB5A7 /* vstplugsquartz_8h.html */,
+ 24A201430F90D1DE003BB5A7 /* whatsnew.html */,
+ );
+ name = html;
+ path = /vstsdk2.4/vstgui.sf/vstgui/Documentation/html;
+ sourceTree = "<absolute>";
+ };
+ 24A203CE0F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203D70F90D272003BB5A7 /* again.vst */,
+ 24A203D90F90D272003BB5A7 /* adelay.vst */,
+ 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */,
+ 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */,
+ 24A203DF0F90D272003BB5A7 /* minihost.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A203E00F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203E50F90D272003BB5A7 /* drawtest.component */,
+ 24A203E70F90D272003BB5A7 /* drawtest.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A203E80F90D272003BB5A7 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ 24A203ED0F90D272003BB5A7 /* drawtest.component */,
+ 24A203EF0F90D272003BB5A7 /* drawtest.vst */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ 24A2FEBB0F90D1DB003BB5A7 /* vstsdk2.4 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEBC0F90D1DC003BB5A7 /* artwork */,
+ 24A2FEC20F90D1DC003BB5A7 /* bin */,
+ 24A2FED80F90D1DC003BB5A7 /* doc */,
+ 24A2FF8E0F90D1DD003BB5A7 /* index.html */,
+ 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */,
+ 24A2FF940F90D1DD003BB5A7 /* public.sdk */,
+ 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */,
+ );
+ name = vstsdk2.4;
+ path = /vstsdk2.4;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEBC0F90D1DC003BB5A7 /* artwork */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEBD0F90D1DC003BB5A7 /* Thumbs.db */,
+ 24A2FEBE0F90D1DC003BB5A7 /* VST_Logo_Usage_Guideline.pdf */,
+ 24A2FEBF0F90D1DC003BB5A7 /* VSTLogoAlpha.png */,
+ 24A2FEC00F90D1DC003BB5A7 /* VSTLogoBlack.jpg */,
+ 24A2FEC10F90D1DC003BB5A7 /* VSTLogoWhite.jpg */,
+ );
+ name = artwork;
+ path = /vstsdk2.4/artwork;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC20F90D1DC003BB5A7 /* bin */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC30F90D1DC003BB5A7 /* mac */,
+ 24A2FED50F90D1DC003BB5A7 /* win */,
+ );
+ name = bin;
+ path = /vstsdk2.4/bin;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC30F90D1DC003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */,
+ 24A2FED40F90D1DC003BB5A7 /* VSTParamTool.app */,
+ );
+ name = mac;
+ path = /vstsdk2.4/bin/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC40F90D1DC003BB5A7 /* VSTMonitor.vst */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC50F90D1DC003BB5A7 /* Contents */,
+ );
+ name = VSTMonitor.vst;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC50F90D1DC003BB5A7 /* Contents */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC60F90D1DC003BB5A7 /* Info.plist */,
+ 24A2FEC70F90D1DC003BB5A7 /* MacOS */,
+ 24A2FEC90F90D1DC003BB5A7 /* PkgInfo */,
+ 24A2FECA0F90D1DC003BB5A7 /* Resources */,
+ );
+ name = Contents;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEC70F90D1DC003BB5A7 /* MacOS */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEC80F90D1DC003BB5A7 /* VSTMonitor */,
+ );
+ name = MacOS;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/MacOS;
+ sourceTree = "<absolute>";
+ };
+ 24A2FECA0F90D1DC003BB5A7 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FECB0F90D1DC003BB5A7 /* bmp50000.bmp */,
+ 24A2FECC0F90D1DC003BB5A7 /* bmp50001.bmp */,
+ 24A2FECD0F90D1DC003BB5A7 /* bmp50002.bmp */,
+ 24A2FECE0F90D1DC003BB5A7 /* bmp50003.bmp */,
+ 24A2FECF0F90D1DC003BB5A7 /* bmp50004.bmp */,
+ 24A2FED00F90D1DC003BB5A7 /* bmp50005.bmp */,
+ 24A2FED10F90D1DC003BB5A7 /* bmp50006.bmp */,
+ 24A2FED20F90D1DC003BB5A7 /* bmp50007.bmp */,
+ 24A2FED30F90D1DC003BB5A7 /* bmp50008.bmp */,
+ );
+ name = Resources;
+ path = /vstsdk2.4/bin/mac/VSTMonitor.vst/Contents/Resources;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED50F90D1DC003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FED60F90D1DC003BB5A7 /* vstmonitor.dll */,
+ 24A2FED70F90D1DC003BB5A7 /* vstparamtool.exe */,
+ );
+ name = win;
+ path = /vstsdk2.4/bin/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED80F90D1DC003BB5A7 /* doc */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FED90F90D1DC003BB5A7 /* gfx */,
+ 24A2FEDE0F90D1DC003BB5A7 /* html */,
+ 24A2FF8A0F90D1DD003BB5A7 /* sdk.menu.html */,
+ 24A2FF8B0F90D1DD003BB5A7 /* sdk.overview.html */,
+ 24A2FF8C0F90D1DD003BB5A7 /* sdkdoc.css */,
+ 24A2FF8D0F90D1DD003BB5A7 /* VST Licensing Agreement.rtf */,
+ );
+ name = doc;
+ path = /vstsdk2.4/doc;
+ sourceTree = "<absolute>";
+ };
+ 24A2FED90F90D1DC003BB5A7 /* gfx */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEDA0F90D1DC003BB5A7 /* folder.gif */,
+ 24A2FEDB0F90D1DC003BB5A7 /* mac.gif */,
+ 24A2FEDC0F90D1DC003BB5A7 /* vstpluglogo_small.jpg */,
+ 24A2FEDD0F90D1DC003BB5A7 /* win.gif */,
+ );
+ name = gfx;
+ path = /vstsdk2.4/doc/gfx;
+ sourceTree = "<absolute>";
+ };
+ 24A2FEDE0F90D1DC003BB5A7 /* html */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FEDF0F90D1DC003BB5A7 /* aeffect_8h.html */,
+ 24A2FEE00F90D1DC003BB5A7 /* aeffectx_8h.html */,
+ 24A2FEE10F90D1DC003BB5A7 /* aeffeditor_8h.html */,
+ 24A2FEE20F90D1DC003BB5A7 /* annotated.html */,
+ 24A2FEE30F90D1DC003BB5A7 /* audioeffect_8cpp.html */,
+ 24A2FEE40F90D1DC003BB5A7 /* audioeffect_8h.html */,
+ 24A2FEE50F90D1DC003BB5A7 /* audioeffectx_8cpp.html */,
+ 24A2FEE60F90D1DC003BB5A7 /* audioeffectx_8h.html */,
+ 24A2FEE70F90D1DC003BB5A7 /* Blocksizechange.gif */,
+ 24A2FEE80F90D1DC003BB5A7 /* class_a_eff_editor-members.html */,
+ 24A2FEE90F90D1DC003BB5A7 /* class_a_eff_editor.html */,
+ 24A2FEEA0F90D1DC003BB5A7 /* class_audio_effect-members.html */,
+ 24A2FEEB0F90D1DC003BB5A7 /* class_audio_effect.html */,
+ 24A2FEEC0F90D1DC003BB5A7 /* class_audio_effect.png */,
+ 24A2FEED0F90D1DC003BB5A7 /* class_audio_effect_x-members.html */,
+ 24A2FEEE0F90D1DC003BB5A7 /* class_audio_effect_x.html */,
+ 24A2FEEF0F90D1DC003BB5A7 /* class_audio_effect_x.png */,
+ 24A2FEF00F90D1DC003BB5A7 /* ControlChanged.gif */,
+ 24A2FEF10F90D1DC003BB5A7 /* deprecated.html */,
+ 24A2FEF20F90D1DC003BB5A7 /* dir_2d3252dd12c84c66c1d25b26bb45a1f5.html */,
+ 24A2FEF30F90D1DC003BB5A7 /* dir_77c628dfee72e555f82d5ef53b733f38.html */,
+ 24A2FEF40F90D1DC003BB5A7 /* dir_f81105d3b854bea570aaf3bae5cb64c1.html */,
+ 24A2FEF50F90D1DC003BB5A7 /* dir_fa0454ab79b4262333bf837ea3d765e9.html */,
+ 24A2FEF60F90D1DC003BB5A7 /* dirs.html */,
+ 24A2FEF70F90D1DC003BB5A7 /* doc_8h.html */,
+ 24A2FEF80F90D1DC003BB5A7 /* doxygen.css */,
+ 24A2FEF90F90D1DC003BB5A7 /* doxygen.png */,
+ 24A2FEFA0F90D1DC003BB5A7 /* files.html */,
+ 24A2FEFB0F90D1DC003BB5A7 /* ftv2blank.png */,
+ 24A2FEFC0F90D1DC003BB5A7 /* ftv2doc.png */,
+ 24A2FEFD0F90D1DC003BB5A7 /* ftv2folderclosed.png */,
+ 24A2FEFE0F90D1DC003BB5A7 /* ftv2folderopen.png */,
+ 24A2FEFF0F90D1DC003BB5A7 /* ftv2lastnode.png */,
+ 24A2FF000F90D1DC003BB5A7 /* ftv2link.png */,
+ 24A2FF010F90D1DC003BB5A7 /* ftv2mlastnode.png */,
+ 24A2FF020F90D1DC003BB5A7 /* ftv2mnode.png */,
+ 24A2FF030F90D1DC003BB5A7 /* ftv2node.png */,
+ 24A2FF040F90D1DC003BB5A7 /* ftv2plastnode.png */,
+ 24A2FF050F90D1DC003BB5A7 /* ftv2pnode.png */,
+ 24A2FF060F90D1DC003BB5A7 /* ftv2vertline.png */,
+ 24A2FF070F90D1DC003BB5A7 /* functions.html */,
+ 24A2FF080F90D1DC003BB5A7 /* functions_0x62.html */,
+ 24A2FF090F90D1DC003BB5A7 /* functions_0x63.html */,
+ 24A2FF0A0F90D1DC003BB5A7 /* functions_0x64.html */,
+ 24A2FF0B0F90D1DC003BB5A7 /* functions_0x65.html */,
+ 24A2FF0C0F90D1DC003BB5A7 /* functions_0x66.html */,
+ 24A2FF0D0F90D1DC003BB5A7 /* functions_0x67.html */,
+ 24A2FF0E0F90D1DC003BB5A7 /* functions_0x68.html */,
+ 24A2FF0F0F90D1DC003BB5A7 /* functions_0x69.html */,
+ 24A2FF100F90D1DC003BB5A7 /* functions_0x6b.html */,
+ 24A2FF110F90D1DC003BB5A7 /* functions_0x6c.html */,
+ 24A2FF120F90D1DC003BB5A7 /* functions_0x6d.html */,
+ 24A2FF130F90D1DC003BB5A7 /* functions_0x6e.html */,
+ 24A2FF140F90D1DC003BB5A7 /* functions_0x6f.html */,
+ 24A2FF150F90D1DC003BB5A7 /* functions_0x70.html */,
+ 24A2FF160F90D1DC003BB5A7 /* functions_0x72.html */,
+ 24A2FF170F90D1DC003BB5A7 /* functions_0x73.html */,
+ 24A2FF180F90D1DC003BB5A7 /* functions_0x74.html */,
+ 24A2FF190F90D1DC003BB5A7 /* functions_0x75.html */,
+ 24A2FF1A0F90D1DC003BB5A7 /* functions_0x76.html */,
+ 24A2FF1B0F90D1DC003BB5A7 /* functions_0x77.html */,
+ 24A2FF1C0F90D1DC003BB5A7 /* functions_0x78.html */,
+ 24A2FF1D0F90D1DC003BB5A7 /* functions_0x79.html */,
+ 24A2FF1E0F90D1DC003BB5A7 /* functions_0x7e.html */,
+ 24A2FF1F0F90D1DC003BB5A7 /* functions_func.html */,
+ 24A2FF200F90D1DC003BB5A7 /* functions_vars.html */,
+ 24A2FF210F90D1DC003BB5A7 /* globals.html */,
+ 24A2FF220F90D1DC003BB5A7 /* globals_0x62.html */,
+ 24A2FF230F90D1DC003BB5A7 /* globals_0x63.html */,
+ 24A2FF240F90D1DC003BB5A7 /* globals_0x64.html */,
+ 24A2FF250F90D1DC003BB5A7 /* globals_0x65.html */,
+ 24A2FF260F90D1DC003BB5A7 /* globals_0x66.html */,
+ 24A2FF270F90D1DC003BB5A7 /* globals_0x6b.html */,
+ 24A2FF280F90D1DC003BB5A7 /* globals_0x6d.html */,
+ 24A2FF290F90D1DC003BB5A7 /* globals_0x74.html */,
+ 24A2FF2A0F90D1DC003BB5A7 /* globals_0x76.html */,
+ 24A2FF2B0F90D1DC003BB5A7 /* globals_defs.html */,
+ 24A2FF2C0F90D1DC003BB5A7 /* globals_enum.html */,
+ 24A2FF2D0F90D1DC003BB5A7 /* globals_eval.html */,
+ 24A2FF2E0F90D1DC003BB5A7 /* globals_eval_0x65.html */,
+ 24A2FF2F0F90D1DC003BB5A7 /* globals_eval_0x6b.html */,
+ 24A2FF300F90D1DC003BB5A7 /* globals_eval_0x6d.html */,
+ 24A2FF310F90D1DC003BB5A7 /* globals_eval_0x76.html */,
+ 24A2FF320F90D1DC003BB5A7 /* globals_func.html */,
+ 24A2FF330F90D1DC003BB5A7 /* globals_type.html */,
+ 24A2FF340F90D1DC003BB5A7 /* globals_vars.html */,
+ 24A2FF350F90D1DC003BB5A7 /* hierarchy.html */,
+ 24A2FF360F90D1DC003BB5A7 /* history.html */,
+ 24A2FF370F90D1DC003BB5A7 /* index.html */,
+ 24A2FF380F90D1DC003BB5A7 /* Initialisation.gif */,
+ 24A2FF390F90D1DC003BB5A7 /* intro.html */,
+ 24A2FF3A0F90D1DC003BB5A7 /* IOchange.gif */,
+ 24A2FF3B0F90D1DC003BB5A7 /* license.html */,
+ 24A2FF3C0F90D1DC003BB5A7 /* maceditor.html */,
+ 24A2FF3D0F90D1DC003BB5A7 /* main.html */,
+ 24A2FF3E0F90D1DC003BB5A7 /* namespace_host_can_dos.html */,
+ 24A2FF3F0F90D1DC003BB5A7 /* namespace_plug_can_dos.html */,
+ 24A2FF400F90D1DC003BB5A7 /* namespacemembers.html */,
+ 24A2FF410F90D1DC003BB5A7 /* namespacemembers_vars.html */,
+ 24A2FF420F90D1DC003BB5A7 /* namespaces.html */,
+ 24A2FF430F90D1DC003BB5A7 /* Offlineprocessing.gif */,
+ 24A2FF440F90D1DC003BB5A7 /* others.html */,
+ 24A2FF450F90D1DC003BB5A7 /* pages.html */,
+ 24A2FF460F90D1DC003BB5A7 /* Sampleratechange.gif */,
+ 24A2FF470F90D1DC003BB5A7 /* sequences.html */,
+ 24A2FF480F90D1DC003BB5A7 /* SpeakerarrangementnegotiationforVSTfx.gif */,
+ 24A2FF490F90D1DC003BB5A7 /* struct_a_effect-members.html */,
+ 24A2FF4A0F90D1DC003BB5A7 /* struct_a_effect.html */,
+ 24A2FF4B0F90D1DC003BB5A7 /* struct_e_rect-members.html */,
+ 24A2FF4C0F90D1DC003BB5A7 /* struct_e_rect.html */,
+ 24A2FF4D0F90D1DC003BB5A7 /* struct_midi_key_name-members.html */,
+ 24A2FF4E0F90D1DC003BB5A7 /* struct_midi_key_name.html */,
+ 24A2FF4F0F90D1DC003BB5A7 /* struct_midi_program_category-members.html */,
+ 24A2FF500F90D1DC003BB5A7 /* struct_midi_program_category.html */,
+ 24A2FF510F90D1DC003BB5A7 /* struct_midi_program_name-members.html */,
+ 24A2FF520F90D1DC003BB5A7 /* struct_midi_program_name.html */,
+ 24A2FF530F90D1DC003BB5A7 /* struct_vst_audio_file-members.html */,
+ 24A2FF540F90D1DC003BB5A7 /* struct_vst_audio_file.html */,
+ 24A2FF550F90D1DC003BB5A7 /* struct_vst_audio_file_marker-members.html */,
+ 24A2FF560F90D1DC003BB5A7 /* struct_vst_audio_file_marker.html */,
+ 24A2FF570F90D1DC003BB5A7 /* struct_vst_event-members.html */,
+ 24A2FF580F90D1DC003BB5A7 /* struct_vst_event.html */,
+ 24A2FF590F90D1DD003BB5A7 /* struct_vst_events-members.html */,
+ 24A2FF5A0F90D1DD003BB5A7 /* struct_vst_events.html */,
+ 24A2FF5B0F90D1DD003BB5A7 /* struct_vst_file_select-members.html */,
+ 24A2FF5C0F90D1DD003BB5A7 /* struct_vst_file_select.html */,
+ 24A2FF5D0F90D1DD003BB5A7 /* struct_vst_file_type-members.html */,
+ 24A2FF5E0F90D1DD003BB5A7 /* struct_vst_file_type.html */,
+ 24A2FF5F0F90D1DD003BB5A7 /* struct_vst_key_code-members.html */,
+ 24A2FF600F90D1DD003BB5A7 /* struct_vst_key_code.html */,
+ 24A2FF610F90D1DD003BB5A7 /* struct_vst_midi_event-members.html */,
+ 24A2FF620F90D1DD003BB5A7 /* struct_vst_midi_event.html */,
+ 24A2FF630F90D1DD003BB5A7 /* struct_vst_midi_sysex_event-members.html */,
+ 24A2FF640F90D1DD003BB5A7 /* struct_vst_midi_sysex_event.html */,
+ 24A2FF650F90D1DD003BB5A7 /* struct_vst_offline_task-members.html */,
+ 24A2FF660F90D1DD003BB5A7 /* struct_vst_offline_task.html */,
+ 24A2FF670F90D1DD003BB5A7 /* struct_vst_parameter_properties-members.html */,
+ 24A2FF680F90D1DD003BB5A7 /* struct_vst_parameter_properties.html */,
+ 24A2FF690F90D1DD003BB5A7 /* struct_vst_patch_chunk_info-members.html */,
+ 24A2FF6A0F90D1DD003BB5A7 /* struct_vst_patch_chunk_info.html */,
+ 24A2FF6B0F90D1DD003BB5A7 /* struct_vst_pin_properties-members.html */,
+ 24A2FF6C0F90D1DD003BB5A7 /* struct_vst_pin_properties.html */,
+ 24A2FF6D0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement-members.html */,
+ 24A2FF6E0F90D1DD003BB5A7 /* struct_vst_speaker_arrangement.html */,
+ 24A2FF6F0F90D1DD003BB5A7 /* struct_vst_speaker_properties-members.html */,
+ 24A2FF700F90D1DD003BB5A7 /* struct_vst_speaker_properties.html */,
+ 24A2FF710F90D1DD003BB5A7 /* struct_vst_time_info-members.html */,
+ 24A2FF720F90D1DD003BB5A7 /* struct_vst_time_info.html */,
+ 24A2FF730F90D1DD003BB5A7 /* struct_vst_variable_io-members.html */,
+ 24A2FF740F90D1DD003BB5A7 /* struct_vst_variable_io.html */,
+ 24A2FF750F90D1DD003BB5A7 /* struct_vst_window-members.html */,
+ 24A2FF760F90D1DD003BB5A7 /* struct_vst_window.html */,
+ 24A2FF770F90D1DD003BB5A7 /* structfx_bank-members.html */,
+ 24A2FF780F90D1DD003BB5A7 /* structfx_bank.html */,
+ 24A2FF790F90D1DD003BB5A7 /* structfx_program-members.html */,
+ 24A2FF7A0F90D1DD003BB5A7 /* structfx_program.html */,
+ 24A2FF7B0F90D1DD003BB5A7 /* tab_b.gif */,
+ 24A2FF7C0F90D1DD003BB5A7 /* tab_l.gif */,
+ 24A2FF7D0F90D1DD003BB5A7 /* tab_r.gif */,
+ 24A2FF7E0F90D1DD003BB5A7 /* tabs.css */,
+ 24A2FF7F0F90D1DD003BB5A7 /* Termination.gif */,
+ 24A2FF800F90D1DD003BB5A7 /* thanks.html */,
+ 24A2FF810F90D1DD003BB5A7 /* tree.html */,
+ 24A2FF820F90D1DD003BB5A7 /* TurnOff.gif */,
+ 24A2FF830F90D1DD003BB5A7 /* TurnOn.gif */,
+ 24A2FF840F90D1DD003BB5A7 /* vstfxstore_8h.html */,
+ 24A2FF850F90D1DD003BB5A7 /* vstoffline.html */,
+ 24A2FF860F90D1DD003BB5A7 /* vstparamstruct.html */,
+ 24A2FF870F90D1DD003BB5A7 /* vstpluglogo.jpg */,
+ 24A2FF880F90D1DD003BB5A7 /* vstplugmain_8cpp.html */,
+ 24A2FF890F90D1DD003BB5A7 /* whatsnew.html */,
+ );
+ name = html;
+ path = /vstsdk2.4/doc/html;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF8F0F90D1DD003BB5A7 /* pluginterfaces */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF900F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = pluginterfaces;
+ path = /vstsdk2.4/pluginterfaces;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF900F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF910F90D1DD003BB5A7 /* aeffect.h */,
+ 24A2FF920F90D1DD003BB5A7 /* aeffectx.h */,
+ 24A2FF930F90D1DD003BB5A7 /* vstfxstore.h */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/pluginterfaces/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF940F90D1DD003BB5A7 /* public.sdk */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF950F90D1DD003BB5A7 /* samples */,
+ 24A2FFD60F90D1DD003BB5A7 /* source */,
+ );
+ name = public.sdk;
+ path = /vstsdk2.4/public.sdk;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF950F90D1DD003BB5A7 /* samples */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF960F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = samples;
+ path = /vstsdk2.4/public.sdk/samples;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF960F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF970F90D1DD003BB5A7 /* adelay */,
+ 24A2FFA80F90D1DD003BB5A7 /* again */,
+ 24A2FFAE0F90D1DD003BB5A7 /* mac */,
+ 24A2FFB40F90D1DD003BB5A7 /* minihost */,
+ 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */,
+ 24A2FFC50F90D1DD003BB5A7 /* win */,
+ 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */,
+ 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF970F90D1DD003BB5A7 /* adelay */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF980F90D1DD003BB5A7 /* adelay.cpp */,
+ 24A2FF990F90D1DD003BB5A7 /* adelay.h */,
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */,
+ 24A2FF9B0F90D1DD003BB5A7 /* editor */,
+ 24A2FFA30F90D1DD003BB5A7 /* surrounddelay.cpp */,
+ 24A2FFA40F90D1DD003BB5A7 /* surrounddelay.h */,
+ 24A2FFA50F90D1DD003BB5A7 /* win */,
+ );
+ name = adelay;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF9B0F90D1DD003BB5A7 /* editor */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF9C0F90D1DD003BB5A7 /* resources */,
+ 24A2FFA10F90D1DD003BB5A7 /* sdeditor.cpp */,
+ 24A2FFA20F90D1DD003BB5A7 /* sdeditor.h */,
+ );
+ name = editor;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor;
+ sourceTree = "<absolute>";
+ };
+ 24A2FF9C0F90D1DD003BB5A7 /* resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FF9D0F90D1DD003BB5A7 /* bmp00128.bmp */,
+ 24A2FF9E0F90D1DD003BB5A7 /* bmp00129.bmp */,
+ 24A2FF9F0F90D1DD003BB5A7 /* bmp00130.bmp */,
+ 24A2FFA00F90D1DD003BB5A7 /* surrounddelay.rc */,
+ );
+ name = resources;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/editor/resources;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA50F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFA60F90D1DD003BB5A7 /* adelay.vcproj */,
+ 24A2FFA70F90D1DD003BB5A7 /* surrounddelay.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/adelay/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA80F90D1DD003BB5A7 /* again */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFA90F90D1DD003BB5A7 /* source */,
+ 24A2FFAC0F90D1DD003BB5A7 /* win */,
+ );
+ name = again;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFA90F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAA0F90D1DD003BB5A7 /* again.cpp */,
+ 24A2FFAB0F90D1DD003BB5A7 /* again.h */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFAC0F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAD0F90D1DD003BB5A7 /* again.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/again/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFAE0F90D1DD003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFAF0F90D1DD003BB5A7 /* minihost-Info.plist */,
+ 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */,
+ 24A2FFB30F90D1DD003BB5A7 /* vst2.4Info.plist */,
+ );
+ name = mac;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB40F90D1DD003BB5A7 /* minihost */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB50F90D1DD003BB5A7 /* source */,
+ 24A2FFB80F90D1DD003BB5A7 /* win */,
+ );
+ name = minihost;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB50F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB60F90D1DD003BB5A7 /* minieditor.cpp */,
+ 24A2FFB70F90D1DD003BB5A7 /* minihost.cpp */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFB80F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFB90F90D1DD003BB5A7 /* minihost.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/minihost/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBA0F90D1DD003BB5A7 /* vstxsynth */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBB0F90D1DD003BB5A7 /* resource */,
+ 24A2FFBE0F90D1DD003BB5A7 /* source */,
+ 24A2FFC30F90D1DD003BB5A7 /* win */,
+ );
+ name = vstxsynth;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBB0F90D1DD003BB5A7 /* resource */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBC0F90D1DD003BB5A7 /* vstxsynth.rc */,
+ 24A2FFBD0F90D1DD003BB5A7 /* vstxsynth.vstxml */,
+ );
+ name = resource;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/resource;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFBE0F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFBF0F90D1DD003BB5A7 /* gmnames.h */,
+ 24A2FFC00F90D1DD003BB5A7 /* vstxsynth.cpp */,
+ 24A2FFC10F90D1DD003BB5A7 /* vstxsynth.h */,
+ 24A2FFC20F90D1DD003BB5A7 /* vstxsynthproc.cpp */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC30F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC40F90D1DD003BB5A7 /* vstxsynth.vcproj */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/vstxsynth/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC50F90D1DD003BB5A7 /* win */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC60F90D1DD003BB5A7 /* samples.sln */,
+ 24A2FFC70F90D1DD003BB5A7 /* vstplug.def */,
+ );
+ name = win;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFC80F90D1DD003BB5A7 /* win.vc2003 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFC90F90D1DD003BB5A7 /* adelay.vcproj */,
+ 24A2FFCA0F90D1DD003BB5A7 /* again.vcproj */,
+ 24A2FFCB0F90D1DD003BB5A7 /* minihost.vcproj */,
+ 24A2FFCC0F90D1DD003BB5A7 /* samples.sln */,
+ 24A2FFCD0F90D1DD003BB5A7 /* surrounddelay.vcproj */,
+ 24A2FFCE0F90D1DD003BB5A7 /* vstxsynth.vcproj */,
+ );
+ name = win.vc2003;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc2003;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFCF0F90D1DD003BB5A7 /* win.vc6 */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD00F90D1DD003BB5A7 /* adelay.dsp */,
+ 24A2FFD10F90D1DD003BB5A7 /* again.dsp */,
+ 24A2FFD20F90D1DD003BB5A7 /* minihost.dsp */,
+ 24A2FFD30F90D1DD003BB5A7 /* samples.dsw */,
+ 24A2FFD40F90D1DD003BB5A7 /* surrounddelay.dsp */,
+ 24A2FFD50F90D1DD003BB5A7 /* vstxsynth.dsp */,
+ );
+ name = win.vc6;
+ path = /vstsdk2.4/public.sdk/samples/vst2.x/win.vc6;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFD60F90D1DD003BB5A7 /* source */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD70F90D1DD003BB5A7 /* vst2.x */,
+ );
+ name = source;
+ path = /vstsdk2.4/public.sdk/source;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFD70F90D1DD003BB5A7 /* vst2.x */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFD80F90D1DD003BB5A7 /* aeffeditor.h */,
+ 24A2FFD90F90D1DD003BB5A7 /* audioeffect.cpp */,
+ 24A2FFDA0F90D1DD003BB5A7 /* audioeffect.h */,
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */,
+ 24A2FFDC0F90D1DD003BB5A7 /* audioeffectx.h */,
+ 24A2FFDD0F90D1DD003BB5A7 /* vstplugmain.cpp */,
+ );
+ name = vst2.x;
+ path = /vstsdk2.4/public.sdk/source/vst2.x;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFDE0F90D1DD003BB5A7 /* vstgui.sf */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFDF0F90D1DD003BB5A7 /* drawtest */,
+ 24A200160F90D1DD003BB5A7 /* vstgui */,
+ );
+ name = vstgui.sf;
+ path = /vstsdk2.4/vstgui.sf;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFDF0F90D1DD003BB5A7 /* drawtest */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFE00F90D1DD003BB5A7 /* mac */,
+ 24A2FFEE0F90D1DD003BB5A7 /* resources */,
+ 24A200030F90D1DD003BB5A7 /* source */,
+ 24A2000F0F90D1DD003BB5A7 /* win */,
+ 24A200130F90D1DD003BB5A7 /* win.vc6 */,
+ );
+ name = drawtest;
+ path = /vstsdk2.4/vstgui.sf/drawtest;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFE00F90D1DD003BB5A7 /* mac */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFE10F90D1DD003BB5A7 /* audiounit.exp */,
+ 24A2FFE20F90D1DD003BB5A7 /* cw_vst_prefix.pch++ */,
+ 24A2FFE30F90D1DD003BB5A7 /* drawtest.cw9prj */,
+ 24A2FFE40F90D1DD003BB5A7 /* drawtest.plc */,
+ 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */,
+ 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */,
+ 24A2FFEB0F90D1DD003BB5A7 /* Info.plist */,
+ 24A2FFEC0F90D1DD003BB5A7 /* xcode_au_prefix.h */,
+ 24A2FFED0F90D1DD003BB5A7 /* xcode_vst_prefix.h */,
+ );
+ name = mac;
+ path = /vstsdk2.4/vstgui.sf/drawtest/mac;
+ sourceTree = "<absolute>";
+ };
+ 24A2FFEE0F90D1DD003BB5A7 /* resources */ = {
+ isa = PBXGroup;
+ children = (
+ 24A2FFEF0F90D1DD003BB5A7 /* audiounit.r */,
+ 24A2FFF00F90D1DD003BB5A7 /* bmp00001.png */,
+ 24A2FFF10F90D1DD003BB5A7 /* bmp00100.png */,
+ 24A2FFF20F90D1DD003BB5A7 /* bmp01000.png */,
+ 24A2FFF30F90D1DD003BB5A7 /* bmp10001.bmp */,
+ 24A2FFF40F90D1DD003BB5A7 /* bmp10002.bmp */,
+ 24A2FFF50F90D1DD003BB5A7 /* bmp10003.bmp */,
+ 24A2FFF60F90D1DD003BB5A7 /* bmp10004.bmp */,
+ 24A2FFF70F90D1DD003BB5A7 /* bmp10005.bmp */,
+ 24A2FFF80F90D1DD003BB5A7 /* bmp10006.bmp */,
+ 24A2FFF90F90D1DD003BB5A7 /* bmp10007.bmp */,
+ 24A2FFFA0F90D1DD003BB5A7 /* bmp10008.bmp */,
+ 24A2FFFB0F90D1DD003BB5A7 /* bmp10009.bmp */,
+ 24A2FFFC0F90D1DD003BB5A7 /* bmp10010.bmp */,
+ 24A2FFFD0F90D1DD003BB5A7 /* bmp10011.bmp */,
+ 24A2FFFE0F90D1DD003BB5A7 /* bmp10012.bmp */,
+ 24A2FFFF0F90D1DD003BB5A7 /* bmp10013.bmp */,
+ 24A200000F90D1DD003BB5A7 /* bmp10014.bmp */,
+ 24A200010F90D1DD003BB5A7 /* bmp10015.bmp */,
+ 24A200020F90D1DD003BB5A7 /* bmp10016.bmp */,
+ );
+ name = resources;
+ path = /vstsdk2.4/vstgui.sf/drawtest/resources;
+ sourceTree = "<absolute>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXHeadersBuildPhase section */
+ 8D01CCC70486CAD60068D4B7 /* Headers */ = {
+ isa = PBXHeadersBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 245463B90991757100464AD3 /* Crystal.h in Headers */,
+ 24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
+ 24A202190F90D1DE003BB5A7 /* aeffect.h in Headers */,
+ 24A2021A0F90D1DE003BB5A7 /* aeffectx.h in Headers */,
+ 24A2021B0F90D1DE003BB5A7 /* vstfxstore.h in Headers */,
+ 24A2021D0F90D1DE003BB5A7 /* adelay.h in Headers */,
+ 24A202240F90D1DE003BB5A7 /* sdeditor.h in Headers */,
+ 24A202260F90D1DE003BB5A7 /* surrounddelay.h in Headers */,
+ 24A2022A0F90D1DE003BB5A7 /* again.h in Headers */,
+ 24A202330F90D1DE003BB5A7 /* gmnames.h in Headers */,
+ 24A202350F90D1DE003BB5A7 /* vstxsynth.h in Headers */,
+ 24A202460F90D1DE003BB5A7 /* aeffeditor.h in Headers */,
+ 24A202480F90D1DE003BB5A7 /* audioeffect.h in Headers */,
+ 24A2024A0F90D1DE003BB5A7 /* audioeffectx.h in Headers */,
+ 24A2024D0F90D1DE003BB5A7 /* cw_vst_prefix.pch++ in Headers */,
+ 24A202510F90D1DE003BB5A7 /* xcode_au_prefix.h in Headers */,
+ 24A202520F90D1DE003BB5A7 /* xcode_vst_prefix.h in Headers */,
+ 24A202680F90D1DE003BB5A7 /* controlsgui.h in Headers */,
+ 24A2026A0F90D1DE003BB5A7 /* pdrawtesteditor.h in Headers */,
+ 24A2026C0F90D1DE003BB5A7 /* pdrawtesteffect.h in Headers */,
+ 24A2026F0F90D1DE003BB5A7 /* pdrawtestview.h in Headers */,
+ 24A202710F90D1DE003BB5A7 /* pprimitivesviews.h in Headers */,
+ 24A202780F90D1DE003BB5A7 /* aeffguieditor.h in Headers */,
+ 24A2027A0F90D1DE003BB5A7 /* cfileselector.h in Headers */,
+ 24A2027D0F90D1DE003BB5A7 /* cscrollview.h in Headers */,
+ 24A2027F0F90D1DE003BB5A7 /* ctabview.h in Headers */,
+ 24A203A50F90D1DE003BB5A7 /* plugguieditor.h in Headers */,
+ 24A203A70F90D1DE003BB5A7 /* vstcontrols.h in Headers */,
+ 24A203A90F90D1DE003BB5A7 /* vstgui.h in Headers */,
+ 24A203AA0F90D1DE003BB5A7 /* vstkeycode.h in Headers */,
+ 24A203AB0F90D1DE003BB5A7 /* vstplugscarbon.h in Headers */,
+ 24A203AC0F90D1DE003BB5A7 /* vstplugsmac.h in Headers */,
+ 24A203AD0F90D1DE003BB5A7 /* vstplugsmacho.h in Headers */,
+ 24A203AE0F90D1DE003BB5A7 /* vstplugsquartz.h in Headers */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXHeadersBuildPhase section */
+
+/* Begin PBXNativeTarget section */
+ 8D01CCC60486CAD60068D4B7 /* Crystal */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Crystal" */;
+ buildPhases = (
+ 8D01CCC70486CAD60068D4B7 /* Headers */,
+ 8D01CCC90486CAD60068D4B7 /* Resources */,
+ 8D01CCCB0486CAD60068D4B7 /* Sources */,
+ 8D01CCCF0486CAD60068D4B7 /* Rez */,
+ 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Crystal;
+ productInstallPath = "$(HOME)/Library/Bundles";
+ productName = "FM-Chopper";
+ productReference = 2407DE920899296600EB68BF /* Crystal.vst */;
+ productType = "com.apple.product-type.bundle";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Crystal" */;
+ compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
+ hasScannedForEncodings = 1;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = 24A203E00F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFE50F90D1DD003BB5A7 /* drawtest.xcode */;
+ },
+ {
+ ProductGroup = 24A203E80F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFE80F90D1DD003BB5A7 /* drawtest.xcodeproj */;
+ },
+ {
+ ProductGroup = 24A203CE0F90D272003BB5A7 /* Products */;
+ ProjectRef = 24A2FFB00F90D1DD003BB5A7 /* vst 2.4 examples.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ 8D01CCC60486CAD60068D4B7 /* Crystal */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ 24A203D70F90D272003BB5A7 /* again.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = again.vst;
+ remoteRef = 24A203D60F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203D90F90D272003BB5A7 /* adelay.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = adelay.vst;
+ remoteRef = 24A203D80F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DB0F90D272003BB5A7 /* vstxsynth.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = vstxsynth.vst;
+ remoteRef = 24A203DA0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DD0F90D272003BB5A7 /* surrounddelay.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = surrounddelay.vst;
+ remoteRef = 24A203DC0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203DF0F90D272003BB5A7 /* minihost.app */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.application;
+ path = minihost.app;
+ remoteRef = 24A203DE0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203E50F90D272003BB5A7 /* drawtest.component */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.component;
+ remoteRef = 24A203E40F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203E70F90D272003BB5A7 /* drawtest.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.vst;
+ remoteRef = 24A203E60F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203ED0F90D272003BB5A7 /* drawtest.component */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.component;
+ remoteRef = 24A203EC0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+ 24A203EF0F90D272003BB5A7 /* drawtest.vst */ = {
+ isa = PBXReferenceProxy;
+ fileType = wrapper.cfbundle;
+ path = drawtest.vst;
+ remoteRef = 24A203EE0F90D272003BB5A7 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXResourcesBuildPhase section */
+ 8D01CCC90486CAD60068D4B7 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXRezBuildPhase section */
+ 8D01CCCF0486CAD60068D4B7 /* Rez */ = {
+ isa = PBXRezBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXRezBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ 24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ name = "Copy PkgInfo";
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/bash;
+ shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 8D01CCCB0486CAD60068D4B7 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 2407DEB9089929BA00EB68BF /* Crystal.cpp in Sources */,
+ 24D8287009A914000093AEF8 /* CrystalProc.cpp in Sources */,
+ 24A203CB0F90D251003BB5A7 /* audioeffect.cpp in Sources */,
+ 24A203CC0F90D251003BB5A7 /* audioeffectx.cpp in Sources */,
+ 24A203CD0F90D251003BB5A7 /* vstplugmain.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin XCBuildConfiguration section */
+ 24BEAAEE08919AE700E695F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_ENABLE_TRIGRAPHS = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "";
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ HEADER_SEARCH_PATHS = "/vstsdk2.4/**";
+ INFOPLIST_FILE = ./mac/Info.plist;
+ LIBRARY_SEARCH_PATHS = "";
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Gain;
+ SECTORDER_FLAGS = "";
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ WRAPPER_EXTENSION = vst;
+ };
+ name = Debug;
+ };
+ 24BEAAEF08919AE700E695F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = (
+ ppc,
+ i386,
+ x86_64,
+ );
+ COPY_PHASE_STRIP = YES;
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ FRAMEWORK_SEARCH_PATHS = "";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_ENABLE_TRIGRAPHS = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G4;
+ GCC_OPTIMIZATION_LEVEL = s;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "";
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
+ GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
+ GCC_WARN_UNKNOWN_PRAGMAS = NO;
+ HEADER_SEARCH_PATHS = "/vstsdk2.4/**";
+ INFOPLIST_FILE = ./mac/Info.plist;
+ LIBRARY_SEARCH_PATHS = "";
+ MACOSX_DEPLOYMENT_TARGET = 10.4;
+ OTHER_CFLAGS = "";
+ OTHER_LDFLAGS = "";
+ OTHER_REZFLAGS = "";
+ PRODUCT_NAME = Crystal;
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ SECTORDER_FLAGS = "";
+ SKIP_INSTALL = NO;
+ STRIP_INSTALLED_PRODUCT = YES;
+ STRIP_STYLE = all;
+ WARNING_CFLAGS = (
+ "-Wmost",
+ "-Wno-four-char-constants",
+ "-Wno-unknown-pragmas",
+ );
+ WRAPPER_EXTENSION = vst;
+ };
+ name = Release;
+ };
+ 24BEAAF208919AE700E695F9 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(NATIVE_ARCH)";
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
+ INFOPLIST_FILE = "";
+ INFOPLIST_PREPROCESS = NO;
+ };
+ name = Debug;
+ };
+ 24BEAAF308919AE700E695F9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = "$(ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1)";
+ ARCHS_STANDARD_32_64_BIT_PRE_XCODE_3_1 = "x86_64 i386 ppc";
+ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+ GCC_C_LANGUAGE_STANDARD = c99;
+ GCC_MODEL_TUNING = G4;
+ GCC_OPTIMIZATION_LEVEL = s;
+ INFOPLIST_FILE = "";
+ INFOPLIST_PREPROCESS = NO;
+ SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.6.sdk";
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Crystal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 24BEAAEE08919AE700E695F9 /* Debug */,
+ 24BEAAEF08919AE700E695F9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+ 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Crystal" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 24BEAAF208919AE700E695F9 /* Debug */,
+ 24BEAAF308919AE700E695F9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Debug;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = 089C1669FE841209C02AAC07 /* Project object */;
+}
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100755
index 0000000..a80c038
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+ version = "1.0">
+ <FileRef
+ location = "self:Sample.xcodeproj">
+ </FileRef>
+</Workspace>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100755
index 0000000..5c38f94
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/christopherjohnson.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100755
index 0000000..314de0f
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/project.xcworkspace/xcuserdata/spiadmin.xcuserdatad/UserInterfaceState.xcuserstate
Binary files differ
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.mode1v3 b/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.mode1v3
new file mode 100755
index 0000000..c572326
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.mode1v3
@@ -0,0 +1,1372 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActivePerspectiveName</key>
+ <string>Project</string>
+ <key>AllowedModules</key>
+ <array>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Name</key>
+ <string>Groups and Files Outline View</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Name</key>
+ <string>Editor</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCTaskListModule</string>
+ <key>Name</key>
+ <string>Task List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Name</key>
+ <string>File and Smart Group Detail Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Name</key>
+ <string>Detailed Build Results Viewer</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Name</key>
+ <string>Project Batch Find Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Name</key>
+ <string>Project Format Conflicts List</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Name</key>
+ <string>Bookmarks Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Name</key>
+ <string>Class Browser</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Name</key>
+ <string>Source Code Control Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXDebugBreakpointsModule</string>
+ <key>Name</key>
+ <string>Debug Breakpoints Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCDockableInspector</string>
+ <key>Name</key>
+ <string>Inspector</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>PBXOpenQuicklyModule</string>
+ <key>Name</key>
+ <string>Open Quickly Tool</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Name</key>
+ <string>Debugger</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>1</string>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Name</key>
+ <string>Debug Console</string>
+ </dict>
+ <dict>
+ <key>BundleLoadPath</key>
+ <string></string>
+ <key>MaxInstances</key>
+ <string>n</string>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Name</key>
+ <string>Snapshots Tool</string>
+ </dict>
+ </array>
+ <key>BundlePath</key>
+ <string>/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources</string>
+ <key>Description</key>
+ <string>DefaultDescriptionKey</string>
+ <key>DockingSystemVisible</key>
+ <false/>
+ <key>Extension</key>
+ <string>mode1v3</string>
+ <key>FavBarConfig</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>91857D9F148EF61800AAA11B</string>
+ <key>XCBarModuleItemNames</key>
+ <dict/>
+ <key>XCBarModuleItems</key>
+ <array/>
+ </dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>com.apple.perspectives.project.mode1v3</string>
+ <key>MajorVersion</key>
+ <integer>33</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Default</string>
+ <key>Notifications</key>
+ <array/>
+ <key>OpenEditors</key>
+ <array/>
+ <key>PerspectiveWidths</key>
+ <array>
+ <integer>-1</integer>
+ <integer>-1</integer>
+ </array>
+ <key>Perspectives</key>
+ <array>
+ <dict>
+ <key>ChosenToolbarItems</key>
+ <array>
+ <string>active-combo-popup</string>
+ <string>action</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>debugger-enable-breakpoints</string>
+ <string>build-and-go</string>
+ <string>com.apple.ide.PBXToolbarStopButton</string>
+ <string>get-info</string>
+ <string>NSToolbarFlexibleSpaceItem</string>
+ <string>com.apple.pbx.toolbar.searchfield</string>
+ </array>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProjectWithEditor</string>
+ <key>Identifier</key>
+ <string>perspective.project</string>
+ <key>IsVertical</key>
+ <false/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>089C166AFE841209C02AAC07</string>
+ <string>089C1671FE841209C02AAC07</string>
+ <string>19C28FB4FE9D528D11CA2CBB</string>
+ <string>089C167CFE841241C02AAC07</string>
+ <string>08FB77ADFE841716C02AAC07</string>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>11</integer>
+ <integer>10</integer>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 693}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <true/>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 711}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>203pt</string>
+ </dict>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <true/>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20306471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Gain.cpp</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20406471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Gain.cpp</string>
+ <key>_historyCapacity</key>
+ <integer>0</integer>
+ <key>bookmark</key>
+ <string>911C2A9D1491A5F600A430AF</string>
+ <key>history</key>
+ <array>
+ <string>915DCCBB1491A5B8008574E6</string>
+ </array>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {1053, 508}}</string>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>508pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B20506471E060097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 513}, {1053, 198}}</string>
+ <key>RubberWindowFrame</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>198pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>1053pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCModuleDock</string>
+ <string>PBXNavigatorGroup</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>911C2A901491A5F600A430AF</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>911C2A911491A5F600A430AF</string>
+ <string>1CE0B20306471E060097A5F4</string>
+ <string>1CE0B20506471E060097A5F4</string>
+ </array>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.defaultV3</string>
+ </dict>
+ <dict>
+ <key>ControllerClassBaseName</key>
+ <string></string>
+ <key>IconName</key>
+ <string>WindowOfProject</string>
+ <key>Identifier</key>
+ <string>perspective.morph</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C37FBAC04509CD000000102</string>
+ <string>1C37FAAC04509CD000000102</string>
+ <string>1C08E77C0454961000C914BD</string>
+ <string>1C37FABC05509CD000000102</string>
+ <string>1C37FABC05539CD112110102</string>
+ <string>E2644B35053B69B200211256</string>
+ <string>1C37FABC04509CD000100104</string>
+ <string>1CC0EA4004350EF90044410B</string>
+ <string>1CC0EA4004350EF90041110B</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>yes</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>186</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>29B97314FDCFA39411CA2CEA</string>
+ <string>1C37FABC05509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {186, 337}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>1</integer>
+ <key>XCSharingToken</key>
+ <string>com.apple.Xcode.GFSharingToken</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {203, 355}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>186</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>373 269 690 397 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Morph</string>
+ <key>PreferredWidth</key>
+ <integer>300</integer>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCModuleDock</string>
+ <string>PBXSmartGroupTreeModule</string>
+ </array>
+ <key>TableOfContents</key>
+ <array>
+ <string>11E0B1FE06471DED0097A5F4</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.default.shortV3</string>
+ </dict>
+ </array>
+ <key>PerspectivesBarVisible</key>
+ <false/>
+ <key>ShelfIsVisible</key>
+ <false/>
+ <key>SourceDescription</key>
+ <string>file at '/Xcode3/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecificationMode1.xcperspec'</string>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TimeStamp</key>
+ <real>0.0</real>
+ <key>ToolbarConfigUserDefaultsMinorVersion</key>
+ <string>2</string>
+ <key>ToolbarDisplayMode</key>
+ <integer>1</integer>
+ <key>ToolbarIsVisible</key>
+ <true/>
+ <key>ToolbarSizeMode</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Perspectives</string>
+ <key>UpdateMessage</key>
+ <string>The Default Workspace in this version of Xcode now includes support to hide and show the detail view (what has been referred to as the "Metro-Morph" feature). You must discard your current Default Workspace settings and update to the latest Default Workspace in order to gain this feature. Do you wish to update to the latest Workspace defaults for project '%@'?</string>
+ <key>WindowJustification</key>
+ <integer>5</integer>
+ <key>WindowOrderList</key>
+ <array>
+ <string>91857DA0148EF61800AAA11B</string>
+ <string>/Users/spiadmin/Documents/Gain/Gain.xcodeproj</string>
+ </array>
+ <key>WindowString</key>
+ <string>286 197 1261 752 0 0 1680 1028 </string>
+ <key>WindowToolsV3</key>
+ <array>
+ <dict>
+ <key>FirstTimeWindowDisplayed</key>
+ <false/>
+ <key>Identifier</key>
+ <string>windowTool.build</string>
+ <key>IsVertical</key>
+ <true/>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528F0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string></string>
+ <key>StatusBarVisibility</key>
+ <true/>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {743, 413}}</string>
+ <key>RubberWindowFrame</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>413pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>XCMainBuildResultsModuleGUID</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Build Results</string>
+ <key>XCBuildResultsTrigger_Collapse</key>
+ <integer>1021</integer>
+ <key>XCBuildResultsTrigger_Open</key>
+ <integer>1011</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 418}, {743, 236}}</string>
+ <key>RubberWindowFrame</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXBuildResultsModule</string>
+ <key>Proportion</key>
+ <string>236pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>654pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Build Results</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBuildResultsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <true/>
+ <key>TableOfContents</key>
+ <array>
+ <string>91857DA0148EF61800AAA11B</string>
+ <string>911C2A921491A5F600A430AF</string>
+ <string>1CD0528F0623707200166675</string>
+ <string>XCMainBuildResultsModuleGUID</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.buildV3</string>
+ <key>WindowContentMinSize</key>
+ <string>486 300</string>
+ <key>WindowString</key>
+ <string>112 208 743 695 0 0 1680 1028 </string>
+ <key>WindowToolGUID</key>
+ <string>91857DA0148EF61800AAA11B</string>
+ <key>WindowToolIsVisible</key>
+ <false/>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugger</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>Debugger</key>
+ <dict>
+ <key>HorizontalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {317, 164}}</string>
+ <string>{{317, 0}, {377, 164}}</string>
+ </array>
+ </dict>
+ <key>VerticalSplitView</key>
+ <dict>
+ <key>_collapsingFrameDimension</key>
+ <real>0.0</real>
+ <key>_indexOfCollapsedView</key>
+ <integer>0</integer>
+ <key>_percentageOfCollapsedView</key>
+ <real>0.0</real>
+ <key>isCollapsed</key>
+ <string>yes</string>
+ <key>sizes</key>
+ <array>
+ <string>{{0, 0}, {694, 164}}</string>
+ <string>{{0, 164}, {694, 216}}</string>
+ </array>
+ </dict>
+ </dict>
+ <key>LauncherConfigVersion</key>
+ <string>8</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C162984064C10D400B95A72</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debug - GLUTExamples (Underwater)</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>DebugConsoleDrawerSize</key>
+ <string>{100, 120}</string>
+ <key>DebugConsoleVisible</key>
+ <string>None</string>
+ <key>DebugConsoleWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>DebugSTDIOWindowFrame</key>
+ <string>{{200, 200}, {500, 300}}</string>
+ <key>Frame</key>
+ <string>{{0, 0}, {694, 380}}</string>
+ <key>RubberWindowFrame</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugSessionModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugSessionModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <string>1C0AD2AB069F1E9B00FABCE6</string>
+ <string>1C162984064C10D400B95A72</string>
+ <string>1C0AD2AC069F1E9B00FABCE6</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugV3</string>
+ <key>WindowString</key>
+ <string>321 238 694 422 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CD10A99069EF8BA00B06720</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.find</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CDD528C0622207200134675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528D0623707200166675</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {781, 167}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>781pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD0528E0623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Project Find</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{8, 0}, {773, 254}}</string>
+ <key>RubberWindowFrame</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXProjectFindModule</string>
+ <key>Proportion</key>
+ <string>50%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>428pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Find</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXProjectFindModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <string>1C530D58069F1CE1000CFCEE</string>
+ <string>1C530D59069F1CE1000CFCEE</string>
+ <string>1CDD528C0622207200134675</string>
+ <string>1C530D5A069F1CE1000CFCEE</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CD0528E0623707200166675</string>
+ </array>
+ <key>WindowString</key>
+ <string>62 385 781 470 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C530D57069F1CE1000CFCEE</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>MENUSEPARATOR</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debuggerConsole</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAAC065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Debugger Console</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {650, 250}}</string>
+ <key>RubberWindowFrame</key>
+ <string>516 632 650 250 0 0 1680 1027 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXDebugCLIModule</string>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>209pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debugger Console</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXDebugCLIModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAAD065D492600B07095</string>
+ <string>1C78EAAE065D492600B07095</string>
+ <string>1C78EAAC065D492600B07095</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.consoleV3</string>
+ <key>WindowString</key>
+ <string>650 41 650 250 0 0 1280 1002 </string>
+ <key>WindowToolGUID</key>
+ <string>1C78EAAD065D492600B07095</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.snapshots</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCSnapshotModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Snapshots</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCSnapshotModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <string>Yes</string>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.snapshots</string>
+ <key>WindowString</key>
+ <string>315 824 300 550 0 0 1440 878 </string>
+ <key>WindowToolIsVisible</key>
+ <string>Yes</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.scm</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB2065D492600B07095</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>&lt;No Editor&gt;</string>
+ <key>PBXSplitModuleInNavigatorKey</key>
+ <dict>
+ <key>Split0</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1C78EAB3065D492600B07095</string>
+ </dict>
+ <key>SplitCount</key>
+ <string>1</string>
+ </dict>
+ <key>StatusBarVisibility</key>
+ <integer>1</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {452, 0}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>0pt</string>
+ </dict>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CD052920623707200166675</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>SCM</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ConsoleFrame</key>
+ <string>{{0, 259}, {452, 0}}</string>
+ <key>Frame</key>
+ <string>{{0, 7}, {452, 259}}</string>
+ <key>RubberWindowFrame</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ <key>TableConfiguration</key>
+ <array>
+ <string>Status</string>
+ <real>30</real>
+ <string>FileName</string>
+ <real>199</real>
+ <string>Path</string>
+ <real>197.0950012207031</real>
+ </array>
+ <key>TableFrame</key>
+ <string>{{0, 0}, {452, 250}}</string>
+ </dict>
+ <key>Module</key>
+ <string>PBXCVSModule</string>
+ <key>Proportion</key>
+ <string>262pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>266pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>SCM</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXCVSModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C78EAB4065D492600B07095</string>
+ <string>1C78EAB5065D492600B07095</string>
+ <string>1C78EAB2065D492600B07095</string>
+ <string>1CD052920623707200166675</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.scm</string>
+ <key>WindowString</key>
+ <string>743 379 452 308 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.breakpoints</string>
+ <key>IsVertical</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXBottomSmartGroupGIDs</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Files</string>
+ <key>PBXProjectStructureProvided</key>
+ <string>no</string>
+ <key>PBXSmartGroupTreeModuleColumnData</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleColumnWidthsKey</key>
+ <array>
+ <real>168</real>
+ </array>
+ <key>PBXSmartGroupTreeModuleColumnsKey_v4</key>
+ <array>
+ <string>MainColumn</string>
+ </array>
+ </dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateKey_v7</key>
+ <dict>
+ <key>PBXSmartGroupTreeModuleOutlineStateExpansionKey</key>
+ <array>
+ <string>1C77FABC04509CD000000102</string>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateSelectionKey</key>
+ <array>
+ <array>
+ <integer>0</integer>
+ </array>
+ </array>
+ <key>PBXSmartGroupTreeModuleOutlineStateVisibleRectKey</key>
+ <string>{{0, 0}, {168, 350}}</string>
+ </dict>
+ <key>PBXTopSmartGroupGIDs</key>
+ <array/>
+ <key>XCIncludePerspectivesSwitch</key>
+ <integer>0</integer>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{0, 0}, {185, 368}}</string>
+ <key>GroupTreeTableConfiguration</key>
+ <array>
+ <string>MainColumn</string>
+ <real>168</real>
+ </array>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXSmartGroupTreeModule</string>
+ <key>Proportion</key>
+ <string>185pt</string>
+ </dict>
+ <dict>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA1AED706398EBD00589147</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Detail</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{{190, 0}, {554, 368}}</string>
+ <key>RubberWindowFrame</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>XCDetailModule</string>
+ <key>Proportion</key>
+ <string>554pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>368pt</string>
+ </dict>
+ </array>
+ <key>MajorVersion</key>
+ <integer>3</integer>
+ <key>MinorVersion</key>
+ <integer>0</integer>
+ <key>Name</key>
+ <string>Breakpoints</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXSmartGroupTreeModule</string>
+ <string>XCDetailModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <string>1CDDB66907F98D9800BB5817</string>
+ <string>1CE0B1FE06471DED0097A5F4</string>
+ <string>1CA1AED706398EBD00589147</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.breakpointsV3</string>
+ <key>WindowString</key>
+ <string>315 424 744 409 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1CDDB66807F98D9800BB5817</string>
+ <key>WindowToolIsVisible</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.debugAnimator</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXNavigatorGroup</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Debug Visualizer</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXNavigatorGroup</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>1</integer>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.debugAnimatorV3</string>
+ <key>WindowString</key>
+ <string>100 100 700 500 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.bookmarks</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>PBXBookmarksModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Bookmarks</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXBookmarksModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowString</key>
+ <string>538 42 401 187 0 0 1280 1002 </string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.projectFormatConflicts</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>Module</key>
+ <string>XCProjectFormatConflictsModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Project Format Conflicts</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCProjectFormatConflictsModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>WindowContentMinSize</key>
+ <string>450 300</string>
+ <key>WindowString</key>
+ <string>50 850 472 307 0 0 1440 877</string>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.classBrowser</string>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>ContentConfiguration</key>
+ <dict>
+ <key>OptionsSetName</key>
+ <string>Hierarchy, all classes</string>
+ <key>PBXProjectModuleGUID</key>
+ <string>1CA6456E063B45B4001379D8</string>
+ <key>PBXProjectModuleLabel</key>
+ <string>Class Browser - NSObject</string>
+ </dict>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>ClassesFrame</key>
+ <string>{{0, 0}, {374, 96}}</string>
+ <key>ClassesTreeTableConfiguration</key>
+ <array>
+ <string>PBXClassNameColumnIdentifier</string>
+ <real>208</real>
+ <string>PBXClassBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>Frame</key>
+ <string>{{0, 0}, {630, 331}}</string>
+ <key>MembersFrame</key>
+ <string>{{0, 105}, {374, 395}}</string>
+ <key>MembersTreeTableConfiguration</key>
+ <array>
+ <string>PBXMemberTypeIconColumnIdentifier</string>
+ <real>22</real>
+ <string>PBXMemberNameColumnIdentifier</string>
+ <real>216</real>
+ <string>PBXMemberTypeColumnIdentifier</string>
+ <real>97</real>
+ <string>PBXMemberBookColumnIdentifier</string>
+ <real>22</real>
+ </array>
+ <key>PBXModuleWindowStatusBarHidden2</key>
+ <integer>1</integer>
+ <key>RubberWindowFrame</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ </dict>
+ <key>Module</key>
+ <string>PBXClassBrowserModule</string>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>332pt</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Class Browser</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>PBXClassBrowserModule</string>
+ </array>
+ <key>StatusbarIsVisible</key>
+ <integer>0</integer>
+ <key>TableOfContents</key>
+ <array>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <string>1C0AD2B0069F1E9B00FABCE6</string>
+ <string>1CA6456E063B45B4001379D8</string>
+ </array>
+ <key>ToolbarConfiguration</key>
+ <string>xcode.toolbar.config.classbrowser</string>
+ <key>WindowString</key>
+ <string>385 179 630 352 0 0 1440 878 </string>
+ <key>WindowToolGUID</key>
+ <string>1C0AD2AF069F1E9B00FABCE6</string>
+ <key>WindowToolIsVisible</key>
+ <integer>0</integer>
+ </dict>
+ <dict>
+ <key>Identifier</key>
+ <string>windowTool.refactoring</string>
+ <key>IncludeInToolsMenu</key>
+ <integer>0</integer>
+ <key>Layout</key>
+ <array>
+ <dict>
+ <key>Dock</key>
+ <array>
+ <dict>
+ <key>BecomeActive</key>
+ <integer>1</integer>
+ <key>GeometryConfiguration</key>
+ <dict>
+ <key>Frame</key>
+ <string>{0, 0}, {500, 335}</string>
+ <key>RubberWindowFrame</key>
+ <string>{0, 0}, {500, 335}</string>
+ </dict>
+ <key>Module</key>
+ <string>XCRefactoringModule</string>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Proportion</key>
+ <string>100%</string>
+ </dict>
+ </array>
+ <key>Name</key>
+ <string>Refactoring</string>
+ <key>ServiceClasses</key>
+ <array>
+ <string>XCRefactoringModule</string>
+ </array>
+ <key>WindowString</key>
+ <string>200 200 500 356 0 0 1920 1200 </string>
+ </dict>
+ </array>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.pbxuser b/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.pbxuser
new file mode 100755
index 0000000..df94780
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/spiadmin.pbxuser
@@ -0,0 +1,143 @@
+// !$*UTF8*$!
+{
+ 089C1669FE841209C02AAC07 /* Project object */ = {
+ activeBuildConfigurationName = Release;
+ activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
+ codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
+ perUserDictionary = {
+ PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 829,
+ 20,
+ 48,
+ 43,
+ 43,
+ 20,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ PBXFileDataSource_Target_ColumnID,
+ );
+ };
+ PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
+ PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
+ PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
+ PBXFileTableDataSourceColumnWidthsKey = (
+ 20,
+ 789,
+ 60,
+ 20,
+ 48,
+ 43,
+ 43,
+ );
+ PBXFileTableDataSourceColumnsKey = (
+ PBXFileDataSource_FiletypeID,
+ PBXFileDataSource_Filename_ColumnID,
+ PBXTargetDataSource_PrimaryAttribute,
+ PBXFileDataSource_Built_ColumnID,
+ PBXFileDataSource_ObjectSize_ColumnID,
+ PBXFileDataSource_Errors_ColumnID,
+ PBXFileDataSource_Warnings_ColumnID,
+ );
+ };
+ PBXPerProjectTemplateStateSaveDate = 345089498;
+ PBXWorkspaceStateSaveDate = 345089498;
+ };
+ perUserProjectItems = {
+ 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
+ 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
+ };
+ sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
+ userBuildSettings = {
+ };
+ };
+ 2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
+ sepNavSelRange = "{247, 0}";
+ sepNavVisRange = "{0, 1657}";
+ };
+ };
+ 245463B80991757100464AD3 /* Gain.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
+ sepNavSelRange = "{1552, 0}";
+ sepNavVisRange = "{796, 1857}";
+ sepNavWindowFrame = "{{15, 465}, {750, 558}}";
+ };
+ };
+ 24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
+ sepNavSelRange = "{0, 0}";
+ sepNavVisRange = "{0, 798}";
+ };
+ };
+ 24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
+ sepNavSelRange = "{10641, 0}";
+ sepNavVisRange = "{10076, 1095}";
+ };
+ };
+ 24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
+ sepNavSelRange = "{239, 0}";
+ sepNavVisRange = "{0, 950}";
+ };
+ };
+ 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
+ uiCtxt = {
+ sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
+ sepNavSelRange = "{249, 0}";
+ sepNavVisRange = "{0, 249}";
+ };
+ };
+ 8D01CCC60486CAD60068D4B7 /* Gain */ = {
+ activeExec = 0;
+ };
+ 911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
+ name = "Gain.cpp: 10";
+ rLen = 0;
+ rLoc = 247;
+ rType = 0;
+ vrLen = 1657;
+ vrLoc = 0;
+ };
+ 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
+ isa = PBXTextBookmark;
+ fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
+ name = "Gain.cpp: 10";
+ rLen = 0;
+ rLoc = 247;
+ rType = 0;
+ vrLen = 1625;
+ vrLoc = 0;
+ };
+ 91857D94148EF55400AAA11B /* Source Control */ = {
+ isa = PBXSourceControlManager;
+ fallbackIsa = XCSourceControlManager;
+ isSCMEnabled = 0;
+ scmConfiguration = {
+ repositoryNamesForRoots = {
+ "" = "";
+ };
+ };
+ };
+ 91857D95148EF55400AAA11B /* Code sense */ = {
+ isa = PBXCodeSenseManager;
+ indexTemplatePath = "";
+ };
+}
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
new file mode 100755
index 0000000..8ee693f
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/Gain.xcscheme
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ LastUpgradeVersion = "0720"
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ shouldUseLaunchSchemeArgsEnv = "YES">
+ <Testables>
+ </Testables>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </TestAction>
+ <LaunchAction
+ buildConfiguration = "Debug"
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ ignoresPersistentStateOnLaunch = "NO"
+ debugDocumentVersioning = "YES"
+ debugServiceExtension = "internal"
+ allowLocationSimulation = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ buildConfiguration = "Release"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ debugDocumentVersioning = "YES">
+ <MacroExpansion>
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "Gain.vst"
+ BlueprintName = "Gain"
+ ReferencedContainer = "container:Gain.xcodeproj">
+ </BuildableReference>
+ </MacroExpansion>
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100755
index 0000000..5bccbcb
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/christopherjohnson.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>Gain.xcscheme</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>8</integer>
+ </dict>
+ </dict>
+ <key>SuppressBuildableAutocreation</key>
+ <dict>
+ <key>8D01CCC60486CAD60068D4B7</key>
+ <dict>
+ <key>primary</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
new file mode 100755
index 0000000..a7bdd62
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/xcschememanagement.plist
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>SchemeUserState</key>
+ <dict>
+ <key>«PROJECTNAME».xcscheme</key>
+ <dict>
+ <key>orderHint</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <key>SuppressBuildableAutocreation</key>
+ <dict>
+ <key>8D01CCC60486CAD60068D4B7</key>
+ <dict>
+ <key>primary</key>
+ <true/>
+ </dict>
+ </dict>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
new file mode 100755
index 0000000..0df2de4
--- /dev/null
+++ b/plugins/MacVST/Crystal/Crystal.xcodeproj/xcuserdata/spiadmin.xcuserdatad/xcschemes/«PROJECTNAME».xcscheme
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+ version = "1.3">
+ <BuildAction
+ parallelizeBuildables = "YES"
+ buildImplicitDependencies = "YES">
+ <BuildActionEntries>
+ <BuildActionEntry
+ buildForTesting = "YES"
+ buildForRunning = "YES"
+ buildForProfiling = "YES"
+ buildForArchiving = "YES"
+ buildForAnalyzing = "YES">
+ <BuildableReference
+ BuildableIdentifier = "primary"
+ BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
+ BuildableName = "&#171;PROJECTNAME&#187;.vst"
+ BlueprintName = "&#171;PROJECTNAME&#187;"
+ ReferencedContainer = "container:Sample.xcodeproj">
+ </BuildableReference>
+ </BuildActionEntry>
+ </BuildActionEntries>
+ </BuildAction>
+ <TestAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ buildConfiguration = "Debug">
+ <Testables>
+ </Testables>
+ </TestAction>
+ <LaunchAction
+ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
+ selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
+ launchStyle = "0"
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Debug"
+ debugDocumentVersioning = "YES"
+ allowLocationSimulation = "YES">
+ <AdditionalOptions>
+ </AdditionalOptions>
+ </LaunchAction>
+ <ProfileAction
+ shouldUseLaunchSchemeArgsEnv = "YES"
+ savedToolIdentifier = ""
+ useCustomWorkingDirectory = "NO"
+ buildConfiguration = "Release"
+ debugDocumentVersioning = "YES">
+ </ProfileAction>
+ <AnalyzeAction
+ buildConfiguration = "Debug">
+ </AnalyzeAction>
+ <ArchiveAction
+ buildConfiguration = "Release"
+ revealArchiveInOrganizer = "YES">
+ </ArchiveAction>
+</Scheme>
diff --git a/plugins/MacVST/Crystal/mac/Info.plist b/plugins/MacVST/Crystal/mac/Info.plist
new file mode 100755
index 0000000..6dc8cbc
--- /dev/null
+++ b/plugins/MacVST/Crystal/mac/Info.plist
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>Crystal</string>
+ <key>CFBundleIconFile</key>
+ <string></string>
+ <key>CFBundleIdentifier</key>
+ <string>com.airwindows.Crystal</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>BNDL</string>
+ <key>CFBundleSignature</key>
+ <string>Dthr</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+ <key>CSResourcesFileMapped</key>
+ <true/>
+</dict>
+</plist>
diff --git a/plugins/MacVST/Crystal/mac/PkgInfo b/plugins/MacVST/Crystal/mac/PkgInfo
new file mode 100755
index 0000000..19a9cf6
--- /dev/null
+++ b/plugins/MacVST/Crystal/mac/PkgInfo
@@ -0,0 +1 @@
+BNDL???? \ No newline at end of file
diff --git a/plugins/MacVST/Crystal/mac/xcode_vst_prefix.h b/plugins/MacVST/Crystal/mac/xcode_vst_prefix.h
new file mode 100755
index 0000000..eaf4c0b
--- /dev/null
+++ b/plugins/MacVST/Crystal/mac/xcode_vst_prefix.h
@@ -0,0 +1,17 @@
+#define MAC 1
+#define MACX 1
+
+#define USE_NAMESPACE 0
+
+#define TARGET_API_MAC_CARBON 1
+#define USENAVSERVICES 1
+
+#define __CF_USE_FRAMEWORK_INCLUDES__
+
+#if __MWERKS__
+#define __NOEXTENSIONS__
+#endif
+
+#define QUARTZ 1
+
+#include <AvailabilityMacros.h> \ No newline at end of file
diff --git a/plugins/MacVST/Crystal/source/Crystal.cpp b/plugins/MacVST/Crystal/source/Crystal.cpp
new file mode 100755
index 0000000..705fe2a
--- /dev/null
+++ b/plugins/MacVST/Crystal/source/Crystal.cpp
@@ -0,0 +1,146 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Crystal(audioMaster);}
+
+Crystal::Crystal(audioMasterCallback audioMaster) :
+ AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
+{
+ A = 0.7;
+ B = 1.0;
+ C = 0.333; //0.0 to 3.0 range
+ D = 1.0;
+ for(int count = 0; count < 34; count++) {bL[count] = 0; bR[count] = 0;}
+ lastSampleL = 0.0;
+ lastSampleR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
+ //this is reset: values being initialized only once. Startup values, whatever they are.
+
+ _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
+ _canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
+ _canDo.insert("x2in2out");
+ setNumInputs(kNumInputs);
+ setNumOutputs(kNumOutputs);
+ setUniqueID(kUniqueId);
+ canProcessReplacing(); // supports output replacing
+ canDoubleReplacing(); // supports double precision processing
+ programsAreChunks(true);
+ vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
+}
+
+Crystal::~Crystal() {}
+VstInt32 Crystal::getVendorVersion () {return 1000;}
+void Crystal::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
+void Crystal::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
+//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
+//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
+
+static float pinParameter(float data)
+{
+ if (data < 0.0f) return 0.0f;
+ if (data > 1.0f) return 1.0f;
+ return data;
+}
+
+VstInt32 Crystal::getChunk (void** data, bool isPreset)
+{
+ float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
+ chunkData[0] = A;
+ chunkData[1] = B;
+ chunkData[2] = C;
+ chunkData[3] = D;
+ /* Note: The way this is set up, it will break if you manage to save settings on an Intel
+ machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
+ started with. */
+
+ *data = chunkData;
+ return kNumParameters * sizeof(float);
+}
+
+VstInt32 Crystal::setChunk (void* data, VstInt32 byteSize, bool isPreset)
+{
+ float *chunkData = (float *)data;
+ A = pinParameter(chunkData[0]);
+ B = pinParameter(chunkData[1]);
+ C = pinParameter(chunkData[2]);
+ D = pinParameter(chunkData[3]);
+ /* We're ignoring byteSize as we found it to be a filthy liar */
+
+ /* calculate any other fields you need here - you could copy in
+ code from setParameter() here. */
+ return 0;
+}
+
+void Crystal::setParameter(VstInt32 index, float value) {
+ switch (index) {
+ case kParamA: A = value; break;
+ case kParamB: B = value; break;
+ case kParamC: C = value; break;
+ case kParamD: D = value; break;
+ default: throw; // unknown parameter, shouldn't happen!
+ }
+}
+
+float Crystal::getParameter(VstInt32 index) {
+ switch (index) {
+ case kParamA: return A; break;
+ case kParamB: return B; break;
+ case kParamC: return C; break;
+ case kParamD: return D; break;
+ default: break; // unknown parameter, shouldn't happen!
+ } return 0.0; //we only need to update the relevant name, this is simple to manage
+}
+
+void Crystal::getParameterName(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "Hardnss", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "Personl", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "Drive", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this is our labels for displaying in the VST host
+}
+
+void Crystal::getParameterDisplay(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
+ case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
+ case kParamC: float2string (C*3.0, text, kVstMaxParamStrLen); break;
+ case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this displays the values and handles 'popups' where it's discrete choices
+}
+
+void Crystal::getParameterLabel(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ }
+}
+
+VstInt32 Crystal::canDo(char *text)
+{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
+
+bool Crystal::getEffectName(char* name) {
+ vst_strncpy(name, "Crystal", kVstMaxProductStrLen); return true;
+}
+
+VstPlugCategory Crystal::getPlugCategory() {return kPlugCategEffect;}
+
+bool Crystal::getProductString(char* text) {
+ vst_strncpy (text, "airwindows Crystal", kVstMaxProductStrLen); return true;
+}
+
+bool Crystal::getVendorString(char* text) {
+ vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
+}
diff --git a/plugins/MacVST/Crystal/source/Crystal.h b/plugins/MacVST/Crystal/source/Crystal.h
new file mode 100755
index 0000000..45ebb6a
--- /dev/null
+++ b/plugins/MacVST/Crystal/source/Crystal.h
@@ -0,0 +1,74 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Created 8/12/11 by SPIAdmin
+ * Copyright (c) 2011 __MyCompanyName__, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#define __Crystal_H
+
+#ifndef __audioeffect__
+#include "audioeffectx.h"
+#endif
+
+#include <set>
+#include <string>
+#include <math.h>
+
+enum {
+ kParamA = 0,
+ kParamB = 1,
+ kParamC = 2,
+ kParamD = 3,
+ kNumParameters = 4
+}; //
+
+const int kNumPrograms = 0;
+const int kNumInputs = 2;
+const int kNumOutputs = 2;
+const unsigned long kUniqueId = 'crys'; //Change this to what the AU identity is!
+
+class Crystal :
+ public AudioEffectX
+{
+public:
+ Crystal(audioMasterCallback audioMaster);
+ ~Crystal();
+ virtual bool getEffectName(char* name); // The plug-in name
+ virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
+ virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
+ virtual bool getVendorString(char* text); // Vendor info
+ virtual VstInt32 getVendorVersion(); // Version number
+ virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
+ virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
+ virtual void getProgramName(char *name); // read the name from the host
+ virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
+ virtual VstInt32 getChunk (void** data, bool isPreset);
+ virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
+ virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
+ virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
+ virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
+ virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
+ virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
+ virtual VstInt32 canDo(char *text);
+private:
+ char _programName[kVstMaxProgNameLen + 1];
+ std::set< std::string > _canDo;
+
+ double bL[35];
+ double lastSampleL;
+ double bR[35];
+ double lastSampleR;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+
+};
+
+#endif
diff --git a/plugins/MacVST/Crystal/source/CrystalProc.cpp b/plugins/MacVST/Crystal/source/CrystalProc.cpp
new file mode 100755
index 0000000..9c62355
--- /dev/null
+++ b/plugins/MacVST/Crystal/source/CrystalProc.cpp
@@ -0,0 +1,434 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
+{
+ float* in1 = inputs[0];
+ float* in2 = inputs[1];
+ float* out1 = outputs[0];
+ float* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 32-bit floating point
+ float fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 32 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
+
+void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
+{
+ double* in1 = inputs[0];
+ double* in2 = inputs[1];
+ double* out1 = outputs[0];
+ double* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 64-bit floating point
+ double fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 64 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
diff --git a/plugins/WinVST/Crystal/.vs/Console4Channel64/v14/.suo b/plugins/WinVST/Crystal/.vs/Console4Channel64/v14/.suo
new file mode 100755
index 0000000..777b846
--- /dev/null
+++ b/plugins/WinVST/Crystal/.vs/Console4Channel64/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/Crystal/.vs/VSTProject/v14/.suo b/plugins/WinVST/Crystal/.vs/VSTProject/v14/.suo
new file mode 100755
index 0000000..3842fd5
--- /dev/null
+++ b/plugins/WinVST/Crystal/.vs/VSTProject/v14/.suo
Binary files differ
diff --git a/plugins/WinVST/Crystal/Crystal.cpp b/plugins/WinVST/Crystal/Crystal.cpp
new file mode 100755
index 0000000..705fe2a
--- /dev/null
+++ b/plugins/WinVST/Crystal/Crystal.cpp
@@ -0,0 +1,146 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Crystal(audioMaster);}
+
+Crystal::Crystal(audioMasterCallback audioMaster) :
+ AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
+{
+ A = 0.7;
+ B = 1.0;
+ C = 0.333; //0.0 to 3.0 range
+ D = 1.0;
+ for(int count = 0; count < 34; count++) {bL[count] = 0; bR[count] = 0;}
+ lastSampleL = 0.0;
+ lastSampleR = 0.0;
+ fpNShapeL = 0.0;
+ fpNShapeR = 0.0;
+ //this is reset: values being initialized only once. Startup values, whatever they are.
+
+ _canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
+ _canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
+ _canDo.insert("x2in2out");
+ setNumInputs(kNumInputs);
+ setNumOutputs(kNumOutputs);
+ setUniqueID(kUniqueId);
+ canProcessReplacing(); // supports output replacing
+ canDoubleReplacing(); // supports double precision processing
+ programsAreChunks(true);
+ vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
+}
+
+Crystal::~Crystal() {}
+VstInt32 Crystal::getVendorVersion () {return 1000;}
+void Crystal::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
+void Crystal::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
+//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
+//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
+
+static float pinParameter(float data)
+{
+ if (data < 0.0f) return 0.0f;
+ if (data > 1.0f) return 1.0f;
+ return data;
+}
+
+VstInt32 Crystal::getChunk (void** data, bool isPreset)
+{
+ float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
+ chunkData[0] = A;
+ chunkData[1] = B;
+ chunkData[2] = C;
+ chunkData[3] = D;
+ /* Note: The way this is set up, it will break if you manage to save settings on an Intel
+ machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
+ started with. */
+
+ *data = chunkData;
+ return kNumParameters * sizeof(float);
+}
+
+VstInt32 Crystal::setChunk (void* data, VstInt32 byteSize, bool isPreset)
+{
+ float *chunkData = (float *)data;
+ A = pinParameter(chunkData[0]);
+ B = pinParameter(chunkData[1]);
+ C = pinParameter(chunkData[2]);
+ D = pinParameter(chunkData[3]);
+ /* We're ignoring byteSize as we found it to be a filthy liar */
+
+ /* calculate any other fields you need here - you could copy in
+ code from setParameter() here. */
+ return 0;
+}
+
+void Crystal::setParameter(VstInt32 index, float value) {
+ switch (index) {
+ case kParamA: A = value; break;
+ case kParamB: B = value; break;
+ case kParamC: C = value; break;
+ case kParamD: D = value; break;
+ default: throw; // unknown parameter, shouldn't happen!
+ }
+}
+
+float Crystal::getParameter(VstInt32 index) {
+ switch (index) {
+ case kParamA: return A; break;
+ case kParamB: return B; break;
+ case kParamC: return C; break;
+ case kParamD: return D; break;
+ default: break; // unknown parameter, shouldn't happen!
+ } return 0.0; //we only need to update the relevant name, this is simple to manage
+}
+
+void Crystal::getParameterName(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "Hardnss", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "Personl", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "Drive", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this is our labels for displaying in the VST host
+}
+
+void Crystal::getParameterDisplay(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
+ case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
+ case kParamC: float2string (C*3.0, text, kVstMaxParamStrLen); break;
+ case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ } //this displays the values and handles 'popups' where it's discrete choices
+}
+
+void Crystal::getParameterLabel(VstInt32 index, char *text) {
+ switch (index) {
+ case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
+ default: break; // unknown parameter, shouldn't happen!
+ }
+}
+
+VstInt32 Crystal::canDo(char *text)
+{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
+
+bool Crystal::getEffectName(char* name) {
+ vst_strncpy(name, "Crystal", kVstMaxProductStrLen); return true;
+}
+
+VstPlugCategory Crystal::getPlugCategory() {return kPlugCategEffect;}
+
+bool Crystal::getProductString(char* text) {
+ vst_strncpy (text, "airwindows Crystal", kVstMaxProductStrLen); return true;
+}
+
+bool Crystal::getVendorString(char* text) {
+ vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
+}
diff --git a/plugins/WinVST/Crystal/Crystal.h b/plugins/WinVST/Crystal/Crystal.h
new file mode 100755
index 0000000..45ebb6a
--- /dev/null
+++ b/plugins/WinVST/Crystal/Crystal.h
@@ -0,0 +1,74 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Created 8/12/11 by SPIAdmin
+ * Copyright (c) 2011 __MyCompanyName__, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#define __Crystal_H
+
+#ifndef __audioeffect__
+#include "audioeffectx.h"
+#endif
+
+#include <set>
+#include <string>
+#include <math.h>
+
+enum {
+ kParamA = 0,
+ kParamB = 1,
+ kParamC = 2,
+ kParamD = 3,
+ kNumParameters = 4
+}; //
+
+const int kNumPrograms = 0;
+const int kNumInputs = 2;
+const int kNumOutputs = 2;
+const unsigned long kUniqueId = 'crys'; //Change this to what the AU identity is!
+
+class Crystal :
+ public AudioEffectX
+{
+public:
+ Crystal(audioMasterCallback audioMaster);
+ ~Crystal();
+ virtual bool getEffectName(char* name); // The plug-in name
+ virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
+ virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
+ virtual bool getVendorString(char* text); // Vendor info
+ virtual VstInt32 getVendorVersion(); // Version number
+ virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
+ virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
+ virtual void getProgramName(char *name); // read the name from the host
+ virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
+ virtual VstInt32 getChunk (void** data, bool isPreset);
+ virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
+ virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
+ virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
+ virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
+ virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
+ virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
+ virtual VstInt32 canDo(char *text);
+private:
+ char _programName[kVstMaxProgNameLen + 1];
+ std::set< std::string > _canDo;
+
+ double bL[35];
+ double lastSampleL;
+ double bR[35];
+ double lastSampleR;
+
+ long double fpNShapeL;
+ long double fpNShapeR;
+ //default stuff
+
+ float A;
+ float B;
+ float C;
+ float D;
+
+};
+
+#endif
diff --git a/plugins/WinVST/Crystal/CrystalProc.cpp b/plugins/WinVST/Crystal/CrystalProc.cpp
new file mode 100755
index 0000000..9c62355
--- /dev/null
+++ b/plugins/WinVST/Crystal/CrystalProc.cpp
@@ -0,0 +1,434 @@
+/* ========================================
+ * Crystal - Crystal.h
+ * Copyright (c) 2016 airwindows, All rights reserved
+ * ======================================== */
+
+#ifndef __Crystal_H
+#include "Crystal.h"
+#endif
+
+void Crystal::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
+{
+ float* in1 = inputs[0];
+ float* in2 = inputs[1];
+ float* out1 = outputs[0];
+ float* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 32-bit floating point
+ float fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 32 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
+
+void Crystal::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
+{
+ double* in1 = inputs[0];
+ double* in2 = inputs[1];
+ double* out1 = outputs[0];
+ double* out2 = outputs[1];
+
+ double threshold = A;
+ double hardness;
+ double breakup = (1.0-(threshold/2.0))*3.14159265358979;
+ double bridgerectifier;
+ double sqdrive = B;
+ if (sqdrive > 1.0) sqdrive *= sqdrive;
+ sqdrive = sqrt(sqdrive);
+ double indrive = C*3.0;
+ if (indrive > 1.0) indrive *= indrive;
+ indrive *= (1.0-(0.1695*sqdrive));
+ //no gain loss of convolution for APIcolypse
+ //calibrate this to match noise level with character at 1.0
+ //you get for instance 0.819 and 1.0-0.819 is 0.181
+ double randy;
+ double outlevel = D;
+
+ if (threshold < 1) hardness = 1.0 / (1.0-threshold);
+ else hardness = 999999999999999999999.0;
+ //set up hardness to exactly fill gap between threshold and 0db
+ //if threshold is literally 1 then hardness is infinite, so we make it very big
+
+ while (--sampleFrames >= 0)
+ {
+ long double inputSampleL = *in1;
+ long double inputSampleR = *in2;
+
+ static int noisesourceL = 0;
+ static int noisesourceR = 850010;
+ int residue;
+ double applyresidue;
+
+ noisesourceL = noisesourceL % 1700021; noisesourceL++;
+ residue = noisesourceL * noisesourceL;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleL += applyresidue;
+ if (inputSampleL<1.2e-38 && -inputSampleL<1.2e-38) {
+ inputSampleL -= applyresidue;
+ }
+
+ noisesourceR = noisesourceR % 1700021; noisesourceR++;
+ residue = noisesourceR * noisesourceR;
+ residue = residue % 170003; residue *= residue;
+ residue = residue % 17011; residue *= residue;
+ residue = residue % 1709; residue *= residue;
+ residue = residue % 173; residue *= residue;
+ residue = residue % 17;
+ applyresidue = residue;
+ applyresidue *= 0.00000001;
+ applyresidue *= 0.00000001;
+ inputSampleR += applyresidue;
+ if (inputSampleR<1.2e-38 && -inputSampleR<1.2e-38) {
+ inputSampleR -= applyresidue;
+ }
+ //for live air, we always apply the dither noise. Then, if our result is
+ //effectively digital black, we'll subtract it again. We want a 'air' hiss
+ inputSampleL *= indrive;
+ inputSampleR *= indrive;
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bL[23] = bL[22]; bL[22] = bL[21]; bL[21] = bL[20]; bL[20] = bL[19]; bL[19] = bL[18]; bL[18] = bL[17]; bL[17] = bL[16]; bL[16] = bL[15];
+ bL[15] = bL[14]; bL[14] = bL[13]; bL[13] = bL[12]; bL[12] = bL[11]; bL[11] = bL[10]; bL[10] = bL[9]; bL[9] = bL[8]; bL[8] = bL[7];
+ bL[7] = bL[6]; bL[6] = bL[5]; bL[5] = bL[4]; bL[4] = bL[3]; bL[3] = bL[2]; bL[2] = bL[1]; bL[1] = bL[0]; bL[0] = inputSampleL * sqdrive;
+ inputSampleL += (bL[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bL[1]))));
+ inputSampleL -= (bL[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bL[2]))));
+ inputSampleL += (bL[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bL[3]))));
+ inputSampleL -= (bL[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bL[4]))));
+ inputSampleL += (bL[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bL[5]))));
+ inputSampleL -= (bL[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bL[6]))));
+ inputSampleL += (bL[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bL[7]))));
+ inputSampleL -= (bL[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bL[8]))));
+ inputSampleL += (bL[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bL[9]))));
+ inputSampleL -= (bL[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bL[10]))));
+ inputSampleL += (bL[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bL[11]))));
+ inputSampleL -= (bL[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bL[12]))));
+ inputSampleL += (bL[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bL[13]))));
+ inputSampleL -= (bL[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bL[14]))));
+ inputSampleL += (bL[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bL[15]))));
+ inputSampleL -= (bL[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bL[16]))));
+ inputSampleL += (bL[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bL[17]))));
+ inputSampleL -= (bL[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bL[18]))));
+ inputSampleL += (bL[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bL[19]))));
+ inputSampleL -= (bL[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bL[20]))));
+ inputSampleL += (bL[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bL[21]))));
+ inputSampleL -= (bL[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bL[22]))));
+ inputSampleL += (bL[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bL[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ //calibrated to match gain through convolution and -0.3 correction
+ if (sqdrive > 0.0){
+ bR[23] = bR[22]; bR[22] = bR[21]; bR[21] = bR[20]; bR[20] = bR[19]; bR[19] = bR[18]; bR[18] = bR[17]; bR[17] = bR[16]; bR[16] = bR[15];
+ bR[15] = bR[14]; bR[14] = bR[13]; bR[13] = bR[12]; bR[12] = bR[11]; bR[11] = bR[10]; bR[10] = bR[9]; bR[9] = bR[8]; bR[8] = bR[7];
+ bR[7] = bR[6]; bR[6] = bR[5]; bR[5] = bR[4]; bR[4] = bR[3]; bR[3] = bR[2]; bR[2] = bR[1]; bR[1] = bR[0]; bR[0] = inputSampleR * sqdrive;
+ inputSampleR += (bR[1] * (0.38856694371895023 + (0.14001177830115491*fabs(bR[1]))));
+ inputSampleR -= (bR[2] * (0.17469488984546111 + (0.05204541941091459*fabs(bR[2]))));
+ inputSampleR += (bR[3] * (0.11643521461774288 - (0.01193121216518472*fabs(bR[3]))));
+ inputSampleR -= (bR[4] * (0.08874416268268183 - (0.05867502375036486*fabs(bR[4]))));
+ inputSampleR += (bR[5] * (0.07222999223073785 - (0.08519974113692971*fabs(bR[5]))));
+ inputSampleR -= (bR[6] * (0.06103207678880003 - (0.09230674983449150*fabs(bR[6]))));
+ inputSampleR += (bR[7] * (0.05277389277465404 - (0.08487342372497046*fabs(bR[7]))));
+ inputSampleR -= (bR[8] * (0.04631144388636078 - (0.06976851898821038*fabs(bR[8]))));
+ inputSampleR += (bR[9] * (0.04102721072495113 - (0.05337974329110802*fabs(bR[9]))));
+ inputSampleR -= (bR[10] * (0.03656047655964371 - (0.03990914278458497*fabs(bR[10]))));
+ inputSampleR += (bR[11] * (0.03268677450573373 - (0.03090433934018759*fabs(bR[11]))));
+ inputSampleR -= (bR[12] * (0.02926012259262895 - (0.02585223214266682*fabs(bR[12]))));
+ inputSampleR += (bR[13] * (0.02618257163789973 - (0.02326667039588473*fabs(bR[13]))));
+ inputSampleR -= (bR[14] * (0.02338568277879992 - (0.02167067760829789*fabs(bR[14]))));
+ inputSampleR += (bR[15] * (0.02082142324645262 - (0.02013392273267951*fabs(bR[15]))));
+ inputSampleR -= (bR[16] * (0.01845525966656259 - (0.01833038930966512*fabs(bR[16]))));
+ inputSampleR += (bR[17] * (0.01626113504980445 - (0.01631893218593511*fabs(bR[17]))));
+ inputSampleR -= (bR[18] * (0.01422084088669267 - (0.01427828125219885*fabs(bR[18]))));
+ inputSampleR += (bR[19] * (0.01231993595709338 - (0.01233991521342998*fabs(bR[19]))));
+ inputSampleR -= (bR[20] * (0.01054774630451013 - (0.01054774630542346*fabs(bR[20]))));
+ inputSampleR += (bR[21] * (0.00889548162355088 - (0.00889548162263755*fabs(bR[21]))));
+ inputSampleR -= (bR[22] * (0.00735749099304526 - (0.00735749099395860*fabs(bR[22]))));
+ inputSampleR += (bR[23] * (0.00592812350468000 - (0.00592812350376666*fabs(bR[23]))));
+ } //the Character plugins as individual processors did this. BussColors applies an averaging factor to produce
+ // more of a consistent variation between soft and loud convolutions. For years I thought this code was a
+ //mistake and did nothing, but in fact what it's doing is producing slightly different curves for every single
+ //convolution kernel location: this will be true of the Character individual plugins as well.
+
+ if (fabs(inputSampleL) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleL)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleL > 0) inputSampleL = bridgerectifier+threshold;
+ else inputSampleL = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ if (fabs(inputSampleR) > threshold)
+ {
+ bridgerectifier = (fabs(inputSampleR)-threshold)*hardness;
+ //skip flat area if any, scale to distortion limit
+ if (bridgerectifier > breakup) bridgerectifier = breakup;
+ //max value for sine function, 'breakup' modeling for trashed console tone
+ //more hardness = more solidness behind breakup modeling. more softness, more 'grunge' and sag
+ bridgerectifier = sin(bridgerectifier)/hardness;
+ //do the sine factor, scale back to proper amount
+ if (inputSampleR > 0) inputSampleR = bridgerectifier+threshold;
+ else inputSampleR = -(bridgerectifier+threshold);
+ } //otherwise we leave it untouched by the overdrive stuff
+ //this is the notorious New Channel Density algorithm. It's much less popular than the original Density,
+ //because it introduces a point where the saturation 'curve' changes from straight to curved.
+ //People don't like these discontinuities, but you can use them for effect or to grit up the sound.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleL*(1-randy))+(lastSampleL*randy)) * outlevel;
+ lastSampleL = inputSampleL;
+ inputSampleL = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ randy = ((rand()/(double)RAND_MAX)*0.022);
+ bridgerectifier = ((inputSampleR*(1-randy))+(lastSampleR*randy)) * outlevel;
+ lastSampleR = inputSampleR;
+ inputSampleR = bridgerectifier; //applies a tiny 'fuzz' to highs: from original Crystal.
+
+ //This is akin to the old Chrome Oxide plugin, applying a fuzz to only the slews. The noise only appears
+ //when current and old samples are different from each other, otherwise you can't tell it's there.
+ //This is not only during silence but the tops of low frequency waves: it scales down to affect lows more gently.
+
+ //noise shaping to 64-bit floating point
+ double fpTemp = inputSampleL;
+ fpNShapeL += (inputSampleL-fpTemp);
+ inputSampleL += fpNShapeL;
+ //if this confuses you look at the wordlength for fpTemp :)
+ fpTemp = inputSampleR;
+ fpNShapeR += (inputSampleR-fpTemp);
+ inputSampleR += fpNShapeR;
+ //for deeper space and warmth, we try a non-oscillating noise shaping
+ //that is kind of ruthless: it will forever retain the rounding errors
+ //except we'll dial it back a hair at the end of every buffer processed
+ //end noise shaping on 64 bit output
+
+ *out1 = inputSampleL;
+ *out2 = inputSampleR;
+
+ *in1++;
+ *in2++;
+ *out1++;
+ *out2++;
+ }
+ fpNShapeL *= 0.999999;
+ fpNShapeR *= 0.999999;
+ //we will just delicately dial back the FP noise shaping, not even every sample
+ //this is a good place to put subtle 'no runaway' calculations, though bear in mind
+ //that it will be called more often when you use shorter sample buffers in the DAW.
+ //So, very low latency operation will call these calculations more often.
+}
diff --git a/plugins/WinVST/Crystal/VSTProject.sln b/plugins/WinVST/Crystal/VSTProject.sln
new file mode 100755
index 0000000..694b424
--- /dev/null
+++ b/plugins/WinVST/Crystal/VSTProject.sln
@@ -0,0 +1,28 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 14
+VisualStudioVersion = 14.0.25420.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VSTProject", "VSTProject.vcxproj", "{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|x64 = Debug|x64
+ Debug|x86 = Debug|x86
+ Release|x64 = Release|x64
+ Release|x86 = Release|x86
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.ActiveCfg = Debug|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x64.Build.0 = Debug|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.ActiveCfg = Debug|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Debug|x86.Build.0 = Debug|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.ActiveCfg = Release|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x64.Build.0 = Release|x64
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.ActiveCfg = Release|Win32
+ {16F7AB3C-1AE0-4574-B60C-7B4DED82938C}.Release|x86.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/plugins/WinVST/Crystal/VSTProject.vcxproj b/plugins/WinVST/Crystal/VSTProject.vcxproj
new file mode 100755
index 0000000..18cb46c
--- /dev/null
+++ b/plugins/WinVST/Crystal/VSTProject.vcxproj
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup Label="ProjectConfigurations">
+ <ProjectConfiguration Include="Debug|Win32">
+ <Configuration>Debug</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|Win32">
+ <Configuration>Release</Configuration>
+ <Platform>Win32</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Debug|x64">
+ <Configuration>Debug</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ <ProjectConfiguration Include="Release|x64">
+ <Configuration>Release</Configuration>
+ <Platform>x64</Platform>
+ </ProjectConfiguration>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp" />
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp" />
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp" />
+ <ClCompile Include="Crystal.cpp" />
+ <ClCompile Include="CrystalProc.cpp" />
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h" />
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h" />
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h" />
+ <ClInclude Include="Crystal.h" />
+ </ItemGroup>
+ <PropertyGroup Label="Globals">
+ <ProjectGuid>{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}</ProjectGuid>
+ <RootNamespace>VSTProject</RootNamespace>
+ <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
+ <ProjectName>Crystal64</ProjectName>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>true</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
+ <ConfigurationType>DynamicLibrary</ConfigurationType>
+ <UseDebugLibraries>false</UseDebugLibraries>
+ <PlatformToolset>v140</PlatformToolset>
+ <WholeProgramOptimization>false</WholeProgramOptimization>
+ <CharacterSet>NotSet</CharacterSet>
+ </PropertyGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+ <ImportGroup Label="ExtensionSettings">
+ </ImportGroup>
+ <ImportGroup Label="Shared">
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
+ </ImportGroup>
+ <PropertyGroup Label="UserMacros" />
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <TargetExt>.dll</TargetExt>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <OutDir>$(SolutionDir)$(Configuration)\</OutDir>
+ <IntDir>$(Configuration)\</IntDir>
+ <ExecutablePath>$(VC_ExecutablePath_x64);$(WindowsSDK_ExecutablePath);$(VS_ExecutablePath);$(MSBuild_ExecutablePath);$(SystemRoot)\SysWow64;$(FxCopDir);$(PATH)</ExecutablePath>
+ </PropertyGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <MinimalRebuild>false</MinimalRebuild>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <MinimalRebuild>false</MinimalRebuild>
+ <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
+ <BasicRuntimeChecks>Default</BasicRuntimeChecks>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ </ClCompile>
+ <Link>
+ <AdditionalDependencies>kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <ClCompile>
+ <WarningLevel>Level3</WarningLevel>
+ <Optimization>MaxSpeed</Optimization>
+ <FunctionLevelLinking>false</FunctionLevelLinking>
+ <IntrinsicFunctions>false</IntrinsicFunctions>
+ <SDLCheck>true</SDLCheck>
+ <AdditionalIncludeDirectories>C:\Users\christopherjohnson\Documents\Visual Studio 2015\Projects\VSTProject\vst2.x;C:\Users\christopherjohnson\Documents\vstsdk2.4;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+ <DebugInformationFormat>None</DebugInformationFormat>
+ <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
+ <PreprocessorDefinitions>WINDOWS;_WINDOWS;WIN32;_USRDLL;_USE_MATH_DEFINES;_CRT_SECURE_NO_DEPRECATE;VST_FORCE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>
+ <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
+ </ClCompile>
+ <Link>
+ <EnableCOMDATFolding>true</EnableCOMDATFolding>
+ <OptimizeReferences>true</OptimizeReferences>
+ <IgnoreSpecificDefaultLibraries>libcmt.dll;libcmtd.dll;msvcrt.lib;libc.lib;libcd.lib;libcmt.lib;msvcrtd.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
+ <AdditionalDependencies>libcmt.lib;uuid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+ <ModuleDefinitionFile>vstplug.def</ModuleDefinitionFile>
+ </Link>
+ </ItemDefinitionGroup>
+ <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
+ <ImportGroup Label="ExtensionTargets">
+ </ImportGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/Crystal/VSTProject.vcxproj.filters b/plugins/WinVST/Crystal/VSTProject.vcxproj.filters
new file mode 100755
index 0000000..2930cbd
--- /dev/null
+++ b/plugins/WinVST/Crystal/VSTProject.vcxproj.filters
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <ItemGroup>
+ <Filter Include="Source Files">
+ <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
+ <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
+ </Filter>
+ <Filter Include="Header Files">
+ <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
+ <Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
+ </Filter>
+ <Filter Include="Resource Files">
+ <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
+ <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
+ </Filter>
+ </ItemGroup>
+ <ItemGroup>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\vstplugmain.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="Crystal.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ <ClCompile Include="CrystalProc.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
+ </ItemGroup>
+ <ItemGroup>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\aeffeditor.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffect.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\vstsdk2.4\public.sdk\source\vst2.x\audioeffectx.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="Crystal.h">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ </ItemGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/Crystal/VSTProject.vcxproj.user b/plugins/WinVST/Crystal/VSTProject.vcxproj.user
new file mode 100755
index 0000000..2216267
--- /dev/null
+++ b/plugins/WinVST/Crystal/VSTProject.vcxproj.user
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
+ <LocalDebuggerAmpDefaultAccelerator>{ADEFF70D-84BF-47A1-91C3-FF6B0FC71218}</LocalDebuggerAmpDefaultAccelerator>
+ <DebuggerFlavor>WindowsLocalDebugger</DebuggerFlavor>
+ </PropertyGroup>
+</Project> \ No newline at end of file
diff --git a/plugins/WinVST/Crystal/vstplug.def b/plugins/WinVST/Crystal/vstplug.def
new file mode 100755
index 0000000..5bf499a
--- /dev/null
+++ b/plugins/WinVST/Crystal/vstplug.def
@@ -0,0 +1,3 @@
+EXPORTS
+ VSTPluginMain
+ main=VSTPluginMain \ No newline at end of file