This commit is contained in:
Christopher Johnson 2024-11-10 19:39:28 -05:00
parent 59635ea5d9
commit f9ed445b6e
82 changed files with 20388 additions and 2 deletions

View file

@ -15,7 +15,7 @@ Bass: DubSub2, OrbitKick, Hermepass, BassKit, DubCenter, DubSub, Floor, Infrason
Biquads: BiquadStack, BiquadNonLin, BiquadPlus, Biquad, BiquadDouble, BiquadOneHalf, BiquadTriple, Biquad2
Brightness: Air3, PlatinumSlew, DeBess, GoldenSlew, Sinew, SlewSonic, Acceleration2, DeEss, Smooth, EverySlew, Slew3, Slew2, Slew, Air2, Air, PurestAir, Acceleration, DeHiss, Hypersonic, HypersonX, Ultrasonic, UltrasonicLite, UltrasonicMed, UltrasonX
Brightness: Air4, Air3, PlatinumSlew, DeBess, GoldenSlew, Sinew, SlewSonic, Acceleration2, DeEss, Smooth, EverySlew, Slew3, Slew2, Slew, Air2, Air, PurestAir, Acceleration, DeHiss, Hypersonic, HypersonX, Ultrasonic, UltrasonicLite, UltrasonicMed, UltrasonX
Clipping: ClipOnly2, ADClip8, ClipSoftly, OneCornerClip, ADClip7, AQuickVoiceClip, ClipOnly, FinalClip
@ -154,6 +154,24 @@ I think this is going to be hard to beat for this purpose, especially used subtl
For now, enjoy Air3, and if you've got opinions on what needs to follow it next, drop by a livestream: you have Air3 today because a livestream viewer asked for it to come out ASAP, and here we are. There's lots more. I'll keep working on all this stuff, it's great to see it all come together :)
############ Air4 extends Air3 with controllable high frequency limiting.
I'm pleased and honored to bring you Air4, which extends Air3 in a way that can help people trying my Meter plugin, and unable to get good high frequencies without bombing the slew section with red 'overslew' spikes.
Back in the day, because of natural limitations of analog media and disc mastering, we didn't have extended treble, and yet there were still bright hit records. We more readily hear brightness when it's really upper-mids, but the really high stuff has special characteristics: first, it's harder to hear, and second, it conveys a spatial position in air. That position is 'CLOSE'. Within arm's reach, within a few inches, within a few millimeters… of your eardrum.
This is because air is lossy, but digital isn't. Digital loses nothing, it just adds various distortions while it goes (this is why oversampling fans get excited about that: the extra distortions are rarely nice). For that reason, it's easy to make digital sounds unrealistically 'close', and this characterizes nearly all digital mixing.
We see this in Airwindows Meter as massive red spikes. Because there's absolutely no flexibility or 'glue' to the highs, what happens is you get all the sonic cues of 'far too close to my ear' before you get the brightness lift you're expecting. Air3 only aggravates this: it's based on Kalman filtering, and it can boost ONLY that airy glitter, and then you've got that problem. Fine if you want that effect, but then you're also distorting.
Air is the control for doing that, and Gnd means 'ground' and is literally everything else, so you can also adjust levels with it. Then there's the new controls. DarkF means 'dark filter', and it's the same as the control in Sinew (remember that? you already have it, but I saw it as a tube-fuzz sort of thing). And Ratio is basically a dry/wet for just DarkF, just Sinew (which, when it was invented, didn't get one: really novel stuff often appears as a super minimal plugin first).
As seen in the video, if you adjust DarkF it produces a hard limit on the slews. It defaults to just over 0.5, which automatically stops 'red spikes' in the Slew section of Meter, no matter what treble boost you do. This'll be an aggressive sort of 'glue' for the highs, or a safety highs-restrictor if you want to not mess with the red spikes of brightness.
To use it the way I use it, maybe lower the DarkF a bit, and then sneak Ratio back from full crank. What'll happen is, the spikes will gradually creep up towards their original volume, forming a spread-out cloud rather than a hard clipped line, except they'll be quieter than they were. The idea is to find the loudness you want for these bright peaks, and then work out how wide a range they're to cover. Doing this gives you brightness, but without the brittle harshness of digital treble boosting.
I hope you like Air4! I'm working on ConsoleX every day now, and it'll get there. It's a LOT of work.
############ Apicolypse is a re-release of my old API-style color adder, exacly as it was.
Apicolypse works the same way Neverland did. Its a drop-in replacement for old mixes, and was a precursor to BussColors. Its got a simpler method of generating its dynamic impulses, making them a sort of continuous spectrum between the low-level and high-level sounds. Like Neverland, its 44.1K though it will still function at any rate you like (sort of pitched up): like Neverland, its got a hardness control that at 0 is the Density algorithm, at 1.0 is straight digital clipping at the extreme, and at any setting between is a sort of hybrid that turned out to not be the greatest: a switch from perfectly clean, to soft-clip at any desired transition point. Technically if you had it so it only kicked in on hot peaks, itd be hard to find fault with it: I dont recommend setting it (on this or any Character plug or Crystal) to a position where soft-clip kicks in at very low level. Either do Hardness at zero, or high enough that most of the audio stays un-distorted: you can do what you like, though, Im not the boss of you :)

View file

@ -14,6 +14,7 @@ add_airwindows_plugin(ADClip8)
add_airwindows_plugin(ADT)
add_airwindows_plugin(Air)
add_airwindows_plugin(Air3)
add_airwindows_plugin(Air4)
add_airwindows_plugin(Apicolypse)
add_airwindows_plugin(AQuickVoiceClip)
add_airwindows_plugin(AtmosphereBuss)

View file

@ -0,0 +1,146 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Air4(audioMaster);}
Air4::Air4(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.52;
D = 0.0;
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//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
}
Air4::~Air4() {}
VstInt32 Air4::getVendorVersion () {return 1000;}
void Air4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Air4::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 Air4::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 Air4::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 Air4::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 Air4::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 Air4::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Air", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Gnd", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "DarkF", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Air4::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, 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 Air4::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 Air4::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Air4::getEffectName(char* name) {
vst_strncpy(name, "Air4", kVstMaxProductStrLen); return true;
}
VstPlugCategory Air4::getPlugCategory() {return kPlugCategEffect;}
bool Air4::getProductString(char* text) {
vst_strncpy (text, "airwindows Air4", kVstMaxProductStrLen); return true;
}
bool Air4::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

107
plugins/LinuxVST/src/Air4/Air4.h Executable file
View file

