This commit is contained in:
Christopher Johnson 2026-03-14 18:50:50 -04:00
parent 198d0ac4f9
commit 36106b0088
221 changed files with 46887 additions and 6636 deletions

View file

@ -172,6 +172,7 @@ add_airwindows_plugin(Distance)
add_airwindows_plugin(Distance2)
add_airwindows_plugin(Distance3)
add_airwindows_plugin(Distortion)
add_airwindows_plugin(Donut)
add_airwindows_plugin(Doublelay)
add_airwindows_plugin(DoublePaul)
add_airwindows_plugin(Ditherbox)
@ -481,6 +482,7 @@ add_airwindows_plugin(VoiceTrick)
add_airwindows_plugin(Weight)
add_airwindows_plugin(Wider)
add_airwindows_plugin(Wolfbot)
add_airwindows_plugin(WoodenBox)
add_airwindows_plugin(X2Buss)
add_airwindows_plugin(XBandpass)
add_airwindows_plugin(XHighpass)

View file

@ -0,0 +1,175 @@
/* ========================================
* Donut - Donut.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Donut_H
#include "Donut.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Donut(audioMaster);}
Donut::Donut(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 1.0;
D = 0.5;
E = 0.0;
F = 0.5;
G = 1.0;
for (int x = 0; x < bez_total; x++) {bezCompL[x] = 0.0; bezCompR[x] = 0.0;}
bezCompL[bez_cycle] = 1.0; bezCompR[bez_cycle] = 1.0; bezMinL = 0.0; bezMinR = 0.0;
lowL = bandL = lowR = bandR = 0.0;
freqA = freqB = 0.5;
resoA = resoB = 0.5;
outA = outB = 1.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
}
Donut::~Donut() {}
VstInt32 Donut::getVendorVersion () {return 1000;}
void Donut::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Donut::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 Donut::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
chunkData[6] = G;
/* 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 Donut::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]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
G = pinParameter(chunkData[6]);
/* 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 Donut::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;
case kParamE: E = value; break;
case kParamF: F = value; break;
case kParamG: G = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Donut::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;
case kParamE: return E; break;
case kParamF: return F; break;
case kParamG: return G; 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 Donut::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Release", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "BaseFrq", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "MoveFrq", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "BaseRes", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "MoveRes", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Donut::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;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
case kParamG: float2string (G, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Donut::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;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Donut::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Donut::getEffectName(char* name) {
vst_strncpy(name, "Donut", kVstMaxProductStrLen); return true;
}
VstPlugCategory Donut::getPlugCategory() {return kPlugCategEffect;}
bool Donut::getProductString(char* text) {
vst_strncpy (text, "airwindows Donut", kVstMaxProductStrLen); return true;
}
bool Donut::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,91 @@
/* ========================================
* Donut - Donut.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Donut_H
#define __Donut_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kParamG =6,
kNumParameters = 7
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'donu'; //Change this to what the AU identity is!
class Donut :
public AudioEffectX
{
public:
Donut(audioMasterCallback audioMaster);
~Donut();
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;
float E;
float F;
float G;
enum {
bez_A,
bez_B,
bez_C,
bez_Ctrl,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezCompL[bez_total];
double bezCompR[bez_total];
double bezMinL, bezMinR;
double lowL, lowR;
double bandL, bandR;
double freqA, freqB;
double resoA, resoB;
double outA, outB;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,194 @@
/* ========================================
* Donut - Donut.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Donut_H
#include "Donut.h"
#endif
void Donut::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double bezRez = pow(1.0-A, 6.0) / overallscale;
double sloRez = pow(1.0-B, 6.0) / overallscale;
bezRez = fmin(fmax(bezRez,0.00001),1.0);
sloRez = fmin(fmax(sloRez,0.00001),1.0);
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(C,overallscale+1.0)*1.225;
double movFreq = (D*2.0)-1.0;
resoB = pow(1.0-E,2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
double movReso = (F*-2.0)+1.0;
outB = G/sqrt(resoB);
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;
const double temp = (double)sampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
double ctrl = fabs(inputSampleL);
bezMinL = fmax(bezMinL-sloRez,ctrl);
bezCompL[bez_cycle] += bezRez;
bezCompL[bez_Ctrl] += (bezMinL * bezRez);
if (bezCompL[bez_cycle] > 1.0) {
bezCompL[bez_cycle] -= 1.0;
bezCompL[bez_C] = bezCompL[bez_B];
bezCompL[bez_B] = bezCompL[bez_A];
bezCompL[bez_A] = bezCompL[bez_Ctrl];
bezCompL[bez_Ctrl] = 0.0;
}
double CB = (bezCompL[bez_C]*(1.0-bezCompL[bez_cycle]))+(bezCompL[bez_B]*bezCompL[bez_cycle]);
double BA = (bezCompL[bez_B]*(1.0-bezCompL[bez_cycle]))+(bezCompL[bez_A]*bezCompL[bez_cycle]);
double CBA = (bezCompL[bez_B]+(CB*(1.0-bezCompL[bez_cycle]))+(BA*bezCompL[bez_cycle]))*0.5;
double mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
double mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
lowL += mFreq*bandL; bandL += mFreq*((mReso*inputSampleL)-lowL-(mReso*bandL));
inputSampleL = (lowL-sin(bandL*0.5))*out; //airwin-donut
ctrl = fabs(inputSampleR);
bezMinR = fmax(bezMinR-sloRez,ctrl);
bezCompR[bez_cycle] += bezRez;
bezCompR[bez_Ctrl] += (bezMinR * bezRez);
if (bezCompR[bez_cycle] > 1.0) {
bezCompR[bez_cycle] -= 1.0;
bezCompR[bez_C] = bezCompR[bez_B];
bezCompR[bez_B] = bezCompR[bez_A];
bezCompR[bez_A] = bezCompR[bez_Ctrl];
bezCompR[bez_Ctrl] = 0.0;
}
CB = (bezCompR[bez_C]*(1.0-bezCompR[bez_cycle]))+(bezCompR[bez_B]*bezCompR[bez_cycle]);
BA = (bezCompR[bez_B]*(1.0-bezCompR[bez_cycle]))+(bezCompR[bez_A]*bezCompR[bez_cycle]);
CBA = (bezCompR[bez_B]+(CB*(1.0-bezCompR[bez_cycle]))+(BA*bezCompR[bez_cycle]))*0.5;
mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
lowR += mFreq*bandR; bandR += mFreq*((mReso*inputSampleR)-lowR-(mReso*bandR));
inputSampleR = (lowR-sin(bandR*0.5))*out; //airwin-donut
//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 Donut::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double bezRez = pow(1.0-A, 6.0) / overallscale;
double sloRez = pow(1.0-B, 6.0) / overallscale;
bezRez = fmin(fmax(bezRez,0.00001),1.0);
sloRez = fmin(fmax(sloRez,0.00001),1.0);
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(C,overallscale+1.0)*1.225;
double movFreq = (D*2.0)-1.0;
resoB = pow(1.0-E,2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
double movReso = (F*-2.0)+1.0;
outB = G/sqrt(resoB);
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;
const double temp = (double)sampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
double ctrl = fabs(inputSampleL);
bezMinL = fmax(bezMinL-sloRez,ctrl);
bezCompL[bez_cycle] += bezRez;
bezCompL[bez_Ctrl] += (bezMinL * bezRez);
if (bezCompL[bez_cycle] > 1.0) {
bezCompL[bez_cycle] -= 1.0;
bezCompL[bez_C] = bezCompL[bez_B];
bezCompL[bez_B] = bezCompL[bez_A];
bezCompL[bez_A] = bezCompL[bez_Ctrl];
bezCompL[bez_Ctrl] = 0.0;
}
double CB = (bezCompL[bez_C]*(1.0-bezCompL[bez_cycle]))+(bezCompL[bez_B]*bezCompL[bez_cycle]);
double BA = (bezCompL[bez_B]*(1.0-bezCompL[bez_cycle]))+(bezCompL[bez_A]*bezCompL[bez_cycle]);
double CBA = (bezCompL[bez_B]+(CB*(1.0-bezCompL[bez_cycle]))+(BA*bezCompL[bez_cycle]))*0.5;
double mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
double mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
lowL += mFreq*bandL; bandL += mFreq*((mReso*inputSampleL)-lowL-(mReso*bandL));
inputSampleL = (lowL-sin(bandL*0.5))*out; //airwin-donut
ctrl = fabs(inputSampleR);
bezMinR = fmax(bezMinR-sloRez,ctrl);
bezCompR[bez_cycle] += bezRez;
bezCompR[bez_Ctrl] += (bezMinR * bezRez);
if (bezCompR[bez_cycle] > 1.0) {
bezCompR[bez_cycle] -= 1.0;
bezCompR[bez_C] = bezCompR[bez_B];
bezCompR[bez_B] = bezCompR[bez_A];
bezCompR[bez_A] = bezCompR[bez_Ctrl];
bezCompR[bez_Ctrl] = 0.0;
}
CB = (bezCompR[bez_C]*(1.0-bezCompR[bez_cycle]))+(bezCompR[bez_B]*bezCompR[bez_cycle]);
BA = (bezCompR[bez_B]*(1.0-bezCompR[bez_cycle]))+(bezCompR[bez_A]*bezCompR[bez_cycle]);
CBA = (bezCompR[bez_B]+(CB*(1.0-bezCompR[bez_cycle]))+(BA*bezCompR[bez_cycle]))*0.5;
mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
lowR += mFreq*bandR; bandR += mFreq*((mReso*inputSampleR)-lowR-(mReso*bandR));
inputSampleR = (lowR-sin(bandR*0.5))*out; //airwin-donut
//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,180 @@
/* ========================================
* WoodenBox - WoodenBox.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __WoodenBox_H
#include "WoodenBox.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new WoodenBox(audioMaster);}
WoodenBox::WoodenBox(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.5;
c4AL = c4BL = c4CL = c4DL = c4EL = c4FL = c4GL = c4HL = 1;
c4IL = c4JL = c4KL = c4LL = c4ML = c4NL = c4OL = c4PL = 1;
c4AR = c4BR = c4CR = c4DR = c4ER = c4FR = c4GR = c4HR = 1;
c4IR = c4JR = c4KR = c4LR = c4MR = c4NR = c4OR = c4PR = 1;
for(int x = 0; x < d4A+2; x++) {b4AL[x] = 0.0; b4AR[x] = 0.0;}
for(int x = 0; x < d4B+2; x++) {b4BL[x] = 0.0; b4BR[x] = 0.0;}
for(int x = 0; x < d4C+2; x++) {b4CL[x] = 0.0; b4CR[x] = 0.0;}
for(int x = 0; x < d4D+2; x++) {b4DL[x] = 0.0; b4DR[x] = 0.0;}
for(int x = 0; x < d4E+2; x++) {b4EL[x] = 0.0; b4ER[x] = 0.0;}
for(int x = 0; x < d4F+2; x++) {b4FL[x] = 0.0; b4FR[x] = 0.0;}
for(int x = 0; x < d4G+2; x++) {b4GL[x] = 0.0; b4GR[x] = 0.0;}
for(int x = 0; x < d4H+2; x++) {b4HL[x] = 0.0; b4HR[x] = 0.0;}
for(int x = 0; x < d4I+2; x++) {b4IL[x] = 0.0; b4IR[x] = 0.0;}
for(int x = 0; x < d4J+2; x++) {b4JL[x] = 0.0; b4JR[x] = 0.0;}
for(int x = 0; x < d4K+2; x++) {b4KL[x] = 0.0; b4KR[x] = 0.0;}
for(int x = 0; x < d4L+2; x++) {b4LL[x] = 0.0; b4LR[x] = 0.0;}
for(int x = 0; x < d4M+2; x++) {b4ML[x] = 0.0; b4MR[x] = 0.0;}
for(int x = 0; x < d4N+2; x++) {b4NL[x] = 0.0; b4NR[x] = 0.0;}
for(int x = 0; x < d4O+2; x++) {b4OL[x] = 0.0; b4OR[x] = 0.0;}
for(int x = 0; x < d4P+2; x++) {b4PL[x] = 0.0; b4PR[x] = 0.0;}
g4AL = g4BL = g4CL = g4DL = 0.0;
g4DR = g4HR = g4LR = g4PR = 0.0;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
shortA = 173;
shortB = 82;
shortC = 240;
shortD = 191;
shortE = 196;
shortF = 257;
shortG = 203;
shortH = 252;
shortI = 207;
shortJ = 203;
shortK = 250;
shortL = 220;
shortM = 261;
shortN = 235;
shortO = 161;
shortP = 161;
prevclearcoat = -1;
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
}
WoodenBox::~WoodenBox() {}
VstInt32 WoodenBox::getVendorVersion () {return 1000;}
void WoodenBox::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void WoodenBox::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 WoodenBox::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
/* 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 WoodenBox::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
/* 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 WoodenBox::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float WoodenBox::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; 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 WoodenBox::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Select", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Reso", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Depth", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void WoodenBox::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: int2string ((int)(A*16.999), text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void WoodenBox::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;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 WoodenBox::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool WoodenBox::getEffectName(char* name) {
vst_strncpy(name, "WoodenBox", kVstMaxProductStrLen); return true;
}
VstPlugCategory WoodenBox::getPlugCategory() {return kPlugCategEffect;}
bool WoodenBox::getProductString(char* text) {
vst_strncpy (text, "airwindows WoodenBox", kVstMaxProductStrLen); return true;
}
bool WoodenBox::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,155 @@
/* ========================================
* WoodenBox - WoodenBox.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __WoodenBox_H
#define __WoodenBox_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kNumParameters = 3
}; //
const int d4A = 173;
const int d4B = 82;
const int d4C = 240;
const int d4D = 191;
const int d4E = 196;
const int d4F = 257;
const int d4G = 203;
const int d4H = 252;
const int d4I = 207;
const int d4J = 203;
const int d4K = 250;
const int d4L = 220;
const int d4M = 261;
const int d4N = 235;
const int d4O = 161;
const int d4P = 161;
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'wdbx'; //Change this to what the AU identity is!
class WoodenBox :
public AudioEffectX
{
public:
WoodenBox(audioMasterCallback audioMaster);
~WoodenBox();
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;
int c4AL,c4BL,c4CL,c4DL,c4EL,c4FL,c4GL,c4HL;
int c4IL,c4JL,c4KL,c4LL,c4ML,c4NL,c4OL,c4PL;
int c4AR,c4BR,c4CR,c4DR,c4ER,c4FR,c4GR,c4HR;
int c4IR,c4JR,c4KR,c4LR,c4MR,c4NR,c4OR,c4PR;
//base stereo reverb
double b4AL[d4A+5];
double b4BL[d4B+5];
double b4CL[d4C+5];
double b4DL[d4D+5];
double b4EL[d4E+5];
double b4FL[d4F+5];
double b4GL[d4G+5];
double b4HL[d4H+5];
double b4IL[d4I+5];
double b4JL[d4J+5];
double b4KL[d4K+5];
double b4LL[d4L+5];
double b4ML[d4M+5];
double b4NL[d4N+5];
double b4OL[d4O+5];
double b4PL[d4P+5];
double b4AR[d4A+5];
double b4BR[d4B+5];
double b4CR[d4C+5];
double b4DR[d4D+5];
double b4ER[d4E+5];
double b4FR[d4F+5];
double b4GR[d4G+5];
double b4HR[d4H+5];
double b4IR[d4I+5];
double b4JR[d4J+5];
double b4KR[d4K+5];
double b4LR[d4L+5];
double b4MR[d4M+5];
double b4NR[d4N+5];
double b4OR[d4O+5];
double b4PR[d4P+5];
double g4AL,g4BL,g4CL,g4DL,g4DR,g4HR,g4LR,g4PR;
//changed letter is the dual mono, with rearranged grid
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
int shortA;
int shortB;
int shortC;
int shortD;
int shortE;
int shortF;
int shortG;
int shortH;
int shortI;
int shortJ;
int shortK;
int shortL;
int shortM;
int shortN;
int shortO;
int shortP;
int prevclearcoat;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,596 @@
/* ========================================
* WoodenBox - WoodenBox.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __WoodenBox_H
#include "WoodenBox.h"
#endif
void WoodenBox::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();
int clearcoat = (int)(A*16.999);
if (clearcoat != prevclearcoat) {
for(int count = 0; count < d4A+2; count++) {b4AL[count] = 0.0; b4AR[count] = 0.0;}
for(int count = 0; count < d4B+2; count++) {b4BL[count] = 0.0; b4BR[count] = 0.0;}
for(int count = 0; count < d4C+2; count++) {b4CL[count] = 0.0; b4CR[count] = 0.0;}
for(int count = 0; count < d4D+2; count++) {b4DL[count] = 0.0; b4DR[count] = 0.0;}
for(int count = 0; count < d4E+2; count++) {b4EL[count] = 0.0; b4ER[count] = 0.0;}
for(int count = 0; count < d4F+2; count++) {b4FL[count] = 0.0; b4FR[count] = 0.0;}
for(int count = 0; count < d4G+2; count++) {b4GL[count] = 0.0; b4GR[count] = 0.0;}
for(int count = 0; count < d4H+2; count++) {b4HL[count] = 0.0; b4HR[count] = 0.0;}
for(int count = 0; count < d4I+2; count++) {b4IL[count] = 0.0; b4IR[count] = 0.0;}
for(int count = 0; count < d4J+2; count++) {b4JL[count] = 0.0; b4JR[count] = 0.0;}
for(int count = 0; count < d4K+2; count++) {b4KL[count] = 0.0; b4KR[count] = 0.0;}
for(int count = 0; count < d4L+2; count++) {b4LL[count] = 0.0; b4LR[count] = 0.0;}
for(int count = 0; count < d4M+2; count++) {b4ML[count] = 0.0; b4MR[count] = 0.0;}
for(int count = 0; count < d4N+2; count++) {b4NL[count] = 0.0; b4NR[count] = 0.0;}
for(int count = 0; count < d4O+2; count++) {b4OL[count] = 0.0; b4OR[count] = 0.0;}
for(int count = 0; count < d4P+2; count++) {b4PL[count] = 0.0; b4PR[count] = 0.0;}
c4AL = 1;
c4BL = 1;
c4CL = 1;
c4DL = 1;
c4EL = 1;
c4FL = 1;
c4GL = 1;
c4HL = 1;
c4IL = 1;
c4JL = 1;
c4KL = 1;
c4LL = 1;
c4ML = 1;
c4NL = 1;
c4OL = 1;
c4PL = 1;
c4AR = 1;
c4BR = 1;
c4CR = 1;
c4DR = 1;
c4ER = 1;
c4FR = 1;
c4GR = 1;
c4HR = 1;
c4IR = 1;
c4JR = 1;
c4KR = 1;
c4LR = 1;
c4MR = 1;
c4NR = 1;
c4OR = 1;
c4PR = 1;
switch (clearcoat)
{
case 0:
shortA = 17; shortB = 10; shortC = 23; shortD = 3; shortE = 8; shortF = 7; shortG = 41; shortH = 6; shortI = 3; shortJ = 6; shortK = 59; shortL = 61; shortM = 4; shortN = 71; shortO = 5; shortP = 4; break; //0 to 4 ms, 0 seat room
case 1:
shortA = 12; shortB = 19; shortC = 89; shortD = 25; shortE = 92; shortF = 8; shortG = 41; shortH = 11; shortI = 80; shortJ = 27; shortK = 6; shortL = 4; shortM = 3; shortN = 21; shortO = 7; shortP = 63; break; //0 to 7 ms, 1 seat room
case 2:
shortA = 35; shortB = 19; shortC = 5; shortD = 7; shortE = 15; shortF = 7; shortG = 41; shortH = 191; shortI = 177; shortJ = 3; shortK = 6; shortL = 22; shortM = 23; shortN = 118; shortO = 4; shortP = 79; break; //0 to 11 ms, 4 seat room
case 3:
shortA = 17; shortB = 19; shortC = 105; shortD = 135; shortE = 31; shortF = 86; shortG = 41; shortH = 16; shortI = 3; shortJ = 16; shortK = 6; shortL = 151; shortM = 147; shortN = 26; shortO = 3; shortP = 10; break; //0 to 11 ms, 4 seat room
case 4:
shortA = 134; shortB = 13; shortC = 26; shortD = 10; shortE = 34; shortF = 24; shortG = 4; shortH = 60; shortI = 88; shortJ = 9; shortK = 155; shortL = 11; shortM = 3; shortN = 18; shortO = 9; shortP = 161; break; //0 to 11 ms, 4 seat room
case 5:
shortA = 17; shortB = 82; shortC = 23; shortD = 29; shortE = 133; shortF = 3; shortG = 41; shortH = 27; shortI = 10; shortJ = 177; shortK = 6; shortL = 37; shortM = 14; shortN = 145; shortO = 4; shortP = 9; break; //0 to 12 ms, 4 seat room
case 6:
shortA = 31; shortB = 19; shortC = 3; shortD = 29; shortE = 196; shortF = 11; shortG = 10; shortH = 65; shortI = 21; shortJ = 3; shortK = 148; shortL = 4; shortM = 26; shortN = 7; shortO = 161; shortP = 155; break; //0 to 12 ms, 4 seat room
case 7:
shortA = 17; shortB = 8; shortC = 3; shortD = 37; shortE = 3; shortF = 19; shortG = 41; shortH = 15; shortI = 7; shortJ = 197; shortK = 178; shortL = 22; shortM = 26; shortN = 97; shortO = 16; shortP = 156; break; //0 to 12 ms, 5 seat room
case 8:
shortA = 17; shortB = 3; shortC = 8; shortD = 29; shortE = 39; shortF = 156; shortG = 7; shortH = 43; shortI = 101; shortJ = 8; shortK = 15; shortL = 169; shortM = 67; shortN = 39; shortO = 154; shortP = 4; break; //0 to 13 ms, 5 seat room
case 9:
shortA = 18; shortB = 19; shortC = 23; shortD = 5; shortE = 176; shortF = 3; shortG = 41; shortH = 147; shortI = 7; shortJ = 148; shortK = 5; shortL = 15; shortM = 10; shortN = 30; shortO = 119; shortP = 19; break; //0 to 13 ms, 5 seat room
case 10:
shortA = 173; shortB = 19; shortC = 23; shortD = 27; shortE = 8; shortF = 37; shortG = 7; shortH = 202; shortI = 8; shortJ = 13; shortK = 3; shortL = 174; shortM = 67; shortN = 21; shortO = 73; shortP = 14; break; //0 to 14 ms, 6 seat room
case 11:
shortA = 17; shortB = 19; shortC = 23; shortD = 25; shortE = 19; shortF = 145; shortG = 9; shortH = 43; shortI = 47; shortJ = 203; shortK = 18; shortL = 180; shortM = 226; shortN = 3; shortO = 73; shortP = 12; break; //0 to 15 ms, 7 seat room
case 12:
shortA = 17; shortB = 19; shortC = 23; shortD = 3; shortE = 3; shortF = 20; shortG = 203; shortH = 99; shortI = 207; shortJ = 15; shortK = 10; shortL = 61; shortM = 20; shortN = 174; shortO = 33; shortP = 77; break; //0 to 15 ms, 7 seat room
case 13:
shortA = 17; shortB = 19; shortC = 23; shortD = 29; shortE = 3; shortF = 210; shortG = 183; shortH = 43; shortI = 13; shortJ = 12; shortK = 26; shortL = 220; shortM = 67; shortN = 235; shortO = 11; shortP = 23; break; //0 to 15 ms, 8 seat room
case 14:
shortA = 17; shortB = 3; shortC = 21; shortD = 191; shortE = 31; shortF = 10; shortG = 41; shortH = 218; shortI = 15; shortJ = 6; shortK = 111; shortL = 29; shortM = 129; shortN = 206; shortO = 4; shortP = 7; break; //0 to 16 ms, 8 seat room
case 15:
shortA = 17; shortB = 25; shortC = 240; shortD = 29; shortE = 4; shortF = 18; shortG = 41; shortH = 43; shortI = 29; shortJ = 28; shortK = 250; shortL = 12; shortM = 261; shortN = 9; shortO = 5; shortP = 79; break; //0 to 18 ms, 10 seat room
case 16:
default:
shortA = 5; shortB = 3; shortC = 23; shortD = 29; shortE = 3; shortF = 257; shortG = 199; shortH = 252; shortI = 132; shortJ = 18; shortK = 11; shortL = 6; shortM = 30; shortN = 27; shortO = 7; shortP = 8; break; //0 to 19 ms, 11 seat room
}
prevclearcoat = clearcoat;
}
double reg4n = (1.0-pow(1.0-B,2.0))*0.0336;
double derez = 1.0;
derez = fmin(fmax(derez/overallscale,0.0001),1.0);
int bezFraction = (int)(1.0/derez);
double bezTrim = (double)bezFraction/(bezFraction+1.0);
derez = 1.0 / bezFraction;
bezTrim = 1.0-(derez*bezTrim);
//the revision more accurately connects the bezier curves
double wet = 1.0-pow(1.0-C,2.0);
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;
bez[bez_cycle] += derez;
bez[bez_SampL] += (inputSampleR*derez);
bez[bez_SampR] += (inputSampleL*derez); //stereo got reversed somewhere?
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
//left verbs
double dualmonoSampleL = bez[bez_SampL];
b4AL[c4AL] = dualmonoSampleL + (g4AL * reg4n);
b4BL[c4BL] = dualmonoSampleL + (g4BL * reg4n);
b4CL[c4CL] = dualmonoSampleL + (g4CL * reg4n);
b4DL[c4DL] = dualmonoSampleL + (g4DL * reg4n);
c4AL++; if (c4AL < 0 || c4AL > shortA) c4AL = 0;
c4BL++; if (c4BL < 0 || c4BL > shortB) c4BL = 0;
c4CL++; if (c4CL < 0 || c4CL > shortC) c4CL = 0;
c4DL++; if (c4DL < 0 || c4DL > shortD) c4DL = 0;
double hA = b4AL[c4AL-((c4AL > shortA)?shortA+1:0)];
double hB = b4BL[c4BL-((c4BL > shortB)?shortB+1:0)];
double hC = b4CL[c4CL-((c4CL > shortC)?shortC+1:0)];
double hD = b4DL[c4DL-((c4DL > shortD)?shortD+1:0)];
b4EL[c4EL] = hA - (hB + hC + hD);
b4FL[c4FL] = hB - (hA + hC + hD);
b4GL[c4GL] = hC - (hA + hB + hD);
b4HL[c4HL] = hD - (hA + hB + hC);
c4EL++; if (c4EL < 0 || c4EL > shortE) c4EL = 0;
c4FL++; if (c4FL < 0 || c4FL > shortF) c4FL = 0;
c4GL++; if (c4GL < 0 || c4GL > shortG) c4GL = 0;
c4HL++; if (c4HL < 0 || c4HL > shortH) c4HL = 0;
hA = b4EL[c4EL-((c4EL > shortE)?shortE+1:0)];
hB = b4FL[c4FL-((c4FL > shortF)?shortF+1:0)];
hC = b4GL[c4GL-((c4GL > shortG)?shortG+1:0)];
hD = b4HL[c4HL-((c4HL > shortH)?shortH+1:0)];
b4IL[c4IL] = hA - (hB + hC + hD);
b4JL[c4JL] = hB - (hA + hC + hD);
b4KL[c4KL] = hC - (hA + hB + hD);
b4LL[c4LL] = hD - (hA + hB + hC);
c4IL++; if (c4IL < 0 || c4IL > shortI) c4IL = 0;
c4JL++; if (c4JL < 0 || c4JL > shortJ) c4JL = 0;
c4KL++; if (c4KL < 0 || c4KL > shortK) c4KL = 0;
c4LL++; if (c4LL < 0 || c4LL > shortL) c4LL = 0;
hA = b4IL[c4IL-((c4IL > shortI)?shortI+1:0)];
hB = b4JL[c4JL-((c4JL > shortJ)?shortJ+1:0)];
hC = b4KL[c4KL-((c4KL > shortK)?shortK+1:0)];
hD = b4LL[c4LL-((c4LL > shortL)?shortL+1:0)];
b4ML[c4ML] = hA - (hB + hC + hD);
b4NL[c4NL] = hB - (hA + hC + hD);
b4OL[c4OL] = hC - (hA + hB + hD);
b4PL[c4PL] = hD - (hA + hB + hC);
c4ML++; if (c4ML < 0 || c4ML > shortM) c4ML = 0;
c4NL++; if (c4NL < 0 || c4NL > shortN) c4NL = 0;
c4OL++; if (c4OL < 0 || c4OL > shortO) c4OL = 0;
c4PL++; if (c4PL < 0 || c4PL > shortP) c4PL = 0;
hA = b4ML[c4ML-((c4ML > shortM)?shortM+1:0)];
hB = b4NL[c4NL-((c4NL > shortN)?shortN+1:0)];
hC = b4OL[c4OL-((c4OL > shortO)?shortO+1:0)];
hD = b4PL[c4PL-((c4PL > shortP)?shortP+1:0)];
g4AL = hA - (hB + hC + hD);
g4BL = hB - (hA + hC + hD);
g4CL = hC - (hA + hB + hD);
g4DL = hD - (hA + hB + hC);
dualmonoSampleL = (hA + hB + hC + hD)*0.125;
//right verbs
double dualmonoSampleR = bez[bez_SampR];
b4DR[c4DR] = dualmonoSampleR + (g4DR * reg4n);
b4HR[c4HR] = dualmonoSampleR + (g4HR * reg4n);
b4LR[c4LR] = dualmonoSampleR + (g4LR * reg4n);
b4PR[c4PR] = dualmonoSampleR + (g4PR * reg4n);
c4DR++; if (c4DR < 0 || c4DR > shortD) c4DR = 0;
c4HR++; if (c4HR < 0 || c4HR > shortH) c4HR = 0;
c4LR++; if (c4LR < 0 || c4LR > shortL) c4LR = 0;
c4PR++; if (c4PR < 0 || c4PR > shortP) c4PR = 0;
hA = b4DR[c4DR-((c4DR > shortD)?shortD+1:0)];
hB = b4HR[c4HR-((c4HR > shortH)?shortH+1:0)];
hC = b4LR[c4LR-((c4LR > shortL)?shortL+1:0)];
hD = b4PR[c4PR-((c4PR > shortP)?shortP+1:0)];
b4CR[c4CR] = hA - (hB + hC + hD);
b4GR[c4GR] = hB - (hA + hC + hD);
b4KR[c4KR] = hC - (hA + hB + hD);
b4OR[c4OR] = hD - (hA + hB + hC);
c4CR++; if (c4CR < 0 || c4CR > shortC) c4CR = 0;
c4GR++; if (c4GR < 0 || c4GR > shortG) c4GR = 0;
c4KR++; if (c4KR < 0 || c4KR > shortK) c4KR = 0;
c4OR++; if (c4OR < 0 || c4OR > shortO) c4OR = 0;
hA = b4CR[c4CR-((c4CR > shortC)?shortC+1:0)];
hB = b4GR[c4GR-((c4GR > shortG)?shortG+1:0)];
hC = b4KR[c4KR-((c4KR > shortK)?shortK+1:0)];
hD = b4OR[c4OR-((c4OR > shortO)?shortO+1:0)];
b4BR[c4BR] = hA - (hB + hC + hD);
b4FR[c4FR] = hB - (hA + hC + hD);
b4JR[c4JR] = hC - (hA + hB + hD);
b4NR[c4NR] = hD - (hA + hB + hC);
c4BR++; if (c4BR < 0 || c4BR > shortB) c4BR = 0;
c4FR++; if (c4FR < 0 || c4FR > shortF) c4FR = 0;
c4JR++; if (c4JR < 0 || c4JR > shortJ) c4JR = 0;
c4NR++; if (c4NR < 0 || c4NR > shortN) c4NR = 0;
hA = b4BR[c4BR-((c4BR > shortB)?shortB+1:0)];
hB = b4FR[c4FR-((c4FR > shortF)?shortF+1:0)];
hC = b4JR[c4JR-((c4JR > shortJ)?shortJ+1:0)];
hD = b4NR[c4NR-((c4NR > shortN)?shortN+1:0)];
b4AR[c4AR] = hA - (hB + hC + hD);
b4ER[c4ER] = hB - (hA + hC + hD);
b4IR[c4IR] = hC - (hA + hB + hD);
b4MR[c4MR] = hD - (hA + hB + hC);
c4AR++; if (c4AR < 0 || c4AR > shortA) c4AR = 0;
c4ER++; if (c4ER < 0 || c4ER > shortE) c4ER = 0;
c4IR++; if (c4IR < 0 || c4IR > shortI) c4IR = 0;
c4MR++; if (c4MR < 0 || c4MR > shortM) c4MR = 0;
hA = b4AR[c4AR-((c4AR > shortA)?shortA+1:0)];
hB = b4ER[c4ER-((c4ER > shortE)?shortE+1:0)];
hC = b4IR[c4IR-((c4IR > shortI)?shortI+1:0)];
hD = b4MR[c4MR-((c4MR > shortM)?shortM+1:0)];
g4DR = hA - (hB + hC + hD);
g4HR = hB - (hA + hC + hD);
g4LR = hC - (hA + hB + hD);
g4PR = hD - (hA + hB + hC);
dualmonoSampleR = (hA + hB + hC + hD)*0.125;
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = dualmonoSampleR;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = dualmonoSampleL;
bez[bez_SampR] = 0.0;
}
double X = bez[bez_cycle]*bezTrim;
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
inputSampleL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*0.125;
inputSampleR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*0.125;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//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 WoodenBox::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();
int clearcoat = (int)(A*16.999);
if (clearcoat != prevclearcoat) {
for(int count = 0; count < d4A+2; count++) {b4AL[count] = 0.0; b4AR[count] = 0.0;}
for(int count = 0; count < d4B+2; count++) {b4BL[count] = 0.0; b4BR[count] = 0.0;}
for(int count = 0; count < d4C+2; count++) {b4CL[count] = 0.0; b4CR[count] = 0.0;}
for(int count = 0; count < d4D+2; count++) {b4DL[count] = 0.0; b4DR[count] = 0.0;}
for(int count = 0; count < d4E+2; count++) {b4EL[count] = 0.0; b4ER[count] = 0.0;}
for(int count = 0; count < d4F+2; count++) {b4FL[count] = 0.0; b4FR[count] = 0.0;}
for(int count = 0; count < d4G+2; count++) {b4GL[count] = 0.0; b4GR[count] = 0.0;}
for(int count = 0; count < d4H+2; count++) {b4HL[count] = 0.0; b4HR[count] = 0.0;}
for(int count = 0; count < d4I+2; count++) {b4IL[count] = 0.0; b4IR[count] = 0.0;}
for(int count = 0; count < d4J+2; count++) {b4JL[count] = 0.0; b4JR[count] = 0.0;}
for(int count = 0; count < d4K+2; count++) {b4KL[count] = 0.0; b4KR[count] = 0.0;}
for(int count = 0; count < d4L+2; count++) {b4LL[count] = 0.0; b4LR[count] = 0.0;}
for(int count = 0; count < d4M+2; count++) {b4ML[count] = 0.0; b4MR[count] = 0.0;}
for(int count = 0; count < d4N+2; count++) {b4NL[count] = 0.0; b4NR[count] = 0.0;}
for(int count = 0; count < d4O+2; count++) {b4OL[count] = 0.0; b4OR[count] = 0.0;}
for(int count = 0; count < d4P+2; count++) {b4PL[count] = 0.0; b4PR[count] = 0.0;}
c4AL = 1;
c4BL = 1;
c4CL = 1;
c4DL = 1;
c4EL = 1;
c4FL = 1;
c4GL = 1;
c4HL = 1;
c4IL = 1;
c4JL = 1;
c4KL = 1;
c4LL = 1;
c4ML = 1;
c4NL = 1;
c4OL = 1;
c4PL = 1;
c4AR = 1;
c4BR = 1;
c4CR = 1;
c4DR = 1;
c4ER = 1;
c4FR = 1;
c4GR = 1;
c4HR = 1;
c4IR = 1;
c4JR = 1;
c4KR = 1;
c4LR = 1;
c4MR = 1;
c4NR = 1;
c4OR = 1;
c4PR = 1;
switch (clearcoat)
{
case 0:
shortA = 17; shortB = 10; shortC = 23; shortD = 3; shortE = 8; shortF = 7; shortG = 41; shortH = 6; shortI = 3; shortJ = 6; shortK = 59; shortL = 61; shortM = 4; shortN = 71; shortO = 5; shortP = 4; break; //0 to 4 ms, 0 seat room
case 1:
shortA = 12; shortB = 19; shortC = 89; shortD = 25; shortE = 92; shortF = 8; shortG = 41; shortH = 11; shortI = 80; shortJ = 27; shortK = 6; shortL = 4; shortM = 3; shortN = 21; shortO = 7; shortP = 63; break; //0 to 7 ms, 1 seat room
case 2:
shortA = 35; shortB = 19; shortC = 5; shortD = 7; shortE = 15; shortF = 7; shortG = 41; shortH = 191; shortI = 177; shortJ = 3; shortK = 6; shortL = 22; shortM = 23; shortN = 118; shortO = 4; shortP = 79; break; //0 to 11 ms, 4 seat room
case 3:
shortA = 17; shortB = 19; shortC = 105; shortD = 135; shortE = 31; shortF = 86; shortG = 41; shortH = 16; shortI = 3; shortJ = 16; shortK = 6; shortL = 151; shortM = 147; shortN = 26; shortO = 3; shortP = 10; break; //0 to 11 ms, 4 seat room
case 4:
shortA = 134; shortB = 13; shortC = 26; shortD = 10; shortE = 34; shortF = 24; shortG = 4; shortH = 60; shortI = 88; shortJ = 9; shortK = 155; shortL = 11; shortM = 3; shortN = 18; shortO = 9; shortP = 161; break; //0 to 11 ms, 4 seat room
case 5:
shortA = 17; shortB = 82; shortC = 23; shortD = 29; shortE = 133; shortF = 3; shortG = 41; shortH = 27; shortI = 10; shortJ = 177; shortK = 6; shortL = 37; shortM = 14; shortN = 145; shortO = 4; shortP = 9; break; //0 to 12 ms, 4 seat room
case 6:
shortA = 31; shortB = 19; shortC = 3; shortD = 29; shortE = 196; shortF = 11; shortG = 10; shortH = 65; shortI = 21; shortJ = 3; shortK = 148; shortL = 4; shortM = 26; shortN = 7; shortO = 161; shortP = 155; break; //0 to 12 ms, 4 seat room
case 7:
shortA = 17; shortB = 8; shortC = 3; shortD = 37; shortE = 3; shortF = 19; shortG = 41; shortH = 15; shortI = 7; shortJ = 197; shortK = 178; shortL = 22; shortM = 26; shortN = 97; shortO = 16; shortP = 156; break; //0 to 12 ms, 5 seat room
case 8:
shortA = 17; shortB = 3; shortC = 8; shortD = 29; shortE = 39; shortF = 156; shortG = 7; shortH = 43; shortI = 101; shortJ = 8; shortK = 15; shortL = 169; shortM = 67; shortN = 39; shortO = 154; shortP = 4; break; //0 to 13 ms, 5 seat room
case 9:
shortA = 18; shortB = 19; shortC = 23; shortD = 5; shortE = 176; shortF = 3; shortG = 41; shortH = 147; shortI = 7; shortJ = 148; shortK = 5; shortL = 15; shortM = 10; shortN = 30; shortO = 119; shortP = 19; break; //0 to 13 ms, 5 seat room
case 10:
shortA = 173; shortB = 19; shortC = 23; shortD = 27; shortE = 8; shortF = 37; shortG = 7; shortH = 202; shortI = 8; shortJ = 13; shortK = 3; shortL = 174; shortM = 67; shortN = 21; shortO = 73; shortP = 14; break; //0 to 14 ms, 6 seat room
case 11:
shortA = 17; shortB = 19; shortC = 23; shortD = 25; shortE = 19; shortF = 145; shortG = 9; shortH = 43; shortI = 47; shortJ = 203; shortK = 18; shortL = 180; shortM = 226; shortN = 3; shortO = 73; shortP = 12; break; //0 to 15 ms, 7 seat room
case 12:
shortA = 17; shortB = 19; shortC = 23; shortD = 3; shortE = 3; shortF = 20; shortG = 203; shortH = 99; shortI = 207; shortJ = 15; shortK = 10; shortL = 61; shortM = 20; shortN = 174; shortO = 33; shortP = 77; break; //0 to 15 ms, 7 seat room
case 13:
shortA = 17; shortB = 19; shortC = 23; shortD = 29; shortE = 3; shortF = 210; shortG = 183; shortH = 43; shortI = 13; shortJ = 12; shortK = 26; shortL = 220; shortM = 67; shortN = 235; shortO = 11; shortP = 23; break; //0 to 15 ms, 8 seat room
case 14:
shortA = 17; shortB = 3; shortC = 21; shortD = 191; shortE = 31; shortF = 10; shortG = 41; shortH = 218; shortI = 15; shortJ = 6; shortK = 111; shortL = 29; shortM = 129; shortN = 206; shortO = 4; shortP = 7; break; //0 to 16 ms, 8 seat room
case 15:
shortA = 17; shortB = 25; shortC = 240; shortD = 29; shortE = 4; shortF = 18; shortG = 41; shortH = 43; shortI = 29; shortJ = 28; shortK = 250; shortL = 12; shortM = 261; shortN = 9; shortO = 5; shortP = 79; break; //0 to 18 ms, 10 seat room
case 16:
default:
shortA = 5; shortB = 3; shortC = 23; shortD = 29; shortE = 3; shortF = 257; shortG = 199; shortH = 252; shortI = 132; shortJ = 18; shortK = 11; shortL = 6; shortM = 30; shortN = 27; shortO = 7; shortP = 8; break; //0 to 19 ms, 11 seat room
}
prevclearcoat = clearcoat;
}
double reg4n = (1.0-pow(1.0-B,2.0))*0.0336;
double derez = 1.0;
derez = fmin(fmax(derez/overallscale,0.0001),1.0);
int bezFraction = (int)(1.0/derez);
double bezTrim = (double)bezFraction/(bezFraction+1.0);
derez = 1.0 / bezFraction;
bezTrim = 1.0-(derez*bezTrim);
//the revision more accurately connects the bezier curves
double wet = 1.0-pow(1.0-C,2.0);
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;
bez[bez_cycle] += derez;
bez[bez_SampL] += (inputSampleR*derez);
bez[bez_SampR] += (inputSampleL*derez); //stereo got reversed somewhere?
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
//left verbs
double dualmonoSampleL = bez[bez_SampL];
b4AL[c4AL] = dualmonoSampleL + (g4AL * reg4n);
b4BL[c4BL] = dualmonoSampleL + (g4BL * reg4n);
b4CL[c4CL] = dualmonoSampleL + (g4CL * reg4n);
b4DL[c4DL] = dualmonoSampleL + (g4DL * reg4n);
c4AL++; if (c4AL < 0 || c4AL > shortA) c4AL = 0;
c4BL++; if (c4BL < 0 || c4BL > shortB) c4BL = 0;
c4CL++; if (c4CL < 0 || c4CL > shortC) c4CL = 0;
c4DL++; if (c4DL < 0 || c4DL > shortD) c4DL = 0;
double hA = b4AL[c4AL-((c4AL > shortA)?shortA+1:0)];
double hB = b4BL[c4BL-((c4BL > shortB)?shortB+1:0)];
double hC = b4CL[c4CL-((c4CL > shortC)?shortC+1:0)];
double hD = b4DL[c4DL-((c4DL > shortD)?shortD+1:0)];
b4EL[c4EL] = hA - (hB + hC + hD);
b4FL[c4FL] = hB - (hA + hC + hD);
b4GL[c4GL] = hC - (hA + hB + hD);
b4HL[c4HL] = hD - (hA + hB + hC);
c4EL++; if (c4EL < 0 || c4EL > shortE) c4EL = 0;
c4FL++; if (c4FL < 0 || c4FL > shortF) c4FL = 0;
c4GL++; if (c4GL < 0 || c4GL > shortG) c4GL = 0;
c4HL++; if (c4HL < 0 || c4HL > shortH) c4HL = 0;
hA = b4EL[c4EL-((c4EL > shortE)?shortE+1:0)];
hB = b4FL[c4FL-((c4FL > shortF)?shortF+1:0)];
hC = b4GL[c4GL-((c4GL > shortG)?shortG+1:0)];
hD = b4HL[c4HL-((c4HL > shortH)?shortH+1:0)];
b4IL[c4IL] = hA - (hB + hC + hD);
b4JL[c4JL] = hB - (hA + hC + hD);
b4KL[c4KL] = hC - (hA + hB + hD);
b4LL[c4LL] = hD - (hA + hB + hC);
c4IL++; if (c4IL < 0 || c4IL > shortI) c4IL = 0;
c4JL++; if (c4JL < 0 || c4JL > shortJ) c4JL = 0;
c4KL++; if (c4KL < 0 || c4KL > shortK) c4KL = 0;
c4LL++; if (c4LL < 0 || c4LL > shortL) c4LL = 0;
hA = b4IL[c4IL-((c4IL > shortI)?shortI+1:0)];
hB = b4JL[c4JL-((c4JL > shortJ)?shortJ+1:0)];
hC = b4KL[c4KL-((c4KL > shortK)?shortK+1:0)];
hD = b4LL[c4LL-((c4LL > shortL)?shortL+1:0)];
b4ML[c4ML] = hA - (hB + hC + hD);
b4NL[c4NL] = hB - (hA + hC + hD);
b4OL[c4OL] = hC - (hA + hB + hD);
b4PL[c4PL] = hD - (hA + hB + hC);
c4ML++; if (c4ML < 0 || c4ML > shortM) c4ML = 0;
c4NL++; if (c4NL < 0 || c4NL > shortN) c4NL = 0;
c4OL++; if (c4OL < 0 || c4OL > shortO) c4OL = 0;
c4PL++; if (c4PL < 0 || c4PL > shortP) c4PL = 0;
hA = b4ML[c4ML-((c4ML > shortM)?shortM+1:0)];
hB = b4NL[c4NL-((c4NL > shortN)?shortN+1:0)];
hC = b4OL[c4OL-((c4OL > shortO)?shortO+1:0)];
hD = b4PL[c4PL-((c4PL > shortP)?shortP+1:0)];
g4AL = hA - (hB + hC + hD);
g4BL = hB - (hA + hC + hD);
g4CL = hC - (hA + hB + hD);
g4DL = hD - (hA + hB + hC);
dualmonoSampleL = (hA + hB + hC + hD)*0.125;
//right verbs
double dualmonoSampleR = bez[bez_SampR];
b4DR[c4DR] = dualmonoSampleR + (g4DR * reg4n);
b4HR[c4HR] = dualmonoSampleR + (g4HR * reg4n);
b4LR[c4LR] = dualmonoSampleR + (g4LR * reg4n);
b4PR[c4PR] = dualmonoSampleR + (g4PR * reg4n);
c4DR++; if (c4DR < 0 || c4DR > shortD) c4DR = 0;
c4HR++; if (c4HR < 0 || c4HR > shortH) c4HR = 0;
c4LR++; if (c4LR < 0 || c4LR > shortL) c4LR = 0;
c4PR++; if (c4PR < 0 || c4PR > shortP) c4PR = 0;
hA = b4DR[c4DR-((c4DR > shortD)?shortD+1:0)];
hB = b4HR[c4HR-((c4HR > shortH)?shortH+1:0)];
hC = b4LR[c4LR-((c4LR > shortL)?shortL+1:0)];
hD = b4PR[c4PR-((c4PR > shortP)?shortP+1:0)];
b4CR[c4CR] = hA - (hB + hC + hD);
b4GR[c4GR] = hB - (hA + hC + hD);
b4KR[c4KR] = hC - (hA + hB + hD);
b4OR[c4OR] = hD - (hA + hB + hC);
c4CR++; if (c4CR < 0 || c4CR > shortC) c4CR = 0;
c4GR++; if (c4GR < 0 || c4GR > shortG) c4GR = 0;
c4KR++; if (c4KR < 0 || c4KR > shortK) c4KR = 0;
c4OR++; if (c4OR < 0 || c4OR > shortO) c4OR = 0;
hA = b4CR[c4CR-((c4CR > shortC)?shortC+1:0)];
hB = b4GR[c4GR-((c4GR > shortG)?shortG+1:0)];
hC = b4KR[c4KR-((c4KR > shortK)?shortK+1:0)];
hD = b4OR[c4OR-((c4OR > shortO)?shortO+1:0)];
b4BR[c4BR] = hA - (hB + hC + hD);
b4FR[c4FR] = hB - (hA + hC + hD);
b4JR[c4JR] = hC - (hA + hB + hD);
b4NR[c4NR] = hD - (hA + hB + hC);
c4BR++; if (c4BR < 0 || c4BR > shortB) c4BR = 0;
c4FR++; if (c4FR < 0 || c4FR > shortF) c4FR = 0;
c4JR++; if (c4JR < 0 || c4JR > shortJ) c4JR = 0;
c4NR++; if (c4NR < 0 || c4NR > shortN) c4NR = 0;
hA = b4BR[c4BR-((c4BR > shortB)?shortB+1:0)];
hB = b4FR[c4FR-((c4FR > shortF)?shortF+1:0)];
hC = b4JR[c4JR-((c4JR > shortJ)?shortJ+1:0)];
hD = b4NR[c4NR-((c4NR > shortN)?shortN+1:0)];
b4AR[c4AR] = hA - (hB + hC + hD);
b4ER[c4ER] = hB - (hA + hC + hD);
b4IR[c4IR] = hC - (hA + hB + hD);
b4MR[c4MR] = hD - (hA + hB + hC);
c4AR++; if (c4AR < 0 || c4AR > shortA) c4AR = 0;
c4ER++; if (c4ER < 0 || c4ER > shortE) c4ER = 0;
c4IR++; if (c4IR < 0 || c4IR > shortI) c4IR = 0;
c4MR++; if (c4MR < 0 || c4MR > shortM) c4MR = 0;
hA = b4AR[c4AR-((c4AR > shortA)?shortA+1:0)];
hB = b4ER[c4ER-((c4ER > shortE)?shortE+1:0)];
hC = b4IR[c4IR-((c4IR > shortI)?shortI+1:0)];
hD = b4MR[c4MR-((c4MR > shortM)?shortM+1:0)];
g4DR = hA - (hB + hC + hD);
g4HR = hB - (hA + hC + hD);
g4LR = hC - (hA + hB + hD);
g4PR = hD - (hA + hB + hC);
dualmonoSampleR = (hA + hB + hC + hD)*0.125;
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = dualmonoSampleR;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = dualmonoSampleL;
bez[bez_SampR] = 0.0;
}
double X = bez[bez_cycle]*bezTrim;
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
inputSampleL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*0.125;
inputSampleR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*0.125;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//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++;
}
}

287
plugins/MacAU/Donut/Donut.cpp Executable file
View file

@ -0,0 +1,287 @@
/*
* File: Donut.cpp
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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.
*
*/
/*=============================================================================
Donut.cpp
=============================================================================*/
#include "Donut.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Donut)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::Donut
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Donut::Donut(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 );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::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;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Donut::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____DonutEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::DonutKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Donut::DonutKernel::Reset()
{
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
bezComp[bez_cycle] = 1.0; bezMin = 0.0;
low = band = 0.0;
freqA = freqB = 0.5;
resoA = resoB = 0.5;
outA = outB = 1.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::DonutKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Donut::DonutKernel::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 bezRez = pow(1.0-GetParameter( kParam_A ), 6.0) / overallscale;
double sloRez = pow(1.0-GetParameter( kParam_B ), 6.0) / overallscale;
bezRez = fmin(fmax(bezRez,0.00001),1.0);
sloRez = fmin(fmax(sloRez,0.00001),1.0);
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(GetParameter( kParam_C ),overallscale+1.0)*1.225;
double movFreq = (GetParameter( kParam_D )*2.0)-1.0;
resoB = pow(1.0-GetParameter( kParam_E ),2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
double movReso = (GetParameter( kParam_F )*-2.0)+1.0;
outB = GetParameter( kParam_G )/sqrt(resoB);
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
const double temp = (double)nSampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
double ctrl = fabs(inputSample);
bezMin = fmax(bezMin-sloRez,ctrl);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
}
const double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
const double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
const double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
const double mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
const double mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
low += mFreq*band; band += mFreq*((mReso*inputSample)-low-(mReso*band));
inputSample = (low-sin(band*0.5))*out; //airwin-donut
//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/Donut/Donut.exp Executable file
View file

@ -0,0 +1 @@
_DonutEntry

168
plugins/MacAU/Donut/Donut.h Executable file
View file

@ -0,0 +1,168 @@
/*
* File: Donut.h
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 "DonutVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Donut_h__
#define __Donut_h__
#pragma mark ____Donut Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 1.0;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.5;
static const float kDefaultValue_ParamG = 1.0;
static CFStringRef kParameterAName = CFSTR("Attack");
static CFStringRef kParameterBName = CFSTR("Release");
static CFStringRef kParameterCName = CFSTR("BaseFrq");
static CFStringRef kParameterDName = CFSTR("MoveFrq");
static CFStringRef kParameterEName = CFSTR("BaseRes");
static CFStringRef kParameterFName = CFSTR("MoveRes");
static CFStringRef kParameterGName = CFSTR("Output");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
//Add your parameters here...
kNumberOfParameters=7
};
#pragma mark ____Donut
class Donut : public AUEffectBase
{
public:
Donut(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Donut () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new DonutKernel(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 kDonutVersion; }
protected:
class DonutKernel : public AUKernelBase // most of the real work happens here
{
public:
DonutKernel(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 {
bez_A,
bez_B,
bez_C,
bez_Ctrl,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total];
double bezMin;
double low;
double band;
double freqA, freqB;
double resoA, resoB;
double outA, outB;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

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

@ -0,0 +1,61 @@
/*
* File: Donut.r
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 "DonutVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Donut 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Donut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Donut
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Donut_COMP_SUBTYPE
#define COMP_MANUF Donut_COMP_MANF
#define VERSION kDonutVersion
#define NAME "Airwindows: Donut"
#define DESCRIPTION "Donut AU"
#define ENTRY_POINT "DonutEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,142 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Donut */;
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 = 794866633;
PBXWorkspaceStateSaveDate = 794866633;
};
perUserProjectItems = {
8B4253512F60B1AC00D5A4B3 /* PlistBookmark */ = 8B4253512F60B1AC00D5A4B3 /* PlistBookmark */;
8BD057212F60B96B00C3663C /* PBXTextBookmark */ = 8BD057212F60B96B00C3663C /* PBXTextBookmark */;
8BD057222F60B96B00C3663C /* PBXBookmark */ = 8BD057222F60B96B00C3663C /* PBXBookmark */;
8BD057232F60B96B00C3663C /* PBXTextBookmark */ = 8BD057232F60B96B00C3663C /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4253512F60B1AC00D5A4B3 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Donut/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BA05A660720730100365D66 /* Donut.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 5382}}";
sepNavSelRange = "{11429, 1176}";
sepNavVisRange = "{11253, 1698}";
sepNavWindowFrame = "{{330, 53}, {1039, 825}}";
};
};
8BA05A690720730100365D66 /* DonutVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1098}}";
sepNavSelRange = "{2759, 0}";
sepNavVisRange = "{2664, 269}";
sepNavWindowFrame = "{{38, 41}, {840, 811}}";
};
};
8BC6025B073B072D006C4272 /* Donut.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3024}}";
sepNavSelRange = "{5651, 299}";
sepNavVisRange = "{2627, 1002}";
sepNavWindowFrame = "{{754, 67}, {840, 811}}";
};
};
8BD057212F60B96B00C3663C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Donut.h */;
name = "Donut.h: 154";
rLen = 0;
rLoc = 5835;
rType = 0;
vrLen = 234;
vrLoc = 5670;
};
8BD057222F60B96B00C3663C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A690720730100365D66 /* DonutVersion.h */;
};
8BD057232F60B96B00C3663C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* DonutVersion.h */;
name = "DonutVersion.h: 51";
rLen = 0;
rLoc = 2759;
rType = 0;
vrLen = 269;
vrLoc = 2664;
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Donut */ = {
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 /* Donut.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Donut.r */; };
8BA05A6B0720730100365D66 /* Donut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Donut.cpp */; };
8BA05A6E0720730100365D66 /* DonutVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DonutVersion.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 /* Donut.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Donut.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 /* Donut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Donut.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Donut.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Donut.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Donut.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Donut.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* DonutVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DonutVersion.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 /* Donut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Donut.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Donut.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Donut.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 /* Donut */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Donut;
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 /* Donut.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Donut.h */,
8BA05A660720730100365D66 /* Donut.cpp */,
8BA05A670720730100365D66 /* Donut.exp */,
8BA05A680720730100365D66 /* Donut.r */,
8BA05A690720730100365D66 /* DonutVersion.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 /* DonutVersion.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 /* Donut.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 /* Donut */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Donut" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Donut;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Donut;
productReference = 8D01CCD20486CAD60068D4B7 /* Donut.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 "Donut" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Donut */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Donut */,
);
};
/* 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 /* Donut.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Donut.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 = Donut.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 = Donut;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Donut.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 = Donut;
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 "Donut" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Donut" */ = {
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: DonutVersion.h
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 __DonutVersion_h__
#define __DonutVersion_h__
#ifdef DEBUG
#define kDonutVersion 0xFFFFFFFF
#else
#define kDonutVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Donut_COMP_MANF 'Dthr'
#define Donut_COMP_SUBTYPE 'donu'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

28
plugins/MacAU/Donut/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>

Binary file not shown.

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>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
//
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
//
#include <CoreServices/CoreServices.h>

View file

@ -0,0 +1,541 @@
/*
* File: WoodenBox.cpp
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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.
*
*/
/*=============================================================================
WoodenBox.cpp
=============================================================================*/
#include "WoodenBox.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(WoodenBox)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::WoodenBox
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WoodenBox::WoodenBox(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::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_Indexed;
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 16;
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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// state that plugin supports only stereo-in/stereo-out processing
UInt32 WoodenBox::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// WoodenBox::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____WoodenBoxEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::WoodenBoxKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
c4AL = c4BL = c4CL = c4DL = c4EL = c4FL = c4GL = c4HL = 1;
c4IL = c4JL = c4KL = c4LL = c4ML = c4NL = c4OL = c4PL = 1;
c4AR = c4BR = c4CR = c4DR = c4ER = c4FR = c4GR = c4HR = 1;
c4IR = c4JR = c4KR = c4LR = c4MR = c4NR = c4OR = c4PR = 1;
for(int x = 0; x < d4A+2; x++) {b4AL[x] = 0.0; b4AR[x] = 0.0;}
for(int x = 0; x < d4B+2; x++) {b4BL[x] = 0.0; b4BR[x] = 0.0;}
for(int x = 0; x < d4C+2; x++) {b4CL[x] = 0.0; b4CR[x] = 0.0;}
for(int x = 0; x < d4D+2; x++) {b4DL[x] = 0.0; b4DR[x] = 0.0;}
for(int x = 0; x < d4E+2; x++) {b4EL[x] = 0.0; b4ER[x] = 0.0;}
for(int x = 0; x < d4F+2; x++) {b4FL[x] = 0.0; b4FR[x] = 0.0;}
for(int x = 0; x < d4G+2; x++) {b4GL[x] = 0.0; b4GR[x] = 0.0;}
for(int x = 0; x < d4H+2; x++) {b4HL[x] = 0.0; b4HR[x] = 0.0;}
for(int x = 0; x < d4I+2; x++) {b4IL[x] = 0.0; b4IR[x] = 0.0;}
for(int x = 0; x < d4J+2; x++) {b4JL[x] = 0.0; b4JR[x] = 0.0;}
for(int x = 0; x < d4K+2; x++) {b4KL[x] = 0.0; b4KR[x] = 0.0;}
for(int x = 0; x < d4L+2; x++) {b4LL[x] = 0.0; b4LR[x] = 0.0;}
for(int x = 0; x < d4M+2; x++) {b4ML[x] = 0.0; b4MR[x] = 0.0;}
for(int x = 0; x < d4N+2; x++) {b4NL[x] = 0.0; b4NR[x] = 0.0;}
for(int x = 0; x < d4O+2; x++) {b4OL[x] = 0.0; b4OR[x] = 0.0;}
for(int x = 0; x < d4P+2; x++) {b4PL[x] = 0.0; b4PR[x] = 0.0;}
g4AL = g4BL = g4CL = g4DL = 0.0;
g4DR = g4HR = g4LR = g4PR = 0.0;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
shortA = 173;
shortB = 82;
shortC = 240;
shortD = 191;
shortE = 196;
shortF = 257;
shortG = 203;
shortH = 252;
shortI = 207;
shortJ = 203;
shortK = 250;
shortL = 220;
shortM = 261;
shortN = 235;
shortO = 161;
shortP = 161;
prevclearcoat = -1;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus WoodenBox::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer,
AudioBufferList & outBuffer,
UInt32 inFramesToProcess)
{
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
UInt32 nSampleFrames = inFramesToProcess;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
int clearcoat = GetParameter( kParam_A );
if (clearcoat != prevclearcoat) {
for(int count = 0; count < d4A+2; count++) {b4AL[count] = 0.0; b4AR[count] = 0.0;}
for(int count = 0; count < d4B+2; count++) {b4BL[count] = 0.0; b4BR[count] = 0.0;}
for(int count = 0; count < d4C+2; count++) {b4CL[count] = 0.0; b4CR[count] = 0.0;}
for(int count = 0; count < d4D+2; count++) {b4DL[count] = 0.0; b4DR[count] = 0.0;}
for(int count = 0; count < d4E+2; count++) {b4EL[count] = 0.0; b4ER[count] = 0.0;}
for(int count = 0; count < d4F+2; count++) {b4FL[count] = 0.0; b4FR[count] = 0.0;}
for(int count = 0; count < d4G+2; count++) {b4GL[count] = 0.0; b4GR[count] = 0.0;}
for(int count = 0; count < d4H+2; count++) {b4HL[count] = 0.0; b4HR[count] = 0.0;}
for(int count = 0; count < d4I+2; count++) {b4IL[count] = 0.0; b4IR[count] = 0.0;}
for(int count = 0; count < d4J+2; count++) {b4JL[count] = 0.0; b4JR[count] = 0.0;}
for(int count = 0; count < d4K+2; count++) {b4KL[count] = 0.0; b4KR[count] = 0.0;}
for(int count = 0; count < d4L+2; count++) {b4LL[count] = 0.0; b4LR[count] = 0.0;}
for(int count = 0; count < d4M+2; count++) {b4ML[count] = 0.0; b4MR[count] = 0.0;}
for(int count = 0; count < d4N+2; count++) {b4NL[count] = 0.0; b4NR[count] = 0.0;}
for(int count = 0; count < d4O+2; count++) {b4OL[count] = 0.0; b4OR[count] = 0.0;}
for(int count = 0; count < d4P+2; count++) {b4PL[count] = 0.0; b4PR[count] = 0.0;}
c4AL = 1;
c4BL = 1;
c4CL = 1;
c4DL = 1;
c4EL = 1;
c4FL = 1;
c4GL = 1;
c4HL = 1;
c4IL = 1;
c4JL = 1;
c4KL = 1;
c4LL = 1;
c4ML = 1;
c4NL = 1;
c4OL = 1;
c4PL = 1;
c4AR = 1;
c4BR = 1;
c4CR = 1;
c4DR = 1;
c4ER = 1;
c4FR = 1;
c4GR = 1;
c4HR = 1;
c4IR = 1;
c4JR = 1;
c4KR = 1;
c4LR = 1;
c4MR = 1;
c4NR = 1;
c4OR = 1;
c4PR = 1;
switch (clearcoat)
{
case 0:
shortA = 17; shortB = 10; shortC = 23; shortD = 3; shortE = 8; shortF = 7; shortG = 41; shortH = 6; shortI = 3; shortJ = 6; shortK = 59; shortL = 61; shortM = 4; shortN = 71; shortO = 5; shortP = 4; break; //0 to 4 ms, 0 seat room
case 1:
shortA = 12; shortB = 19; shortC = 89; shortD = 25; shortE = 92; shortF = 8; shortG = 41; shortH = 11; shortI = 80; shortJ = 27; shortK = 6; shortL = 4; shortM = 3; shortN = 21; shortO = 7; shortP = 63; break; //0 to 7 ms, 1 seat room
case 2:
shortA = 35; shortB = 19; shortC = 5; shortD = 7; shortE = 15; shortF = 7; shortG = 41; shortH = 191; shortI = 177; shortJ = 3; shortK = 6; shortL = 22; shortM = 23; shortN = 118; shortO = 4; shortP = 79; break; //0 to 11 ms, 4 seat room
case 3:
shortA = 17; shortB = 19; shortC = 105; shortD = 135; shortE = 31; shortF = 86; shortG = 41; shortH = 16; shortI = 3; shortJ = 16; shortK = 6; shortL = 151; shortM = 147; shortN = 26; shortO = 3; shortP = 10; break; //0 to 11 ms, 4 seat room
case 4:
shortA = 134; shortB = 13; shortC = 26; shortD = 10; shortE = 34; shortF = 24; shortG = 4; shortH = 60; shortI = 88; shortJ = 9; shortK = 155; shortL = 11; shortM = 3; shortN = 18; shortO = 9; shortP = 161; break; //0 to 11 ms, 4 seat room
case 5:
shortA = 17; shortB = 82; shortC = 23; shortD = 29; shortE = 133; shortF = 3; shortG = 41; shortH = 27; shortI = 10; shortJ = 177; shortK = 6; shortL = 37; shortM = 14; shortN = 145; shortO = 4; shortP = 9; break; //0 to 12 ms, 4 seat room
case 6:
shortA = 31; shortB = 19; shortC = 3; shortD = 29; shortE = 196; shortF = 11; shortG = 10; shortH = 65; shortI = 21; shortJ = 3; shortK = 148; shortL = 4; shortM = 26; shortN = 7; shortO = 161; shortP = 155; break; //0 to 12 ms, 4 seat room
case 7:
shortA = 17; shortB = 8; shortC = 3; shortD = 37; shortE = 3; shortF = 19; shortG = 41; shortH = 15; shortI = 7; shortJ = 197; shortK = 178; shortL = 22; shortM = 26; shortN = 97; shortO = 16; shortP = 156; break; //0 to 12 ms, 5 seat room
case 8:
shortA = 17; shortB = 3; shortC = 8; shortD = 29; shortE = 39; shortF = 156; shortG = 7; shortH = 43; shortI = 101; shortJ = 8; shortK = 15; shortL = 169; shortM = 67; shortN = 39; shortO = 154; shortP = 4; break; //0 to 13 ms, 5 seat room
case 9:
shortA = 18; shortB = 19; shortC = 23; shortD = 5; shortE = 176; shortF = 3; shortG = 41; shortH = 147; shortI = 7; shortJ = 148; shortK = 5; shortL = 15; shortM = 10; shortN = 30; shortO = 119; shortP = 19; break; //0 to 13 ms, 5 seat room
case 10:
shortA = 173; shortB = 19; shortC = 23; shortD = 27; shortE = 8; shortF = 37; shortG = 7; shortH = 202; shortI = 8; shortJ = 13; shortK = 3; shortL = 174; shortM = 67; shortN = 21; shortO = 73; shortP = 14; break; //0 to 14 ms, 6 seat room
case 11:
shortA = 17; shortB = 19; shortC = 23; shortD = 25; shortE = 19; shortF = 145; shortG = 9; shortH = 43; shortI = 47; shortJ = 203; shortK = 18; shortL = 180; shortM = 226; shortN = 3; shortO = 73; shortP = 12; break; //0 to 15 ms, 7 seat room
case 12:
shortA = 17; shortB = 19; shortC = 23; shortD = 3; shortE = 3; shortF = 20; shortG = 203; shortH = 99; shortI = 207; shortJ = 15; shortK = 10; shortL = 61; shortM = 20; shortN = 174; shortO = 33; shortP = 77; break; //0 to 15 ms, 7 seat room
case 13:
shortA = 17; shortB = 19; shortC = 23; shortD = 29; shortE = 3; shortF = 210; shortG = 183; shortH = 43; shortI = 13; shortJ = 12; shortK = 26; shortL = 220; shortM = 67; shortN = 235; shortO = 11; shortP = 23; break; //0 to 15 ms, 8 seat room
case 14:
shortA = 17; shortB = 3; shortC = 21; shortD = 191; shortE = 31; shortF = 10; shortG = 41; shortH = 218; shortI = 15; shortJ = 6; shortK = 111; shortL = 29; shortM = 129; shortN = 206; shortO = 4; shortP = 7; break; //0 to 16 ms, 8 seat room
case 15:
shortA = 17; shortB = 25; shortC = 240; shortD = 29; shortE = 4; shortF = 18; shortG = 41; shortH = 43; shortI = 29; shortJ = 28; shortK = 250; shortL = 12; shortM = 261; shortN = 9; shortO = 5; shortP = 79; break; //0 to 18 ms, 10 seat room
case 16:
default:
shortA = 5; shortB = 3; shortC = 23; shortD = 29; shortE = 3; shortF = 257; shortG = 199; shortH = 252; shortI = 132; shortJ = 18; shortK = 11; shortL = 6; shortM = 30; shortN = 27; shortO = 7; shortP = 8; break; //0 to 19 ms, 11 seat room
}
prevclearcoat = clearcoat;
}
double reg4n = (1.0-pow(1.0-GetParameter( kParam_B ),2.0))*0.0336;
double derez = 1.0;
derez = fmin(fmax(derez/overallscale,0.0001),1.0);
int bezFraction = (int)(1.0/derez);
double bezTrim = (double)bezFraction/(bezFraction+1.0);
derez = 1.0 / bezFraction;
bezTrim = 1.0-(derez*bezTrim);
//the revision more accurately connects the bezier curves
double wet = 1.0-pow(1.0-GetParameter( kParam_C ),2.0);
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
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;
bez[bez_cycle] += derez;
bez[bez_SampL] += (inputSampleR*derez);
bez[bez_SampR] += (inputSampleL*derez); //stereo got reversed somewhere?
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
//left verbs
double dualmonoSampleL = bez[bez_SampL];
b4AL[c4AL] = dualmonoSampleL + (g4AL * reg4n);
b4BL[c4BL] = dualmonoSampleL + (g4BL * reg4n);
b4CL[c4CL] = dualmonoSampleL + (g4CL * reg4n);
b4DL[c4DL] = dualmonoSampleL + (g4DL * reg4n);
c4AL++; if (c4AL < 0 || c4AL > shortA) c4AL = 0;
c4BL++; if (c4BL < 0 || c4BL > shortB) c4BL = 0;
c4CL++; if (c4CL < 0 || c4CL > shortC) c4CL = 0;
c4DL++; if (c4DL < 0 || c4DL > shortD) c4DL = 0;
double hA = b4AL[c4AL-((c4AL > shortA)?shortA+1:0)];
double hB = b4BL[c4BL-((c4BL > shortB)?shortB+1:0)];
double hC = b4CL[c4CL-((c4CL > shortC)?shortC+1:0)];
double hD = b4DL[c4DL-((c4DL > shortD)?shortD+1:0)];
b4EL[c4EL] = hA - (hB + hC + hD);
b4FL[c4FL] = hB - (hA + hC + hD);
b4GL[c4GL] = hC - (hA + hB + hD);
b4HL[c4HL] = hD - (hA + hB + hC);
c4EL++; if (c4EL < 0 || c4EL > shortE) c4EL = 0;
c4FL++; if (c4FL < 0 || c4FL > shortF) c4FL = 0;
c4GL++; if (c4GL < 0 || c4GL > shortG) c4GL = 0;
c4HL++; if (c4HL < 0 || c4HL > shortH) c4HL = 0;
hA = b4EL[c4EL-((c4EL > shortE)?shortE+1:0)];
hB = b4FL[c4FL-((c4FL > shortF)?shortF+1:0)];
hC = b4GL[c4GL-((c4GL > shortG)?shortG+1:0)];
hD = b4HL[c4HL-((c4HL > shortH)?shortH+1:0)];
b4IL[c4IL] = hA - (hB + hC + hD);
b4JL[c4JL] = hB - (hA + hC + hD);
b4KL[c4KL] = hC - (hA + hB + hD);
b4LL[c4LL] = hD - (hA + hB + hC);
c4IL++; if (c4IL < 0 || c4IL > shortI) c4IL = 0;
c4JL++; if (c4JL < 0 || c4JL > shortJ) c4JL = 0;
c4KL++; if (c4KL < 0 || c4KL > shortK) c4KL = 0;
c4LL++; if (c4LL < 0 || c4LL > shortL) c4LL = 0;
hA = b4IL[c4IL-((c4IL > shortI)?shortI+1:0)];
hB = b4JL[c4JL-((c4JL > shortJ)?shortJ+1:0)];
hC = b4KL[c4KL-((c4KL > shortK)?shortK+1:0)];
hD = b4LL[c4LL-((c4LL > shortL)?shortL+1:0)];
b4ML[c4ML] = hA - (hB + hC + hD);
b4NL[c4NL] = hB - (hA + hC + hD);
b4OL[c4OL] = hC - (hA + hB + hD);
b4PL[c4PL] = hD - (hA + hB + hC);
c4ML++; if (c4ML < 0 || c4ML > shortM) c4ML = 0;
c4NL++; if (c4NL < 0 || c4NL > shortN) c4NL = 0;
c4OL++; if (c4OL < 0 || c4OL > shortO) c4OL = 0;
c4PL++; if (c4PL < 0 || c4PL > shortP) c4PL = 0;
hA = b4ML[c4ML-((c4ML > shortM)?shortM+1:0)];
hB = b4NL[c4NL-((c4NL > shortN)?shortN+1:0)];
hC = b4OL[c4OL-((c4OL > shortO)?shortO+1:0)];
hD = b4PL[c4PL-((c4PL > shortP)?shortP+1:0)];
g4AL = hA - (hB + hC + hD);
g4BL = hB - (hA + hC + hD);
g4CL = hC - (hA + hB + hD);
g4DL = hD - (hA + hB + hC);
dualmonoSampleL = (hA + hB + hC + hD)*0.125;
//right verbs
double dualmonoSampleR = bez[bez_SampR];
b4DR[c4DR] = dualmonoSampleR + (g4DR * reg4n);
b4HR[c4HR] = dualmonoSampleR + (g4HR * reg4n);
b4LR[c4LR] = dualmonoSampleR + (g4LR * reg4n);
b4PR[c4PR] = dualmonoSampleR + (g4PR * reg4n);
c4DR++; if (c4DR < 0 || c4DR > shortD) c4DR = 0;
c4HR++; if (c4HR < 0 || c4HR > shortH) c4HR = 0;
c4LR++; if (c4LR < 0 || c4LR > shortL) c4LR = 0;
c4PR++; if (c4PR < 0 || c4PR > shortP) c4PR = 0;
hA = b4DR[c4DR-((c4DR > shortD)?shortD+1:0)];
hB = b4HR[c4HR-((c4HR > shortH)?shortH+1:0)];
hC = b4LR[c4LR-((c4LR > shortL)?shortL+1:0)];
hD = b4PR[c4PR-((c4PR > shortP)?shortP+1:0)];
b4CR[c4CR] = hA - (hB + hC + hD);
b4GR[c4GR] = hB - (hA + hC + hD);
b4KR[c4KR] = hC - (hA + hB + hD);
b4OR[c4OR] = hD - (hA + hB + hC);
c4CR++; if (c4CR < 0 || c4CR > shortC) c4CR = 0;
c4GR++; if (c4GR < 0 || c4GR > shortG) c4GR = 0;
c4KR++; if (c4KR < 0 || c4KR > shortK) c4KR = 0;
c4OR++; if (c4OR < 0 || c4OR > shortO) c4OR = 0;
hA = b4CR[c4CR-((c4CR > shortC)?shortC+1:0)];
hB = b4GR[c4GR-((c4GR > shortG)?shortG+1:0)];
hC = b4KR[c4KR-((c4KR > shortK)?shortK+1:0)];
hD = b4OR[c4OR-((c4OR > shortO)?shortO+1:0)];
b4BR[c4BR] = hA - (hB + hC + hD);
b4FR[c4FR] = hB - (hA + hC + hD);
b4JR[c4JR] = hC - (hA + hB + hD);
b4NR[c4NR] = hD - (hA + hB + hC);
c4BR++; if (c4BR < 0 || c4BR > shortB) c4BR = 0;
c4FR++; if (c4FR < 0 || c4FR > shortF) c4FR = 0;
c4JR++; if (c4JR < 0 || c4JR > shortJ) c4JR = 0;
c4NR++; if (c4NR < 0 || c4NR > shortN) c4NR = 0;
hA = b4BR[c4BR-((c4BR > shortB)?shortB+1:0)];
hB = b4FR[c4FR-((c4FR > shortF)?shortF+1:0)];
hC = b4JR[c4JR-((c4JR > shortJ)?shortJ+1:0)];
hD = b4NR[c4NR-((c4NR > shortN)?shortN+1:0)];
b4AR[c4AR] = hA - (hB + hC + hD);
b4ER[c4ER] = hB - (hA + hC + hD);
b4IR[c4IR] = hC - (hA + hB + hD);
b4MR[c4MR] = hD - (hA + hB + hC);
c4AR++; if (c4AR < 0 || c4AR > shortA) c4AR = 0;
c4ER++; if (c4ER < 0 || c4ER > shortE) c4ER = 0;
c4IR++; if (c4IR < 0 || c4IR > shortI) c4IR = 0;
c4MR++; if (c4MR < 0 || c4MR > shortM) c4MR = 0;
hA = b4AR[c4AR-((c4AR > shortA)?shortA+1:0)];
hB = b4ER[c4ER-((c4ER > shortE)?shortE+1:0)];
hC = b4IR[c4IR-((c4IR > shortI)?shortI+1:0)];
hD = b4MR[c4MR-((c4MR > shortM)?shortM+1:0)];
g4DR = hA - (hB + hC + hD);
g4HR = hB - (hA + hC + hD);
g4LR = hC - (hA + hB + hD);
g4PR = hD - (hA + hB + hC);
dualmonoSampleR = (hA + hB + hC + hD)*0.125;
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = dualmonoSampleR;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = dualmonoSampleL;
bez[bez_SampR] = 0.0;
}
double X = bez[bez_cycle]*bezTrim;
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
inputSampleL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*0.125;
inputSampleR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*0.125;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//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
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1 @@
_WoodenBoxEntry

View file

@ -0,0 +1,213 @@
/*
* File: WoodenBox.h
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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 "WoodenBoxVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __WoodenBox_h__
#define __WoodenBox_h__
#pragma mark ____WoodenBox Parameters
// parameters
static const float kDefaultValue_ParamA = 5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static CFStringRef kParameterAName = CFSTR("Select");
static CFStringRef kParameterBName = CFSTR("Reso");
static CFStringRef kParameterCName = CFSTR("Depth");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
const int d4A = 173;
const int d4B = 82;
const int d4C = 240;
const int d4D = 191;
const int d4E = 196;
const int d4F = 257;
const int d4G = 203;
const int d4H = 252;
const int d4I = 207;
const int d4J = 203;
const int d4K = 250;
const int d4L = 220;
const int d4M = 261;
const int d4N = 235;
const int d4O = 161;
const int d4P = 161;
#pragma mark ____WoodenBox
class WoodenBox : public AUEffectBase
{
public:
WoodenBox(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~WoodenBox () { delete mDebugDispatcher; }
#endif
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
UInt32 inFramesToProcess);
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
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 kWoodenBoxVersion; }
private:
int c4AL,c4BL,c4CL,c4DL,c4EL,c4FL,c4GL,c4HL;
int c4IL,c4JL,c4KL,c4LL,c4ML,c4NL,c4OL,c4PL;
int c4AR,c4BR,c4CR,c4DR,c4ER,c4FR,c4GR,c4HR;
int c4IR,c4JR,c4KR,c4LR,c4MR,c4NR,c4OR,c4PR;
//base stereo reverb
double b4AL[d4A+5];
double b4BL[d4B+5];
double b4CL[d4C+5];
double b4DL[d4D+5];
double b4EL[d4E+5];
double b4FL[d4F+5];
double b4GL[d4G+5];
double b4HL[d4H+5];
double b4IL[d4I+5];
double b4JL[d4J+5];
double b4KL[d4K+5];
double b4LL[d4L+5];
double b4ML[d4M+5];
double b4NL[d4N+5];
double b4OL[d4O+5];
double b4PL[d4P+5];
double b4AR[d4A+5];
double b4BR[d4B+5];
double b4CR[d4C+5];
double b4DR[d4D+5];
double b4ER[d4E+5];
double b4FR[d4F+5];
double b4GR[d4G+5];
double b4HR[d4H+5];
double b4IR[d4I+5];
double b4JR[d4J+5];
double b4KR[d4K+5];
double b4LR[d4L+5];
double b4MR[d4M+5];
double b4NR[d4N+5];
double b4OR[d4O+5];
double b4PR[d4P+5];
double g4AL,g4BL,g4CL,g4DL,g4DR,g4HR,g4LR,g4PR;
//changed letter is the dual mono, with rearranged grid
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
int shortA;
int shortB;
int shortC;
int shortD;
int shortE;
int shortF;
int shortG;
int shortH;
int shortI;
int shortJ;
int shortK;
int shortL;
int shortM;
int shortN;
int shortO;
int shortP;
int prevclearcoat;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: WoodenBox.r
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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 "WoodenBoxVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_WoodenBox 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WoodenBox~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_WoodenBox
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE WoodenBox_COMP_SUBTYPE
#define COMP_MANUF WoodenBox_COMP_MANF
#define VERSION kWoodenBoxVersion
#define NAME "Airwindows: WoodenBox"
#define DESCRIPTION "WoodenBox AU"
#define ENTRY_POINT "WoodenBoxEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* WoodenBox */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* 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,
188,
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 = 795084379;
PBXWorkspaceStateSaveDate = 795084379;
};
perUserProjectItems = {
8B4952D52F6411A6007604D0 /* PBXTextBookmark */ = 8B4952D52F6411A6007604D0 /* PBXTextBookmark */;
8B4952D62F6411A6007604D0 /* PBXTextBookmark */ = 8B4952D62F6411A6007604D0 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4952D52F6411A6007604D0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */;
name = "WoodenBox.cpp: 371";
rLen = 0;
rLoc = 18305;
rType = 0;
vrLen = 264;
vrLoc = 18163;
};
8B4952D62F6411A6007604D0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */;
name = "WoodenBox.cpp: 369";
rLen = 0;
rLoc = 18305;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8BA05A660720730100365D66 /* WoodenBox.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {2361, 9684}}";
sepNavSelRange = "{18305, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{574, 122}, {1045, 710}}";
};
};
8BA05A690720730100365D66 /* WoodenBoxVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{967, 2002}";
sepNavWindowFrame = "{{15, 48}, {1039, 825}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* WoodenBox.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3780}}";
sepNavSelRange = "{5304, 1440}";
sepNavVisRange = "{2725, 841}";
sepNavWindowFrame = "{{732, 53}, {1039, 825}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* WoodenBox */ = {
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 /* WoodenBox.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* WoodenBox.r */; };
8BA05A6B0720730100365D66 /* WoodenBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */; };
8BA05A6E0720730100365D66 /* WoodenBoxVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* WoodenBoxVersion.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 /* WoodenBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* WoodenBox.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 /* WoodenBox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = WoodenBox.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* WoodenBox.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = WoodenBox.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* WoodenBox.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = WoodenBox.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* WoodenBoxVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WoodenBoxVersion.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 /* WoodenBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WoodenBox.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* WoodenBox.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WoodenBox.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 /* WoodenBox */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = WoodenBox;
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 /* WoodenBox.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* WoodenBox.h */,
8BA05A660720730100365D66 /* WoodenBox.cpp */,
8BA05A670720730100365D66 /* WoodenBox.exp */,
8BA05A680720730100365D66 /* WoodenBox.r */,
8BA05A690720730100365D66 /* WoodenBoxVersion.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 /* WoodenBoxVersion.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 /* WoodenBox.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 /* WoodenBox */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "WoodenBox" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = WoodenBox;
productInstallPath = "$(HOME)/Library/Bundles";
productName = WoodenBox;
productReference = 8D01CCD20486CAD60068D4B7 /* WoodenBox.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 "WoodenBox" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* WoodenBox */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* WoodenBox */,
);
};
/* 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 /* WoodenBox.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* WoodenBox.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 = WoodenBox.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 = WoodenBox;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = WoodenBox.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 = WoodenBox;
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 "WoodenBox" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "WoodenBox" */ = {
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: WoodenBoxVersion.h
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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 __WoodenBoxVersion_h__
#define __WoodenBoxVersion_h__
#ifdef DEBUG
#define kWoodenBoxVersion 0xFFFFFFFF
#else
#define kWoodenBoxVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define WoodenBox_COMP_MANF 'Dthr'
#define WoodenBox_COMP_SUBTYPE 'wdbx'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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

@ -48,7 +48,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(ClipOnly3)
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ClipOnly3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -1 +1,2 @@
_ClipOnly3Entry
_ClipOnly3Factory

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 = "ClipOnly3.component"
BlueprintName = "ClipOnly3"
ReferencedContainer = "container:ClipOnly3.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 = "ClipOnly3.component"
BlueprintName = "ClipOnly3"
ReferencedContainer = "container:ClipOnly3.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>ClipOnly3.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

@ -2,6 +2,25 @@
<!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>clo3</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@ -9,11 +28,11 @@
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<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>

View file

@ -48,7 +48,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Dattorro)
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Dattorro)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -1 +1,2 @@
_DattorroEntry
_DattorroFactory

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 = "Dattorro.component"
BlueprintName = "Dattorro"
ReferencedContainer = "container:Dattorro.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 = "Dattorro.component"
BlueprintName = "Dattorro"
ReferencedContainer = "container:Dattorro.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>Dattorro.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