@ -0,0 +1,107 @@
/* ========================================
* Air4 - Air4.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#define __Air4_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 = 'aiyu'; //Change this to what the AU identity is!
class Air4 :
public AudioEffectX
{
public:
Air4(audioMasterCallback audioMaster);
~Air4();
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;
float A;
float B;
float C;
float D;
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
pvAR1,
pvSR1,
accSR1,
acc2SR1,
pvAR2,
pvSR2,
accSR2,
acc2SR2,
pvAR3,
pvSR3,
accSR3,
pvAR4,
pvSR4,
gndavgR,
outAR,
gainAR,
lastSR,
air_total
};
double air[air_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,230 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
void Air4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void Air4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

261
plugins/MacAU/Air4/Air4.cpp Executable file
View file

@ -0,0 +1,261 @@
/*
* File: Air4.cpp
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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.
*
*/
/*=============================================================================
Air4.cpp
=============================================================================*/
#include "Air4.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Air4)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Air4::Air4(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Air4::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Air4EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Air4::Air4Kernel::Reset()
{
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Air4::Air4Kernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double airGain = GetParameter( kParam_A )*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = GetParameter( kParam_B )*2.0;
double threshSinew = pow(GetParameter( kParam_C ),2)/overallscale;
double depthSinew = GetParameter( kParam_D );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSample;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySample-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySample;
double gnd = drySample - ((air[outAL]*0.5)+(drySample*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSample = ((drySample-gnd)*airGain)+(gnd*gndGain);
temp = inputSample; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSample = (inputSample * (1.0-depthSinew))+(air[lastSL]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

1
plugins/MacAU/Air4/Air4.exp Executable file
View file

@ -0,0 +1 @@
_Air4Entry

164
plugins/MacAU/Air4/Air4.h Executable file
View file

@ -0,0 +1,164 @@
/*
* File: Air4.h
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 "Air4Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Air4_h__
#define __Air4_h__
#pragma mark ____Air4 Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.52;
static const float kDefaultValue_ParamD = 0.0;
static CFStringRef kParameterAName = CFSTR("Air");
static CFStringRef kParameterBName = CFSTR("Gnd");
static CFStringRef kParameterCName = CFSTR("DarkF");
static CFStringRef kParameterDName = CFSTR("Ratio");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
//Add your parameters here...
kNumberOfParameters=4
};
#pragma mark ____Air4
class Air4 : public AUEffectBase
{
public:
Air4(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Air4 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new Air4Kernel(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 kAir4Version; }
protected:
class Air4Kernel : public AUKernelBase // most of the real work happens here
{
public:
Air4Kernel(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:
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
air_total
};
double air[air_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

61
plugins/MacAU/Air4/Air4.r Executable file
View file

@ -0,0 +1,61 @@
/*
* File: Air4.r
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 "Air4Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Air4 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Air4~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Air4
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Air4_COMP_SUBTYPE
#define COMP_MANUF Air4_COMP_MANF
#define VERSION kAir4Version
#define NAME "Airwindows: Air4"
#define DESCRIPTION "Air4 AU"
#define ENTRY_POINT "Air4Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,148 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Air4 */;
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 = 752417629;
PBXWorkspaceStateSaveDate = 752417629;
};
perUserProjectItems = {
8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */ = 8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */;
8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */ = 8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */;
8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */ = 8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */;
8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */ = 8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Air4/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Air4.cpp */;
name = "Air4.cpp: 243";
rLen = 0;
rLoc = 10724;
rType = 0;
vrLen = 590;
vrLoc = 10480;
};
8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Air4.h */;
name = "Air4.h: 153";
rLen = 0;
rLoc = 5470;
rType = 0;
vrLen = 127;
vrLoc = 5406;
};
8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Air4.h */;
name = "Air4.h: 153";
rLen = 0;
rLoc = 5470;
rType = 0;
vrLen = 134;
vrLoc = 5396;
};
8BA05A660720730100365D66 /* Air4.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1014, 4968}}";
sepNavSelRange = "{9421, 115}";
sepNavVisRange = "{8214, 1653}";
sepNavWindowFrame = "{{700, 57}, {1061, 821}}";
};
};
8BA05A690720730100365D66 /* Air4Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2871, 0}";
sepNavVisRange = "{1064, 1870}";
sepNavWindowFrame = "{{15, 52}, {1061, 821}}";
};
};
8BC6025B073B072D006C4272 /* Air4.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 3384}}";
sepNavSelRange = "{5470, 0}";
sepNavVisRange = "{5396, 134}";
sepNavWindowFrame = "{{375, 57}, {1061, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -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 /* Air4.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Air4.r */; };
8BA05A6B0720730100365D66 /* Air4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Air4.cpp */; };
8BA05A6E0720730100365D66 /* Air4Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Air4Version.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 /* Air4.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Air4.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 /* Air4.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Air4.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Air4.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Air4.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Air4.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Air4.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Air4Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Air4Version.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 /* Air4.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Air4.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Air4.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Air4.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 /* Air4 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Air4;
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 /* Air4.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Air4.h */,
8BA05A660720730100365D66 /* Air4.cpp */,
8BA05A670720730100365D66 /* Air4.exp */,
8BA05A680720730100365D66 /* Air4.r */,
8BA05A690720730100365D66 /* Air4Version.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 /* Air4Version.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 /* Air4.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 /* Air4 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Air4" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Air4;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Air4;
productReference = 8D01CCD20486CAD60068D4B7 /* Air4.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 "Air4" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Air4 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Air4 */,
);
};
/* 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 /* Air4.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Air4.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 = Air4.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 = Air4;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Air4.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 = Air4;
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 "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,58 @@
/*
* File: Air4Version.h
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 __Air4Version_h__
#define __Air4Version_h__
#ifdef DEBUG
#define kAir4Version 0xFFFFFFFF
#else
#define kAir4Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Air4_COMP_MANF 'Dthr'
#define Air4_COMP_SUBTYPE 'aiyu'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

28
plugins/MacAU/Air4/Info.plist Executable file
View file

@ -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>

View file

@ -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>

261
plugins/MacSignedAU/Air4/Air4.cpp Executable file
View file

@ -0,0 +1,261 @@
/*
* File: Air4.cpp
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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.
*
*/
/*=============================================================================
Air4.cpp
=============================================================================*/
#include "Air4.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Air4)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Air4::Air4(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Air4::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Air4::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Air4EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Air4::Air4Kernel::Reset()
{
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Air4::Air4Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Air4::Air4Kernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double airGain = GetParameter( kParam_A )*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = GetParameter( kParam_B )*2.0;
double threshSinew = pow(GetParameter( kParam_C ),2)/overallscale;
double depthSinew = GetParameter( kParam_D );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSample;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySample-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySample;
double gnd = drySample - ((air[outAL]*0.5)+(drySample*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSample = ((drySample-gnd)*airGain)+(gnd*gndGain);
temp = inputSample; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSample = (inputSample * (1.0-depthSinew))+(air[lastSL]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1,2 @@
_Air4Entry
_Air4Factory

164
plugins/MacSignedAU/Air4/Air4.h Executable file
View file

@ -0,0 +1,164 @@
/*
* File: Air4.h
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 "Air4Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Air4_h__
#define __Air4_h__
#pragma mark ____Air4 Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.52;
static const float kDefaultValue_ParamD = 0.0;
static CFStringRef kParameterAName = CFSTR("Air");
static CFStringRef kParameterBName = CFSTR("Gnd");
static CFStringRef kParameterCName = CFSTR("DarkF");
static CFStringRef kParameterDName = CFSTR("Ratio");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
//Add your parameters here...
kNumberOfParameters=4
};
#pragma mark ____Air4
class Air4 : public AUEffectBase
{
public:
Air4(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Air4 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new Air4Kernel(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 kAir4Version; }
protected:
class Air4Kernel : public AUKernelBase // most of the real work happens here
{
public:
Air4Kernel(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:
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
air_total
};
double air[air_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

61
plugins/MacSignedAU/Air4/Air4.r Executable file
View file

@ -0,0 +1,61 @@
/*
* File: Air4.r
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 "Air4Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Air4 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Air4~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Air4
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Air4_COMP_SUBTYPE
#define COMP_MANUF Air4_COMP_MANF
#define VERSION kAir4Version
#define NAME "Airwindows: Air4"
#define DESCRIPTION "Air4 AU"
#define ENTRY_POINT "Air4Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,148 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Air4 */;
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 = 752417629;
PBXWorkspaceStateSaveDate = 752417629;
};
perUserProjectItems = {
8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */ = 8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */;
8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */ = 8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */;
8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */ = 8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */;
8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */ = 8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B2BD8792CD8F1AB00C1BC02 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Air4/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B2BD8C32CD8FAAE00C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Air4.cpp */;
name = "Air4.cpp: 243";
rLen = 0;
rLoc = 10724;
rType = 0;
vrLen = 590;
vrLoc = 10480;
};
8B2BD8ED2CD9008200C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Air4.h */;
name = "Air4.h: 153";
rLen = 0;
rLoc = 5470;
rType = 0;
vrLen = 127;
vrLoc = 5406;
};
8B2BD8EE2CD9008200C1BC02 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Air4.h */;
name = "Air4.h: 153";
rLen = 0;
rLoc = 5470;
rType = 0;
vrLen = 134;
vrLoc = 5396;
};
8BA05A660720730100365D66 /* Air4.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1014, 4968}}";
sepNavSelRange = "{9421, 115}";
sepNavVisRange = "{8214, 1653}";
sepNavWindowFrame = "{{700, 57}, {1061, 821}}";
};
};
8BA05A690720730100365D66 /* Air4Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2871, 0}";
sepNavVisRange = "{1064, 1870}";
sepNavWindowFrame = "{{15, 52}, {1061, 821}}";
};
};
8BC6025B073B072D006C4272 /* Air4.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 3384}}";
sepNavSelRange = "{5470, 0}";
sepNavVisRange = "{5396, 134}";
sepNavWindowFrame = "{{375, 57}, {1061, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,965 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
8B61EC1D2CDEDF71004C8EED /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB952CDEDF71004C8EED /* CAExtAudioFile.h */; };
8B61EC1E2CDEDF71004C8EED /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB962CDEDF71004C8EED /* CACFMachPort.h */; };
8B61EC1F2CDEDF71004C8EED /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB972CDEDF71004C8EED /* CABool.h */; };
8B61EC202CDEDF71004C8EED /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EB982CDEDF71004C8EED /* CAComponent.cpp */; };
8B61EC212CDEDF71004C8EED /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB992CDEDF71004C8EED /* CADebugger.h */; };
8B61EC222CDEDF71004C8EED /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EB9A2CDEDF71004C8EED /* CACFNumber.cpp */; };
8B61EC232CDEDF71004C8EED /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB9B2CDEDF71004C8EED /* CAGuard.h */; };
8B61EC242CDEDF71004C8EED /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB9C2CDEDF71004C8EED /* CAAtomic.h */; };
8B61EC252CDEDF71004C8EED /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB9D2CDEDF71004C8EED /* CAStreamBasicDescription.h */; };
8B61EC262CDEDF71004C8EED /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB9E2CDEDF71004C8EED /* CACFObject.h */; };
8B61EC272CDEDF71004C8EED /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EB9F2CDEDF71004C8EED /* CAStreamRangedDescription.h */; };
8B61EC282CDEDF71004C8EED /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA02CDEDF71004C8EED /* CATokenMap.h */; };
8B61EC292CDEDF71004C8EED /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA12CDEDF71004C8EED /* CAComponent.h */; };
8B61EC2A2CDEDF71004C8EED /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA22CDEDF71004C8EED /* CAAudioBufferList.h */; };
8B61EC2B2CDEDF71004C8EED /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA32CDEDF71004C8EED /* CAAudioUnit.h */; };
8B61EC2C2CDEDF71004C8EED /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA42CDEDF71004C8EED /* CAAUParameter.h */; };
8B61EC2D2CDEDF71004C8EED /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA52CDEDF71004C8EED /* CAException.h */; };
8B61EC2E2CDEDF71004C8EED /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBA62CDEDF71004C8EED /* CAAUProcessor.cpp */; };
8B61EC2F2CDEDF71004C8EED /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA72CDEDF71004C8EED /* CAAUProcessor.h */; };
8B61EC302CDEDF71004C8EED /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA82CDEDF71004C8EED /* CAProcess.h */; };
8B61EC312CDEDF71004C8EED /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBA92CDEDF71004C8EED /* CACFDictionary.h */; };
8B61EC322CDEDF71004C8EED /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBAA2CDEDF71004C8EED /* CAPThread.h */; };
8B61EC332CDEDF71004C8EED /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBAB2CDEDF71004C8EED /* CAAUParameter.cpp */; };
8B61EC342CDEDF71004C8EED /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBAC2CDEDF71004C8EED /* CAAudioTimeStamp.h */; };
8B61EC352CDEDF71004C8EED /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBAD2CDEDF71004C8EED /* CAFilePathUtils.cpp */; };
8B61EC362CDEDF71004C8EED /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBAE2CDEDF71004C8EED /* CAAudioValueRange.h */; };
8B61EC372CDEDF71004C8EED /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBAF2CDEDF71004C8EED /* CAVectorUnitTypes.h */; };
8B61EC382CDEDF71004C8EED /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB02CDEDF71004C8EED /* CAAudioChannelLayoutObject.cpp */; };
8B61EC392CDEDF71004C8EED /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB12CDEDF71004C8EED /* CAGuard.cpp */; };
8B61EC3A2CDEDF71004C8EED /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBB22CDEDF71004C8EED /* CACFNumber.h */; };
8B61EC3B2CDEDF71004C8EED /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB32CDEDF71004C8EED /* CACFDistributedNotification.cpp */; };
8B61EC3C2CDEDF71004C8EED /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBB42CDEDF71004C8EED /* CACFString.h */; };
8B61EC3D2CDEDF71004C8EED /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB52CDEDF71004C8EED /* CAAUMIDIMapManager.cpp */; };
8B61EC3E2CDEDF71004C8EED /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB62CDEDF71004C8EED /* CAComponentDescription.cpp */; };
8B61EC3F2CDEDF71004C8EED /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBB72CDEDF71004C8EED /* CAHostTimeBase.h */; };
8B61EC402CDEDF71004C8EED /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBB82CDEDF71004C8EED /* CADebugMacros.cpp */; };
8B61EC412CDEDF71004C8EED /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBB92CDEDF71004C8EED /* CAAudioFileFormats.h */; };
8B61EC422CDEDF71004C8EED /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBBA2CDEDF71004C8EED /* CAAUMIDIMapManager.h */; };
8B61EC432CDEDF71004C8EED /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBBB2CDEDF71004C8EED /* CACFDictionary.cpp */; };
8B61EC442CDEDF71004C8EED /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBBC2CDEDF71004C8EED /* CAMutex.h */; };
8B61EC452CDEDF71004C8EED /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBBD2CDEDF71004C8EED /* CACFString.cpp */; };
8B61EC462CDEDF71004C8EED /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBBE2CDEDF71004C8EED /* CASettingsStorage.h */; };
8B61EC472CDEDF71004C8EED /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBBF2CDEDF71004C8EED /* CADebugPrintf.h */; };
8B61EC482CDEDF71004C8EED /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBC02CDEDF71004C8EED /* CAXException.cpp */; };
8B61EC492CDEDF71004C8EED /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC12CDEDF71004C8EED /* CAAUMIDIMap.h */; };
8B61EC4A2CDEDF71004C8EED /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC22CDEDF71004C8EED /* AUParamInfo.h */; };
8B61EC4B2CDEDF71004C8EED /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC32CDEDF71004C8EED /* CABitOperations.h */; };
8B61EC4C2CDEDF71004C8EED /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBC42CDEDF71004C8EED /* CACFPreferences.cpp */; };
8B61EC4D2CDEDF71004C8EED /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC52CDEDF71004C8EED /* CABundleLocker.h */; };
8B61EC4E2CDEDF71004C8EED /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC62CDEDF71004C8EED /* CAPropertyAddress.h */; };
8B61EC4F2CDEDF71004C8EED /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC72CDEDF71004C8EED /* CAXException.h */; };
8B61EC502CDEDF71004C8EED /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBC82CDEDF71004C8EED /* CAAudioChannelLayout.cpp */; };
8B61EC512CDEDF71004C8EED /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBC92CDEDF71004C8EED /* CAThreadSafeList.h */; };
8B61EC522CDEDF71004C8EED /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBCA2CDEDF71004C8EED /* CAAudioUnitOutputCapturer.h */; };
8B61EC532CDEDF71004C8EED /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBCB2CDEDF71004C8EED /* AUParamInfo.cpp */; };
8B61EC542CDEDF71004C8EED /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBCC2CDEDF71004C8EED /* CASharedLibrary.cpp */; };
8B61EC552CDEDF71004C8EED /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBCD2CDEDF71004C8EED /* CAAUMIDIMap.cpp */; };
8B61EC562CDEDF71004C8EED /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBCE2CDEDF71004C8EED /* CALogMacros.h */; };
8B61EC572CDEDF71004C8EED /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBCF2CDEDF71004C8EED /* CACFMessagePort.cpp */; };
8B61EC582CDEDF71004C8EED /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD02CDEDF71004C8EED /* CARingBuffer.h */; };
8B61EC592CDEDF71004C8EED /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBD12CDEDF71004C8EED /* AUOutputBL.cpp */; };
8B61EC5A2CDEDF71004C8EED /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD22CDEDF71004C8EED /* CABufferList.h */; };
8B61EC5B2CDEDF71004C8EED /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD32CDEDF71004C8EED /* CASharedLibrary.h */; };
8B61EC5C2CDEDF71004C8EED /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD42CDEDF71004C8EED /* CACFData.h */; };
8B61EC5D2CDEDF71004C8EED /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBD52CDEDF71004C8EED /* CAStreamRangedDescription.cpp */; };
8B61EC5E2CDEDF71004C8EED /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBD62CDEDF71004C8EED /* CAPThread.cpp */; };
8B61EC5F2CDEDF71004C8EED /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD72CDEDF71004C8EED /* CAAutoDisposer.h */; };
8B61EC602CDEDF71004C8EED /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBD82CDEDF71004C8EED /* CACFPreferences.h */; };
8B61EC612CDEDF71004C8EED /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBD92CDEDF71004C8EED /* CAVectorUnit.cpp */; };
8B61EC622CDEDF71004C8EED /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBDA2CDEDF71004C8EED /* CAComponentDescription.h */; };
8B61EC632CDEDF71004C8EED /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBDB2CDEDF71004C8EED /* CADebugMacros.h */; };
8B61EC642CDEDF71004C8EED /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBDC2CDEDF71004C8EED /* AUOutputBL.h */; };
8B61EC652CDEDF71004C8EED /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBDD2CDEDF71004C8EED /* CADebugPrintf.cpp */; };
8B61EC662CDEDF71004C8EED /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBDE2CDEDF71004C8EED /* CARingBuffer.cpp */; };
8B61EC672CDEDF71004C8EED /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBDF2CDEDF71004C8EED /* CACFPlugIn.h */; };
8B61EC682CDEDF71004C8EED /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBE02CDEDF71004C8EED /* CASettingsStorage.cpp */; };
8B61EC692CDEDF71004C8EED /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBE12CDEDF71004C8EED /* CAMixMap.h */; };
8B61EC6A2CDEDF71004C8EED /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBE22CDEDF71004C8EED /* CACFDistributedNotification.h */; };
8B61EC6B2CDEDF71004C8EED /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBE32CDEDF71004C8EED /* CAFilePathUtils.h */; };
8B61EC6C2CDEDF71004C8EED /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBE42CDEDF71004C8EED /* CATink.h */; };
8B61EC6D2CDEDF71004C8EED /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBE52CDEDF71004C8EED /* CAStreamBasicDescription.cpp */; };
8B61EC6E2CDEDF71004C8EED /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBE62CDEDF71004C8EED /* CAAudioChannelLayout.h */; };
8B61EC6F2CDEDF71004C8EED /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBE72CDEDF71004C8EED /* CAProcess.cpp */; };
8B61EC702CDEDF71004C8EED /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBE82CDEDF71004C8EED /* CAHostTimeBase.cpp */; };
8B61EC712CDEDF71004C8EED /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBE92CDEDF71004C8EED /* CAPersistence.cpp */; };
8B61EC722CDEDF71004C8EED /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBEA2CDEDF71004C8EED /* CAAudioBufferList.cpp */; };
8B61EC732CDEDF71004C8EED /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBEB2CDEDF71004C8EED /* CAAudioTimeStamp.cpp */; };
8B61EC742CDEDF71004C8EED /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBEC2CDEDF71004C8EED /* CAVectorUnit.h */; };
8B61EC752CDEDF71004C8EED /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBED2CDEDF71004C8EED /* CAByteOrder.h */; };
8B61EC762CDEDF71004C8EED /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBEE2CDEDF71004C8EED /* CACFArray.h */; };
8B61EC772CDEDF71004C8EED /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBEF2CDEDF71004C8EED /* CAAtomicStack.h */; };
8B61EC782CDEDF71004C8EED /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBF02CDEDF71004C8EED /* CAReferenceCounted.h */; };
8B61EC792CDEDF71004C8EED /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF12CDEDF71004C8EED /* CACFMachPort.cpp */; };
8B61EC7A2CDEDF71004C8EED /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF22CDEDF71004C8EED /* CABufferList.cpp */; };
8B61EC7B2CDEDF71004C8EED /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF32CDEDF71004C8EED /* CAMutex.cpp */; };
8B61EC7C2CDEDF71004C8EED /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF42CDEDF71004C8EED /* CADebugger.cpp */; };
8B61EC7D2CDEDF71004C8EED /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF52CDEDF71004C8EED /* CABundleLocker.cpp */; };
8B61EC7E2CDEDF71004C8EED /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF62CDEDF71004C8EED /* CAAudioFileFormats.cpp */; };
8B61EC7F2CDEDF71004C8EED /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBF72CDEDF71004C8EED /* CAMath.h */; };
8B61EC802CDEDF71004C8EED /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBF82CDEDF71004C8EED /* CACFArray.cpp */; };
8B61EC812CDEDF71004C8EED /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBF92CDEDF71004C8EED /* CACFMessagePort.h */; };
8B61EC822CDEDF71004C8EED /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBFA2CDEDF71004C8EED /* CAAudioValueRange.cpp */; };
8B61EC832CDEDF71004C8EED /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EBFB2CDEDF71004C8EED /* CAAudioUnit.cpp */; };
8B61EC842CDEDF71004C8EED /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EBFF2CDEDF71004C8EED /* AUViewLocalizedStringKeys.h */; };
8B61EC852CDEDF71004C8EED /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC012CDEDF71004C8EED /* ComponentBase.cpp */; };
8B61EC862CDEDF71004C8EED /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC022CDEDF71004C8EED /* AUScopeElement.cpp */; };
8B61EC872CDEDF71004C8EED /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC032CDEDF71004C8EED /* ComponentBase.h */; };
8B61EC882CDEDF71004C8EED /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC042CDEDF71004C8EED /* AUBase.cpp */; };
8B61EC892CDEDF71004C8EED /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC052CDEDF71004C8EED /* AUInputElement.h */; };
8B61EC8A2CDEDF71004C8EED /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC062CDEDF71004C8EED /* AUBase.h */; };
8B61EC8B2CDEDF71004C8EED /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC072CDEDF71004C8EED /* AUPlugInDispatch.h */; };
8B61EC8C2CDEDF71004C8EED /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC082CDEDF71004C8EED /* AUDispatch.h */; };
8B61EC8D2CDEDF71004C8EED /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC092CDEDF71004C8EED /* AUOutputElement.cpp */; };
8B61EC8F2CDEDF71004C8EED /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC0B2CDEDF71004C8EED /* AUPlugInDispatch.cpp */; };
8B61EC902CDEDF71004C8EED /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC0C2CDEDF71004C8EED /* AUOutputElement.h */; };
8B61EC912CDEDF71004C8EED /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC0D2CDEDF71004C8EED /* AUDispatch.cpp */; };
8B61EC922CDEDF71004C8EED /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC0E2CDEDF71004C8EED /* AUScopeElement.h */; };
8B61EC932CDEDF71004C8EED /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC0F2CDEDF71004C8EED /* AUInputElement.cpp */; };
8B61EC942CDEDF71004C8EED /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC112CDEDF71004C8EED /* AUEffectBase.cpp */; };
8B61EC952CDEDF71004C8EED /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC122CDEDF71004C8EED /* AUEffectBase.h */; };
8B61EC962CDEDF71004C8EED /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC142CDEDF71004C8EED /* AUTimestampGenerator.h */; };
8B61EC972CDEDF71004C8EED /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC152CDEDF71004C8EED /* AUBaseHelper.cpp */; };
8B61EC982CDEDF71004C8EED /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC162CDEDF71004C8EED /* AUSilentTimeout.h */; };
8B61EC992CDEDF71004C8EED /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC172CDEDF71004C8EED /* AUInputFormatConverter.h */; };
8B61EC9A2CDEDF71004C8EED /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC182CDEDF71004C8EED /* AUTimestampGenerator.cpp */; };
8B61EC9B2CDEDF71004C8EED /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61EC192CDEDF71004C8EED /* AUBuffer.cpp */; };
8B61EC9C2CDEDF71004C8EED /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC1A2CDEDF71004C8EED /* AUMIDIDefs.h */; };
8B61EC9D2CDEDF71004C8EED /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC1B2CDEDF71004C8EED /* AUBuffer.h */; };
8B61EC9E2CDEDF71004C8EED /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61EC1C2CDEDF71004C8EED /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* Air4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Air4.cpp */; };
8BA05A6E0720730100365D66 /* Air4Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Air4Version.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 */; };
8BC6025C073B072D006C4272 /* Air4.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Air4.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8B61EB952CDEDF71004C8EED /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B61EB962CDEDF71004C8EED /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B61EB972CDEDF71004C8EED /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B61EB982CDEDF71004C8EED /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B61EB992CDEDF71004C8EED /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B61EB9A2CDEDF71004C8EED /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B61EB9B2CDEDF71004C8EED /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B61EB9C2CDEDF71004C8EED /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B61EB9D2CDEDF71004C8EED /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B61EB9E2CDEDF71004C8EED /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B61EB9F2CDEDF71004C8EED /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B61EBA02CDEDF71004C8EED /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B61EBA12CDEDF71004C8EED /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B61EBA22CDEDF71004C8EED /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B61EBA32CDEDF71004C8EED /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B61EBA42CDEDF71004C8EED /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B61EBA52CDEDF71004C8EED /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B61EBA62CDEDF71004C8EED /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B61EBA72CDEDF71004C8EED /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B61EBA82CDEDF71004C8EED /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B61EBA92CDEDF71004C8EED /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B61EBAA2CDEDF71004C8EED /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B61EBAB2CDEDF71004C8EED /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B61EBAC2CDEDF71004C8EED /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B61EBAD2CDEDF71004C8EED /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B61EBAE2CDEDF71004C8EED /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B61EBAF2CDEDF71004C8EED /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B61EBB02CDEDF71004C8EED /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B61EBB12CDEDF71004C8EED /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B61EBB22CDEDF71004C8EED /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B61EBB32CDEDF71004C8EED /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B61EBB42CDEDF71004C8EED /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B61EBB52CDEDF71004C8EED /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B61EBB62CDEDF71004C8EED /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B61EBB72CDEDF71004C8EED /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B61EBB82CDEDF71004C8EED /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B61EBB92CDEDF71004C8EED /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B61EBBA2CDEDF71004C8EED /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B61EBBB2CDEDF71004C8EED /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B61EBBC2CDEDF71004C8EED /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B61EBBD2CDEDF71004C8EED /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B61EBBE2CDEDF71004C8EED /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B61EBBF2CDEDF71004C8EED /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B61EBC02CDEDF71004C8EED /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B61EBC12CDEDF71004C8EED /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B61EBC22CDEDF71004C8EED /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B61EBC32CDEDF71004C8EED /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B61EBC42CDEDF71004C8EED /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B61EBC52CDEDF71004C8EED /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B61EBC62CDEDF71004C8EED /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B61EBC72CDEDF71004C8EED /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B61EBC82CDEDF71004C8EED /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B61EBC92CDEDF71004C8EED /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B61EBCA2CDEDF71004C8EED /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B61EBCB2CDEDF71004C8EED /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B61EBCC2CDEDF71004C8EED /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B61EBCD2CDEDF71004C8EED /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B61EBCE2CDEDF71004C8EED /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B61EBCF2CDEDF71004C8EED /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B61EBD02CDEDF71004C8EED /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B61EBD12CDEDF71004C8EED /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B61EBD22CDEDF71004C8EED /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B61EBD32CDEDF71004C8EED /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B61EBD42CDEDF71004C8EED /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B61EBD52CDEDF71004C8EED /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B61EBD62CDEDF71004C8EED /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B61EBD72CDEDF71004C8EED /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B61EBD82CDEDF71004C8EED /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B61EBD92CDEDF71004C8EED /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B61EBDA2CDEDF71004C8EED /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B61EBDB2CDEDF71004C8EED /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B61EBDC2CDEDF71004C8EED /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B61EBDD2CDEDF71004C8EED /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B61EBDE2CDEDF71004C8EED /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B61EBDF2CDEDF71004C8EED /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B61EBE02CDEDF71004C8EED /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B61EBE12CDEDF71004C8EED /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B61EBE22CDEDF71004C8EED /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B61EBE32CDEDF71004C8EED /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B61EBE42CDEDF71004C8EED /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B61EBE52CDEDF71004C8EED /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B61EBE62CDEDF71004C8EED /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B61EBE72CDEDF71004C8EED /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B61EBE82CDEDF71004C8EED /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B61EBE92CDEDF71004C8EED /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B61EBEA2CDEDF71004C8EED /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B61EBEB2CDEDF71004C8EED /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B61EBEC2CDEDF71004C8EED /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B61EBED2CDEDF71004C8EED /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B61EBEE2CDEDF71004C8EED /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B61EBEF2CDEDF71004C8EED /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B61EBF02CDEDF71004C8EED /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B61EBF12CDEDF71004C8EED /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B61EBF22CDEDF71004C8EED /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B61EBF32CDEDF71004C8EED /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B61EBF42CDEDF71004C8EED /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B61EBF52CDEDF71004C8EED /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B61EBF62CDEDF71004C8EED /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B61EBF72CDEDF71004C8EED /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B61EBF82CDEDF71004C8EED /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B61EBF92CDEDF71004C8EED /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B61EBFA2CDEDF71004C8EED /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B61EBFB2CDEDF71004C8EED /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B61EBFF2CDEDF71004C8EED /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B61EC012CDEDF71004C8EED /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B61EC022CDEDF71004C8EED /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B61EC032CDEDF71004C8EED /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B61EC042CDEDF71004C8EED /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B61EC052CDEDF71004C8EED /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B61EC062CDEDF71004C8EED /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B61EC072CDEDF71004C8EED /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B61EC082CDEDF71004C8EED /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B61EC092CDEDF71004C8EED /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B61EC0A2CDEDF71004C8EED /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B61EC0B2CDEDF71004C8EED /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B61EC0C2CDEDF71004C8EED /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B61EC0D2CDEDF71004C8EED /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B61EC0E2CDEDF71004C8EED /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B61EC0F2CDEDF71004C8EED /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B61EC112CDEDF71004C8EED /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B61EC122CDEDF71004C8EED /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B61EC142CDEDF71004C8EED /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B61EC152CDEDF71004C8EED /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B61EC162CDEDF71004C8EED /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B61EC172CDEDF71004C8EED /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B61EC182CDEDF71004C8EED /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B61EC192CDEDF71004C8EED /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B61EC1A2CDEDF71004C8EED /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B61EC1B2CDEDF71004C8EED /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B61EC1C2CDEDF71004C8EED /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B61EC9F2CDEE12D004C8EED /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8BA05A660720730100365D66 /* Air4.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Air4.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Air4.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Air4.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Air4.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Air4.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Air4Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Air4Version.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>"; };
8BC6025B073B072D006C4272 /* Air4.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Air4.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Air4.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Air4.component; sourceTree = BUILT_PRODUCTS_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 /* Air4 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Air4;
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 = (
8B61EB932CDEDF71004C8EED /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Air4.component */,
);
name = Products;
sourceTree = "<group>";
};
8B61EB932CDEDF71004C8EED /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B61EB942CDEDF71004C8EED /* PublicUtility */,
8B61EBFC2CDEDF71004C8EED /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B61EB942CDEDF71004C8EED /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B61EB952CDEDF71004C8EED /* CAExtAudioFile.h */,
8B61EB962CDEDF71004C8EED /* CACFMachPort.h */,
8B61EB972CDEDF71004C8EED /* CABool.h */,
8B61EB982CDEDF71004C8EED /* CAComponent.cpp */,
8B61EB992CDEDF71004C8EED /* CADebugger.h */,
8B61EB9A2CDEDF71004C8EED /* CACFNumber.cpp */,
8B61EB9B2CDEDF71004C8EED /* CAGuard.h */,
8B61EB9C2CDEDF71004C8EED /* CAAtomic.h */,
8B61EB9D2CDEDF71004C8EED /* CAStreamBasicDescription.h */,
8B61EB9E2CDEDF71004C8EED /* CACFObject.h */,
8B61EB9F2CDEDF71004C8EED /* CAStreamRangedDescription.h */,
8B61EBA02CDEDF71004C8EED /* CATokenMap.h */,
8B61EBA12CDEDF71004C8EED /* CAComponent.h */,
8B61EBA22CDEDF71004C8EED /* CAAudioBufferList.h */,
8B61EBA32CDEDF71004C8EED /* CAAudioUnit.h */,
8B61EBA42CDEDF71004C8EED /* CAAUParameter.h */,
8B61EBA52CDEDF71004C8EED /* CAException.h */,
8B61EBA62CDEDF71004C8EED /* CAAUProcessor.cpp */,
8B61EBA72CDEDF71004C8EED /* CAAUProcessor.h */,
8B61EBA82CDEDF71004C8EED /* CAProcess.h */,
8B61EBA92CDEDF71004C8EED /* CACFDictionary.h */,
8B61EBAA2CDEDF71004C8EED /* CAPThread.h */,
8B61EBAB2CDEDF71004C8EED /* CAAUParameter.cpp */,
8B61EBAC2CDEDF71004C8EED /* CAAudioTimeStamp.h */,
8B61EBAD2CDEDF71004C8EED /* CAFilePathUtils.cpp */,
8B61EBAE2CDEDF71004C8EED /* CAAudioValueRange.h */,
8B61EBAF2CDEDF71004C8EED /* CAVectorUnitTypes.h */,
8B61EBB02CDEDF71004C8EED /* CAAudioChannelLayoutObject.cpp */,
8B61EBB12CDEDF71004C8EED /* CAGuard.cpp */,
8B61EBB22CDEDF71004C8EED /* CACFNumber.h */,
8B61EBB32CDEDF71004C8EED /* CACFDistributedNotification.cpp */,
8B61EBB42CDEDF71004C8EED /* CACFString.h */,
8B61EBB52CDEDF71004C8EED /* CAAUMIDIMapManager.cpp */,
8B61EBB62CDEDF71004C8EED /* CAComponentDescription.cpp */,
8B61EBB72CDEDF71004C8EED /* CAHostTimeBase.h */,
8B61EBB82CDEDF71004C8EED /* CADebugMacros.cpp */,
8B61EBB92CDEDF71004C8EED /* CAAudioFileFormats.h */,
8B61EBBA2CDEDF71004C8EED /* CAAUMIDIMapManager.h */,
8B61EBBB2CDEDF71004C8EED /* CACFDictionary.cpp */,
8B61EBBC2CDEDF71004C8EED /* CAMutex.h */,
8B61EBBD2CDEDF71004C8EED /* CACFString.cpp */,
8B61EBBE2CDEDF71004C8EED /* CASettingsStorage.h */,
8B61EBBF2CDEDF71004C8EED /* CADebugPrintf.h */,
8B61EBC02CDEDF71004C8EED /* CAXException.cpp */,
8B61EBC12CDEDF71004C8EED /* CAAUMIDIMap.h */,
8B61EBC22CDEDF71004C8EED /* AUParamInfo.h */,
8B61EBC32CDEDF71004C8EED /* CABitOperations.h */,
8B61EBC42CDEDF71004C8EED /* CACFPreferences.cpp */,
8B61EBC52CDEDF71004C8EED /* CABundleLocker.h */,
8B61EBC62CDEDF71004C8EED /* CAPropertyAddress.h */,
8B61EBC72CDEDF71004C8EED /* CAXException.h */,
8B61EBC82CDEDF71004C8EED /* CAAudioChannelLayout.cpp */,
8B61EBC92CDEDF71004C8EED /* CAThreadSafeList.h */,
8B61EBCA2CDEDF71004C8EED /* CAAudioUnitOutputCapturer.h */,
8B61EBCB2CDEDF71004C8EED /* AUParamInfo.cpp */,
8B61EBCC2CDEDF71004C8EED /* CASharedLibrary.cpp */,
8B61EBCD2CDEDF71004C8EED /* CAAUMIDIMap.cpp */,
8B61EBCE2CDEDF71004C8EED /* CALogMacros.h */,
8B61EBCF2CDEDF71004C8EED /* CACFMessagePort.cpp */,
8B61EBD02CDEDF71004C8EED /* CARingBuffer.h */,
8B61EBD12CDEDF71004C8EED /* AUOutputBL.cpp */,
8B61EBD22CDEDF71004C8EED /* CABufferList.h */,
8B61EBD32CDEDF71004C8EED /* CASharedLibrary.h */,
8B61EBD42CDEDF71004C8EED /* CACFData.h */,
8B61EBD52CDEDF71004C8EED /* CAStreamRangedDescription.cpp */,
8B61EBD62CDEDF71004C8EED /* CAPThread.cpp */,
8B61EBD72CDEDF71004C8EED /* CAAutoDisposer.h */,
8B61EBD82CDEDF71004C8EED /* CACFPreferences.h */,
8B61EBD92CDEDF71004C8EED /* CAVectorUnit.cpp */,
8B61EBDA2CDEDF71004C8EED /* CAComponentDescription.h */,
8B61EBDB2CDEDF71004C8EED /* CADebugMacros.h */,
8B61EBDC2CDEDF71004C8EED /* AUOutputBL.h */,
8B61EBDD2CDEDF71004C8EED /* CADebugPrintf.cpp */,
8B61EBDE2CDEDF71004C8EED /* CARingBuffer.cpp */,
8B61EBDF2CDEDF71004C8EED /* CACFPlugIn.h */,
8B61EBE02CDEDF71004C8EED /* CASettingsStorage.cpp */,
8B61EBE12CDEDF71004C8EED /* CAMixMap.h */,
8B61EBE22CDEDF71004C8EED /* CACFDistributedNotification.h */,
8B61EBE32CDEDF71004C8EED /* CAFilePathUtils.h */,
8B61EBE42CDEDF71004C8EED /* CATink.h */,
8B61EBE52CDEDF71004C8EED /* CAStreamBasicDescription.cpp */,
8B61EBE62CDEDF71004C8EED /* CAAudioChannelLayout.h */,
8B61EBE72CDEDF71004C8EED /* CAProcess.cpp */,
8B61EBE82CDEDF71004C8EED /* CAHostTimeBase.cpp */,
8B61EBE92CDEDF71004C8EED /* CAPersistence.cpp */,
8B61EBEA2CDEDF71004C8EED /* CAAudioBufferList.cpp */,
8B61EBEB2CDEDF71004C8EED /* CAAudioTimeStamp.cpp */,
8B61EBEC2CDEDF71004C8EED /* CAVectorUnit.h */,
8B61EBED2CDEDF71004C8EED /* CAByteOrder.h */,
8B61EBEE2CDEDF71004C8EED /* CACFArray.h */,
8B61EBEF2CDEDF71004C8EED /* CAAtomicStack.h */,
8B61EBF02CDEDF71004C8EED /* CAReferenceCounted.h */,
8B61EBF12CDEDF71004C8EED /* CACFMachPort.cpp */,
8B61EBF22CDEDF71004C8EED /* CABufferList.cpp */,
8B61EBF32CDEDF71004C8EED /* CAMutex.cpp */,
8B61EBF42CDEDF71004C8EED /* CADebugger.cpp */,
8B61EBF52CDEDF71004C8EED /* CABundleLocker.cpp */,
8B61EBF62CDEDF71004C8EED /* CAAudioFileFormats.cpp */,
8B61EBF72CDEDF71004C8EED /* CAMath.h */,
8B61EBF82CDEDF71004C8EED /* CACFArray.cpp */,
8B61EBF92CDEDF71004C8EED /* CACFMessagePort.h */,
8B61EBFA2CDEDF71004C8EED /* CAAudioValueRange.cpp */,
8B61EBFB2CDEDF71004C8EED /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B61EBFC2CDEDF71004C8EED /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B61EBFD2CDEDF71004C8EED /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B61EBFD2CDEDF71004C8EED /* AUPublic */ = {
isa = PBXGroup;
children = (
8B61EBFE2CDEDF71004C8EED /* AUViewBase */,
8B61EC002CDEDF71004C8EED /* AUBase */,
8B61EC102CDEDF71004C8EED /* OtherBases */,
8B61EC132CDEDF71004C8EED /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B61EBFE2CDEDF71004C8EED /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B61EBFF2CDEDF71004C8EED /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B61EC002CDEDF71004C8EED /* AUBase */ = {
isa = PBXGroup;
children = (
8B61EC012CDEDF71004C8EED /* ComponentBase.cpp */,
8B61EC022CDEDF71004C8EED /* AUScopeElement.cpp */,
8B61EC032CDEDF71004C8EED /* ComponentBase.h */,
8B61EC042CDEDF71004C8EED /* AUBase.cpp */,
8B61EC052CDEDF71004C8EED /* AUInputElement.h */,
8B61EC062CDEDF71004C8EED /* AUBase.h */,
8B61EC072CDEDF71004C8EED /* AUPlugInDispatch.h */,
8B61EC082CDEDF71004C8EED /* AUDispatch.h */,
8B61EC092CDEDF71004C8EED /* AUOutputElement.cpp */,
8B61EC0A2CDEDF71004C8EED /* AUResources.r */,
8B61EC0B2CDEDF71004C8EED /* AUPlugInDispatch.cpp */,
8B61EC0C2CDEDF71004C8EED /* AUOutputElement.h */,
8B61EC0D2CDEDF71004C8EED /* AUDispatch.cpp */,
8B61EC0E2CDEDF71004C8EED /* AUScopeElement.h */,
8B61EC0F2CDEDF71004C8EED /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B61EC102CDEDF71004C8EED /* OtherBases */ = {
isa = PBXGroup;
children = (
8B61EC112CDEDF71004C8EED /* AUEffectBase.cpp */,
8B61EC122CDEDF71004C8EED /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B61EC132CDEDF71004C8EED /* Utility */ = {
isa = PBXGroup;
children = (
8B61EC142CDEDF71004C8EED /* AUTimestampGenerator.h */,
8B61EC152CDEDF71004C8EED /* AUBaseHelper.cpp */,
8B61EC162CDEDF71004C8EED /* AUSilentTimeout.h */,
8B61EC172CDEDF71004C8EED /* AUInputFormatConverter.h */,
8B61EC182CDEDF71004C8EED /* AUTimestampGenerator.cpp */,
8B61EC192CDEDF71004C8EED /* AUBuffer.cpp */,
8B61EC1A2CDEDF71004C8EED /* AUMIDIDefs.h */,
8B61EC1B2CDEDF71004C8EED /* AUBuffer.h */,
8B61EC1C2CDEDF71004C8EED /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Air4.h */,
8BA05A660720730100365D66 /* Air4.cpp */,
8BA05A670720730100365D66 /* Air4.exp */,
8BA05A680720730100365D66 /* Air4.r */,
8BA05A690720730100365D66 /* Air4Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B61EC4D2CDEDF71004C8EED /* CABundleLocker.h in Headers */,
8B61EC6E2CDEDF71004C8EED /* CAAudioChannelLayout.h in Headers */,
8B61EC642CDEDF71004C8EED /* AUOutputBL.h in Headers */,
8B61EC3F2CDEDF71004C8EED /* CAHostTimeBase.h in Headers */,
8B61EC872CDEDF71004C8EED /* ComponentBase.h in Headers */,
8B61EC772CDEDF71004C8EED /* CAAtomicStack.h in Headers */,
8B61EC342CDEDF71004C8EED /* CAAudioTimeStamp.h in Headers */,
8B61EC512CDEDF71004C8EED /* CAThreadSafeList.h in Headers */,
8B61EC2C2CDEDF71004C8EED /* CAAUParameter.h in Headers */,
8B61EC9E2CDEDF71004C8EED /* AUBaseHelper.h in Headers */,
8B61EC962CDEDF71004C8EED /* AUTimestampGenerator.h in Headers */,
8B61EC472CDEDF71004C8EED /* CADebugPrintf.h in Headers */,
8B61EC812CDEDF71004C8EED /* CACFMessagePort.h in Headers */,
8B61EC2F2CDEDF71004C8EED /* CAAUProcessor.h in Headers */,
8B61EC2B2CDEDF71004C8EED /* CAAudioUnit.h in Headers */,
8B61EC842CDEDF71004C8EED /* AUViewLocalizedStringKeys.h in Headers */,
8B61EC6A2CDEDF71004C8EED /* CACFDistributedNotification.h in Headers */,
8B61EC292CDEDF71004C8EED /* CAComponent.h in Headers */,
8B61EC372CDEDF71004C8EED /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* Air4Version.h in Headers */,
8B61EC6B2CDEDF71004C8EED /* CAFilePathUtils.h in Headers */,
8B61EC2D2CDEDF71004C8EED /* CAException.h in Headers */,
8B61EC242CDEDF71004C8EED /* CAAtomic.h in Headers */,
8B61EC232CDEDF71004C8EED /* CAGuard.h in Headers */,
8B61EC892CDEDF71004C8EED /* AUInputElement.h in Headers */,
8B61EC602CDEDF71004C8EED /* CACFPreferences.h in Headers */,
8B61EC752CDEDF71004C8EED /* CAByteOrder.h in Headers */,
8B61EC582CDEDF71004C8EED /* CARingBuffer.h in Headers */,
8B61EC1F2CDEDF71004C8EED /* CABool.h in Headers */,
8B61EC442CDEDF71004C8EED /* CAMutex.h in Headers */,
8B61EC8A2CDEDF71004C8EED /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* Air4.h in Headers */,
8B61EC3C2CDEDF71004C8EED /* CACFString.h in Headers */,
8B61EC5B2CDEDF71004C8EED /* CASharedLibrary.h in Headers */,
8B61EC282CDEDF71004C8EED /* CATokenMap.h in Headers */,
8B61EC1D2CDEDF71004C8EED /* CAExtAudioFile.h in Headers */,
8B61EC322CDEDF71004C8EED /* CAPThread.h in Headers */,
8B61EC4E2CDEDF71004C8EED /* CAPropertyAddress.h in Headers */,
8B61EC782CDEDF71004C8EED /* CAReferenceCounted.h in Headers */,
8B61EC9D2CDEDF71004C8EED /* AUBuffer.h in Headers */,
8B61EC7F2CDEDF71004C8EED /* CAMath.h in Headers */,
8B61EC5F2CDEDF71004C8EED /* CAAutoDisposer.h in Headers */,
8B61EC262CDEDF71004C8EED /* CACFObject.h in Headers */,
8B61EC462CDEDF71004C8EED /* CASettingsStorage.h in Headers */,
8B61EC4F2CDEDF71004C8EED /* CAXException.h in Headers */,
8B61EC6C2CDEDF71004C8EED /* CATink.h in Headers */,
8B61EC992CDEDF71004C8EED /* AUInputFormatConverter.h in Headers */,
8B61EC742CDEDF71004C8EED /* CAVectorUnit.h in Headers */,
8B61EC302CDEDF71004C8EED /* CAProcess.h in Headers */,
8B61EC362CDEDF71004C8EED /* CAAudioValueRange.h in Headers */,
8B61EC4B2CDEDF71004C8EED /* CABitOperations.h in Headers */,
8B61EC412CDEDF71004C8EED /* CAAudioFileFormats.h in Headers */,
8B61EC3A2CDEDF71004C8EED /* CACFNumber.h in Headers */,
8B61EC522CDEDF71004C8EED /* CAAudioUnitOutputCapturer.h in Headers */,
8B61EC632CDEDF71004C8EED /* CADebugMacros.h in Headers */,
8B61EC9C2CDEDF71004C8EED /* AUMIDIDefs.h in Headers */,
8B61EC5C2CDEDF71004C8EED /* CACFData.h in Headers */,
8B61EC252CDEDF71004C8EED /* CAStreamBasicDescription.h in Headers */,
8B61EC8B2CDEDF71004C8EED /* AUPlugInDispatch.h in Headers */,
8B61EC272CDEDF71004C8EED /* CAStreamRangedDescription.h in Headers */,
8B61EC672CDEDF71004C8EED /* CACFPlugIn.h in Headers */,
8B61EC2A2CDEDF71004C8EED /* CAAudioBufferList.h in Headers */,
8B61EC422CDEDF71004C8EED /* CAAUMIDIMapManager.h in Headers */,
8B61EC952CDEDF71004C8EED /* AUEffectBase.h in Headers */,
8B61EC312CDEDF71004C8EED /* CACFDictionary.h in Headers */,
8B61EC922CDEDF71004C8EED /* AUScopeElement.h in Headers */,
8B61EC622CDEDF71004C8EED /* CAComponentDescription.h in Headers */,
8B61EC982CDEDF71004C8EED /* AUSilentTimeout.h in Headers */,
8B61EC5A2CDEDF71004C8EED /* CABufferList.h in Headers */,
8B61EC8C2CDEDF71004C8EED /* AUDispatch.h in Headers */,
8B61EC902CDEDF71004C8EED /* AUOutputElement.h in Headers */,
8B61EC562CDEDF71004C8EED /* CALogMacros.h in Headers */,
8B61EC4A2CDEDF71004C8EED /* AUParamInfo.h in Headers */,
8B61EC692CDEDF71004C8EED /* CAMixMap.h in Headers */,
8B61EC762CDEDF71004C8EED /* CACFArray.h in Headers */,
8B61EC1E2CDEDF71004C8EED /* CACFMachPort.h in Headers */,
8B61EC492CDEDF71004C8EED /* CAAUMIDIMap.h in Headers */,
8B61EC212CDEDF71004C8EED /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Air4" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Air4;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Air4;
productReference = 8D01CCD20486CAD60068D4B7 /* Air4.component */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Air4" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
ja,
Base,
fr,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* Air4 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Air4 */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8B61EC592CDEDF71004C8EED /* AUOutputBL.cpp in Sources */,
8B61EC7E2CDEDF71004C8EED /* CAAudioFileFormats.cpp in Sources */,
8B61EC702CDEDF71004C8EED /* CAHostTimeBase.cpp in Sources */,
8B61EC482CDEDF71004C8EED /* CAXException.cpp in Sources */,
8B61EC722CDEDF71004C8EED /* CAAudioBufferList.cpp in Sources */,
8B61EC352CDEDF71004C8EED /* CAFilePathUtils.cpp in Sources */,
8B61EC332CDEDF71004C8EED /* CAAUParameter.cpp in Sources */,
8B61EC552CDEDF71004C8EED /* CAAUMIDIMap.cpp in Sources */,
8B61EC822CDEDF71004C8EED /* CAAudioValueRange.cpp in Sources */,
8B61EC912CDEDF71004C8EED /* AUDispatch.cpp in Sources */,
8B61EC4C2CDEDF71004C8EED /* CACFPreferences.cpp in Sources */,
8B61EC8F2CDEDF71004C8EED /* AUPlugInDispatch.cpp in Sources */,
8B61EC2E2CDEDF71004C8EED /* CAAUProcessor.cpp in Sources */,
8B61EC432CDEDF71004C8EED /* CACFDictionary.cpp in Sources */,
8B61EC972CDEDF71004C8EED /* AUBaseHelper.cpp in Sources */,
8B61EC7C2CDEDF71004C8EED /* CADebugger.cpp in Sources */,
8B61EC502CDEDF71004C8EED /* CAAudioChannelLayout.cpp in Sources */,
8B61EC532CDEDF71004C8EED /* AUParamInfo.cpp in Sources */,
8B61EC712CDEDF71004C8EED /* CAPersistence.cpp in Sources */,
8B61EC652CDEDF71004C8EED /* CADebugPrintf.cpp in Sources */,
8B61EC9A2CDEDF71004C8EED /* AUTimestampGenerator.cpp in Sources */,
8B61EC6D2CDEDF71004C8EED /* CAStreamBasicDescription.cpp in Sources */,
8B61EC3D2CDEDF71004C8EED /* CAAUMIDIMapManager.cpp in Sources */,
8B61EC682CDEDF71004C8EED /* CASettingsStorage.cpp in Sources */,
8B61EC8D2CDEDF71004C8EED /* AUOutputElement.cpp in Sources */,
8B61EC392CDEDF71004C8EED /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* Air4.cpp in Sources */,
8B61EC7B2CDEDF71004C8EED /* CAMutex.cpp in Sources */,
8B61EC942CDEDF71004C8EED /* AUEffectBase.cpp in Sources */,
8B61EC792CDEDF71004C8EED /* CACFMachPort.cpp in Sources */,
8B61EC882CDEDF71004C8EED /* AUBase.cpp in Sources */,
8B61EC542CDEDF71004C8EED /* CASharedLibrary.cpp in Sources */,
8B61EC3B2CDEDF71004C8EED /* CACFDistributedNotification.cpp in Sources */,
8B61EC3E2CDEDF71004C8EED /* CAComponentDescription.cpp in Sources */,
8B61EC452CDEDF71004C8EED /* CACFString.cpp in Sources */,
8B61EC852CDEDF71004C8EED /* ComponentBase.cpp in Sources */,
8B61EC662CDEDF71004C8EED /* CARingBuffer.cpp in Sources */,
8B61EC862CDEDF71004C8EED /* AUScopeElement.cpp in Sources */,
8B61EC832CDEDF71004C8EED /* CAAudioUnit.cpp in Sources */,
8B61EC802CDEDF71004C8EED /* CACFArray.cpp in Sources */,
8B61EC7D2CDEDF71004C8EED /* CABundleLocker.cpp in Sources */,
8B61EC6F2CDEDF71004C8EED /* CAProcess.cpp in Sources */,
8B61EC5D2CDEDF71004C8EED /* CAStreamRangedDescription.cpp in Sources */,
8B61EC5E2CDEDF71004C8EED /* CAPThread.cpp in Sources */,
8B61EC202CDEDF71004C8EED /* CAComponent.cpp in Sources */,
8B61EC382CDEDF71004C8EED /* CAAudioChannelLayoutObject.cpp in Sources */,
8B61EC732CDEDF71004C8EED /* CAAudioTimeStamp.cpp in Sources */,
8B61EC7A2CDEDF71004C8EED /* CABufferList.cpp in Sources */,
8B61EC572CDEDF71004C8EED /* CACFMessagePort.cpp in Sources */,
8B61EC612CDEDF71004C8EED /* CAVectorUnit.cpp in Sources */,
8B61EC932CDEDF71004C8EED /* AUInputElement.cpp in Sources */,
8B61EC9B2CDEDF71004C8EED /* AUBuffer.cpp in Sources */,
8B61EC402CDEDF71004C8EED /* CADebugMacros.cpp in Sources */,
8B61EC222CDEDF71004C8EED /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B61EC9F2CDEE12D004C8EED /* en */,
);
name = InfoPlist.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
3E4BA244089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = Air4.exp;
GCC_OPTIMIZATION_LEVEL = 0;
GENERATE_PKGINFO_FILE = YES;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
LIBRARY_STYLE = Bundle;
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = Air4;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
EXPORTED_SYMBOLS_FILE = Air4.exp;
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 = 11.1;
OTHER_LDFLAGS = "-bundle";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = "com.airwindows.audiounit.${PRODUCT_NAME:identifier}";
PRODUCT_NAME = Air4;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WRAPPER_EXTENSION = component;
};
name = Release;
};
3E4BA248089833B7007656EC /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Debug;
};
3E4BA249089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/CA_SDK/**";
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View file

@ -0,0 +1,8 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1420"
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 = "Air4.component"
BlueprintName = "Air4"
ReferencedContainer = "container:Air4.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Air4.component"
BlueprintName = "Air4"
ReferencedContainer = "container:Air4.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -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>Air4.xcscheme_^#shared#^_</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>

View file

@ -0,0 +1,58 @@
/*
* File: Air4Version.h
*
* Version: 1.0
*
* Created: 11/4/24
*
* Copyright: Copyright © 2024 Airwindows, Airwindows uses the MIT license
*
* 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 __Air4Version_h__
#define __Air4Version_h__
#ifdef DEBUG
#define kAir4Version 0xFFFFFFFF
#else
#define kAir4Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Air4_COMP_MANF 'Dthr'
#define Air4_COMP_SUBTYPE 'aiyu'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

@ -0,0 +1,47 @@
<?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>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>${PRODUCT_NAME:identifier} AU</string>
<key>factoryFunction</key>
<string>${PRODUCT_NAME:identifier}Factory</string>
<key>manufacturer</key>
<string>Dthr</string>
<key>name</key>
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
<key>subtype</key>
<string>aiyu</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</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>

Binary file not shown.

View file

@ -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>

View file

@ -0,0 +1,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Air4 */;
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 = 752415349;
PBXWorkspaceStateSaveDate = 752415349;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Air4.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 2664}}";
sepNavSelRange = "{452, 0}";
sepNavVisRange = "{0, 1425}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Air4.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1944}}";
sepNavSelRange = "{2780, 0}";
sepNavVisRange = "{95, 1286}";
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 /* Air4Proc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {921, 4644}}";
sepNavSelRange = "{7193, 0}";
sepNavVisRange = "{4552, 1312}";
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,462 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* Air4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* Air4.cpp */; };
245463B90991757100464AD3 /* Air4.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* Air4.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* Air4Proc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* Air4Proc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8B61ECB22CDEE1B6004C8EED /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECA62CDEE1B6004C8EED /* vstfxstore.h */; };
8B61ECB32CDEE1B6004C8EED /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECA72CDEE1B6004C8EED /* aeffect.h */; };
8B61ECB42CDEE1B6004C8EED /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECA82CDEE1B6004C8EED /* aeffectx.h */; };
8B61ECB52CDEE1B6004C8EED /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECAC2CDEE1B6004C8EED /* audioeffectx.h */; };
8B61ECB62CDEE1B6004C8EED /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61ECAD2CDEE1B6004C8EED /* audioeffect.cpp */; };
8B61ECB72CDEE1B6004C8EED /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61ECAE2CDEE1B6004C8EED /* audioeffectx.cpp */; };
8B61ECB82CDEE1B6004C8EED /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECAF2CDEE1B6004C8EED /* aeffeditor.h */; };
8B61ECB92CDEE1B6004C8EED /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B61ECB02CDEE1B6004C8EED /* vstplugmain.cpp */; };
8B61ECBA2CDEE1B6004C8EED /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B61ECB12CDEE1B6004C8EED /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* Air4.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Air4.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* Air4.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = Air4.cpp; path = source/Air4.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* Air4.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = Air4.h; path = source/Air4.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* Air4Proc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Air4Proc.cpp; path = source/Air4Proc.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; };
8B61ECA62CDEE1B6004C8EED /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8B61ECA72CDEE1B6004C8EED /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8B61ECA82CDEE1B6004C8EED /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8B61ECAC2CDEE1B6004C8EED /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8B61ECAD2CDEE1B6004C8EED /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8B61ECAE2CDEE1B6004C8EED /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8B61ECAF2CDEE1B6004C8EED /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8B61ECB02CDEE1B6004C8EED /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8B61ECB12CDEE1B6004C8EED /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
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 = (
19C28FB4FE9D528D11CA2CBB /* Products */,
089C167CFE841241C02AAC07 /* Resources */,
08FB77ADFE841716C02AAC07 /* Source */,
);
name = "FM-Chopper";
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 = (
8B61ECA32CDEE1B6004C8EED /* vstsdk2.4 */,
2407DEB6089929BA00EB68BF /* Air4.cpp */,
24D8286F09A914000093AEF8 /* Air4Proc.cpp */,
245463B80991757100464AD3 /* Air4.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* Air4.vst */,
);
name = Products;
sourceTree = "<group>";
};
8B61ECA32CDEE1B6004C8EED /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8B61ECA42CDEE1B6004C8EED /* pluginterfaces */,
8B61ECA92CDEE1B6004C8EED /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8B61ECA42CDEE1B6004C8EED /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8B61ECA52CDEE1B6004C8EED /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8B61ECA52CDEE1B6004C8EED /* vst2.x */ = {
isa = PBXGroup;
children = (
8B61ECA62CDEE1B6004C8EED /* vstfxstore.h */,
8B61ECA72CDEE1B6004C8EED /* aeffect.h */,
8B61ECA82CDEE1B6004C8EED /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8B61ECA92CDEE1B6004C8EED /* public.sdk */ = {
isa = PBXGroup;
children = (
8B61ECAA2CDEE1B6004C8EED /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8B61ECAA2CDEE1B6004C8EED /* source */ = {
isa = PBXGroup;
children = (
8B61ECAB2CDEE1B6004C8EED /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8B61ECAB2CDEE1B6004C8EED /* vst2.x */ = {
isa = PBXGroup;
children = (
8B61ECAC2CDEE1B6004C8EED /* audioeffectx.h */,
8B61ECAD2CDEE1B6004C8EED /* audioeffect.cpp */,
8B61ECAE2CDEE1B6004C8EED /* audioeffectx.cpp */,
8B61ECAF2CDEE1B6004C8EED /* aeffeditor.h */,
8B61ECB02CDEE1B6004C8EED /* vstplugmain.cpp */,
8B61ECB12CDEE1B6004C8EED /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B61ECB82CDEE1B6004C8EED /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* Air4.h in Headers */,
8B61ECBA2CDEE1B6004C8EED /* audioeffect.h in Headers */,
8B61ECB32CDEE1B6004C8EED /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8B61ECB52CDEE1B6004C8EED /* audioeffectx.h in Headers */,
8B61ECB22CDEE1B6004C8EED /* vstfxstore.h in Headers */,
8B61ECB42CDEE1B6004C8EED /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Air4" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = Air4;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* Air4.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Air4" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
ja,
Base,
en,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Air4 */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase 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 = (
8B61ECB72CDEE1B6004C8EED /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* Air4.cpp in Sources */,
8B61ECB62CDEE1B6004C8EED /* audioeffect.cpp in Sources */,
8B61ECB92CDEE1B6004C8EED /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* Air4Proc.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
24BEAAEE08919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_MODEL_TUNING = "";
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 = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.Air4;
PRODUCT_NAME = Air4;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Debug;
};
24BEAAEF08919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = "";
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 = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.Air4;
PRODUCT_NAME = Air4;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
SKIP_INSTALL = NO;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Release;
};
24BEAAF208919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
24BEAAF308919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_MODEL_TUNING = G4;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = s;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "Air4" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAF208919AE700E695F9 /* Debug */,
24BEAAF308919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Sample.xcodeproj">
</FileRef>
</Workspace>

View file

@ -0,0 +1,8 @@
<?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>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

File diff suppressed because it is too large Load diff

View file

@ -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 = "";
};
}

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1420"
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 = "Air4"
ReferencedContainer = "container:Air4.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "Air4"
ReferencedContainer = "container:Air4.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -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>Air4.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -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>

View file

@ -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>

View file

@ -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>Air4</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</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>

View file

@ -0,0 +1 @@
BNDL????

View file

@ -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>

View file

@ -0,0 +1,146 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Air4(audioMaster);}
Air4::Air4(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.52;
D = 0.0;
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//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
}
Air4::~Air4() {}
VstInt32 Air4::getVendorVersion () {return 1000;}
void Air4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Air4::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 Air4::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 Air4::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 Air4::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 Air4::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 Air4::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Air", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Gnd", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "DarkF", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Air4::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, 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 Air4::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 Air4::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Air4::getEffectName(char* name) {
vst_strncpy(name, "Air4", kVstMaxProductStrLen); return true;
}
VstPlugCategory Air4::getPlugCategory() {return kPlugCategEffect;}
bool Air4::getProductString(char* text) {
vst_strncpy (text, "airwindows Air4", kVstMaxProductStrLen); return true;
}
bool Air4::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,107 @@
/* ========================================
* Air4 - Air4.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#define __Air4_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 = 'aiyu'; //Change this to what the AU identity is!
class Air4 :
public AudioEffectX
{
public:
Air4(audioMasterCallback audioMaster);
~Air4();
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;
float A;
float B;
float C;
float D;
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
pvAR1,
pvSR1,
accSR1,
acc2SR1,
pvAR2,
pvSR2,
accSR2,
acc2SR2,
pvAR3,
pvSR3,
accSR3,
pvAR4,
pvSR4,
gndavgR,
outAR,
gainAR,
lastSR,
air_total
};
double air[air_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,230 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
void Air4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void Air4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Air4 */;
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 = 752415349;
PBXWorkspaceStateSaveDate = 752415349;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Air4.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 2664}}";
sepNavSelRange = "{452, 0}";
sepNavVisRange = "{0, 1425}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Air4.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1944}}";
sepNavSelRange = "{2780, 0}";
sepNavVisRange = "{95, 1286}";
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 /* Air4Proc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {921, 4644}}";
sepNavSelRange = "{7193, 0}";
sepNavVisRange = "{4552, 1312}";
sepNavWindowFrame = "{{31, 42}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Air4 */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:Sample.xcodeproj">
</FileRef>
</Workspace>

File diff suppressed because it is too large Load diff

View file

@ -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 = "";
};
}

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>