@ -2,6 +2,25 @@
<!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>datt</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@ -9,11 +28,11 @@
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<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>

View file

@ -0,0 +1,287 @@
/*
* File: Donut.cpp
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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.
*
*/
/*=============================================================================
Donut.cpp
=============================================================================*/
#include "Donut.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Donut)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::Donut
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Donut::Donut(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 );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::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;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Donut::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Donut::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____DonutEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::DonutKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Donut::DonutKernel::Reset()
{
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
bezComp[bez_cycle] = 1.0; bezMin = 0.0;
low = band = 0.0;
freqA = freqB = 0.5;
resoA = resoB = 0.5;
outA = outB = 1.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Donut::DonutKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Donut::DonutKernel::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 bezRez = pow(1.0-GetParameter( kParam_A ), 6.0) / overallscale;
double sloRez = pow(1.0-GetParameter( kParam_B ), 6.0) / overallscale;
bezRez = fmin(fmax(bezRez,0.00001),1.0);
sloRez = fmin(fmax(sloRez,0.00001),1.0);
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(GetParameter( kParam_C ),overallscale+1.0)*1.225;
double movFreq = (GetParameter( kParam_D )*2.0)-1.0;
resoB = pow(1.0-GetParameter( kParam_E ),2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
double movReso = (GetParameter( kParam_F )*-2.0)+1.0;
outB = GetParameter( kParam_G )/sqrt(resoB);
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
const double temp = (double)nSampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
double ctrl = fabs(inputSample);
bezMin = fmax(bezMin-sloRez,ctrl);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
}
const double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
const double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
const double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
const double mFreq = fmin(fmax(freq+(CBA*movFreq),0.004/overallscale),1.225);
const double mReso = fmin(fmax(reso+(CBA*movReso),0.001),1.0);
low += mFreq*band; band += mFreq*((mReso*inputSample)-low-(mReso*band));
inputSample = (low-sin(band*0.5))*out; //airwin-donut
//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 @@
_DonutEntry
_DonutFactory

168
plugins/MacSignedAU/Donut/Donut.h Executable file
View file

@ -0,0 +1,168 @@
/*
* File: Donut.h
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 "DonutVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Donut_h__
#define __Donut_h__
#pragma mark ____Donut Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 1.0;
static const float kDefaultValue_ParamD = 0.5;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.5;
static const float kDefaultValue_ParamG = 1.0;
static CFStringRef kParameterAName = CFSTR("Attack");
static CFStringRef kParameterBName = CFSTR("Release");
static CFStringRef kParameterCName = CFSTR("BaseFrq");
static CFStringRef kParameterDName = CFSTR("MoveFrq");
static CFStringRef kParameterEName = CFSTR("BaseRes");
static CFStringRef kParameterFName = CFSTR("MoveRes");
static CFStringRef kParameterGName = CFSTR("Output");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
//Add your parameters here...
kNumberOfParameters=7
};
#pragma mark ____Donut
class Donut : public AUEffectBase
{
public:
Donut(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Donut () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new DonutKernel(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 kDonutVersion; }
protected:
class DonutKernel : public AUKernelBase // most of the real work happens here
{
public:
DonutKernel(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 {
bez_A,
bez_B,
bez_C,
bez_Ctrl,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total];
double bezMin;
double low;
double band;
double freqA, freqB;
double resoA, resoB;
double outA, outB;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Donut.r
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 "DonutVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Donut 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Donut~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Donut
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Donut_COMP_SUBTYPE
#define COMP_MANUF Donut_COMP_MANF
#define VERSION kDonutVersion
#define NAME "Airwindows: Donut"
#define DESCRIPTION "Donut AU"
#define ENTRY_POINT "DonutEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,142 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Donut */;
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 = 794866633;
PBXWorkspaceStateSaveDate = 794866633;
};
perUserProjectItems = {
8B4253512F60B1AC00D5A4B3 /* PlistBookmark */ = 8B4253512F60B1AC00D5A4B3 /* PlistBookmark */;
8BD057212F60B96B00C3663C /* PBXTextBookmark */ = 8BD057212F60B96B00C3663C /* PBXTextBookmark */;
8BD057222F60B96B00C3663C /* PBXBookmark */ = 8BD057222F60B96B00C3663C /* PBXBookmark */;
8BD057232F60B96B00C3663C /* PBXTextBookmark */ = 8BD057232F60B96B00C3663C /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4253512F60B1AC00D5A4B3 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Donut/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BA05A660720730100365D66 /* Donut.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 5382}}";
sepNavSelRange = "{11429, 1176}";
sepNavVisRange = "{11253, 1698}";
sepNavWindowFrame = "{{330, 53}, {1039, 825}}";
};
};
8BA05A690720730100365D66 /* DonutVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1098}}";
sepNavSelRange = "{2759, 0}";
sepNavVisRange = "{2664, 269}";
sepNavWindowFrame = "{{38, 41}, {840, 811}}";
};
};
8BC6025B073B072D006C4272 /* Donut.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3024}}";
sepNavSelRange = "{5651, 299}";
sepNavVisRange = "{2627, 1002}";
sepNavWindowFrame = "{{754, 67}, {840, 811}}";
};
};
8BD057212F60B96B00C3663C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Donut.h */;
name = "Donut.h: 154";
rLen = 0;
rLoc = 5835;
rType = 0;
vrLen = 234;
vrLoc = 5670;
};
8BD057222F60B96B00C3663C /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A690720730100365D66 /* DonutVersion.h */;
};
8BD057232F60B96B00C3663C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* DonutVersion.h */;
name = "DonutVersion.h: 51";
rLen = 0;
rLoc = 2759;
rType = 0;
vrLen = 269;
vrLoc = 2664;
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Donut */ = {
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 */
8B3F20922F62D84400A50762 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F200A2F62D84400A50762 /* CAExtAudioFile.h */; };
8B3F20932F62D84400A50762 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F200B2F62D84400A50762 /* CACFMachPort.h */; };
8B3F20942F62D84400A50762 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F200C2F62D84400A50762 /* CABool.h */; };
8B3F20952F62D84400A50762 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F200D2F62D84400A50762 /* CAComponent.cpp */; };
8B3F20962F62D84400A50762 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F200E2F62D84400A50762 /* CADebugger.h */; };
8B3F20972F62D84400A50762 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F200F2F62D84400A50762 /* CACFNumber.cpp */; };
8B3F20982F62D84400A50762 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20102F62D84400A50762 /* CAGuard.h */; };
8B3F20992F62D84400A50762 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20112F62D84400A50762 /* CAAtomic.h */; };
8B3F209A2F62D84400A50762 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20122F62D84400A50762 /* CAStreamBasicDescription.h */; };
8B3F209B2F62D84400A50762 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20132F62D84400A50762 /* CACFObject.h */; };
8B3F209C2F62D84400A50762 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20142F62D84400A50762 /* CAStreamRangedDescription.h */; };
8B3F209D2F62D84400A50762 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20152F62D84400A50762 /* CATokenMap.h */; };
8B3F209E2F62D84400A50762 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20162F62D84400A50762 /* CAComponent.h */; };
8B3F209F2F62D84400A50762 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20172F62D84400A50762 /* CAAudioBufferList.h */; };
8B3F20A02F62D84400A50762 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20182F62D84400A50762 /* CAAudioUnit.h */; };
8B3F20A12F62D84400A50762 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20192F62D84400A50762 /* CAAUParameter.h */; };
8B3F20A22F62D84400A50762 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F201A2F62D84400A50762 /* CAException.h */; };
8B3F20A32F62D84400A50762 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F201B2F62D84400A50762 /* CAAUProcessor.cpp */; };
8B3F20A42F62D84400A50762 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F201C2F62D84400A50762 /* CAAUProcessor.h */; };
8B3F20A52F62D84400A50762 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F201D2F62D84400A50762 /* CAProcess.h */; };
8B3F20A62F62D84400A50762 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F201E2F62D84400A50762 /* CACFDictionary.h */; };
8B3F20A72F62D84400A50762 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F201F2F62D84400A50762 /* CAPThread.h */; };
8B3F20A82F62D84400A50762 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20202F62D84400A50762 /* CAAUParameter.cpp */; };
8B3F20A92F62D84400A50762 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20212F62D84400A50762 /* CAAudioTimeStamp.h */; };
8B3F20AA2F62D84400A50762 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20222F62D84400A50762 /* CAFilePathUtils.cpp */; };
8B3F20AB2F62D84400A50762 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20232F62D84400A50762 /* CAAudioValueRange.h */; };
8B3F20AC2F62D84400A50762 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20242F62D84400A50762 /* CAVectorUnitTypes.h */; };
8B3F20AD2F62D84400A50762 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20252F62D84400A50762 /* CAAudioChannelLayoutObject.cpp */; };
8B3F20AE2F62D84400A50762 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20262F62D84400A50762 /* CAGuard.cpp */; };
8B3F20AF2F62D84400A50762 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20272F62D84400A50762 /* CACFNumber.h */; };
8B3F20B02F62D84400A50762 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20282F62D84400A50762 /* CACFDistributedNotification.cpp */; };
8B3F20B12F62D84400A50762 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20292F62D84400A50762 /* CACFString.h */; };
8B3F20B22F62D84400A50762 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F202A2F62D84400A50762 /* CAAUMIDIMapManager.cpp */; };
8B3F20B32F62D84400A50762 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F202B2F62D84400A50762 /* CAComponentDescription.cpp */; };
8B3F20B42F62D84400A50762 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F202C2F62D84400A50762 /* CAHostTimeBase.h */; };
8B3F20B52F62D84400A50762 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F202D2F62D84400A50762 /* CADebugMacros.cpp */; };
8B3F20B62F62D84400A50762 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F202E2F62D84400A50762 /* CAAudioFileFormats.h */; };
8B3F20B72F62D84400A50762 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F202F2F62D84400A50762 /* CAAUMIDIMapManager.h */; };
8B3F20B82F62D84400A50762 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20302F62D84400A50762 /* CACFDictionary.cpp */; };
8B3F20B92F62D84400A50762 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20312F62D84400A50762 /* CAMutex.h */; };
8B3F20BA2F62D84400A50762 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20322F62D84400A50762 /* CACFString.cpp */; };
8B3F20BB2F62D84400A50762 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20332F62D84400A50762 /* CASettingsStorage.h */; };
8B3F20BC2F62D84400A50762 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20342F62D84400A50762 /* CADebugPrintf.h */; };
8B3F20BD2F62D84400A50762 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20352F62D84400A50762 /* CAXException.cpp */; };
8B3F20BE2F62D84400A50762 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20362F62D84400A50762 /* CAAUMIDIMap.h */; };
8B3F20BF2F62D84400A50762 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20372F62D84400A50762 /* AUParamInfo.h */; };
8B3F20C02F62D84400A50762 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20382F62D84400A50762 /* CABitOperations.h */; };
8B3F20C12F62D84400A50762 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20392F62D84400A50762 /* CACFPreferences.cpp */; };
8B3F20C22F62D84400A50762 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F203A2F62D84400A50762 /* CABundleLocker.h */; };
8B3F20C32F62D84400A50762 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F203B2F62D84400A50762 /* CAPropertyAddress.h */; };
8B3F20C42F62D84400A50762 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F203C2F62D84400A50762 /* CAXException.h */; };
8B3F20C52F62D84400A50762 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F203D2F62D84400A50762 /* CAAudioChannelLayout.cpp */; };
8B3F20C62F62D84400A50762 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F203E2F62D84400A50762 /* CAThreadSafeList.h */; };
8B3F20C72F62D84400A50762 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F203F2F62D84400A50762 /* CAAudioUnitOutputCapturer.h */; };
8B3F20C82F62D84400A50762 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20402F62D84400A50762 /* AUParamInfo.cpp */; };
8B3F20C92F62D84400A50762 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20412F62D84400A50762 /* CASharedLibrary.cpp */; };
8B3F20CA2F62D84400A50762 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20422F62D84400A50762 /* CAAUMIDIMap.cpp */; };
8B3F20CB2F62D84400A50762 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20432F62D84400A50762 /* CALogMacros.h */; };
8B3F20CC2F62D84400A50762 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20442F62D84400A50762 /* CACFMessagePort.cpp */; };
8B3F20CD2F62D84400A50762 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20452F62D84400A50762 /* CARingBuffer.h */; };
8B3F20CE2F62D84400A50762 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20462F62D84400A50762 /* AUOutputBL.cpp */; };
8B3F20CF2F62D84400A50762 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20472F62D84400A50762 /* CABufferList.h */; };
8B3F20D02F62D84400A50762 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20482F62D84400A50762 /* CASharedLibrary.h */; };
8B3F20D12F62D84400A50762 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20492F62D84400A50762 /* CACFData.h */; };
8B3F20D22F62D84400A50762 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F204A2F62D84400A50762 /* CAStreamRangedDescription.cpp */; };
8B3F20D32F62D84400A50762 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F204B2F62D84400A50762 /* CAPThread.cpp */; };
8B3F20D42F62D84400A50762 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F204C2F62D84400A50762 /* CAAutoDisposer.h */; };
8B3F20D52F62D84400A50762 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F204D2F62D84400A50762 /* CACFPreferences.h */; };
8B3F20D62F62D84400A50762 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F204E2F62D84400A50762 /* CAVectorUnit.cpp */; };
8B3F20D72F62D84400A50762 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F204F2F62D84400A50762 /* CAComponentDescription.h */; };
8B3F20D82F62D84400A50762 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20502F62D84400A50762 /* CADebugMacros.h */; };
8B3F20D92F62D84400A50762 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20512F62D84400A50762 /* AUOutputBL.h */; };
8B3F20DA2F62D84400A50762 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20522F62D84400A50762 /* CADebugPrintf.cpp */; };
8B3F20DB2F62D84400A50762 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20532F62D84400A50762 /* CARingBuffer.cpp */; };
8B3F20DC2F62D84400A50762 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20542F62D84400A50762 /* CACFPlugIn.h */; };
8B3F20DD2F62D84400A50762 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20552F62D84400A50762 /* CASettingsStorage.cpp */; };
8B3F20DE2F62D84400A50762 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20562F62D84400A50762 /* CAMixMap.h */; };
8B3F20DF2F62D84400A50762 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20572F62D84400A50762 /* CACFDistributedNotification.h */; };
8B3F20E02F62D84400A50762 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20582F62D84400A50762 /* CAFilePathUtils.h */; };
8B3F20E12F62D84400A50762 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20592F62D84400A50762 /* CATink.h */; };
8B3F20E22F62D84400A50762 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F205A2F62D84400A50762 /* CAStreamBasicDescription.cpp */; };
8B3F20E32F62D84400A50762 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F205B2F62D84400A50762 /* CAAudioChannelLayout.h */; };
8B3F20E42F62D84400A50762 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F205C2F62D84400A50762 /* CAProcess.cpp */; };
8B3F20E52F62D84400A50762 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F205D2F62D84400A50762 /* CAHostTimeBase.cpp */; };
8B3F20E62F62D84400A50762 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F205E2F62D84400A50762 /* CAPersistence.cpp */; };
8B3F20E72F62D84400A50762 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F205F2F62D84400A50762 /* CAAudioBufferList.cpp */; };
8B3F20E82F62D84400A50762 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20602F62D84400A50762 /* CAAudioTimeStamp.cpp */; };
8B3F20E92F62D84400A50762 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20612F62D84400A50762 /* CAVectorUnit.h */; };
8B3F20EA2F62D84400A50762 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20622F62D84400A50762 /* CAByteOrder.h */; };
8B3F20EB2F62D84400A50762 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20632F62D84400A50762 /* CACFArray.h */; };
8B3F20EC2F62D84400A50762 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20642F62D84400A50762 /* CAAtomicStack.h */; };
8B3F20ED2F62D84400A50762 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20652F62D84400A50762 /* CAReferenceCounted.h */; };
8B3F20EE2F62D84400A50762 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20662F62D84400A50762 /* CACFMachPort.cpp */; };
8B3F20EF2F62D84400A50762 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20672F62D84400A50762 /* CABufferList.cpp */; };
8B3F20F02F62D84400A50762 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20682F62D84400A50762 /* CAMutex.cpp */; };
8B3F20F12F62D84400A50762 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20692F62D84400A50762 /* CADebugger.cpp */; };
8B3F20F22F62D84400A50762 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F206A2F62D84400A50762 /* CABundleLocker.cpp */; };
8B3F20F32F62D84400A50762 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F206B2F62D84400A50762 /* CAAudioFileFormats.cpp */; };
8B3F20F42F62D84400A50762 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F206C2F62D84400A50762 /* CAMath.h */; };
8B3F20F52F62D84400A50762 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F206D2F62D84400A50762 /* CACFArray.cpp */; };
8B3F20F62F62D84400A50762 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F206E2F62D84400A50762 /* CACFMessagePort.h */; };
8B3F20F72F62D84400A50762 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F206F2F62D84400A50762 /* CAAudioValueRange.cpp */; };
8B3F20F82F62D84400A50762 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20702F62D84400A50762 /* CAAudioUnit.cpp */; };
8B3F20F92F62D84400A50762 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20742F62D84400A50762 /* AUViewLocalizedStringKeys.h */; };
8B3F20FA2F62D84400A50762 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20762F62D84400A50762 /* ComponentBase.cpp */; };
8B3F20FB2F62D84400A50762 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20772F62D84400A50762 /* AUScopeElement.cpp */; };
8B3F20FC2F62D84400A50762 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20782F62D84400A50762 /* ComponentBase.h */; };
8B3F20FD2F62D84400A50762 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20792F62D84400A50762 /* AUBase.cpp */; };
8B3F20FE2F62D84400A50762 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F207A2F62D84400A50762 /* AUInputElement.h */; };
8B3F20FF2F62D84400A50762 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F207B2F62D84400A50762 /* AUBase.h */; };
8B3F21002F62D84400A50762 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F207C2F62D84400A50762 /* AUPlugInDispatch.h */; };
8B3F21012F62D84400A50762 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F207D2F62D84400A50762 /* AUDispatch.h */; };
8B3F21022F62D84400A50762 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F207E2F62D84400A50762 /* AUOutputElement.cpp */; };
8B3F21042F62D84400A50762 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20802F62D84400A50762 /* AUPlugInDispatch.cpp */; };
8B3F21052F62D84400A50762 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20812F62D84400A50762 /* AUOutputElement.h */; };
8B3F21062F62D84400A50762 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20822F62D84400A50762 /* AUDispatch.cpp */; };
8B3F21072F62D84400A50762 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20832F62D84400A50762 /* AUScopeElement.h */; };
8B3F21082F62D84400A50762 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20842F62D84400A50762 /* AUInputElement.cpp */; };
8B3F21092F62D84400A50762 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F20862F62D84400A50762 /* AUEffectBase.cpp */; };
8B3F210A2F62D84400A50762 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20872F62D84400A50762 /* AUEffectBase.h */; };
8B3F210B2F62D84400A50762 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20892F62D84400A50762 /* AUTimestampGenerator.h */; };
8B3F210C2F62D84400A50762 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F208A2F62D84400A50762 /* AUBaseHelper.cpp */; };
8B3F210D2F62D84400A50762 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F208B2F62D84400A50762 /* AUSilentTimeout.h */; };
8B3F210E2F62D84400A50762 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F208C2F62D84400A50762 /* AUInputFormatConverter.h */; };
8B3F210F2F62D84400A50762 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F208D2F62D84400A50762 /* AUTimestampGenerator.cpp */; };
8B3F21102F62D84400A50762 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3F208E2F62D84400A50762 /* AUBuffer.cpp */; };
8B3F21112F62D84400A50762 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F208F2F62D84400A50762 /* AUMIDIDefs.h */; };
8B3F21122F62D84400A50762 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20902F62D84400A50762 /* AUBuffer.h */; };
8B3F21132F62D84400A50762 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3F20912F62D84400A50762 /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* Donut.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Donut.cpp */; };
8BA05A6E0720730100365D66 /* DonutVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* DonutVersion.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 /* Donut.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Donut.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B3F200A2F62D84400A50762 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B3F200B2F62D84400A50762 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B3F200C2F62D84400A50762 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B3F200D2F62D84400A50762 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B3F200E2F62D84400A50762 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B3F200F2F62D84400A50762 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B3F20102F62D84400A50762 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B3F20112F62D84400A50762 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B3F20122F62D84400A50762 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B3F20132F62D84400A50762 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B3F20142F62D84400A50762 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B3F20152F62D84400A50762 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B3F20162F62D84400A50762 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B3F20172F62D84400A50762 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B3F20182F62D84400A50762 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B3F20192F62D84400A50762 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B3F201A2F62D84400A50762 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B3F201B2F62D84400A50762 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B3F201C2F62D84400A50762 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B3F201D2F62D84400A50762 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B3F201E2F62D84400A50762 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B3F201F2F62D84400A50762 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B3F20202F62D84400A50762 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B3F20212F62D84400A50762 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B3F20222F62D84400A50762 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B3F20232F62D84400A50762 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B3F20242F62D84400A50762 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B3F20252F62D84400A50762 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B3F20262F62D84400A50762 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B3F20272F62D84400A50762 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B3F20282F62D84400A50762 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B3F20292F62D84400A50762 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B3F202A2F62D84400A50762 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B3F202B2F62D84400A50762 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B3F202C2F62D84400A50762 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B3F202D2F62D84400A50762 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B3F202E2F62D84400A50762 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B3F202F2F62D84400A50762 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B3F20302F62D84400A50762 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B3F20312F62D84400A50762 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B3F20322F62D84400A50762 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B3F20332F62D84400A50762 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B3F20342F62D84400A50762 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B3F20352F62D84400A50762 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B3F20362F62D84400A50762 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B3F20372F62D84400A50762 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B3F20382F62D84400A50762 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B3F20392F62D84400A50762 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B3F203A2F62D84400A50762 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B3F203B2F62D84400A50762 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B3F203C2F62D84400A50762 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B3F203D2F62D84400A50762 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B3F203E2F62D84400A50762 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B3F203F2F62D84400A50762 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B3F20402F62D84400A50762 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B3F20412F62D84400A50762 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B3F20422F62D84400A50762 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B3F20432F62D84400A50762 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B3F20442F62D84400A50762 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B3F20452F62D84400A50762 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B3F20462F62D84400A50762 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B3F20472F62D84400A50762 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B3F20482F62D84400A50762 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B3F20492F62D84400A50762 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B3F204A2F62D84400A50762 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B3F204B2F62D84400A50762 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B3F204C2F62D84400A50762 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B3F204D2F62D84400A50762 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B3F204E2F62D84400A50762 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B3F204F2F62D84400A50762 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B3F20502F62D84400A50762 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B3F20512F62D84400A50762 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B3F20522F62D84400A50762 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B3F20532F62D84400A50762 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B3F20542F62D84400A50762 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B3F20552F62D84400A50762 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B3F20562F62D84400A50762 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B3F20572F62D84400A50762 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B3F20582F62D84400A50762 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B3F20592F62D84400A50762 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B3F205A2F62D84400A50762 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B3F205B2F62D84400A50762 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B3F205C2F62D84400A50762 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B3F205D2F62D84400A50762 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B3F205E2F62D84400A50762 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B3F205F2F62D84400A50762 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B3F20602F62D84400A50762 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B3F20612F62D84400A50762 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B3F20622F62D84400A50762 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B3F20632F62D84400A50762 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B3F20642F62D84400A50762 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B3F20652F62D84400A50762 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B3F20662F62D84400A50762 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B3F20672F62D84400A50762 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B3F20682F62D84400A50762 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B3F20692F62D84400A50762 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B3F206A2F62D84400A50762 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B3F206B2F62D84400A50762 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B3F206C2F62D84400A50762 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B3F206D2F62D84400A50762 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B3F206E2F62D84400A50762 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B3F206F2F62D84400A50762 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B3F20702F62D84400A50762 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B3F20742F62D84400A50762 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B3F20762F62D84400A50762 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B3F20772F62D84400A50762 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B3F20782F62D84400A50762 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B3F20792F62D84400A50762 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B3F207A2F62D84400A50762 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B3F207B2F62D84400A50762 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B3F207C2F62D84400A50762 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B3F207D2F62D84400A50762 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B3F207E2F62D84400A50762 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B3F207F2F62D84400A50762 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B3F20802F62D84400A50762 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B3F20812F62D84400A50762 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B3F20822F62D84400A50762 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B3F20832F62D84400A50762 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B3F20842F62D84400A50762 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B3F20862F62D84400A50762 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B3F20872F62D84400A50762 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B3F20892F62D84400A50762 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B3F208A2F62D84400A50762 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B3F208B2F62D84400A50762 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B3F208C2F62D84400A50762 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B3F208D2F62D84400A50762 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B3F208E2F62D84400A50762 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B3F208F2F62D84400A50762 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B3F20902F62D84400A50762 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B3F20912F62D84400A50762 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B3F21142F62D91800A50762 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8BA05A660720730100365D66 /* Donut.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Donut.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Donut.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Donut.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Donut.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Donut.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* DonutVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DonutVersion.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 /* Donut.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Donut.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Donut.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Donut.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 /* Donut */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Donut;
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 = (
8B3F20082F62D84400A50762 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Donut.component */,
);
name = Products;
sourceTree = "<group>";
};
8B3F20082F62D84400A50762 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B3F20092F62D84400A50762 /* PublicUtility */,
8B3F20712F62D84400A50762 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B3F20092F62D84400A50762 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B3F200A2F62D84400A50762 /* CAExtAudioFile.h */,
8B3F200B2F62D84400A50762 /* CACFMachPort.h */,
8B3F200C2F62D84400A50762 /* CABool.h */,
8B3F200D2F62D84400A50762 /* CAComponent.cpp */,
8B3F200E2F62D84400A50762 /* CADebugger.h */,
8B3F200F2F62D84400A50762 /* CACFNumber.cpp */,
8B3F20102F62D84400A50762 /* CAGuard.h */,
8B3F20112F62D84400A50762 /* CAAtomic.h */,
8B3F20122F62D84400A50762 /* CAStreamBasicDescription.h */,
8B3F20132F62D84400A50762 /* CACFObject.h */,
8B3F20142F62D84400A50762 /* CAStreamRangedDescription.h */,
8B3F20152F62D84400A50762 /* CATokenMap.h */,
8B3F20162F62D84400A50762 /* CAComponent.h */,
8B3F20172F62D84400A50762 /* CAAudioBufferList.h */,
8B3F20182F62D84400A50762 /* CAAudioUnit.h */,
8B3F20192F62D84400A50762 /* CAAUParameter.h */,
8B3F201A2F62D84400A50762 /* CAException.h */,
8B3F201B2F62D84400A50762 /* CAAUProcessor.cpp */,
8B3F201C2F62D84400A50762 /* CAAUProcessor.h */,
8B3F201D2F62D84400A50762 /* CAProcess.h */,
8B3F201E2F62D84400A50762 /* CACFDictionary.h */,
8B3F201F2F62D84400A50762 /* CAPThread.h */,
8B3F20202F62D84400A50762 /* CAAUParameter.cpp */,
8B3F20212F62D84400A50762 /* CAAudioTimeStamp.h */,
8B3F20222F62D84400A50762 /* CAFilePathUtils.cpp */,
8B3F20232F62D84400A50762 /* CAAudioValueRange.h */,
8B3F20242F62D84400A50762 /* CAVectorUnitTypes.h */,
8B3F20252F62D84400A50762 /* CAAudioChannelLayoutObject.cpp */,
8B3F20262F62D84400A50762 /* CAGuard.cpp */,
8B3F20272F62D84400A50762 /* CACFNumber.h */,
8B3F20282F62D84400A50762 /* CACFDistributedNotification.cpp */,
8B3F20292F62D84400A50762 /* CACFString.h */,
8B3F202A2F62D84400A50762 /* CAAUMIDIMapManager.cpp */,
8B3F202B2F62D84400A50762 /* CAComponentDescription.cpp */,
8B3F202C2F62D84400A50762 /* CAHostTimeBase.h */,
8B3F202D2F62D84400A50762 /* CADebugMacros.cpp */,
8B3F202E2F62D84400A50762 /* CAAudioFileFormats.h */,
8B3F202F2F62D84400A50762 /* CAAUMIDIMapManager.h */,
8B3F20302F62D84400A50762 /* CACFDictionary.cpp */,
8B3F20312F62D84400A50762 /* CAMutex.h */,
8B3F20322F62D84400A50762 /* CACFString.cpp */,
8B3F20332F62D84400A50762 /* CASettingsStorage.h */,
8B3F20342F62D84400A50762 /* CADebugPrintf.h */,
8B3F20352F62D84400A50762 /* CAXException.cpp */,
8B3F20362F62D84400A50762 /* CAAUMIDIMap.h */,
8B3F20372F62D84400A50762 /* AUParamInfo.h */,
8B3F20382F62D84400A50762 /* CABitOperations.h */,
8B3F20392F62D84400A50762 /* CACFPreferences.cpp */,
8B3F203A2F62D84400A50762 /* CABundleLocker.h */,
8B3F203B2F62D84400A50762 /* CAPropertyAddress.h */,
8B3F203C2F62D84400A50762 /* CAXException.h */,
8B3F203D2F62D84400A50762 /* CAAudioChannelLayout.cpp */,
8B3F203E2F62D84400A50762 /* CAThreadSafeList.h */,
8B3F203F2F62D84400A50762 /* CAAudioUnitOutputCapturer.h */,
8B3F20402F62D84400A50762 /* AUParamInfo.cpp */,
8B3F20412F62D84400A50762 /* CASharedLibrary.cpp */,
8B3F20422F62D84400A50762 /* CAAUMIDIMap.cpp */,
8B3F20432F62D84400A50762 /* CALogMacros.h */,
8B3F20442F62D84400A50762 /* CACFMessagePort.cpp */,
8B3F20452F62D84400A50762 /* CARingBuffer.h */,
8B3F20462F62D84400A50762 /* AUOutputBL.cpp */,
8B3F20472F62D84400A50762 /* CABufferList.h */,
8B3F20482F62D84400A50762 /* CASharedLibrary.h */,
8B3F20492F62D84400A50762 /* CACFData.h */,
8B3F204A2F62D84400A50762 /* CAStreamRangedDescription.cpp */,
8B3F204B2F62D84400A50762 /* CAPThread.cpp */,
8B3F204C2F62D84400A50762 /* CAAutoDisposer.h */,
8B3F204D2F62D84400A50762 /* CACFPreferences.h */,
8B3F204E2F62D84400A50762 /* CAVectorUnit.cpp */,
8B3F204F2F62D84400A50762 /* CAComponentDescription.h */,
8B3F20502F62D84400A50762 /* CADebugMacros.h */,
8B3F20512F62D84400A50762 /* AUOutputBL.h */,
8B3F20522F62D84400A50762 /* CADebugPrintf.cpp */,
8B3F20532F62D84400A50762 /* CARingBuffer.cpp */,
8B3F20542F62D84400A50762 /* CACFPlugIn.h */,
8B3F20552F62D84400A50762 /* CASettingsStorage.cpp */,
8B3F20562F62D84400A50762 /* CAMixMap.h */,
8B3F20572F62D84400A50762 /* CACFDistributedNotification.h */,
8B3F20582F62D84400A50762 /* CAFilePathUtils.h */,
8B3F20592F62D84400A50762 /* CATink.h */,
8B3F205A2F62D84400A50762 /* CAStreamBasicDescription.cpp */,
8B3F205B2F62D84400A50762 /* CAAudioChannelLayout.h */,
8B3F205C2F62D84400A50762 /* CAProcess.cpp */,
8B3F205D2F62D84400A50762 /* CAHostTimeBase.cpp */,
8B3F205E2F62D84400A50762 /* CAPersistence.cpp */,
8B3F205F2F62D84400A50762 /* CAAudioBufferList.cpp */,
8B3F20602F62D84400A50762 /* CAAudioTimeStamp.cpp */,
8B3F20612F62D84400A50762 /* CAVectorUnit.h */,
8B3F20622F62D84400A50762 /* CAByteOrder.h */,
8B3F20632F62D84400A50762 /* CACFArray.h */,
8B3F20642F62D84400A50762 /* CAAtomicStack.h */,
8B3F20652F62D84400A50762 /* CAReferenceCounted.h */,
8B3F20662F62D84400A50762 /* CACFMachPort.cpp */,
8B3F20672F62D84400A50762 /* CABufferList.cpp */,
8B3F20682F62D84400A50762 /* CAMutex.cpp */,
8B3F20692F62D84400A50762 /* CADebugger.cpp */,
8B3F206A2F62D84400A50762 /* CABundleLocker.cpp */,
8B3F206B2F62D84400A50762 /* CAAudioFileFormats.cpp */,
8B3F206C2F62D84400A50762 /* CAMath.h */,
8B3F206D2F62D84400A50762 /* CACFArray.cpp */,
8B3F206E2F62D84400A50762 /* CACFMessagePort.h */,
8B3F206F2F62D84400A50762 /* CAAudioValueRange.cpp */,
8B3F20702F62D84400A50762 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B3F20712F62D84400A50762 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B3F20722F62D84400A50762 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B3F20722F62D84400A50762 /* AUPublic */ = {
isa = PBXGroup;
children = (
8B3F20732F62D84400A50762 /* AUViewBase */,
8B3F20752F62D84400A50762 /* AUBase */,
8B3F20852F62D84400A50762 /* OtherBases */,
8B3F20882F62D84400A50762 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B3F20732F62D84400A50762 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B3F20742F62D84400A50762 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B3F20752F62D84400A50762 /* AUBase */ = {
isa = PBXGroup;
children = (
8B3F20762F62D84400A50762 /* ComponentBase.cpp */,
8B3F20772F62D84400A50762 /* AUScopeElement.cpp */,
8B3F20782F62D84400A50762 /* ComponentBase.h */,
8B3F20792F62D84400A50762 /* AUBase.cpp */,
8B3F207A2F62D84400A50762 /* AUInputElement.h */,
8B3F207B2F62D84400A50762 /* AUBase.h */,
8B3F207C2F62D84400A50762 /* AUPlugInDispatch.h */,
8B3F207D2F62D84400A50762 /* AUDispatch.h */,
8B3F207E2F62D84400A50762 /* AUOutputElement.cpp */,
8B3F207F2F62D84400A50762 /* AUResources.r */,
8B3F20802F62D84400A50762 /* AUPlugInDispatch.cpp */,
8B3F20812F62D84400A50762 /* AUOutputElement.h */,
8B3F20822F62D84400A50762 /* AUDispatch.cpp */,
8B3F20832F62D84400A50762 /* AUScopeElement.h */,
8B3F20842F62D84400A50762 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B3F20852F62D84400A50762 /* OtherBases */ = {
isa = PBXGroup;
children = (
8B3F20862F62D84400A50762 /* AUEffectBase.cpp */,
8B3F20872F62D84400A50762 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B3F20882F62D84400A50762 /* Utility */ = {
isa = PBXGroup;
children = (
8B3F20892F62D84400A50762 /* AUTimestampGenerator.h */,
8B3F208A2F62D84400A50762 /* AUBaseHelper.cpp */,
8B3F208B2F62D84400A50762 /* AUSilentTimeout.h */,
8B3F208C2F62D84400A50762 /* AUInputFormatConverter.h */,
8B3F208D2F62D84400A50762 /* AUTimestampGenerator.cpp */,
8B3F208E2F62D84400A50762 /* AUBuffer.cpp */,
8B3F208F2F62D84400A50762 /* AUMIDIDefs.h */,
8B3F20902F62D84400A50762 /* AUBuffer.h */,
8B3F20912F62D84400A50762 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Donut.h */,
8BA05A660720730100365D66 /* Donut.cpp */,
8BA05A670720730100365D66 /* Donut.exp */,
8BA05A680720730100365D66 /* Donut.r */,
8BA05A690720730100365D66 /* DonutVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6E0720730100365D66 /* DonutVersion.h in Headers */,
8B3F20D42F62D84400A50762 /* CAAutoDisposer.h in Headers */,
8B3F20F62F62D84400A50762 /* CACFMessagePort.h in Headers */,
8B3F20CB2F62D84400A50762 /* CALogMacros.h in Headers */,
8B3F20B12F62D84400A50762 /* CACFString.h in Headers */,
8B3F20BF2F62D84400A50762 /* AUParamInfo.h in Headers */,
8B3F20BB2F62D84400A50762 /* CASettingsStorage.h in Headers */,
8B3F20CD2F62D84400A50762 /* CARingBuffer.h in Headers */,
8B3F20AF2F62D84400A50762 /* CACFNumber.h in Headers */,
8B3F20A62F62D84400A50762 /* CACFDictionary.h in Headers */,
8B3F20A12F62D84400A50762 /* CAAUParameter.h in Headers */,
8B3F20D82F62D84400A50762 /* CADebugMacros.h in Headers */,
8B3F20932F62D84400A50762 /* CACFMachPort.h in Headers */,
8B3F20ED2F62D84400A50762 /* CAReferenceCounted.h in Headers */,
8B3F20E92F62D84400A50762 /* CAVectorUnit.h in Headers */,
8B3F210D2F62D84400A50762 /* AUSilentTimeout.h in Headers */,
8B3F209A2F62D84400A50762 /* CAStreamBasicDescription.h in Headers */,
8B3F209C2F62D84400A50762 /* CAStreamRangedDescription.h in Headers */,
8B3F20DC2F62D84400A50762 /* CACFPlugIn.h in Headers */,
8B3F20F42F62D84400A50762 /* CAMath.h in Headers */,
8B3F20B72F62D84400A50762 /* CAAUMIDIMapManager.h in Headers */,
8B3F20E32F62D84400A50762 /* CAAudioChannelLayout.h in Headers */,
8B3F209D2F62D84400A50762 /* CATokenMap.h in Headers */,
8B3F20B92F62D84400A50762 /* CAMutex.h in Headers */,
8B3F20C42F62D84400A50762 /* CAXException.h in Headers */,
8B3F21002F62D84400A50762 /* AUPlugInDispatch.h in Headers */,
8B3F20DE2F62D84400A50762 /* CAMixMap.h in Headers */,
8B3F210E2F62D84400A50762 /* AUInputFormatConverter.h in Headers */,
8B3F209F2F62D84400A50762 /* CAAudioBufferList.h in Headers */,
8B3F20AB2F62D84400A50762 /* CAAudioValueRange.h in Headers */,
8B3F21072F62D84400A50762 /* AUScopeElement.h in Headers */,
8B3F20AC2F62D84400A50762 /* CAVectorUnitTypes.h in Headers */,
8B3F20C02F62D84400A50762 /* CABitOperations.h in Headers */,
8B3F20FF2F62D84400A50762 /* AUBase.h in Headers */,
8B3F20A42F62D84400A50762 /* CAAUProcessor.h in Headers */,
8B3F20982F62D84400A50762 /* CAGuard.h in Headers */,
8B3F20FC2F62D84400A50762 /* ComponentBase.h in Headers */,
8B3F20C72F62D84400A50762 /* CAAudioUnitOutputCapturer.h in Headers */,
8B3F20D72F62D84400A50762 /* CAComponentDescription.h in Headers */,
8B3F20DF2F62D84400A50762 /* CACFDistributedNotification.h in Headers */,
8B3F209B2F62D84400A50762 /* CACFObject.h in Headers */,
8B3F20BC2F62D84400A50762 /* CADebugPrintf.h in Headers */,
8B3F20EB2F62D84400A50762 /* CACFArray.h in Headers */,
8B3F20E02F62D84400A50762 /* CAFilePathUtils.h in Headers */,
8B3F20D12F62D84400A50762 /* CACFData.h in Headers */,
8B3F210B2F62D84400A50762 /* AUTimestampGenerator.h in Headers */,
8B3F20D52F62D84400A50762 /* CACFPreferences.h in Headers */,
8B3F20992F62D84400A50762 /* CAAtomic.h in Headers */,
8B3F20E12F62D84400A50762 /* CATink.h in Headers */,
8B3F20F92F62D84400A50762 /* AUViewLocalizedStringKeys.h in Headers */,
8BC6025C073B072D006C4272 /* Donut.h in Headers */,
8B3F20B42F62D84400A50762 /* CAHostTimeBase.h in Headers */,
8B3F209E2F62D84400A50762 /* CAComponent.h in Headers */,
8B3F20C22F62D84400A50762 /* CABundleLocker.h in Headers */,
8B3F20922F62D84400A50762 /* CAExtAudioFile.h in Headers */,
8B3F20962F62D84400A50762 /* CADebugger.h in Headers */,
8B3F20BE2F62D84400A50762 /* CAAUMIDIMap.h in Headers */,
8B3F20A92F62D84400A50762 /* CAAudioTimeStamp.h in Headers */,
8B3F210A2F62D84400A50762 /* AUEffectBase.h in Headers */,
8B3F20A52F62D84400A50762 /* CAProcess.h in Headers */,
8B3F20EA2F62D84400A50762 /* CAByteOrder.h in Headers */,
8B3F20D02F62D84400A50762 /* CASharedLibrary.h in Headers */,
8B3F21052F62D84400A50762 /* AUOutputElement.h in Headers */,
8B3F21122F62D84400A50762 /* AUBuffer.h in Headers */,
8B3F20C32F62D84400A50762 /* CAPropertyAddress.h in Headers */,
8B3F20942F62D84400A50762 /* CABool.h in Headers */,
8B3F21132F62D84400A50762 /* AUBaseHelper.h in Headers */,
8B3F20C62F62D84400A50762 /* CAThreadSafeList.h in Headers */,
8B3F20B62F62D84400A50762 /* CAAudioFileFormats.h in Headers */,
8B3F21012F62D84400A50762 /* AUDispatch.h in Headers */,
8B3F20FE2F62D84400A50762 /* AUInputElement.h in Headers */,
8B3F20A72F62D84400A50762 /* CAPThread.h in Headers */,
8B3F20A22F62D84400A50762 /* CAException.h in Headers */,
8B3F20D92F62D84400A50762 /* AUOutputBL.h in Headers */,
8B3F21112F62D84400A50762 /* AUMIDIDefs.h in Headers */,
8B3F20CF2F62D84400A50762 /* CABufferList.h in Headers */,
8B3F20A02F62D84400A50762 /* CAAudioUnit.h in Headers */,
8B3F20EC2F62D84400A50762 /* CAAtomicStack.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Donut */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Donut" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Donut;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Donut;
productReference = 8D01CCD20486CAD60068D4B7 /* Donut.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 "Donut" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
de,
fr,
Base,
ja,
);
mainGroup = 089C166AFE841209C02AAC07 /* Donut */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Donut */,
);
};
/* 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 = (
8B3F20BD2F62D84400A50762 /* CAXException.cpp in Sources */,
8BA05A6B0720730100365D66 /* Donut.cpp in Sources */,
8B3F21082F62D84400A50762 /* AUInputElement.cpp in Sources */,
8B3F20FA2F62D84400A50762 /* ComponentBase.cpp in Sources */,
8B3F20DB2F62D84400A50762 /* CARingBuffer.cpp in Sources */,
8B3F21062F62D84400A50762 /* AUDispatch.cpp in Sources */,
8B3F20E62F62D84400A50762 /* CAPersistence.cpp in Sources */,
8B3F20E82F62D84400A50762 /* CAAudioTimeStamp.cpp in Sources */,
8B3F21092F62D84400A50762 /* AUEffectBase.cpp in Sources */,
8B3F21042F62D84400A50762 /* AUPlugInDispatch.cpp in Sources */,
8B3F20A82F62D84400A50762 /* CAAUParameter.cpp in Sources */,
8B3F20EF2F62D84400A50762 /* CABufferList.cpp in Sources */,
8B3F20AA2F62D84400A50762 /* CAFilePathUtils.cpp in Sources */,
8B3F20DA2F62D84400A50762 /* CADebugPrintf.cpp in Sources */,
8B3F20B52F62D84400A50762 /* CADebugMacros.cpp in Sources */,
8B3F20F02F62D84400A50762 /* CAMutex.cpp in Sources */,
8B3F21102F62D84400A50762 /* AUBuffer.cpp in Sources */,
8B3F20B22F62D84400A50762 /* CAAUMIDIMapManager.cpp in Sources */,
8B3F20952F62D84400A50762 /* CAComponent.cpp in Sources */,
8B3F21022F62D84400A50762 /* AUOutputElement.cpp in Sources */,
8B3F20B32F62D84400A50762 /* CAComponentDescription.cpp in Sources */,
8B3F20E22F62D84400A50762 /* CAStreamBasicDescription.cpp in Sources */,
8B3F210F2F62D84400A50762 /* AUTimestampGenerator.cpp in Sources */,
8B3F20E72F62D84400A50762 /* CAAudioBufferList.cpp in Sources */,
8B3F20B82F62D84400A50762 /* CACFDictionary.cpp in Sources */,
8B3F20C12F62D84400A50762 /* CACFPreferences.cpp in Sources */,
8B3F20F82F62D84400A50762 /* CAAudioUnit.cpp in Sources */,
8B3F20CA2F62D84400A50762 /* CAAUMIDIMap.cpp in Sources */,
8B3F20A32F62D84400A50762 /* CAAUProcessor.cpp in Sources */,
8B3F20C92F62D84400A50762 /* CASharedLibrary.cpp in Sources */,
8B3F20F12F62D84400A50762 /* CADebugger.cpp in Sources */,
8B3F20FD2F62D84400A50762 /* AUBase.cpp in Sources */,
8B3F20CE2F62D84400A50762 /* AUOutputBL.cpp in Sources */,
8B3F20D32F62D84400A50762 /* CAPThread.cpp in Sources */,
8B3F210C2F62D84400A50762 /* AUBaseHelper.cpp in Sources */,
8B3F20BA2F62D84400A50762 /* CACFString.cpp in Sources */,
8B3F20C52F62D84400A50762 /* CAAudioChannelLayout.cpp in Sources */,
8B3F20DD2F62D84400A50762 /* CASettingsStorage.cpp in Sources */,
8B3F20F72F62D84400A50762 /* CAAudioValueRange.cpp in Sources */,
8B3F20F22F62D84400A50762 /* CABundleLocker.cpp in Sources */,
8B3F20CC2F62D84400A50762 /* CACFMessagePort.cpp in Sources */,
8B3F20FB2F62D84400A50762 /* AUScopeElement.cpp in Sources */,
8B3F20E42F62D84400A50762 /* CAProcess.cpp in Sources */,
8B3F20D62F62D84400A50762 /* CAVectorUnit.cpp in Sources */,
8B3F20AD2F62D84400A50762 /* CAAudioChannelLayoutObject.cpp in Sources */,
8B3F20F32F62D84400A50762 /* CAAudioFileFormats.cpp in Sources */,
8B3F20D22F62D84400A50762 /* CAStreamRangedDescription.cpp in Sources */,
8B3F20EE2F62D84400A50762 /* CACFMachPort.cpp in Sources */,
8B3F20F52F62D84400A50762 /* CACFArray.cpp in Sources */,
8B3F20AE2F62D84400A50762 /* CAGuard.cpp in Sources */,
8B3F20972F62D84400A50762 /* CACFNumber.cpp in Sources */,
8B3F20C82F62D84400A50762 /* AUParamInfo.cpp in Sources */,
8B3F20B02F62D84400A50762 /* CACFDistributedNotification.cpp in Sources */,
8B3F20E52F62D84400A50762 /* CAHostTimeBase.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B3F21142F62D91800A50762 /* 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 = Donut.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 = Donut;
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 = Donut.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 = Donut;
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 "Donut" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Donut" */ = {
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 = "Donut.component"
BlueprintName = "Donut"
ReferencedContainer = "container:Donut.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 = "Donut.component"
BlueprintName = "Donut"
ReferencedContainer = "container:Donut.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>Donut.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: DonutVersion.h
*
* Version: 1.0
*
* Created: 3/10/26
*
* Copyright: Copyright © 2026 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 __DonutVersion_h__
#define __DonutVersion_h__
#ifdef DEBUG
#define kDonutVersion 0xFFFFFFFF
#else
#define kDonutVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Donut_COMP_MANF 'Dthr'
#define Donut_COMP_SUBTYPE 'donu'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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>donu</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

@ -2,6 +2,25 @@
<!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>tot9</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@ -9,11 +28,11 @@
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<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>

View file

@ -48,7 +48,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(ToTape9)
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ToTape9)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -1 +1,2 @@
_ToTape9Entry
_ToTape9Factory

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:">
</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 = "ToTape9.component"
BlueprintName = "ToTape9"
ReferencedContainer = "container:ToTape9.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 = "ToTape9.component"
BlueprintName = "ToTape9"
ReferencedContainer = "container:ToTape9.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>ToTape9.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

@ -2,6 +2,25 @@
<!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>tt9m</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
@ -9,11 +28,11 @@
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<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>

View file

@ -48,7 +48,7 @@
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(ToTape9Mono)
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ToTape9Mono)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View file

@ -1 +1,2 @@
_ToTape9MonoEntry
_ToTape9MonoFactory

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 = "ToTape9Mono.component"
BlueprintName = "ToTape9Mono"
ReferencedContainer = "container:ToTape9Mono.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 = "ToTape9Mono.component"
BlueprintName = "ToTape9Mono"
ReferencedContainer = "container:ToTape9Mono.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>ToTape9Mono.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,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>wdbx</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>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
//
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
//
#include <CoreServices/CoreServices.h>

View file

@ -0,0 +1,541 @@
/*
* File: WoodenBox.cpp
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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.
*
*/
/*=============================================================================
WoodenBox.cpp
=============================================================================*/
#include "WoodenBox.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, WoodenBox)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::WoodenBox
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
WoodenBox::WoodenBox(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::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_Indexed;
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 16;
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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// state that plugin supports only stereo-in/stereo-out processing
UInt32 WoodenBox::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// WoodenBox::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____WoodenBoxEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::WoodenBoxKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult WoodenBox::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
c4AL = c4BL = c4CL = c4DL = c4EL = c4FL = c4GL = c4HL = 1;
c4IL = c4JL = c4KL = c4LL = c4ML = c4NL = c4OL = c4PL = 1;
c4AR = c4BR = c4CR = c4DR = c4ER = c4FR = c4GR = c4HR = 1;
c4IR = c4JR = c4KR = c4LR = c4MR = c4NR = c4OR = c4PR = 1;
for(int x = 0; x < d4A+2; x++) {b4AL[x] = 0.0; b4AR[x] = 0.0;}
for(int x = 0; x < d4B+2; x++) {b4BL[x] = 0.0; b4BR[x] = 0.0;}
for(int x = 0; x < d4C+2; x++) {b4CL[x] = 0.0; b4CR[x] = 0.0;}
for(int x = 0; x < d4D+2; x++) {b4DL[x] = 0.0; b4DR[x] = 0.0;}
for(int x = 0; x < d4E+2; x++) {b4EL[x] = 0.0; b4ER[x] = 0.0;}
for(int x = 0; x < d4F+2; x++) {b4FL[x] = 0.0; b4FR[x] = 0.0;}
for(int x = 0; x < d4G+2; x++) {b4GL[x] = 0.0; b4GR[x] = 0.0;}
for(int x = 0; x < d4H+2; x++) {b4HL[x] = 0.0; b4HR[x] = 0.0;}
for(int x = 0; x < d4I+2; x++) {b4IL[x] = 0.0; b4IR[x] = 0.0;}
for(int x = 0; x < d4J+2; x++) {b4JL[x] = 0.0; b4JR[x] = 0.0;}
for(int x = 0; x < d4K+2; x++) {b4KL[x] = 0.0; b4KR[x] = 0.0;}
for(int x = 0; x < d4L+2; x++) {b4LL[x] = 0.0; b4LR[x] = 0.0;}
for(int x = 0; x < d4M+2; x++) {b4ML[x] = 0.0; b4MR[x] = 0.0;}
for(int x = 0; x < d4N+2; x++) {b4NL[x] = 0.0; b4NR[x] = 0.0;}
for(int x = 0; x < d4O+2; x++) {b4OL[x] = 0.0; b4OR[x] = 0.0;}
for(int x = 0; x < d4P+2; x++) {b4PL[x] = 0.0; b4PR[x] = 0.0;}
g4AL = g4BL = g4CL = g4DL = 0.0;
g4DR = g4HR = g4LR = g4PR = 0.0;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
shortA = 173;
shortB = 82;
shortC = 240;
shortD = 191;
shortE = 196;
shortF = 257;
shortG = 203;
shortH = 252;
shortI = 207;
shortJ = 203;
shortK = 250;
shortL = 220;
shortM = 261;
shortN = 235;
shortO = 161;
shortP = 161;
prevclearcoat = -1;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// WoodenBox::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus WoodenBox::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer,
AudioBufferList & outBuffer,
UInt32 inFramesToProcess)
{
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
UInt32 nSampleFrames = inFramesToProcess;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
int clearcoat = GetParameter( kParam_A );
if (clearcoat != prevclearcoat) {
for(int count = 0; count < d4A+2; count++) {b4AL[count] = 0.0; b4AR[count] = 0.0;}
for(int count = 0; count < d4B+2; count++) {b4BL[count] = 0.0; b4BR[count] = 0.0;}
for(int count = 0; count < d4C+2; count++) {b4CL[count] = 0.0; b4CR[count] = 0.0;}
for(int count = 0; count < d4D+2; count++) {b4DL[count] = 0.0; b4DR[count] = 0.0;}
for(int count = 0; count < d4E+2; count++) {b4EL[count] = 0.0; b4ER[count] = 0.0;}
for(int count = 0; count < d4F+2; count++) {b4FL[count] = 0.0; b4FR[count] = 0.0;}
for(int count = 0; count < d4G+2; count++) {b4GL[count] = 0.0; b4GR[count] = 0.0;}
for(int count = 0; count < d4H+2; count++) {b4HL[count] = 0.0; b4HR[count] = 0.0;}
for(int count = 0; count < d4I+2; count++) {b4IL[count] = 0.0; b4IR[count] = 0.0;}
for(int count = 0; count < d4J+2; count++) {b4JL[count] = 0.0; b4JR[count] = 0.0;}
for(int count = 0; count < d4K+2; count++) {b4KL[count] = 0.0; b4KR[count] = 0.0;}
for(int count = 0; count < d4L+2; count++) {b4LL[count] = 0.0; b4LR[count] = 0.0;}
for(int count = 0; count < d4M+2; count++) {b4ML[count] = 0.0; b4MR[count] = 0.0;}
for(int count = 0; count < d4N+2; count++) {b4NL[count] = 0.0; b4NR[count] = 0.0;}
for(int count = 0; count < d4O+2; count++) {b4OL[count] = 0.0; b4OR[count] = 0.0;}
for(int count = 0; count < d4P+2; count++) {b4PL[count] = 0.0; b4PR[count] = 0.0;}
c4AL = 1;
c4BL = 1;
c4CL = 1;
c4DL = 1;
c4EL = 1;
c4FL = 1;
c4GL = 1;
c4HL = 1;
c4IL = 1;
c4JL = 1;
c4KL = 1;
c4LL = 1;
c4ML = 1;
c4NL = 1;
c4OL = 1;
c4PL = 1;
c4AR = 1;
c4BR = 1;
c4CR = 1;
c4DR = 1;
c4ER = 1;
c4FR = 1;
c4GR = 1;
c4HR = 1;
c4IR = 1;
c4JR = 1;
c4KR = 1;
c4LR = 1;
c4MR = 1;
c4NR = 1;
c4OR = 1;
c4PR = 1;
switch (clearcoat)
{
case 0:
shortA = 17; shortB = 10; shortC = 23; shortD = 3; shortE = 8; shortF = 7; shortG = 41; shortH = 6; shortI = 3; shortJ = 6; shortK = 59; shortL = 61; shortM = 4; shortN = 71; shortO = 5; shortP = 4; break; //0 to 4 ms, 0 seat room
case 1:
shortA = 12; shortB = 19; shortC = 89; shortD = 25; shortE = 92; shortF = 8; shortG = 41; shortH = 11; shortI = 80; shortJ = 27; shortK = 6; shortL = 4; shortM = 3; shortN = 21; shortO = 7; shortP = 63; break; //0 to 7 ms, 1 seat room
case 2:
shortA = 35; shortB = 19; shortC = 5; shortD = 7; shortE = 15; shortF = 7; shortG = 41; shortH = 191; shortI = 177; shortJ = 3; shortK = 6; shortL = 22; shortM = 23; shortN = 118; shortO = 4; shortP = 79; break; //0 to 11 ms, 4 seat room
case 3:
shortA = 17; shortB = 19; shortC = 105; shortD = 135; shortE = 31; shortF = 86; shortG = 41; shortH = 16; shortI = 3; shortJ = 16; shortK = 6; shortL = 151; shortM = 147; shortN = 26; shortO = 3; shortP = 10; break; //0 to 11 ms, 4 seat room
case 4:
shortA = 134; shortB = 13; shortC = 26; shortD = 10; shortE = 34; shortF = 24; shortG = 4; shortH = 60; shortI = 88; shortJ = 9; shortK = 155; shortL = 11; shortM = 3; shortN = 18; shortO = 9; shortP = 161; break; //0 to 11 ms, 4 seat room
case 5:
shortA = 17; shortB = 82; shortC = 23; shortD = 29; shortE = 133; shortF = 3; shortG = 41; shortH = 27; shortI = 10; shortJ = 177; shortK = 6; shortL = 37; shortM = 14; shortN = 145; shortO = 4; shortP = 9; break; //0 to 12 ms, 4 seat room
case 6:
shortA = 31; shortB = 19; shortC = 3; shortD = 29; shortE = 196; shortF = 11; shortG = 10; shortH = 65; shortI = 21; shortJ = 3; shortK = 148; shortL = 4; shortM = 26; shortN = 7; shortO = 161; shortP = 155; break; //0 to 12 ms, 4 seat room
case 7:
shortA = 17; shortB = 8; shortC = 3; shortD = 37; shortE = 3; shortF = 19; shortG = 41; shortH = 15; shortI = 7; shortJ = 197; shortK = 178; shortL = 22; shortM = 26; shortN = 97; shortO = 16; shortP = 156; break; //0 to 12 ms, 5 seat room
case 8:
shortA = 17; shortB = 3; shortC = 8; shortD = 29; shortE = 39; shortF = 156; shortG = 7; shortH = 43; shortI = 101; shortJ = 8; shortK = 15; shortL = 169; shortM = 67; shortN = 39; shortO = 154; shortP = 4; break; //0 to 13 ms, 5 seat room
case 9:
shortA = 18; shortB = 19; shortC = 23; shortD = 5; shortE = 176; shortF = 3; shortG = 41; shortH = 147; shortI = 7; shortJ = 148; shortK = 5; shortL = 15; shortM = 10; shortN = 30; shortO = 119; shortP = 19; break; //0 to 13 ms, 5 seat room
case 10:
shortA = 173; shortB = 19; shortC = 23; shortD = 27; shortE = 8; shortF = 37; shortG = 7; shortH = 202; shortI = 8; shortJ = 13; shortK = 3; shortL = 174; shortM = 67; shortN = 21; shortO = 73; shortP = 14; break; //0 to 14 ms, 6 seat room
case 11:
shortA = 17; shortB = 19; shortC = 23; shortD = 25; shortE = 19; shortF = 145; shortG = 9; shortH = 43; shortI = 47; shortJ = 203; shortK = 18; shortL = 180; shortM = 226; shortN = 3; shortO = 73; shortP = 12; break; //0 to 15 ms, 7 seat room
case 12:
shortA = 17; shortB = 19; shortC = 23; shortD = 3; shortE = 3; shortF = 20; shortG = 203; shortH = 99; shortI = 207; shortJ = 15; shortK = 10; shortL = 61; shortM = 20; shortN = 174; shortO = 33; shortP = 77; break; //0 to 15 ms, 7 seat room
case 13:
shortA = 17; shortB = 19; shortC = 23; shortD = 29; shortE = 3; shortF = 210; shortG = 183; shortH = 43; shortI = 13; shortJ = 12; shortK = 26; shortL = 220; shortM = 67; shortN = 235; shortO = 11; shortP = 23; break; //0 to 15 ms, 8 seat room
case 14:
shortA = 17; shortB = 3; shortC = 21; shortD = 191; shortE = 31; shortF = 10; shortG = 41; shortH = 218; shortI = 15; shortJ = 6; shortK = 111; shortL = 29; shortM = 129; shortN = 206; shortO = 4; shortP = 7; break; //0 to 16 ms, 8 seat room
case 15:
shortA = 17; shortB = 25; shortC = 240; shortD = 29; shortE = 4; shortF = 18; shortG = 41; shortH = 43; shortI = 29; shortJ = 28; shortK = 250; shortL = 12; shortM = 261; shortN = 9; shortO = 5; shortP = 79; break; //0 to 18 ms, 10 seat room
case 16:
default:
shortA = 5; shortB = 3; shortC = 23; shortD = 29; shortE = 3; shortF = 257; shortG = 199; shortH = 252; shortI = 132; shortJ = 18; shortK = 11; shortL = 6; shortM = 30; shortN = 27; shortO = 7; shortP = 8; break; //0 to 19 ms, 11 seat room
}
prevclearcoat = clearcoat;
}
double reg4n = (1.0-pow(1.0-GetParameter( kParam_B ),2.0))*0.0336;
double derez = 1.0;
derez = fmin(fmax(derez/overallscale,0.0001),1.0);
int bezFraction = (int)(1.0/derez);
double bezTrim = (double)bezFraction/(bezFraction+1.0);
derez = 1.0 / bezFraction;
bezTrim = 1.0-(derez*bezTrim);
//the revision more accurately connects the bezier curves
double wet = 1.0-pow(1.0-GetParameter( kParam_C ),2.0);
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
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;
bez[bez_cycle] += derez;
bez[bez_SampL] += (inputSampleR*derez);
bez[bez_SampR] += (inputSampleL*derez); //stereo got reversed somewhere?
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
//left verbs
double dualmonoSampleL = bez[bez_SampL];
b4AL[c4AL] = dualmonoSampleL + (g4AL * reg4n);
b4BL[c4BL] = dualmonoSampleL + (g4BL * reg4n);
b4CL[c4CL] = dualmonoSampleL + (g4CL * reg4n);
b4DL[c4DL] = dualmonoSampleL + (g4DL * reg4n);
c4AL++; if (c4AL < 0 || c4AL > shortA) c4AL = 0;
c4BL++; if (c4BL < 0 || c4BL > shortB) c4BL = 0;
c4CL++; if (c4CL < 0 || c4CL > shortC) c4CL = 0;
c4DL++; if (c4DL < 0 || c4DL > shortD) c4DL = 0;
double hA = b4AL[c4AL-((c4AL > shortA)?shortA+1:0)];
double hB = b4BL[c4BL-((c4BL > shortB)?shortB+1:0)];
double hC = b4CL[c4CL-((c4CL > shortC)?shortC+1:0)];
double hD = b4DL[c4DL-((c4DL > shortD)?shortD+1:0)];
b4EL[c4EL] = hA - (hB + hC + hD);
b4FL[c4FL] = hB - (hA + hC + hD);
b4GL[c4GL] = hC - (hA + hB + hD);
b4HL[c4HL] = hD - (hA + hB + hC);
c4EL++; if (c4EL < 0 || c4EL > shortE) c4EL = 0;
c4FL++; if (c4FL < 0 || c4FL > shortF) c4FL = 0;
c4GL++; if (c4GL < 0 || c4GL > shortG) c4GL = 0;
c4HL++; if (c4HL < 0 || c4HL > shortH) c4HL = 0;
hA = b4EL[c4EL-((c4EL > shortE)?shortE+1:0)];
hB = b4FL[c4FL-((c4FL > shortF)?shortF+1:0)];
hC = b4GL[c4GL-((c4GL > shortG)?shortG+1:0)];
hD = b4HL[c4HL-((c4HL > shortH)?shortH+1:0)];
b4IL[c4IL] = hA - (hB + hC + hD);
b4JL[c4JL] = hB - (hA + hC + hD);
b4KL[c4KL] = hC - (hA + hB + hD);
b4LL[c4LL] = hD - (hA + hB + hC);
c4IL++; if (c4IL < 0 || c4IL > shortI) c4IL = 0;
c4JL++; if (c4JL < 0 || c4JL > shortJ) c4JL = 0;
c4KL++; if (c4KL < 0 || c4KL > shortK) c4KL = 0;
c4LL++; if (c4LL < 0 || c4LL > shortL) c4LL = 0;
hA = b4IL[c4IL-((c4IL > shortI)?shortI+1:0)];
hB = b4JL[c4JL-((c4JL > shortJ)?shortJ+1:0)];
hC = b4KL[c4KL-((c4KL > shortK)?shortK+1:0)];
hD = b4LL[c4LL-((c4LL > shortL)?shortL+1:0)];
b4ML[c4ML] = hA - (hB + hC + hD);
b4NL[c4NL] = hB - (hA + hC + hD);
b4OL[c4OL] = hC - (hA + hB + hD);
b4PL[c4PL] = hD - (hA + hB + hC);
c4ML++; if (c4ML < 0 || c4ML > shortM) c4ML = 0;
c4NL++; if (c4NL < 0 || c4NL > shortN) c4NL = 0;
c4OL++; if (c4OL < 0 || c4OL > shortO) c4OL = 0;
c4PL++; if (c4PL < 0 || c4PL > shortP) c4PL = 0;
hA = b4ML[c4ML-((c4ML > shortM)?shortM+1:0)];
hB = b4NL[c4NL-((c4NL > shortN)?shortN+1:0)];
hC = b4OL[c4OL-((c4OL > shortO)?shortO+1:0)];
hD = b4PL[c4PL-((c4PL > shortP)?shortP+1:0)];
g4AL = hA - (hB + hC + hD);
g4BL = hB - (hA + hC + hD);
g4CL = hC - (hA + hB + hD);
g4DL = hD - (hA + hB + hC);
dualmonoSampleL = (hA + hB + hC + hD)*0.125;
//right verbs
double dualmonoSampleR = bez[bez_SampR];
b4DR[c4DR] = dualmonoSampleR + (g4DR * reg4n);
b4HR[c4HR] = dualmonoSampleR + (g4HR * reg4n);
b4LR[c4LR] = dualmonoSampleR + (g4LR * reg4n);
b4PR[c4PR] = dualmonoSampleR + (g4PR * reg4n);
c4DR++; if (c4DR < 0 || c4DR > shortD) c4DR = 0;
c4HR++; if (c4HR < 0 || c4HR > shortH) c4HR = 0;
c4LR++; if (c4LR < 0 || c4LR > shortL) c4LR = 0;
c4PR++; if (c4PR < 0 || c4PR > shortP) c4PR = 0;
hA = b4DR[c4DR-((c4DR > shortD)?shortD+1:0)];
hB = b4HR[c4HR-((c4HR > shortH)?shortH+1:0)];
hC = b4LR[c4LR-((c4LR > shortL)?shortL+1:0)];
hD = b4PR[c4PR-((c4PR > shortP)?shortP+1:0)];
b4CR[c4CR] = hA - (hB + hC + hD);
b4GR[c4GR] = hB - (hA + hC + hD);
b4KR[c4KR] = hC - (hA + hB + hD);
b4OR[c4OR] = hD - (hA + hB + hC);
c4CR++; if (c4CR < 0 || c4CR > shortC) c4CR = 0;
c4GR++; if (c4GR < 0 || c4GR > shortG) c4GR = 0;
c4KR++; if (c4KR < 0 || c4KR > shortK) c4KR = 0;
c4OR++; if (c4OR < 0 || c4OR > shortO) c4OR = 0;
hA = b4CR[c4CR-((c4CR > shortC)?shortC+1:0)];
hB = b4GR[c4GR-((c4GR > shortG)?shortG+1:0)];
hC = b4KR[c4KR-((c4KR > shortK)?shortK+1:0)];
hD = b4OR[c4OR-((c4OR > shortO)?shortO+1:0)];
b4BR[c4BR] = hA - (hB + hC + hD);
b4FR[c4FR] = hB - (hA + hC + hD);
b4JR[c4JR] = hC - (hA + hB + hD);
b4NR[c4NR] = hD - (hA + hB + hC);
c4BR++; if (c4BR < 0 || c4BR > shortB) c4BR = 0;
c4FR++; if (c4FR < 0 || c4FR > shortF) c4FR = 0;
c4JR++; if (c4JR < 0 || c4JR > shortJ) c4JR = 0;
c4NR++; if (c4NR < 0 || c4NR > shortN) c4NR = 0;
hA = b4BR[c4BR-((c4BR > shortB)?shortB+1:0)];
hB = b4FR[c4FR-((c4FR > shortF)?shortF+1:0)];
hC = b4JR[c4JR-((c4JR > shortJ)?shortJ+1:0)];
hD = b4NR[c4NR-((c4NR > shortN)?shortN+1:0)];
b4AR[c4AR] = hA - (hB + hC + hD);
b4ER[c4ER] = hB - (hA + hC + hD);
b4IR[c4IR] = hC - (hA + hB + hD);
b4MR[c4MR] = hD - (hA + hB + hC);
c4AR++; if (c4AR < 0 || c4AR > shortA) c4AR = 0;
c4ER++; if (c4ER < 0 || c4ER > shortE) c4ER = 0;
c4IR++; if (c4IR < 0 || c4IR > shortI) c4IR = 0;
c4MR++; if (c4MR < 0 || c4MR > shortM) c4MR = 0;
hA = b4AR[c4AR-((c4AR > shortA)?shortA+1:0)];
hB = b4ER[c4ER-((c4ER > shortE)?shortE+1:0)];
hC = b4IR[c4IR-((c4IR > shortI)?shortI+1:0)];
hD = b4MR[c4MR-((c4MR > shortM)?shortM+1:0)];
g4DR = hA - (hB + hC + hD);
g4HR = hB - (hA + hC + hD);
g4LR = hC - (hA + hB + hD);
g4PR = hD - (hA + hB + hC);
dualmonoSampleR = (hA + hB + hC + hD)*0.125;
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = dualmonoSampleR;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = dualmonoSampleL;
bez[bez_SampR] = 0.0;
}
double X = bez[bez_cycle]*bezTrim;
double CBL = (bez[bez_CL]*(1.0-X))+(bez[bez_BL]*X);
double CBR = (bez[bez_CR]*(1.0-X))+(bez[bez_BR]*X);
double BAL = (bez[bez_BL]*(1.0-X))+(bez[bez_AL]*X);
double BAR = (bez[bez_BR]*(1.0-X))+(bez[bez_AR]*X);
inputSampleL = (bez[bez_BL]+(CBL*(1.0-X))+(BAL*X))*0.125;
inputSampleR = (bez[bez_BR]+(CBR*(1.0-X))+(BAR*X))*0.125;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//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
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1,2 @@
_WoodenBoxEntry
_WoodenBoxFactory

View file

@ -0,0 +1,213 @@
/*
* File: WoodenBox.h
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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 "WoodenBoxVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __WoodenBox_h__
#define __WoodenBox_h__
#pragma mark ____WoodenBox Parameters
// parameters
static const float kDefaultValue_ParamA = 5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static CFStringRef kParameterAName = CFSTR("Select");
static CFStringRef kParameterBName = CFSTR("Reso");
static CFStringRef kParameterCName = CFSTR("Depth");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
const int d4A = 173;
const int d4B = 82;
const int d4C = 240;
const int d4D = 191;
const int d4E = 196;
const int d4F = 257;
const int d4G = 203;
const int d4H = 252;
const int d4I = 207;
const int d4J = 203;
const int d4K = 250;
const int d4L = 220;
const int d4M = 261;
const int d4N = 235;
const int d4O = 161;
const int d4P = 161;
#pragma mark ____WoodenBox
class WoodenBox : public AUEffectBase
{
public:
WoodenBox(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~WoodenBox () { delete mDebugDispatcher; }
#endif
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
UInt32 inFramesToProcess);
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
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 kWoodenBoxVersion; }
private:
int c4AL,c4BL,c4CL,c4DL,c4EL,c4FL,c4GL,c4HL;
int c4IL,c4JL,c4KL,c4LL,c4ML,c4NL,c4OL,c4PL;
int c4AR,c4BR,c4CR,c4DR,c4ER,c4FR,c4GR,c4HR;
int c4IR,c4JR,c4KR,c4LR,c4MR,c4NR,c4OR,c4PR;
//base stereo reverb
double b4AL[d4A+5];
double b4BL[d4B+5];
double b4CL[d4C+5];
double b4DL[d4D+5];
double b4EL[d4E+5];
double b4FL[d4F+5];
double b4GL[d4G+5];
double b4HL[d4H+5];
double b4IL[d4I+5];
double b4JL[d4J+5];
double b4KL[d4K+5];
double b4LL[d4L+5];
double b4ML[d4M+5];
double b4NL[d4N+5];
double b4OL[d4O+5];
double b4PL[d4P+5];
double b4AR[d4A+5];
double b4BR[d4B+5];
double b4CR[d4C+5];
double b4DR[d4D+5];
double b4ER[d4E+5];
double b4FR[d4F+5];
double b4GR[d4G+5];
double b4HR[d4H+5];
double b4IR[d4I+5];
double b4JR[d4J+5];
double b4KR[d4K+5];
double b4LR[d4L+5];
double b4MR[d4M+5];
double b4NR[d4N+5];
double b4OR[d4O+5];
double b4PR[d4P+5];
double g4AL,g4BL,g4CL,g4DL,g4DR,g4HR,g4LR,g4PR;
//changed letter is the dual mono, with rearranged grid
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
int shortA;
int shortB;
int shortC;
int shortD;
int shortE;
int shortF;
int shortG;
int shortH;
int shortI;
int shortJ;
int shortK;
int shortL;
int shortM;
int shortN;
int shortO;
int shortP;
int prevclearcoat;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: WoodenBox.r
*
* Version: 1.0
*
* Created: 3/12/26
*
* Copyright: Copyright © 2026 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 "WoodenBoxVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_WoodenBox 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WoodenBox~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_WoodenBox
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE WoodenBox_COMP_SUBTYPE
#define COMP_MANUF WoodenBox_COMP_MANF
#define VERSION kWoodenBoxVersion
#define NAME "Airwindows: WoodenBox"
#define DESCRIPTION "WoodenBox AU"
#define ENTRY_POINT "WoodenBoxEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* WoodenBox */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* 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,
188,
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 = 795084379;
PBXWorkspaceStateSaveDate = 795084379;
};
perUserProjectItems = {
8B4952D52F6411A6007604D0 /* PBXTextBookmark */ = 8B4952D52F6411A6007604D0 /* PBXTextBookmark */;
8B4952D62F6411A6007604D0 /* PBXTextBookmark */ = 8B4952D62F6411A6007604D0 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4952D52F6411A6007604D0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */;
name = "WoodenBox.cpp: 371";
rLen = 0;
rLoc = 18305;
rType = 0;
vrLen = 264;
vrLoc = 18163;
};
8B4952D62F6411A6007604D0 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */;
name = "WoodenBox.cpp: 369";
rLen = 0;
rLoc = 18305;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8BA05A660720730100365D66 /* WoodenBox.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {2361, 9684}}";
sepNavSelRange = "{18305, 0}";
sepNavVisRange = "{0, 0}";
sepNavWindowFrame = "{{574, 122}, {1045, 710}}";
};
};
8BA05A690720730100365D66 /* WoodenBoxVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{967, 2002}";
sepNavWindowFrame = "{{15, 48}, {1039, 825}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* WoodenBox.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3780}}";
sepNavSelRange = "{5304, 1440}";
sepNavVisRange = "{2725, 841}";
sepNavWindowFrame = "{{732, 53}, {1039, 825}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* WoodenBox */ = {
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 */
8B5617912F646B87003C0E0B /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617092F646B87003C0E0B /* CAExtAudioFile.h */; };
8B5617922F646B87003C0E0B /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56170A2F646B87003C0E0B /* CACFMachPort.h */; };
8B5617932F646B87003C0E0B /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56170B2F646B87003C0E0B /* CABool.h */; };
8B5617942F646B87003C0E0B /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56170C2F646B87003C0E0B /* CAComponent.cpp */; };
8B5617952F646B87003C0E0B /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56170D2F646B87003C0E0B /* CADebugger.h */; };
8B5617962F646B87003C0E0B /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56170E2F646B87003C0E0B /* CACFNumber.cpp */; };
8B5617972F646B87003C0E0B /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56170F2F646B87003C0E0B /* CAGuard.h */; };
8B5617982F646B87003C0E0B /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617102F646B87003C0E0B /* CAAtomic.h */; };
8B5617992F646B87003C0E0B /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617112F646B87003C0E0B /* CAStreamBasicDescription.h */; };
8B56179A2F646B87003C0E0B /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617122F646B87003C0E0B /* CACFObject.h */; };
8B56179B2F646B87003C0E0B /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617132F646B87003C0E0B /* CAStreamRangedDescription.h */; };
8B56179C2F646B87003C0E0B /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617142F646B87003C0E0B /* CATokenMap.h */; };
8B56179D2F646B87003C0E0B /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617152F646B87003C0E0B /* CAComponent.h */; };
8B56179E2F646B87003C0E0B /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617162F646B87003C0E0B /* CAAudioBufferList.h */; };
8B56179F2F646B87003C0E0B /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617172F646B87003C0E0B /* CAAudioUnit.h */; };
8B5617A02F646B87003C0E0B /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617182F646B87003C0E0B /* CAAUParameter.h */; };
8B5617A12F646B87003C0E0B /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617192F646B87003C0E0B /* CAException.h */; };
8B5617A22F646B87003C0E0B /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56171A2F646B87003C0E0B /* CAAUProcessor.cpp */; };
8B5617A32F646B87003C0E0B /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56171B2F646B87003C0E0B /* CAAUProcessor.h */; };
8B5617A42F646B87003C0E0B /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56171C2F646B87003C0E0B /* CAProcess.h */; };
8B5617A52F646B87003C0E0B /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56171D2F646B87003C0E0B /* CACFDictionary.h */; };
8B5617A62F646B87003C0E0B /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56171E2F646B87003C0E0B /* CAPThread.h */; };
8B5617A72F646B87003C0E0B /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56171F2F646B87003C0E0B /* CAAUParameter.cpp */; };
8B5617A82F646B87003C0E0B /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617202F646B87003C0E0B /* CAAudioTimeStamp.h */; };
8B5617A92F646B87003C0E0B /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617212F646B87003C0E0B /* CAFilePathUtils.cpp */; };
8B5617AA2F646B87003C0E0B /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617222F646B87003C0E0B /* CAAudioValueRange.h */; };
8B5617AB2F646B87003C0E0B /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617232F646B87003C0E0B /* CAVectorUnitTypes.h */; };
8B5617AC2F646B87003C0E0B /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617242F646B87003C0E0B /* CAAudioChannelLayoutObject.cpp */; };
8B5617AD2F646B87003C0E0B /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617252F646B87003C0E0B /* CAGuard.cpp */; };
8B5617AE2F646B87003C0E0B /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617262F646B87003C0E0B /* CACFNumber.h */; };
8B5617AF2F646B87003C0E0B /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617272F646B87003C0E0B /* CACFDistributedNotification.cpp */; };
8B5617B02F646B87003C0E0B /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617282F646B87003C0E0B /* CACFString.h */; };
8B5617B12F646B87003C0E0B /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617292F646B87003C0E0B /* CAAUMIDIMapManager.cpp */; };
8B5617B22F646B87003C0E0B /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56172A2F646B87003C0E0B /* CAComponentDescription.cpp */; };
8B5617B32F646B87003C0E0B /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56172B2F646B87003C0E0B /* CAHostTimeBase.h */; };
8B5617B42F646B87003C0E0B /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56172C2F646B87003C0E0B /* CADebugMacros.cpp */; };
8B5617B52F646B87003C0E0B /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56172D2F646B87003C0E0B /* CAAudioFileFormats.h */; };
8B5617B62F646B87003C0E0B /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56172E2F646B87003C0E0B /* CAAUMIDIMapManager.h */; };
8B5617B72F646B87003C0E0B /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56172F2F646B87003C0E0B /* CACFDictionary.cpp */; };
8B5617B82F646B87003C0E0B /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617302F646B87003C0E0B /* CAMutex.h */; };
8B5617B92F646B87003C0E0B /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617312F646B87003C0E0B /* CACFString.cpp */; };
8B5617BA2F646B87003C0E0B /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617322F646B87003C0E0B /* CASettingsStorage.h */; };
8B5617BB2F646B87003C0E0B /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617332F646B87003C0E0B /* CADebugPrintf.h */; };
8B5617BC2F646B87003C0E0B /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617342F646B87003C0E0B /* CAXException.cpp */; };
8B5617BD2F646B87003C0E0B /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617352F646B87003C0E0B /* CAAUMIDIMap.h */; };
8B5617BE2F646B87003C0E0B /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617362F646B87003C0E0B /* AUParamInfo.h */; };
8B5617BF2F646B87003C0E0B /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617372F646B87003C0E0B /* CABitOperations.h */; };
8B5617C02F646B87003C0E0B /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617382F646B87003C0E0B /* CACFPreferences.cpp */; };
8B5617C12F646B87003C0E0B /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617392F646B87003C0E0B /* CABundleLocker.h */; };
8B5617C22F646B87003C0E0B /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56173A2F646B87003C0E0B /* CAPropertyAddress.h */; };
8B5617C32F646B87003C0E0B /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56173B2F646B87003C0E0B /* CAXException.h */; };
8B5617C42F646B87003C0E0B /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56173C2F646B87003C0E0B /* CAAudioChannelLayout.cpp */; };
8B5617C52F646B87003C0E0B /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56173D2F646B87003C0E0B /* CAThreadSafeList.h */; };
8B5617C62F646B87003C0E0B /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56173E2F646B87003C0E0B /* CAAudioUnitOutputCapturer.h */; };
8B5617C72F646B87003C0E0B /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56173F2F646B87003C0E0B /* AUParamInfo.cpp */; };
8B5617C82F646B87003C0E0B /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617402F646B87003C0E0B /* CASharedLibrary.cpp */; };
8B5617C92F646B87003C0E0B /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617412F646B87003C0E0B /* CAAUMIDIMap.cpp */; };
8B5617CA2F646B87003C0E0B /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617422F646B87003C0E0B /* CALogMacros.h */; };
8B5617CB2F646B87003C0E0B /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617432F646B87003C0E0B /* CACFMessagePort.cpp */; };
8B5617CC2F646B87003C0E0B /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617442F646B87003C0E0B /* CARingBuffer.h */; };
8B5617CD2F646B87003C0E0B /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617452F646B87003C0E0B /* AUOutputBL.cpp */; };
8B5617CE2F646B87003C0E0B /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617462F646B87003C0E0B /* CABufferList.h */; };
8B5617CF2F646B87003C0E0B /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617472F646B87003C0E0B /* CASharedLibrary.h */; };
8B5617D02F646B87003C0E0B /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617482F646B87003C0E0B /* CACFData.h */; };
8B5617D12F646B87003C0E0B /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617492F646B87003C0E0B /* CAStreamRangedDescription.cpp */; };
8B5617D22F646B87003C0E0B /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56174A2F646B87003C0E0B /* CAPThread.cpp */; };
8B5617D32F646B87003C0E0B /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56174B2F646B87003C0E0B /* CAAutoDisposer.h */; };
8B5617D42F646B87003C0E0B /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56174C2F646B87003C0E0B /* CACFPreferences.h */; };
8B5617D52F646B87003C0E0B /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56174D2F646B87003C0E0B /* CAVectorUnit.cpp */; };
8B5617D62F646B87003C0E0B /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56174E2F646B87003C0E0B /* CAComponentDescription.h */; };
8B5617D72F646B87003C0E0B /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56174F2F646B87003C0E0B /* CADebugMacros.h */; };
8B5617D82F646B87003C0E0B /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617502F646B87003C0E0B /* AUOutputBL.h */; };
8B5617D92F646B87003C0E0B /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617512F646B87003C0E0B /* CADebugPrintf.cpp */; };
8B5617DA2F646B87003C0E0B /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617522F646B87003C0E0B /* CARingBuffer.cpp */; };
8B5617DB2F646B87003C0E0B /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617532F646B87003C0E0B /* CACFPlugIn.h */; };
8B5617DC2F646B87003C0E0B /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617542F646B87003C0E0B /* CASettingsStorage.cpp */; };
8B5617DD2F646B87003C0E0B /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617552F646B87003C0E0B /* CAMixMap.h */; };
8B5617DE2F646B87003C0E0B /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617562F646B87003C0E0B /* CACFDistributedNotification.h */; };
8B5617DF2F646B87003C0E0B /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617572F646B87003C0E0B /* CAFilePathUtils.h */; };
8B5617E02F646B87003C0E0B /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617582F646B87003C0E0B /* CATink.h */; };
8B5617E12F646B87003C0E0B /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617592F646B87003C0E0B /* CAStreamBasicDescription.cpp */; };
8B5617E22F646B87003C0E0B /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56175A2F646B87003C0E0B /* CAAudioChannelLayout.h */; };
8B5617E32F646B87003C0E0B /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56175B2F646B87003C0E0B /* CAProcess.cpp */; };
8B5617E42F646B87003C0E0B /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56175C2F646B87003C0E0B /* CAHostTimeBase.cpp */; };
8B5617E52F646B87003C0E0B /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56175D2F646B87003C0E0B /* CAPersistence.cpp */; };
8B5617E62F646B87003C0E0B /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56175E2F646B87003C0E0B /* CAAudioBufferList.cpp */; };
8B5617E72F646B87003C0E0B /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56175F2F646B87003C0E0B /* CAAudioTimeStamp.cpp */; };
8B5617E82F646B87003C0E0B /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617602F646B87003C0E0B /* CAVectorUnit.h */; };
8B5617E92F646B87003C0E0B /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617612F646B87003C0E0B /* CAByteOrder.h */; };
8B5617EA2F646B87003C0E0B /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617622F646B87003C0E0B /* CACFArray.h */; };
8B5617EB2F646B87003C0E0B /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617632F646B87003C0E0B /* CAAtomicStack.h */; };
8B5617EC2F646B87003C0E0B /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617642F646B87003C0E0B /* CAReferenceCounted.h */; };
8B5617ED2F646B87003C0E0B /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617652F646B87003C0E0B /* CACFMachPort.cpp */; };
8B5617EE2F646B87003C0E0B /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617662F646B87003C0E0B /* CABufferList.cpp */; };
8B5617EF2F646B87003C0E0B /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617672F646B87003C0E0B /* CAMutex.cpp */; };
8B5617F02F646B87003C0E0B /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617682F646B87003C0E0B /* CADebugger.cpp */; };
8B5617F12F646B87003C0E0B /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617692F646B87003C0E0B /* CABundleLocker.cpp */; };
8B5617F22F646B87003C0E0B /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56176A2F646B87003C0E0B /* CAAudioFileFormats.cpp */; };
8B5617F32F646B87003C0E0B /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56176B2F646B87003C0E0B /* CAMath.h */; };
8B5617F42F646B87003C0E0B /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56176C2F646B87003C0E0B /* CACFArray.cpp */; };
8B5617F52F646B87003C0E0B /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56176D2F646B87003C0E0B /* CACFMessagePort.h */; };
8B5617F62F646B87003C0E0B /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56176E2F646B87003C0E0B /* CAAudioValueRange.cpp */; };
8B5617F72F646B87003C0E0B /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56176F2F646B87003C0E0B /* CAAudioUnit.cpp */; };
8B5617F82F646B87003C0E0B /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617732F646B87003C0E0B /* AUViewLocalizedStringKeys.h */; };
8B5617F92F646B87003C0E0B /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617752F646B87003C0E0B /* ComponentBase.cpp */; };
8B5617FA2F646B87003C0E0B /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617762F646B87003C0E0B /* AUScopeElement.cpp */; };
8B5617FB2F646B87003C0E0B /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617772F646B87003C0E0B /* ComponentBase.h */; };
8B5617FC2F646B87003C0E0B /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617782F646B87003C0E0B /* AUBase.cpp */; };
8B5617FD2F646B87003C0E0B /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617792F646B87003C0E0B /* AUInputElement.h */; };
8B5617FE2F646B87003C0E0B /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56177A2F646B87003C0E0B /* AUBase.h */; };
8B5617FF2F646B88003C0E0B /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56177B2F646B87003C0E0B /* AUPlugInDispatch.h */; };
8B5618002F646B88003C0E0B /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56177C2F646B87003C0E0B /* AUDispatch.h */; };
8B5618012F646B88003C0E0B /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56177D2F646B87003C0E0B /* AUOutputElement.cpp */; };
8B5618032F646B88003C0E0B /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56177F2F646B87003C0E0B /* AUPlugInDispatch.cpp */; };
8B5618042F646B88003C0E0B /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617802F646B87003C0E0B /* AUOutputElement.h */; };
8B5618052F646B88003C0E0B /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617812F646B87003C0E0B /* AUDispatch.cpp */; };
8B5618062F646B88003C0E0B /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617822F646B87003C0E0B /* AUScopeElement.h */; };
8B5618072F646B88003C0E0B /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617832F646B87003C0E0B /* AUInputElement.cpp */; };
8B5618082F646B88003C0E0B /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617852F646B87003C0E0B /* AUEffectBase.cpp */; };
8B5618092F646B88003C0E0B /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617862F646B87003C0E0B /* AUEffectBase.h */; };
8B56180A2F646B88003C0E0B /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617882F646B87003C0E0B /* AUTimestampGenerator.h */; };
8B56180B2F646B88003C0E0B /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5617892F646B87003C0E0B /* AUBaseHelper.cpp */; };
8B56180C2F646B88003C0E0B /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56178A2F646B87003C0E0B /* AUSilentTimeout.h */; };
8B56180D2F646B88003C0E0B /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56178B2F646B87003C0E0B /* AUInputFormatConverter.h */; };
8B56180E2F646B88003C0E0B /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56178C2F646B87003C0E0B /* AUTimestampGenerator.cpp */; };
8B56180F2F646B88003C0E0B /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B56178D2F646B87003C0E0B /* AUBuffer.cpp */; };
8B5618102F646B88003C0E0B /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56178E2F646B87003C0E0B /* AUMIDIDefs.h */; };
8B5618112F646B88003C0E0B /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B56178F2F646B87003C0E0B /* AUBuffer.h */; };
8B5618122F646B88003C0E0B /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5617902F646B87003C0E0B /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* WoodenBox.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* WoodenBox.cpp */; };
8BA05A6E0720730100365D66 /* WoodenBoxVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* WoodenBoxVersion.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 /* WoodenBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* WoodenBox.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5617092F646B87003C0E0B /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B56170A2F646B87003C0E0B /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B56170B2F646B87003C0E0B /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B56170C2F646B87003C0E0B /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B56170D2F646B87003C0E0B /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B56170E2F646B87003C0E0B /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B56170F2F646B87003C0E0B /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B5617102F646B87003C0E0B /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B5617112F646B87003C0E0B /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B5617122F646B87003C0E0B /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B5617132F646B87003C0E0B /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B5617142F646B87003C0E0B /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B5617152F646B87003C0E0B /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B5617162F646B87003C0E0B /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B5617172F646B87003C0E0B /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B5617182F646B87003C0E0B /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B5617192F646B87003C0E0B /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B56171A2F646B87003C0E0B /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B56171B2F646B87003C0E0B /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B56171C2F646B87003C0E0B /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B56171D2F646B87003C0E0B /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B56171E2F646B87003C0E0B /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B56171F2F646B87003C0E0B /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B5617202F646B87003C0E0B /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B5617212F646B87003C0E0B /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B5617222F646B87003C0E0B /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B5617232F646B87003C0E0B /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B5617242F646B87003C0E0B /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B5617252F646B87003C0E0B /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B5617262F646B87003C0E0B /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B5617272F646B87003C0E0B /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B5617282F646B87003C0E0B /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B5617292F646B87003C0E0B /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B56172A2F646B87003C0E0B /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B56172B2F646B87003C0E0B /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B56172C2F646B87003C0E0B /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B56172D2F646B87003C0E0B /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B56172E2F646B87003C0E0B /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B56172F2F646B87003C0E0B /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B5617302F646B87003C0E0B /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B5617312F646B87003C0E0B /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B5617322F646B87003C0E0B /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B5617332F646B87003C0E0B /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B5617342F646B87003C0E0B /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B5617352F646B87003C0E0B /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B5617362F646B87003C0E0B /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B5617372F646B87003C0E0B /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B5617382F646B87003C0E0B /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B5617392F646B87003C0E0B /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B56173A2F646B87003C0E0B /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B56173B2F646B87003C0E0B /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B56173C2F646B87003C0E0B /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B56173D2F646B87003C0E0B /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B56173E2F646B87003C0E0B /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B56173F2F646B87003C0E0B /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B5617402F646B87003C0E0B /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B5617412F646B87003C0E0B /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B5617422F646B87003C0E0B /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B5617432F646B87003C0E0B /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B5617442F646B87003C0E0B /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B5617452F646B87003C0E0B /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B5617462F646B87003C0E0B /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B5617472F646B87003C0E0B /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B5617482F646B87003C0E0B /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B5617492F646B87003C0E0B /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B56174A2F646B87003C0E0B /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B56174B2F646B87003C0E0B /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B56174C2F646B87003C0E0B /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B56174D2F646B87003C0E0B /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B56174E2F646B87003C0E0B /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B56174F2F646B87003C0E0B /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B5617502F646B87003C0E0B /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B5617512F646B87003C0E0B /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B5617522F646B87003C0E0B /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B5617532F646B87003C0E0B /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B5617542F646B87003C0E0B /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B5617552F646B87003C0E0B /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B5617562F646B87003C0E0B /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B5617572F646B87003C0E0B /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B5617582F646B87003C0E0B /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B5617592F646B87003C0E0B /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B56175A2F646B87003C0E0B /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B56175B2F646B87003C0E0B /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B56175C2F646B87003C0E0B /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B56175D2F646B87003C0E0B /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B56175E2F646B87003C0E0B /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B56175F2F646B87003C0E0B /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B5617602F646B87003C0E0B /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B5617612F646B87003C0E0B /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B5617622F646B87003C0E0B /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B5617632F646B87003C0E0B /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B5617642F646B87003C0E0B /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B5617652F646B87003C0E0B /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B5617662F646B87003C0E0B /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B5617672F646B87003C0E0B /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B5617682F646B87003C0E0B /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B5617692F646B87003C0E0B /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B56176A2F646B87003C0E0B /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B56176B2F646B87003C0E0B /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B56176C2F646B87003C0E0B /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B56176D2F646B87003C0E0B /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B56176E2F646B87003C0E0B /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B56176F2F646B87003C0E0B /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B5617732F646B87003C0E0B /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B5617752F646B87003C0E0B /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B5617762F646B87003C0E0B /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B5617772F646B87003C0E0B /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B5617782F646B87003C0E0B /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B5617792F646B87003C0E0B /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B56177A2F646B87003C0E0B /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B56177B2F646B87003C0E0B /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B56177C2F646B87003C0E0B /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B56177D2F646B87003C0E0B /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B56177E2F646B87003C0E0B /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B56177F2F646B87003C0E0B /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B5617802F646B87003C0E0B /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B5617812F646B87003C0E0B /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B5617822F646B87003C0E0B /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B5617832F646B87003C0E0B /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B5617852F646B87003C0E0B /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B5617862F646B87003C0E0B /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B5617882F646B87003C0E0B /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B5617892F646B87003C0E0B /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B56178A2F646B87003C0E0B /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B56178B2F646B87003C0E0B /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B56178C2F646B87003C0E0B /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B56178D2F646B87003C0E0B /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B56178E2F646B87003C0E0B /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B56178F2F646B87003C0E0B /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B5617902F646B87003C0E0B /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B5618132F646D71003C0E0B /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8BA05A660720730100365D66 /* WoodenBox.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = WoodenBox.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* WoodenBox.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = WoodenBox.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* WoodenBox.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = WoodenBox.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* WoodenBoxVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WoodenBoxVersion.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 /* WoodenBox.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = WoodenBox.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* WoodenBox.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = WoodenBox.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 /* WoodenBox */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = WoodenBox;
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 = (
8B5617072F646B87003C0E0B /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* WoodenBox.component */,
);
name = Products;
sourceTree = "<group>";
};
8B5617072F646B87003C0E0B /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B5617082F646B87003C0E0B /* PublicUtility */,
8B5617702F646B87003C0E0B /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B5617082F646B87003C0E0B /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B5617092F646B87003C0E0B /* CAExtAudioFile.h */,
8B56170A2F646B87003C0E0B /* CACFMachPort.h */,
8B56170B2F646B87003C0E0B /* CABool.h */,
8B56170C2F646B87003C0E0B /* CAComponent.cpp */,
8B56170D2F646B87003C0E0B /* CADebugger.h */,
8B56170E2F646B87003C0E0B /* CACFNumber.cpp */,
8B56170F2F646B87003C0E0B /* CAGuard.h */,
8B5617102F646B87003C0E0B /* CAAtomic.h */,
8B5617112F646B87003C0E0B /* CAStreamBasicDescription.h */,
8B5617122F646B87003C0E0B /* CACFObject.h */,
8B5617132F646B87003C0E0B /* CAStreamRangedDescription.h */,
8B5617142F646B87003C0E0B /* CATokenMap.h */,
8B5617152F646B87003C0E0B /* CAComponent.h */,
8B5617162F646B87003C0E0B /* CAAudioBufferList.h */,
8B5617172F646B87003C0E0B /* CAAudioUnit.h */,
8B5617182F646B87003C0E0B /* CAAUParameter.h */,
8B5617192F646B87003C0E0B /* CAException.h */,
8B56171A2F646B87003C0E0B /* CAAUProcessor.cpp */,
8B56171B2F646B87003C0E0B /* CAAUProcessor.h */,
8B56171C2F646B87003C0E0B /* CAProcess.h */,
8B56171D2F646B87003C0E0B /* CACFDictionary.h */,
8B56171E2F646B87003C0E0B /* CAPThread.h */,
8B56171F2F646B87003C0E0B /* CAAUParameter.cpp */,
8B5617202F646B87003C0E0B /* CAAudioTimeStamp.h */,
8B5617212F646B87003C0E0B /* CAFilePathUtils.cpp */,
8B5617222F646B87003C0E0B /* CAAudioValueRange.h */,
8B5617232F646B87003C0E0B /* CAVectorUnitTypes.h */,
8B5617242F646B87003C0E0B /* CAAudioChannelLayoutObject.cpp */,
8B5617252F646B87003C0E0B /* CAGuard.cpp */,
8B5617262F646B87003C0E0B /* CACFNumber.h */,
8B5617272F646B87003C0E0B /* CACFDistributedNotification.cpp */,
8B5617282F646B87003C0E0B /* CACFString.h */,
8B5617292F646B87003C0E0B /* CAAUMIDIMapManager.cpp */,
8B56172A2F646B87003C0E0B /* CAComponentDescription.cpp */,
8B56172B2F646B87003C0E0B /* CAHostTimeBase.h */,
8B56172C2F646B87003C0E0B /* CADebugMacros.cpp */,
8B56172D2F646B87003C0E0B /* CAAudioFileFormats.h */,
8B56172E2F646B87003C0E0B /* CAAUMIDIMapManager.h */,
8B56172F2F646B87003C0E0B /* CACFDictionary.cpp */,
8B5617302F646B87003C0E0B /* CAMutex.h */,
8B5617312F646B87003C0E0B /* CACFString.cpp */,
8B5617322F646B87003C0E0B /* CASettingsStorage.h */,
8B5617332F646B87003C0E0B /* CADebugPrintf.h */,
8B5617342F646B87003C0E0B /* CAXException.cpp */,
8B5617352F646B87003C0E0B /* CAAUMIDIMap.h */,
8B5617362F646B87003C0E0B /* AUParamInfo.h */,
8B5617372F646B87003C0E0B /* CABitOperations.h */,
8B5617382F646B87003C0E0B /* CACFPreferences.cpp */,
8B5617392F646B87003C0E0B /* CABundleLocker.h */,
8B56173A2F646B87003C0E0B /* CAPropertyAddress.h */,
8B56173B2F646B87003C0E0B /* CAXException.h */,
8B56173C2F646B87003C0E0B /* CAAudioChannelLayout.cpp */,
8B56173D2F646B87003C0E0B /* CAThreadSafeList.h */,
8B56173E2F646B87003C0E0B /* CAAudioUnitOutputCapturer.h */,
8B56173F2F646B87003C0E0B /* AUParamInfo.cpp */,
8B5617402F646B87003C0E0B /* CASharedLibrary.cpp */,
8B5617412F646B87003C0E0B /* CAAUMIDIMap.cpp */,
8B5617422F646B87003C0E0B /* CALogMacros.h */,
8B5617432F646B87003C0E0B /* CACFMessagePort.cpp */,
8B5617442F646B87003C0E0B /* CARingBuffer.h */,
8B5617452F646B87003C0E0B /* AUOutputBL.cpp */,
8B5617462F646B87003C0E0B /* CABufferList.h */,
8B5617472F646B87003C0E0B /* CASharedLibrary.h */,
8B5617482F646B87003C0E0B /* CACFData.h */,
8B5617492F646B87003C0E0B /* CAStreamRangedDescription.cpp */,
8B56174A2F646B87003C0E0B /* CAPThread.cpp */,
8B56174B2F646B87003C0E0B /* CAAutoDisposer.h */,
8B56174C2F646B87003C0E0B /* CACFPreferences.h */,
8B56174D2F646B87003C0E0B /* CAVectorUnit.cpp */,
8B56174E2F646B87003C0E0B /* CAComponentDescription.h */,
8B56174F2F646B87003C0E0B /* CADebugMacros.h */,
8B5617502F646B87003C0E0B /* AUOutputBL.h */,
8B5617512F646B87003C0E0B /* CADebugPrintf.cpp */,
8B5617522F646B87003C0E0B /* CARingBuffer.cpp */,
8B5617532F646B87003C0E0B /* CACFPlugIn.h */,
8B5617542F646B87003C0E0B /* CASettingsStorage.cpp */,
8B5617552F646B87003C0E0B /* CAMixMap.h */,
8B5617562F646B87003C0E0B /* CACFDistributedNotification.h */,
8B5617572F646B87003C0E0B /* CAFilePathUtils.h */,
8B5617582F646B87003C0E0B /* CATink.h */,
8B5617592F646B87003C0E0B /* CAStreamBasicDescription.cpp */,
8B56175A2F646B87003C0E0B /* CAAudioChannelLayout.h */,
8B56175B2F646B87003C0E0B /* CAProcess.cpp */,
8B56175C2F646B87003C0E0B /* CAHostTimeBase.cpp */,
8B56175D2F646B87003C0E0B /* CAPersistence.cpp */,
8B56175E2F646B87003C0E0B /* CAAudioBufferList.cpp */,
8B56175F2F646B87003C0E0B /* CAAudioTimeStamp.cpp */,
8B5617602F646B87003C0E0B /* CAVectorUnit.h */,
8B5617612F646B87003C0E0B /* CAByteOrder.h */,
8B5617622F646B87003C0E0B /* CACFArray.h */,
8B5617632F646B87003C0E0B /* CAAtomicStack.h */,
8B5617642F646B87003C0E0B /* CAReferenceCounted.h */,
8B5617652F646B87003C0E0B /* CACFMachPort.cpp */,
8B5617662F646B87003C0E0B /* CABufferList.cpp */,
8B5617672F646B87003C0E0B /* CAMutex.cpp */,
8B5617682F646B87003C0E0B /* CADebugger.cpp */,
8B5617692F646B87003C0E0B /* CABundleLocker.cpp */,
8B56176A2F646B87003C0E0B /* CAAudioFileFormats.cpp */,
8B56176B2F646B87003C0E0B /* CAMath.h */,
8B56176C2F646B87003C0E0B /* CACFArray.cpp */,
8B56176D2F646B87003C0E0B /* CACFMessagePort.h */,
8B56176E2F646B87003C0E0B /* CAAudioValueRange.cpp */,
8B56176F2F646B87003C0E0B /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B5617702F646B87003C0E0B /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B5617712F646B87003C0E0B /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B5617712F646B87003C0E0B /* AUPublic */ = {
isa = PBXGroup;
children = (
8B5617722F646B87003C0E0B /* AUViewBase */,
8B5617742F646B87003C0E0B /* AUBase */,
8B5617842F646B87003C0E0B /* OtherBases */,
8B5617872F646B87003C0E0B /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B5617722F646B87003C0E0B /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B5617732F646B87003C0E0B /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B5617742F646B87003C0E0B /* AUBase */ = {
isa = PBXGroup;
children = (
8B5617752F646B87003C0E0B /* ComponentBase.cpp */,
8B5617762F646B87003C0E0B /* AUScopeElement.cpp */,
8B5617772F646B87003C0E0B /* ComponentBase.h */,
8B5617782F646B87003C0E0B /* AUBase.cpp */,
8B5617792F646B87003C0E0B /* AUInputElement.h */,
8B56177A2F646B87003C0E0B /* AUBase.h */,
8B56177B2F646B87003C0E0B /* AUPlugInDispatch.h */,
8B56177C2F646B87003C0E0B /* AUDispatch.h */,
8B56177D2F646B87003C0E0B /* AUOutputElement.cpp */,
8B56177E2F646B87003C0E0B /* AUResources.r */,
8B56177F2F646B87003C0E0B /* AUPlugInDispatch.cpp */,
8B5617802F646B87003C0E0B /* AUOutputElement.h */,
8B5617812F646B87003C0E0B /* AUDispatch.cpp */,
8B5617822F646B87003C0E0B /* AUScopeElement.h */,
8B5617832F646B87003C0E0B /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B5617842F646B87003C0E0B /* OtherBases */ = {
isa = PBXGroup;
children = (
8B5617852F646B87003C0E0B /* AUEffectBase.cpp */,
8B5617862F646B87003C0E0B /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B5617872F646B87003C0E0B /* Utility */ = {
isa = PBXGroup;
children = (
8B5617882F646B87003C0E0B /* AUTimestampGenerator.h */,
8B5617892F646B87003C0E0B /* AUBaseHelper.cpp */,
8B56178A2F646B87003C0E0B /* AUSilentTimeout.h */,
8B56178B2F646B87003C0E0B /* AUInputFormatConverter.h */,
8B56178C2F646B87003C0E0B /* AUTimestampGenerator.cpp */,
8B56178D2F646B87003C0E0B /* AUBuffer.cpp */,
8B56178E2F646B87003C0E0B /* AUMIDIDefs.h */,
8B56178F2F646B87003C0E0B /* AUBuffer.h */,
8B5617902F646B87003C0E0B /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* WoodenBox.h */,
8BA05A660720730100365D66 /* WoodenBox.cpp */,
8BA05A670720730100365D66 /* WoodenBox.exp */,
8BA05A680720730100365D66 /* WoodenBox.r */,
8BA05A690720730100365D66 /* WoodenBoxVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B5617C12F646B87003C0E0B /* CABundleLocker.h in Headers */,
8B5617E22F646B87003C0E0B /* CAAudioChannelLayout.h in Headers */,
8B5617D82F646B87003C0E0B /* AUOutputBL.h in Headers */,
8B5617B32F646B87003C0E0B /* CAHostTimeBase.h in Headers */,
8B5617FB2F646B87003C0E0B /* ComponentBase.h in Headers */,
8B5617EB2F646B87003C0E0B /* CAAtomicStack.h in Headers */,
8B5617A82F646B87003C0E0B /* CAAudioTimeStamp.h in Headers */,
8B5617C52F646B87003C0E0B /* CAThreadSafeList.h in Headers */,
8B5617A02F646B87003C0E0B /* CAAUParameter.h in Headers */,
8B5618122F646B88003C0E0B /* AUBaseHelper.h in Headers */,
8B56180A2F646B88003C0E0B /* AUTimestampGenerator.h in Headers */,
8B5617BB2F646B87003C0E0B /* CADebugPrintf.h in Headers */,
8B5617F52F646B87003C0E0B /* CACFMessagePort.h in Headers */,
8B5617A32F646B87003C0E0B /* CAAUProcessor.h in Headers */,
8B56179F2F646B87003C0E0B /* CAAudioUnit.h in Headers */,
8B5617F82F646B87003C0E0B /* AUViewLocalizedStringKeys.h in Headers */,
8B5617DE2F646B87003C0E0B /* CACFDistributedNotification.h in Headers */,
8B56179D2F646B87003C0E0B /* CAComponent.h in Headers */,
8B5617AB2F646B87003C0E0B /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* WoodenBoxVersion.h in Headers */,
8B5617DF2F646B87003C0E0B /* CAFilePathUtils.h in Headers */,
8B5617A12F646B87003C0E0B /* CAException.h in Headers */,
8B5617982F646B87003C0E0B /* CAAtomic.h in Headers */,
8B5617972F646B87003C0E0B /* CAGuard.h in Headers */,
8B5617FD2F646B87003C0E0B /* AUInputElement.h in Headers */,
8B5617D42F646B87003C0E0B /* CACFPreferences.h in Headers */,
8B5617E92F646B87003C0E0B /* CAByteOrder.h in Headers */,
8B5617CC2F646B87003C0E0B /* CARingBuffer.h in Headers */,
8B5617932F646B87003C0E0B /* CABool.h in Headers */,
8B5617B82F646B87003C0E0B /* CAMutex.h in Headers */,
8B5617FE2F646B87003C0E0B /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* WoodenBox.h in Headers */,
8B5617B02F646B87003C0E0B /* CACFString.h in Headers */,
8B5617CF2F646B87003C0E0B /* CASharedLibrary.h in Headers */,
8B56179C2F646B87003C0E0B /* CATokenMap.h in Headers */,
8B5617912F646B87003C0E0B /* CAExtAudioFile.h in Headers */,
8B5617A62F646B87003C0E0B /* CAPThread.h in Headers */,
8B5617C22F646B87003C0E0B /* CAPropertyAddress.h in Headers */,
8B5617EC2F646B87003C0E0B /* CAReferenceCounted.h in Headers */,
8B5618112F646B88003C0E0B /* AUBuffer.h in Headers */,
8B5617F32F646B87003C0E0B /* CAMath.h in Headers */,
8B5617D32F646B87003C0E0B /* CAAutoDisposer.h in Headers */,
8B56179A2F646B87003C0E0B /* CACFObject.h in Headers */,
8B5617BA2F646B87003C0E0B /* CASettingsStorage.h in Headers */,
8B5617C32F646B87003C0E0B /* CAXException.h in Headers */,
8B5617E02F646B87003C0E0B /* CATink.h in Headers */,
8B56180D2F646B88003C0E0B /* AUInputFormatConverter.h in Headers */,
8B5617E82F646B87003C0E0B /* CAVectorUnit.h in Headers */,
8B5617A42F646B87003C0E0B /* CAProcess.h in Headers */,
8B5617AA2F646B87003C0E0B /* CAAudioValueRange.h in Headers */,
8B5617BF2F646B87003C0E0B /* CABitOperations.h in Headers */,
8B5617B52F646B87003C0E0B /* CAAudioFileFormats.h in Headers */,
8B5617AE2F646B87003C0E0B /* CACFNumber.h in Headers */,
8B5617C62F646B87003C0E0B /* CAAudioUnitOutputCapturer.h in Headers */,
8B5617D72F646B87003C0E0B /* CADebugMacros.h in Headers */,
8B5618102F646B88003C0E0B /* AUMIDIDefs.h in Headers */,
8B5617D02F646B87003C0E0B /* CACFData.h in Headers */,
8B5617992F646B87003C0E0B /* CAStreamBasicDescription.h in Headers */,
8B5617FF2F646B88003C0E0B /* AUPlugInDispatch.h in Headers */,
8B56179B2F646B87003C0E0B /* CAStreamRangedDescription.h in Headers */,
8B5617DB2F646B87003C0E0B /* CACFPlugIn.h in Headers */,
8B56179E2F646B87003C0E0B /* CAAudioBufferList.h in Headers */,
8B5617B62F646B87003C0E0B /* CAAUMIDIMapManager.h in Headers */,
8B5618092F646B88003C0E0B /* AUEffectBase.h in Headers */,
8B5617A52F646B87003C0E0B /* CACFDictionary.h in Headers */,
8B5618062F646B88003C0E0B /* AUScopeElement.h in Headers */,
8B5617D62F646B87003C0E0B /* CAComponentDescription.h in Headers */,
8B56180C2F646B88003C0E0B /* AUSilentTimeout.h in Headers */,
8B5617CE2F646B87003C0E0B /* CABufferList.h in Headers */,
8B5618002F646B88003C0E0B /* AUDispatch.h in Headers */,
8B5618042F646B88003C0E0B /* AUOutputElement.h in Headers */,
8B5617CA2F646B87003C0E0B /* CALogMacros.h in Headers */,
8B5617BE2F646B87003C0E0B /* AUParamInfo.h in Headers */,
8B5617DD2F646B87003C0E0B /* CAMixMap.h in Headers */,
8B5617EA2F646B87003C0E0B /* CACFArray.h in Headers */,
8B5617922F646B87003C0E0B /* CACFMachPort.h in Headers */,
8B5617BD2F646B87003C0E0B /* CAAUMIDIMap.h in Headers */,
8B5617952F646B87003C0E0B /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* WoodenBox */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "WoodenBox" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = WoodenBox;
productInstallPath = "$(HOME)/Library/Bundles";
productName = WoodenBox;
productReference = 8D01CCD20486CAD60068D4B7 /* WoodenBox.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 "WoodenBox" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
en,
de,
Base,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* WoodenBox */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* WoodenBox */,
);
};
/* 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 = (
8B5617CD2F646B87003C0E0B /* AUOutputBL.cpp in Sources */,
8B5617F22F646B87003C0E0B /* CAAudioFileFormats.cpp in Sources */,
8B5617E42F646B87003C0E0B /* CAHostTimeBase.cpp in Sources */,
8B5617BC2F646B87003C0E0B /* CAXException.cpp in Sources */,
8B5617E62F646B87003C0E0B /* CAAudioBufferList.cpp in Sources */,
8B5617A92F646B87003C0E0B /* CAFilePathUtils.cpp in Sources */,
8B5617A72F646B87003C0E0B /* CAAUParameter.cpp in Sources */,
8B5617C92F646B87003C0E0B /* CAAUMIDIMap.cpp in Sources */,
8B5617F62F646B87003C0E0B /* CAAudioValueRange.cpp in Sources */,
8B5618052F646B88003C0E0B /* AUDispatch.cpp in Sources */,
8B5617C02F646B87003C0E0B /* CACFPreferences.cpp in Sources */,
8B5618032F646B88003C0E0B /* AUPlugInDispatch.cpp in Sources */,
8B5617A22F646B87003C0E0B /* CAAUProcessor.cpp in Sources */,
8B5617B72F646B87003C0E0B /* CACFDictionary.cpp in Sources */,
8B56180B2F646B88003C0E0B /* AUBaseHelper.cpp in Sources */,
8B5617F02F646B87003C0E0B /* CADebugger.cpp in Sources */,
8B5617C42F646B87003C0E0B /* CAAudioChannelLayout.cpp in Sources */,
8B5617C72F646B87003C0E0B /* AUParamInfo.cpp in Sources */,
8B5617E52F646B87003C0E0B /* CAPersistence.cpp in Sources */,
8B5617D92F646B87003C0E0B /* CADebugPrintf.cpp in Sources */,
8B56180E2F646B88003C0E0B /* AUTimestampGenerator.cpp in Sources */,
8B5617E12F646B87003C0E0B /* CAStreamBasicDescription.cpp in Sources */,
8B5617B12F646B87003C0E0B /* CAAUMIDIMapManager.cpp in Sources */,
8B5617DC2F646B87003C0E0B /* CASettingsStorage.cpp in Sources */,
8B5618012F646B88003C0E0B /* AUOutputElement.cpp in Sources */,
8B5617AD2F646B87003C0E0B /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* WoodenBox.cpp in Sources */,
8B5617EF2F646B87003C0E0B /* CAMutex.cpp in Sources */,
8B5618082F646B88003C0E0B /* AUEffectBase.cpp in Sources */,
8B5617ED2F646B87003C0E0B /* CACFMachPort.cpp in Sources */,
8B5617FC2F646B87003C0E0B /* AUBase.cpp in Sources */,
8B5617C82F646B87003C0E0B /* CASharedLibrary.cpp in Sources */,
8B5617AF2F646B87003C0E0B /* CACFDistributedNotification.cpp in Sources */,
8B5617B22F646B87003C0E0B /* CAComponentDescription.cpp in Sources */,
8B5617B92F646B87003C0E0B /* CACFString.cpp in Sources */,
8B5617F92F646B87003C0E0B /* ComponentBase.cpp in Sources */,
8B5617DA2F646B87003C0E0B /* CARingBuffer.cpp in Sources */,
8B5617FA2F646B87003C0E0B /* AUScopeElement.cpp in Sources */,
8B5617F72F646B87003C0E0B /* CAAudioUnit.cpp in Sources */,
8B5617F42F646B87003C0E0B /* CACFArray.cpp in Sources */,
8B5617F12F646B87003C0E0B /* CABundleLocker.cpp in Sources */,
8B5617E32F646B87003C0E0B /* CAProcess.cpp in Sources */,
8B5617D12F646B87003C0E0B /* CAStreamRangedDescription.cpp in Sources */,
8B5617D22F646B87003C0E0B /* CAPThread.cpp in Sources */,
8B5617942F646B87003C0E0B /* CAComponent.cpp in Sources */,
8B5617AC2F646B87003C0E0B /* CAAudioChannelLayoutObject.cpp in Sources */,
8B5617E72F646B87003C0E0B /* CAAudioTimeStamp.cpp in Sources */,
8B5617EE2F646B87003C0E0B /* CABufferList.cpp in Sources */,
8B5617CB2F646B87003C0E0B /* CACFMessagePort.cpp in Sources */,
8B5617D52F646B87003C0E0B /* CAVectorUnit.cpp in Sources */,
8B5618072F646B88003C0E0B /* AUInputElement.cpp in Sources */,
8B56180F2F646B88003C0E0B /* AUBuffer.cpp in Sources */,
8B5617B42F646B87003C0E0B /* CADebugMacros.cpp in Sources */,
8B5617962F646B87003C0E0B /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B5618132F646D71003C0E0B /* 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 = WoodenBox.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 = WoodenBox;
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 = WoodenBox.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 = WoodenBox;
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 "WoodenBox" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "WoodenBox" */ = {
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>

Some files were not shown because too many files have changed in this diff Show more