View file

@ -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>Air4</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.Air4</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>

View file

@ -0,0 +1 @@
BNDL????

View file

@ -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>

View file

@ -0,0 +1,146 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Air4(audioMaster);}
Air4::Air4(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.52;
D = 0.0;
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//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
}
Air4::~Air4() {}
VstInt32 Air4::getVendorVersion () {return 1000;}
void Air4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Air4::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 Air4::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 Air4::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 Air4::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 Air4::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 Air4::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Air", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Gnd", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "DarkF", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Air4::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, 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 Air4::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 Air4::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Air4::getEffectName(char* name) {
vst_strncpy(name, "Air4", kVstMaxProductStrLen); return true;
}
VstPlugCategory Air4::getPlugCategory() {return kPlugCategEffect;}
bool Air4::getProductString(char* text) {
vst_strncpy (text, "airwindows Air4", kVstMaxProductStrLen); return true;
}
bool Air4::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

107
plugins/MacVST/Air4/source/Air4.h Executable file
View file

@ -0,0 +1,107 @@
/* ========================================
* Air4 - Air4.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#define __Air4_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 = 'aiyu'; //Change this to what the AU identity is!
class Air4 :
public AudioEffectX
{
public:
Air4(audioMasterCallback audioMaster);
~Air4();
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;
float A;
float B;
float C;
float D;
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
pvAR1,
pvSR1,
accSR1,
acc2SR1,
pvAR2,
pvSR2,
accSR2,
acc2SR2,
pvAR3,
pvSR3,
accSR3,
pvAR4,
pvSR4,
gndavgR,
outAR,
gainAR,
lastSR,
air_total
};
double air[air_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,230 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
void Air4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void Air4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

Binary file not shown.

Binary file not shown.

146
plugins/WinVST/Air4/Air4.cpp Executable file
View file

@ -0,0 +1,146 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Air4(audioMaster);}
Air4::Air4(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.52;
D = 0.0;
for (int x = 0; x < air_total; x++) air[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//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
}
Air4::~Air4() {}
VstInt32 Air4::getVendorVersion () {return 1000;}
void Air4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Air4::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 Air4::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 Air4::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 Air4::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 Air4::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 Air4::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Air", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Gnd", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "DarkF", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Air4::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, 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 Air4::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 Air4::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Air4::getEffectName(char* name) {
vst_strncpy(name, "Air4", kVstMaxProductStrLen); return true;
}
VstPlugCategory Air4::getPlugCategory() {return kPlugCategEffect;}
bool Air4::getProductString(char* text) {
vst_strncpy (text, "airwindows Air4", kVstMaxProductStrLen); return true;
}
bool Air4::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

107
plugins/WinVST/Air4/Air4.h Executable file
View file

@ -0,0 +1,107 @@
/* ========================================
* Air4 - Air4.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#define __Air4_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 = 'aiyu'; //Change this to what the AU identity is!
class Air4 :
public AudioEffectX
{
public:
Air4(audioMasterCallback audioMaster);
~Air4();
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;
float A;
float B;
float C;
float D;
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
lastSL,
pvAR1,
pvSR1,
accSR1,
acc2SR1,
pvAR2,
pvSR2,
accSR2,
acc2SR2,
pvAR3,
pvSR3,
accSR3,
pvAR4,
pvSR4,
gndavgR,
outAR,
gainAR,
lastSR,
air_total
};
double air[air_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

230
plugins/WinVST/Air4/Air4Proc.cpp Executable file
View file

@ -0,0 +1,230 @@
/* ========================================
* Air4 - Air4.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Air4_H
#include "Air4.h"
#endif
void Air4::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void Air4::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double airGain = A*2.0;
if (airGain > 1.0) airGain = pow(airGain,3.0+sqrt(overallscale));
double gndGain = B*2.0;
double threshSinew = pow(C,2)/overallscale;
double depthSinew = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
air[pvSL4] = air[pvAL4] - air[pvAL3];
air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1];
air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3];
air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2];
air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5;
air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3];
air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1];
air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
double gnd = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
double temp = (gnd + air[gndavgL])*0.5; air[gndavgL] = gnd; gnd = temp;
inputSampleL = ((drySampleL-gnd)*airGain)+(gnd*gndGain);
air[pvSR4] = air[pvAR4] - air[pvAR3];
air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1];
air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3];
air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2];
air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5;
air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3];
air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1];
air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
gnd = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (gnd + air[gndavgR])*0.5; air[gndavgR] = gnd; gnd = temp;
inputSampleR = ((drySampleR-gnd)*airGain)+(gnd*gndGain);
temp = inputSampleL; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
double sinew = threshSinew * cos(air[lastSL]*air[lastSL]);
if (temp - air[lastSL] > sinew) temp = air[lastSL] + sinew;
if (-(temp - air[lastSL]) > sinew) temp = air[lastSL] - sinew;
air[lastSL] = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(air[lastSL]*depthSinew);
temp = inputSampleR; if (temp > 1.0) temp = 1.0; if (temp < -1.0) temp = -1.0;
sinew = threshSinew * cos(air[lastSR]*air[lastSR]);
if (temp - air[lastSR] > sinew) temp = air[lastSR] + sinew;
if (-(temp - air[lastSR]) > sinew) temp = air[lastSR] - sinew;
air[lastSR] = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(air[lastSR]*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -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

View file

@ -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="Air4.cpp" />
<ClCompile Include="Air4Proc.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="Air4.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{16F7AB3C-1AE0-4574-B60C-7B4DED82938C}</ProjectGuid>
<RootNamespace>VSTProject</RootNamespace>
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
<ProjectName>Air464</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>

View file

@ -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="Air4.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Air4Proc.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="Air4.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
</Project>

View file

@ -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>

View file

@ -0,0 +1,3 @@
EXPORTS
VSTPluginMain
main=VSTPluginMain

View file

@ -6,7 +6,8 @@ ADClip8 is the ultimate Airwindows loudenator/biggenator.[coll=Latest]
ADT is a double short delay tap with saturation.[coll=Latest]
Air is a different bright EQ from any other. Requires 44.1K.[coll=]
Air2 is a different bright EQ with silk tone and high sample rate support.[coll=]
Air3 creates a new form of air-band EQ based on Kalman filtering.[coll=Latest]
Air3 creates a new form of air-band EQ based on Kalman filtering.[coll=]
Air4 extends Air3 with controllable high frequency limiting.[coll=Recommended,Latest]
Apicolypse is a re-release of my old API-style color adder, exacly as it was.[coll=]
AQuickVoiceClip softens headset mic recordings that have been super hard clipped on capture.[coll=Latest]
AtmosphereBuss is Console5 processing with powerful new acoustic distance effects.[coll=]