This commit is contained in:
Christopher Johnson 2025-10-24 20:09:42 -04:00
parent 1b0b4d5662
commit a7c74c86f0
242 changed files with 63243 additions and 1 deletions

View file

@ -150,6 +150,7 @@ add_airwindows_plugin(DeHiss)
add_airwindows_plugin(DeNoise)
add_airwindows_plugin(Density)
add_airwindows_plugin(Density2)
add_airwindows_plugin(Density3)
add_airwindows_plugin(DeRez)
add_airwindows_plugin(DeRez2)
add_airwindows_plugin(DeRez3)
@ -229,6 +230,7 @@ add_airwindows_plugin(HighGlossDither)
add_airwindows_plugin(HighImpact)
add_airwindows_plugin(Highpass)
add_airwindows_plugin(Highpass2)
add_airwindows_plugin(HipCrush)
add_airwindows_plugin(Holt)
add_airwindows_plugin(Holt2)
add_airwindows_plugin(Hombre)
@ -392,6 +394,7 @@ add_airwindows_plugin(SmoothEQ)
add_airwindows_plugin(SmoothEQ2)
add_airwindows_plugin(SmoothEQ3)
add_airwindows_plugin(SoftClock)
add_airwindows_plugin(SoftClock2)
add_airwindows_plugin(SoftGate)
add_airwindows_plugin(SpatializeDither)
add_airwindows_plugin(Spiral)

View file

@ -0,0 +1,147 @@
/* ========================================
* Density3 - Density3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Density3_H
#include "Density3.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Density3(audioMaster);}
Density3::Density3(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.0;
B = 0.0;
C = 1.0;
D = 1.0;
iirSampleL = 0.0;
iirSampleR = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
Density3::~Density3() {}
VstInt32 Density3::getVendorVersion () {return 1000;}
void Density3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Density3::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 Density3::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 Density3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void Density3::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Density3::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void Density3::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Density", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Highpas", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Density3::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string ((A*5.0)-1.0, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Density3::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Density3::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Density3::getEffectName(char* name) {
vst_strncpy(name, "Density3", kVstMaxProductStrLen); return true;
}
VstPlugCategory Density3::getPlugCategory() {return kPlugCategEffect;}
bool Density3::getProductString(char* text) {
vst_strncpy (text, "airwindows Density3", kVstMaxProductStrLen); return true;
}
bool Density3::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,71 @@
/* ========================================
* Density3 - Density3.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Density3_H
#define __Density3_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kNumParameters = 4
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'den3'; //Change this to what the AU identity is!
class Density3 :
public AudioEffectX
{
public:
Density3(audioMasterCallback audioMaster);
~Density3();
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;
double iirSampleL;
double iirSampleR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,216 @@
/* ========================================
* Density3 - Density3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Density3_H
#include "Density3.h"
#endif
void Density3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double density = A*5.0;
double iirAmount = pow(B,3)/overallscale;
if (iirAmount == 0.0) {iirSampleL = 0.0; iirSampleR = 0.0;}
double output = C;
double wet = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
iirSampleL = (iirSampleL * (1.0 - iirAmount)) + (inputSampleL * iirAmount);
inputSampleL -= iirSampleL;
iirSampleR = (iirSampleR * (1.0 - iirAmount)) + (inputSampleR * iirAmount);
inputSampleR -= iirSampleR;
double altered = inputSampleL;
if (density > 1.0) {
altered = fmax(fmin(inputSampleL*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSampleL,1.0),-1.0);
double polarity = altered;
double X = inputSampleL * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSampleL = altered;
else inputSampleL = (inputSampleL*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
altered = inputSampleR;
if (density > 1.0) {
altered = fmax(fmin(inputSampleR*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSampleR,1.0),-1.0);
double polarity = altered;
double X = inputSampleR * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSampleR = altered;
else inputSampleR = (inputSampleR*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
inputSampleL = (drySampleL*(1.0-wet))+(inputSampleL*output*wet);
inputSampleR = (drySampleR*(1.0-wet))+(inputSampleR*output*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 Density3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double density = A*5.0;
double iirAmount = pow(B,3)/overallscale;
if (iirAmount == 0.0) {iirSampleL = 0.0; iirSampleR = 0.0;}
double output = C;
double wet = D;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
iirSampleL = (iirSampleL * (1.0 - iirAmount)) + (inputSampleL * iirAmount);
inputSampleL -= iirSampleL;
iirSampleR = (iirSampleR * (1.0 - iirAmount)) + (inputSampleR * iirAmount);
inputSampleR -= iirSampleR;
double altered = inputSampleL;
if (density > 1.0) {
altered = fmax(fmin(inputSampleL*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSampleL,1.0),-1.0);
double polarity = altered;
double X = inputSampleL * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSampleL = altered;
else inputSampleL = (inputSampleL*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
altered = inputSampleR;
if (density > 1.0) {
altered = fmax(fmin(inputSampleR*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSampleR,1.0),-1.0);
double polarity = altered;
double X = inputSampleR * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSampleR = altered;
else inputSampleR = (inputSampleR*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
inputSampleL = (drySampleL*(1.0-wet))+(inputSampleL*output*wet);
inputSampleR = (drySampleR*(1.0-wet))+(inputSampleR*output*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++;
}
}

View file

@ -0,0 +1,198 @@
/* ========================================
* HipCrush - HipCrush.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __HipCrush_H
#include "HipCrush.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new HipCrush(audioMaster);}
HipCrush::HipCrush(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
TRF = 0.5;
TRG = 0.0;
TRB = 0.5;
HMF = 0.5;
HMG = 0.0;
HMB = 0.5;
LMF = 0.5;
LMG = 0.0;
LMB = 0.5;
DW = 1.0;
for (int x = 0; x < biqs_total; x++) {
high[x] = 0.0;
hmid[x] = 0.0;
lmid[x] = 0.0;
}
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
HipCrush::~HipCrush() {}
VstInt32 HipCrush::getVendorVersion () {return 1000;}
void HipCrush::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void HipCrush::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 HipCrush::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = TRF;
chunkData[1] = TRG;
chunkData[2] = TRB;
chunkData[3] = HMF;
chunkData[4] = HMG;
chunkData[5] = HMB;
chunkData[6] = LMF;
chunkData[7] = LMG;
chunkData[8] = LMB;
chunkData[9] = DW;
/* 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 HipCrush::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
TRF = pinParameter(chunkData[0]);
TRG = pinParameter(chunkData[1]);
TRB = pinParameter(chunkData[2]);
HMF = pinParameter(chunkData[3]);
HMG = pinParameter(chunkData[4]);
HMB = pinParameter(chunkData[5]);
LMF = pinParameter(chunkData[6]);
LMG = pinParameter(chunkData[7]);
LMB = pinParameter(chunkData[8]);
DW = pinParameter(chunkData[9]);
/* 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 HipCrush::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamTRF: TRF = value; break;
case kParamTRG: TRG = value; break;
case kParamTRB: TRB = value; break;
case kParamHMF: HMF = value; break;
case kParamHMG: HMG = value; break;
case kParamHMB: HMB = value; break;
case kParamLMF: LMF = value; break;
case kParamLMG: LMG = value; break;
case kParamLMB: LMB = value; break;
case kParamDW: DW = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float HipCrush::getParameter(VstInt32 index) {
switch (index) {
case kParamTRF: return TRF; break;
case kParamTRG: return TRG; break;
case kParamTRB: return TRB; break;
case kParamHMF: return HMF; break;
case kParamHMG: return HMG; break;
case kParamHMB: return HMB; break;
case kParamLMF: return LMF; break;
case kParamLMG: return LMG; break;
case kParamLMB: return LMB; break;
case kParamDW: return DW; 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 HipCrush::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamTRF: vst_strncpy (text, "Hi Freq", kVstMaxParamStrLen); break;
case kParamTRG: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamTRB: vst_strncpy (text, "HiCrush", kVstMaxParamStrLen); break;
case kParamHMF: vst_strncpy (text, "MidFreq", kVstMaxParamStrLen); break;
case kParamHMG: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamHMB: vst_strncpy (text, "MdCrush", kVstMaxParamStrLen); break;
case kParamLMF: vst_strncpy (text, "Lo Freq", kVstMaxParamStrLen); break;
case kParamLMG: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamLMB: vst_strncpy (text, "LoCrush", kVstMaxParamStrLen); break;
case kParamDW: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void HipCrush::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamTRF: float2string (TRF, text, kVstMaxParamStrLen); break;
case kParamTRG: float2string (TRG, text, kVstMaxParamStrLen); break;
case kParamTRB: float2string (TRB, text, kVstMaxParamStrLen); break;
case kParamHMF: float2string (HMF, text, kVstMaxParamStrLen); break;
case kParamHMG: float2string (HMG, text, kVstMaxParamStrLen); break;
case kParamHMB: float2string (HMB, text, kVstMaxParamStrLen); break;
case kParamLMF: float2string (LMF, text, kVstMaxParamStrLen); break;
case kParamLMG: float2string (LMG, text, kVstMaxParamStrLen); break;
case kParamLMB: float2string (LMB, text, kVstMaxParamStrLen); break;
case kParamDW: float2string (DW, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void HipCrush::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamTRF: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamTRG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamTRB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamHMF: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamHMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamHMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamLMF: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamLMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamLMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamDW: vst_strncpy (text, "Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 HipCrush::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool HipCrush::getEffectName(char* name) {
vst_strncpy(name, "HipCrush", kVstMaxProductStrLen); return true;
}
VstPlugCategory HipCrush::getPlugCategory() {return kPlugCategEffect;}
bool HipCrush::getProductString(char* text) {
vst_strncpy (text, "airwindows HipCrush", kVstMaxProductStrLen); return true;
}
bool HipCrush::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,93 @@
/* ========================================
* HipCrush - HipCrush.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __HipCrush_H
#define __HipCrush_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamTRF =0,
kParamTRG =1,
kParamTRB =2,
kParamHMF =3,
kParamHMG =4,
kParamHMB =5,
kParamLMF =6,
kParamLMG =7,
kParamLMB =8,
kParamDW =9,
kNumParameters = 10
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'hpch'; //Change this to what the AU identity is!
class HipCrush :
public AudioEffectX
{
public:
HipCrush(audioMasterCallback audioMaster);
~HipCrush();
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 TRF;
float TRG;
float TRB;
float HMF;
float HMG;
float HMB;
float LMF;
float LMG;
float LMB;
float DW;
enum {
biqs_freq, biqs_reso, biqs_level,
biqs_temp, biqs_bit,
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
biqs_outL, biqs_outR, biqs_total
};
double high[biqs_total];
double hmid[biqs_total];
double lmid[biqs_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,448 @@
/* ========================================
* HipCrush - HipCrush.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __HipCrush_H
#include "HipCrush.h"
#endif
void HipCrush::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();
high[biqs_freq] = (((pow(TRF,3)*16000.0)+1000.0)/getSampleRate());
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
high[biqs_bit] = (TRB*2.0)-1.0;
high[biqs_level] = (1.0-pow(1.0-TRG,2.0))*1.618033988749894848204586;
high[biqs_reso] = pow(TRG+0.618033988749894848204586,2.0);
double K = tan(M_PI * high[biqs_freq]);
double norm = 1.0 / (1.0 + K / (high[biqs_reso]*0.618033988749894848204586) + K * K);
high[biqs_a0] = K / (high[biqs_reso]*0.618033988749894848204586) * norm;
high[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_b2] = (1.0 - K / (high[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (high[biqs_reso]*1.618033988749894848204586) + K * K);
high[biqs_c0] = K / (high[biqs_reso]*1.618033988749894848204586) * norm;
high[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_d2] = (1.0 - K / (high[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//high
hmid[biqs_freq] = (((pow(HMF,3)*7000.0)+300.0)/getSampleRate());
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
hmid[biqs_bit] = (HMB*2.0)-1.0;
hmid[biqs_level] = (1.0-pow(1.0-HMG,2.0))*1.618033988749894848204586;
hmid[biqs_reso] = pow(HMG+0.618033988749894848204586,2.0);
K = tan(M_PI * hmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K);
hmid[biqs_a0] = K / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
hmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_b2] = (1.0 - K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K);
hmid[biqs_c0] = K / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
hmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_d2] = (1.0 - K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//hmid
lmid[biqs_freq] = (((pow(LMF,3)*3000.0)+20.0)/getSampleRate());
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
lmid[biqs_bit] = (LMB*2.0)-1.0;
lmid[biqs_level] = (1.0-pow(1.0-LMG,2.0))*1.618033988749894848204586;
lmid[biqs_reso] = pow(LMG+0.618033988749894848204586,2.0);
K = tan(M_PI * lmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K);
lmid[biqs_a0] = K / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
lmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_b2] = (1.0 - K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K);
lmid[biqs_c0] = K / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
lmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_d2] = (1.0 - K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//lmid
double wet = DW;
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;
//begin Stacked Biquad With Reversed Neutron Flow L
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outL] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outL] *= bitFactor;
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outL] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outL] = high[biqs_temp];
high[biqs_outL] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outL] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outL] *= bitFactor;
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outL] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outL] = hmid[biqs_temp];
hmid[biqs_outL] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outL] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outL] *= bitFactor;
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outL] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outL] = lmid[biqs_temp];
lmid[biqs_outL] *= lmid[biqs_level];
double parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow R
high[biqs_outR] = inputSampleR * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outR] * high[biqs_a0]) + high[biqs_aR1];
high[biqs_aR1] = high[biqs_aR2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aR2] = (high[biqs_outR] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outR] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outR] *= bitFactor;
high[biqs_outR] = floor(high[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outR] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outR] * high[biqs_c0]) + high[biqs_cR1];
high[biqs_cR1] = high[biqs_cR2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cR2] = (high[biqs_outR] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outR] = high[biqs_temp];
high[biqs_outR] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow R
//begin Stacked Biquad With Reversed Neutron Flow R
hmid[biqs_outR] = inputSampleR * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_a0]) + hmid[biqs_aR1];
hmid[biqs_aR1] = hmid[biqs_aR2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aR2] = (hmid[biqs_outR] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outR] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outR] *= bitFactor;
hmid[biqs_outR] = floor(hmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outR] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_c0]) + hmid[biqs_cR1];
hmid[biqs_cR1] = hmid[biqs_cR2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cR2] = (hmid[biqs_outR] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outR] = hmid[biqs_temp];
hmid[biqs_outR] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow R
//begin Stacked Biquad With Reversed Neutron Flow R
lmid[biqs_outR] = inputSampleR * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_a0]) + lmid[biqs_aR1];
lmid[biqs_aR1] = lmid[biqs_aR2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aR2] = (lmid[biqs_outR] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outR] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outR] *= bitFactor;
lmid[biqs_outR] = floor(lmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outR] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_c0]) + lmid[biqs_cR1];
lmid[biqs_cR1] = lmid[biqs_cR2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cR2] = (lmid[biqs_outR] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outR] = lmid[biqs_temp];
lmid[biqs_outR] *= lmid[biqs_level];
double parametricR = high[biqs_outR] + hmid[biqs_outR] + lmid[biqs_outR];
//end Stacked Biquad With Reversed Neutron Flow R
inputSampleL = (drySampleL * (1.0-wet)) + (parametricL * wet);
inputSampleR = (drySampleR * (1.0-wet)) + (parametricR * 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 HipCrush::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();
high[biqs_freq] = (((pow(TRF,3)*16000.0)+1000.0)/getSampleRate());
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
high[biqs_bit] = (TRB*2.0)-1.0;
high[biqs_level] = (1.0-pow(1.0-TRG,2.0))*1.618033988749894848204586;
high[biqs_reso] = pow(TRG+0.618033988749894848204586,2.0);
double K = tan(M_PI * high[biqs_freq]);
double norm = 1.0 / (1.0 + K / (high[biqs_reso]*0.618033988749894848204586) + K * K);
high[biqs_a0] = K / (high[biqs_reso]*0.618033988749894848204586) * norm;
high[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_b2] = (1.0 - K / (high[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (high[biqs_reso]*1.618033988749894848204586) + K * K);
high[biqs_c0] = K / (high[biqs_reso]*1.618033988749894848204586) * norm;
high[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_d2] = (1.0 - K / (high[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//high
hmid[biqs_freq] = (((pow(HMF,3)*7000.0)+300.0)/getSampleRate());
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
hmid[biqs_bit] = (HMB*2.0)-1.0;
hmid[biqs_level] = (1.0-pow(1.0-HMG,2.0))*1.618033988749894848204586;
hmid[biqs_reso] = pow(HMG+0.618033988749894848204586,2.0);
K = tan(M_PI * hmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K);
hmid[biqs_a0] = K / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
hmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_b2] = (1.0 - K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K);
hmid[biqs_c0] = K / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
hmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_d2] = (1.0 - K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//hmid
lmid[biqs_freq] = (((pow(LMF,3)*3000.0)+20.0)/getSampleRate());
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
lmid[biqs_bit] = (LMB*2.0)-1.0;
lmid[biqs_level] = (1.0-pow(1.0-LMG,2.0))*1.618033988749894848204586;
lmid[biqs_reso] = pow(LMG+0.618033988749894848204586,2.0);
K = tan(M_PI * lmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K);
lmid[biqs_a0] = K / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
lmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_b2] = (1.0 - K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K);
lmid[biqs_c0] = K / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
lmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_d2] = (1.0 - K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//lmid
double wet = DW;
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;
//begin Stacked Biquad With Reversed Neutron Flow L
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outL] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outL] *= bitFactor;
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outL] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outL] = high[biqs_temp];
high[biqs_outL] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outL] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outL] *= bitFactor;
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outL] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outL] = hmid[biqs_temp];
hmid[biqs_outL] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outL] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outL] *= bitFactor;
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outL] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outL] = lmid[biqs_temp];
lmid[biqs_outL] *= lmid[biqs_level];
double parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow R
high[biqs_outR] = inputSampleR * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outR] * high[biqs_a0]) + high[biqs_aR1];
high[biqs_aR1] = high[biqs_aR2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aR2] = (high[biqs_outR] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outR] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outR] *= bitFactor;
high[biqs_outR] = floor(high[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outR] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outR] * high[biqs_c0]) + high[biqs_cR1];
high[biqs_cR1] = high[biqs_cR2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cR2] = (high[biqs_outR] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outR] = high[biqs_temp];
high[biqs_outR] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow R
//begin Stacked Biquad With Reversed Neutron Flow R
hmid[biqs_outR] = inputSampleR * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_a0]) + hmid[biqs_aR1];
hmid[biqs_aR1] = hmid[biqs_aR2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aR2] = (hmid[biqs_outR] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outR] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outR] *= bitFactor;
hmid[biqs_outR] = floor(hmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outR] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_c0]) + hmid[biqs_cR1];
hmid[biqs_cR1] = hmid[biqs_cR2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cR2] = (hmid[biqs_outR] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outR] = hmid[biqs_temp];
hmid[biqs_outR] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow R
//begin Stacked Biquad With Reversed Neutron Flow R
lmid[biqs_outR] = inputSampleR * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_a0]) + lmid[biqs_aR1];
lmid[biqs_aR1] = lmid[biqs_aR2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aR2] = (lmid[biqs_outR] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outR] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outR] *= bitFactor;
lmid[biqs_outR] = floor(lmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outR] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_c0]) + lmid[biqs_cR1];
lmid[biqs_cR1] = lmid[biqs_cR2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cR2] = (lmid[biqs_outR] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outR] = lmid[biqs_temp];
lmid[biqs_outR] *= lmid[biqs_level];
double parametricR = high[biqs_outR] + hmid[biqs_outR] + lmid[biqs_outR];
//end Stacked Biquad With Reversed Neutron Flow R
inputSampleL = (drySampleL * (1.0-wet)) + (parametricL * wet);
inputSampleR = (drySampleR * (1.0-wet)) + (parametricR * 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++;
}
}

View file

@ -0,0 +1,263 @@
/* ========================================
* SoftClock2 - SoftClock2.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SoftClock2_H
#include "SoftClock2.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new SoftClock2(audioMaster);}
SoftClock2::SoftClock2(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.2;
B = 0.2;
C = 0.2;
D = 0.0;
E = 0.0;
F = 0.0;
G = 0.5;
H = 0.5;
I = 0.5;
sinePos = 0.0;
barPos = 0.0;
beatPos = 0;
for (int x = 0; x < 34; x++) {beatAccent[x] = 0.0; beatSwing[x] = 0.0;}
inc = 0.0;
beatTable[0]=0;
beatTable[1]=1;
beatTable[2]=2;
beatTable[3]=3;
beatTable[4]=4;
beatTable[5]=5;
beatTable[6]=6;
beatTable[7]=7;
beatTable[8]=8;
beatTable[9]=9;
beatTable[10]=10;
beatTable[11]=11;
beatTable[12]=11;
beatTable[13]=11;
beatTable[14]=11;
beatTable[15]=13;
beatTable[16]=16;
beatTable[17]=13;
beatTable[18]=13;
beatTable[19]=17;
beatTable[20]=17;
beatTable[21]=17;
beatTable[22]=17;
beatTable[23]=19;
beatTable[24]=24;
beatTable[25]=19;
beatTable[26]=19;
beatTable[27]=19;
beatTable[28]=23;
beatTable[29]=23;
beatTable[30]=23;
beatTable[31]=23;
beatTable[32]=32;
beatTable[33]=32;
beatTable[34]=32;
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
}
SoftClock2::~SoftClock2() {}
VstInt32 SoftClock2::getVendorVersion () {return 1000;}
void SoftClock2::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void SoftClock2::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 SoftClock2::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;
chunkData[7] = H;
chunkData[8] = I;
/* 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 SoftClock2::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]);
H = pinParameter(chunkData[7]);
I = pinParameter(chunkData[8]);
/* 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 SoftClock2::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;
case kParamH: H = value; break;
case kParamI: I = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float SoftClock2::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;
case kParamH: return H; break;
case kParamI: return I; 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 SoftClock2::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Tempo", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Count", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Tuple", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Swing", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Peak", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "Valley", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "Accents", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "Boost", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "Speed", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void SoftClock2::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: int2string ((int)(A*200.99)+40, text, kVstMaxParamStrLen); break;
case kParamB: int2string ((int)(B*32.99), text, kVstMaxParamStrLen); break;
case kParamC: int2string ((int)(C*16.99), 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;
case kParamH: float2string (H, text, kVstMaxParamStrLen); break;
case kParamI: float2string (I, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void SoftClock2::getParameterLabel(VstInt32 index, char *text) {
int beatCode = (int)(B*32.99);
switch (index) {
case kParamA: vst_strncpy (text, "bpm", kVstMaxParamStrLen); break;
case kParamB:
switch (beatCode){
case 0: vst_strncpy (text, "0", kVstMaxParamStrLen); break;
case 1: vst_strncpy (text, "1", kVstMaxParamStrLen); break;
case 2: vst_strncpy (text, "2", kVstMaxParamStrLen); break;
case 3: vst_strncpy (text, "3", kVstMaxParamStrLen); break;
case 4: vst_strncpy (text, "4", kVstMaxParamStrLen); break;
case 5: vst_strncpy (text, "5", kVstMaxParamStrLen); break;
case 6: vst_strncpy (text, "6", kVstMaxParamStrLen); break;
case 7: vst_strncpy (text, "7", kVstMaxParamStrLen); break;
case 8: vst_strncpy (text, "8", kVstMaxParamStrLen); break;
case 9: vst_strncpy (text, "9", kVstMaxParamStrLen); break;
case 10:vst_strncpy (text, "10", kVstMaxParamStrLen); break;
case 11:vst_strncpy (text, "11", kVstMaxParamStrLen); break;
case 12:vst_strncpy (text, "11", kVstMaxParamStrLen); break;
case 13:vst_strncpy (text, "11", kVstMaxParamStrLen); break;
case 14:vst_strncpy (text, "11", kVstMaxParamStrLen); break;
case 15:vst_strncpy (text, "13", kVstMaxParamStrLen); break;
case 16:vst_strncpy (text, "16", kVstMaxParamStrLen); break;
case 17:vst_strncpy (text, "13", kVstMaxParamStrLen); break;
case 18:vst_strncpy (text, "13", kVstMaxParamStrLen); break;
case 19:vst_strncpy (text, "17", kVstMaxParamStrLen); break;
case 20:vst_strncpy (text, "17", kVstMaxParamStrLen); break;
case 21:vst_strncpy (text, "17", kVstMaxParamStrLen); break;
case 22:vst_strncpy (text, "17", kVstMaxParamStrLen); break;
case 23:vst_strncpy (text, "19", kVstMaxParamStrLen); break;
case 24:vst_strncpy (text, "24", kVstMaxParamStrLen); break;
case 25:vst_strncpy (text, "19", kVstMaxParamStrLen); break;
case 26:vst_strncpy (text, "19", kVstMaxParamStrLen); break;
case 27:vst_strncpy (text, "19", kVstMaxParamStrLen); break;
case 28:vst_strncpy (text, "23", kVstMaxParamStrLen); break;
case 29:vst_strncpy (text, "23", kVstMaxParamStrLen); break;
case 30:vst_strncpy (text, "23", kVstMaxParamStrLen); break;
case 31:vst_strncpy (text, "23", kVstMaxParamStrLen); break;
case 32:vst_strncpy (text, "32", kVstMaxParamStrLen); break;
default: break;
}
break;
case kParamC: vst_strncpy (text, "th note", 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;
case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 SoftClock2::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool SoftClock2::getEffectName(char* name) {
vst_strncpy(name, "SoftClock2", kVstMaxProductStrLen); return true;
}
VstPlugCategory SoftClock2::getPlugCategory() {return kPlugCategEffect;}
bool SoftClock2::getProductString(char* text) {
vst_strncpy (text, "airwindows SoftClock2", kVstMaxProductStrLen); return true;
}
bool SoftClock2::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,86 @@
/* ========================================
* SoftClock2 - SoftClock2.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SoftClock2_H
#define __SoftClock2_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,
kParamH =7,
kParamI =8,
kNumParameters = 9
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'sfc2'; //Change this to what the AU identity is!
class SoftClock2 :
public AudioEffectX
{
public:
SoftClock2(audioMasterCallback audioMaster);
~SoftClock2();
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;
float H;
float I;
double sinePos;
double barPos;
double inc;
int beatPos;
double beatAccent[35];
double beatSwing[35];
int beatTable[35];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,286 @@
/* ========================================
* SoftClock2 - SoftClock2.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SoftClock2_H
#include "SoftClock2.h"
#endif
void SoftClock2::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 bpm = (int)(A*200.99)+40;
int beatCode = (int)(B*32.99);
double notes = (double)fmax(((int)(C*16.99))/4.0, 0.125);
double bpmTarget = (getSampleRate()*60.0)/((double)bpm*notes);
double swing = D*bpmTarget*0.66666;
double peak = E*bpmTarget*0.33333;
double valley = F*bpmTarget*0.33333;
//swing makes beats hit LATER, so the One is 0.0
//peak means go UP to a late beat
//valley means go DOWN to a late beat
int beatMax = beatTable[beatCode];
//only some counts are literal, others are ways to do prime grooves with different subrhythms
for (int x = 0; x < (beatMax+1); x++) {
beatAccent[x] = ((double)fabs((double)beatMax-((double)x*2.0)))/(double)(beatMax*1.618033988749894);
if (x % 2 > 0) beatSwing[x] = 0.0;
else beatSwing[x] = swing;
} //this makes the non-accented beats drop down to quiet and back up to half volume
if (beatCode > 0) beatAccent[1] = 0.9; beatSwing[1] = peak; //first note is an accent at full crank
switch (beatCode)
{
case 0: break; //not used
case 1: break; //1
case 2: break; //2
case 3: break; //3
case 4: beatAccent[3]=0.9;
beatSwing[3]=valley; break; //4-22
case 5: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //5-32
case 6: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //6-33
case 7: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //7-43
case 8: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //8-44
case 9: beatAccent[4]=0.9; beatAccent[7]=0.8;
beatSwing[4]=valley; beatSwing[7]=valley; break; //9-333
case 10: beatAccent[6]=0.9;
beatSwing[6]=valley; break; //10-55
case 11: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //11-3332
case 12: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //11-443
case 13: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //11-551
case 14: beatAccent[7]=0.9;
beatSwing[7]=valley; break; //11-65
case 15: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //13-3334
case 16: beatAccent[9]=0.9;
beatSwing[9]=valley; break; //16-88
case 17: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //13-445
case 18: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //13-553
case 19: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //17-44441
case 20: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //17-5552
case 21: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //17-773
case 22: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //17-881
case 23: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //19-44443
case 24: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //24-888
case 25: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //19-5554
case 26: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //19-775
case 27: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //19-883
case 28: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75; beatAccent[21]=0.7;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; beatSwing[21]=valley; break; //23-444443
case 29: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //23-5558
case 30: beatAccent[8]=0.9; beatAccent[15]=0.8; beatAccent[22]=0.7;
beatSwing[8]=valley; beatSwing[15]=valley; beatSwing[22]=valley; break; //23-7772
case 31: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //23-887
case 32: beatAccent[9]=0.9; beatAccent[17]=0.8; beatAccent[25]=0.7;
beatSwing[9]=valley; beatSwing[17]=valley; beatSwing[25]=valley; break; //32-8888
default: break;
}
double accent = 1.0-pow(1.0-G,2);
double chaseSpeed = ((I*0.00016)+0.000016)/overallscale;
double rootSpeed = 1.0-(chaseSpeed*((1.0-I)+0.5)*4.0);
double pulseWidth = ((H*0.2)-((1.0-I)*0.03))/chaseSpeed;
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;
barPos += 1.0;
if (barPos>bpmTarget) {
barPos=0.0;
beatPos++;
if (beatPos>beatMax) beatPos=1;
}
if ((barPos < (pulseWidth+beatSwing[beatPos])) && (barPos > beatSwing[beatPos]))
inc = (((beatAccent[beatPos]*accent)+(1.0-accent))*chaseSpeed)+(inc*(1.0-chaseSpeed));
else
inc *= rootSpeed;
sinePos += inc;
if (sinePos > 6.283185307179586) sinePos -= 6.283185307179586;
inputSampleL = inputSampleR = sin(sin(sinePos)*inc*8.0);
//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 SoftClock2::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 bpm = (int)(A*200.99)+40;
int beatCode = (int)(B*32.99);
double notes = (double)fmax(((int)(C*16.99))/4.0, 0.125);
double bpmTarget = (getSampleRate()*60.0)/((double)bpm*notes);
double swing = D*bpmTarget*0.66666;
double peak = E*bpmTarget*0.33333;
double valley = F*bpmTarget*0.33333;
//swing makes beats hit LATER, so the One is 0.0
//peak means go UP to a late beat
//valley means go DOWN to a late beat
int beatMax = beatTable[beatCode];
//only some counts are literal, others are ways to do prime grooves with different subrhythms
for (int x = 0; x < (beatMax+1); x++) {
beatAccent[x] = ((double)fabs((double)beatMax-((double)x*2.0)))/(double)(beatMax*1.618033988749894);
if (x % 2 > 0) beatSwing[x] = 0.0;
else beatSwing[x] = swing;
} //this makes the non-accented beats drop down to quiet and back up to half volume
if (beatCode > 0) beatAccent[1] = 0.9; beatSwing[1] = peak; //first note is an accent at full crank
switch (beatCode)
{
case 0: break; //not used
case 1: break; //1
case 2: break; //2
case 3: break; //3
case 4: beatAccent[3]=0.9;
beatSwing[3]=valley; break; //4-22
case 5: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //5-32
case 6: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //6-33
case 7: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //7-43
case 8: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //8-44
case 9: beatAccent[4]=0.9; beatAccent[7]=0.8;
beatSwing[4]=valley; beatSwing[7]=valley; break; //9-333
case 10: beatAccent[6]=0.9;
beatSwing[6]=valley; break; //10-55
case 11: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //11-3332
case 12: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //11-443
case 13: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //11-551
case 14: beatAccent[7]=0.9;
beatSwing[7]=valley; break; //11-65
case 15: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //13-3334
case 16: beatAccent[9]=0.9;
beatSwing[9]=valley; break; //16-88
case 17: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //13-445
case 18: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //13-553
case 19: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //17-44441
case 20: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //17-5552
case 21: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //17-773
case 22: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //17-881
case 23: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //19-44443
case 24: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //24-888
case 25: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //19-5554
case 26: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //19-775
case 27: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //19-883
case 28: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75; beatAccent[21]=0.7;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; beatSwing[21]=valley; break; //23-444443
case 29: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //23-5558
case 30: beatAccent[8]=0.9; beatAccent[15]=0.8; beatAccent[22]=0.7;
beatSwing[8]=valley; beatSwing[15]=valley; beatSwing[22]=valley; break; //23-7772
case 31: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //23-887
case 32: beatAccent[9]=0.9; beatAccent[17]=0.8; beatAccent[25]=0.7;
beatSwing[9]=valley; beatSwing[17]=valley; beatSwing[25]=valley; break; //32-8888
default: break;
}
double accent = 1.0-pow(1.0-G,2);
double chaseSpeed = ((I*0.00016)+0.000016)/overallscale;
double rootSpeed = 1.0-(chaseSpeed*((1.0-I)+0.5)*4.0);
double pulseWidth = ((H*0.2)-((1.0-I)*0.03))/chaseSpeed;
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;
barPos += 1.0;
if (barPos>bpmTarget) {
barPos=0.0;
beatPos++;
if (beatPos>beatMax) beatPos=1;
}
if ((barPos < (pulseWidth+beatSwing[beatPos])) && (barPos > beatSwing[beatPos]))
inc = (((beatAccent[beatPos]*accent)+(1.0-accent))*chaseSpeed)+(inc*(1.0-chaseSpeed));
else
inc *= rootSpeed;
sinePos += inc;
if (sinePos > 6.283185307179586) sinePos -= 6.283185307179586;
inputSampleL = inputSampleR = sin(sin(sinePos)*inc*8.0);
//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,257 @@
/*
* File: Density3.cpp
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
Density3.cpp
=============================================================================*/
#include "Density3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Density3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Density3::Density3(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::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 = -1.0;
outParameterInfo.maxValue = 4.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Density3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Density3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Density3::Density3Kernel::Reset()
{
iirSample = 0.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Density3::Density3Kernel::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 density = GetParameter( kParam_A )+1.0;
double iirAmount = pow(GetParameter( kParam_B ),3)/overallscale;
if (iirAmount == 0.0) iirSample = 0.0;
double output = GetParameter( kParam_C );
double wet = GetParameter( kParam_D );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
iirSample = (iirSample * (1.0 - iirAmount)) + (inputSample * iirAmount);
inputSample -= iirSample;
double altered = inputSample;
if (density > 1.0) {
altered = fmax(fmin(inputSample*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSample,1.0),-1.0);
double polarity = altered;
double X = inputSample * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSample = altered;
else inputSample = (inputSample*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
inputSample = (drySample*(1.0-wet))+(inputSample*output*wet);
//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 @@
_Density3Entry

146
plugins/MacAU/Density3/Density3.h Executable file
View file

@ -0,0 +1,146 @@
/*
* File: Density3.h
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 "Density3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Density3_h__
#define __Density3_h__
#pragma mark ____Density3 Parameters
// parameters
static const float kDefaultValue_ParamA = 0.0;
static const float kDefaultValue_ParamB = 0.0;
static const float kDefaultValue_ParamC = 1.0;
static const float kDefaultValue_ParamD = 1.0;
//let's assume we always have a default of 0.0, for no effect
static CFStringRef kParameterAName = CFSTR("Density");
static CFStringRef kParameterBName = CFSTR("Highpass");
static CFStringRef kParameterCName = CFSTR("Output");
static CFStringRef kParameterDName = CFSTR("Dry/Wet");
//Alter the name if desired, but using the plugin name is a start
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
//Add your parameters here...
kNumberOfParameters=4
};
#pragma mark ____Density3
class Density3 : public AUEffectBase
{
public:
Density3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Density3 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new Density3Kernel(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 kDensity3Version; }
protected:
class Density3Kernel : public AUKernelBase // most of the real work happens here
{
public:
Density3Kernel(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:
double iirSample;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Density3.r
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 "Density3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Density3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Density3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Density3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Density3_COMP_SUBTYPE
#define COMP_MANUF Density3_COMP_MANF
#define VERSION kDensity3Version
#define NAME "Airwindows: Density3"
#define DESCRIPTION "Density3 AU"
#define ENTRY_POINT "Density3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Density3 */;
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 = 782680461;
PBXWorkspaceStateSaveDate = 782680461;
};
perUserProjectItems = {
8B47CAFE2EA6C1700014555E /* PlistBookmark */ = 8B47CAFE2EA6C1700014555E /* PlistBookmark */;
8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */ = 8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */;
8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */ = 8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B47CAFE2EA6C1700014555E /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Density3/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Density3.cpp */;
name = "Density3.cpp: 244";
rLen = 0;
rLoc = 10801;
rType = 0;
vrLen = 345;
vrLoc = 10603;
};
8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Density3.cpp */;
name = "Density3.cpp: 244";
rLen = 0;
rLoc = 10801;
rType = 0;
vrLen = 345;
vrLoc = 10603;
};
8BA05A660720730100365D66 /* Density3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {849, 4770}}";
sepNavSelRange = "{10801, 0}";
sepNavVisRange = "{10603, 345}";
sepNavWindowFrame = "{{751, 33}, {918, 757}}";
};
};
8BA05A690720730100365D66 /* Density3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2900, 0}";
sepNavVisRange = "{862, 2101}";
sepNavWindowFrame = "{{15, 38}, {944, 840}}";
};
};
8BC6025B073B072D006C4272 /* Density3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2628}}";
sepNavSelRange = "{5492, 0}";
sepNavVisRange = "{2631, 959}";
sepNavWindowFrame = "{{798, 32}, {944, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Density3 */ = {
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 /* Density3.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Density3.r */; };
8BA05A6B0720730100365D66 /* Density3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Density3.cpp */; };
8BA05A6E0720730100365D66 /* Density3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Density3Version.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 /* Density3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Density3.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 /* Density3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Density3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Density3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Density3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Density3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Density3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Density3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Density3Version.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 /* Density3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Density3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Density3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Density3.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 /* Density3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Density3;
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 /* Density3.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Density3.h */,
8BA05A660720730100365D66 /* Density3.cpp */,
8BA05A670720730100365D66 /* Density3.exp */,
8BA05A680720730100365D66 /* Density3.r */,
8BA05A690720730100365D66 /* Density3Version.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 /* Density3Version.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 /* Density3.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 /* Density3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Density3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Density3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Density3;
productReference = 8D01CCD20486CAD60068D4B7 /* Density3.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 "Density3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Density3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Density3 */,
);
};
/* 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 /* Density3.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Density3.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 = Density3.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 = Density3;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Density3.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 = Density3;
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 "Density3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Density3" */ = {
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: Density3Version.h
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 __Density3Version_h__
#define __Density3Version_h__
#ifdef DEBUG
#define kDensity3Version 0xFFFFFFFF
#else
#define kDensity3Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Density3_COMP_MANF 'Dthr'
#define Density3_COMP_SUBTYPE 'den3'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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>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,393 @@
/*
* File: HipCrush.cpp
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
HipCrush.cpp
=============================================================================*/
#include "HipCrush.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(HipCrush)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrush
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HipCrush::HipCrush(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_TRF, kDefaultValue_ParamTRF );
SetParameter(kParam_TRG, kDefaultValue_ParamTRG );
SetParameter(kParam_TRB, kDefaultValue_ParamTRB );
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
SetParameter(kParam_HMB, kDefaultValue_ParamHMB );
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
SetParameter(kParam_LMB, kDefaultValue_ParamLMB );
SetParameter(kParam_DW, kDefaultValue_ParamDW );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_TRF:
AUBase::FillInParameterName (outParameterInfo, kParameterTRFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("High");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRF;
break;
case kParam_TRG:
AUBase::FillInParameterName (outParameterInfo, kParameterTRGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRG;
break;
case kParam_TRB:
AUBase::FillInParameterName (outParameterInfo, kParameterTRBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRB;
break;
case kParam_HMF:
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Mid");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
break;
case kParam_HMG:
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
break;
case kParam_HMB:
AUBase::FillInParameterName (outParameterInfo, kParameterHMBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMB;
break;
case kParam_LMF:
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Low");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
break;
case kParam_LMG:
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
break;
case kParam_LMB:
AUBase::FillInParameterName (outParameterInfo, kParameterLMBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMB;
break;
case kParam_DW:
AUBase::FillInParameterName (outParameterInfo, kParameterDWName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Wet");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamDW;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// HipCrush::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____HipCrushEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrushKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void HipCrush::HipCrushKernel::Reset()
{
for (int x = 0; x < biqs_total; x++) {
high[x] = 0.0;
hmid[x] = 0.0;
lmid[x] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrushKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void HipCrush::HipCrushKernel::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();
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),3)*16000.0)+1000.0)/GetSampleRate());
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
double K = tan(M_PI * high[biqs_freq]);
double norm = 1.0 / (1.0 + K / (high[biqs_reso]*0.618033988749894848204586) + K * K);
high[biqs_a0] = K / (high[biqs_reso]*0.618033988749894848204586) * norm;
high[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_b2] = (1.0 - K / (high[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (high[biqs_reso]*1.618033988749894848204586) + K * K);
high[biqs_c0] = K / (high[biqs_reso]*1.618033988749894848204586) * norm;
high[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_d2] = (1.0 - K / (high[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//high
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3)*7000.0)+300.0)/GetSampleRate());
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
K = tan(M_PI * hmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K);
hmid[biqs_a0] = K / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
hmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_b2] = (1.0 - K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K);
hmid[biqs_c0] = K / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
hmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_d2] = (1.0 - K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//hmid
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3)*3000.0)+20.0)/GetSampleRate());
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
K = tan(M_PI * lmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K);
lmid[biqs_a0] = K / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
lmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_b2] = (1.0 - K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K);
lmid[biqs_c0] = K / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
lmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_d2] = (1.0 - K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//lmid
double wet = GetParameter( kParam_DW );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
//begin Stacked Biquad With Reversed Neutron Flow L
high[biqs_outL] = inputSample * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outL] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outL] *= bitFactor;
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outL] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outL] = high[biqs_temp];
high[biqs_outL] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
hmid[biqs_outL] = inputSample * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outL] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outL] *= bitFactor;
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outL] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outL] = hmid[biqs_temp];
hmid[biqs_outL] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
lmid[biqs_outL] = inputSample * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outL] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outL] *= bitFactor;
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outL] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outL] = lmid[biqs_temp];
lmid[biqs_outL] *= lmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
double parametric = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL];
inputSample = (drySample * (1.0-wet)) + (parametric * wet);
//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 @@
_HipCrushEntry

175
plugins/MacAU/HipCrush/HipCrush.h Executable file
View file

@ -0,0 +1,175 @@
/*
* File: HipCrush.h
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 "HipCrushVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __HipCrush_h__
#define __HipCrush_h__
#pragma mark ____HipCrush Parameters
// parameters
static const float kDefaultValue_ParamTRF = 0.5;
static const float kDefaultValue_ParamTRG = 0.0;
static const float kDefaultValue_ParamTRB = 0.5;
static const float kDefaultValue_ParamHMF = 0.5;
static const float kDefaultValue_ParamHMG = 0.0;
static const float kDefaultValue_ParamHMB = 0.5;
static const float kDefaultValue_ParamLMF = 0.5;
static const float kDefaultValue_ParamLMG = 0.0;
static const float kDefaultValue_ParamLMB = 0.5;
static const float kDefaultValue_ParamDW = 1.0;
static CFStringRef kParameterTRFName = CFSTR("Hi Freq");
static CFStringRef kParameterTRGName = CFSTR("High");
static CFStringRef kParameterTRBName = CFSTR("HiCrush");
static CFStringRef kParameterHMFName = CFSTR("MidFreq");
static CFStringRef kParameterHMGName = CFSTR("Mid");
static CFStringRef kParameterHMBName = CFSTR("MdCrush");
static CFStringRef kParameterLMFName = CFSTR("Lo Freq");
static CFStringRef kParameterLMGName = CFSTR("Low");
static CFStringRef kParameterLMBName = CFSTR("LoCrush");
static CFStringRef kParameterDWName = CFSTR("Dry/Wet");
enum {
kParam_TRF =0,
kParam_TRG =1,
kParam_TRB =2,
kParam_HMF =3,
kParam_HMG =4,
kParam_HMB =5,
kParam_LMF =6,
kParam_LMG =7,
kParam_LMB =8,
kParam_DW = 9,
//Add your parameters here...
kNumberOfParameters=10
};
#pragma mark ____HipCrush
class HipCrush : public AUEffectBase
{
public:
HipCrush(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~HipCrush () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new HipCrushKernel(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 kHipCrushVersion; }
protected:
class HipCrushKernel : public AUKernelBase // most of the real work happens here
{
public:
HipCrushKernel(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 {
biqs_freq, biqs_reso, biqs_level,
biqs_temp, biqs_bit,
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
biqs_outL, biqs_outR, biqs_total
};
double high[biqs_total];
double hmid[biqs_total];
double lmid[biqs_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: HipCrush.r
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 "HipCrushVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_HipCrush 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HipCrush~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_HipCrush
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE HipCrush_COMP_SUBTYPE
#define COMP_MANUF HipCrush_COMP_MANF
#define VERSION kHipCrushVersion
#define NAME "Airwindows: HipCrush"
#define DESCRIPTION "HipCrush AU"
#define ENTRY_POINT "HipCrushEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,153 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* HipCrush */;
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 = 782941073;
PBXWorkspaceStateSaveDate = 782941073;
};
perUserProjectItems = {
8B55FE142EAA8FF500EF0881 /* PlistBookmark */ = 8B55FE142EAA8FF500EF0881 /* PlistBookmark */;
8B55FE792EAAA49900EF0881 /* PBXTextBookmark */ = 8B55FE792EAAA49900EF0881 /* PBXTextBookmark */;
8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */ = 8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */;
8B55FF472EAACBCD00EF0881 /* PBXBookmark */ = 8B55FF472EAACBCD00EF0881 /* PBXBookmark */;
8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */ = 8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B55FE142EAA8FF500EF0881 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/HipCrush/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B55FE792EAAA49900EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* HipCrushVersion.h */;
name = "HipCrushVersion.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 455;
vrLoc = 0;
};
8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* HipCrush.h */;
name = "HipCrush.h: 157";
rLen = 0;
rLoc = 6162;
rType = 0;
vrLen = 289;
vrLoc = 6074;
};
8B55FF472EAACBCD00EF0881 /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A660720730100365D66 /* HipCrush.cpp */;
};
8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* HipCrush.cpp */;
name = "HipCrush.cpp: 293";
rLen = 0;
rLoc = 14324;
rType = 0;
vrLen = 679;
vrLoc = 13967;
};
8BA05A660720730100365D66 /* HipCrush.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {876, 6966}}";
sepNavSelRange = "{14324, 0}";
sepNavVisRange = "{13967, 679}";
sepNavWindowFrame = "{{351, 83}, {1089, 795}}";
};
};
8BA05A690720730100365D66 /* HipCrushVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{862, 2101}";
sepNavWindowFrame = "{{347, 47}, {1093, 831}}";
};
};
8BC6025B073B072D006C4272 /* HipCrush.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3150}}";
sepNavSelRange = "{6088, 0}";
sepNavVisRange = "{2600, 1282}";
sepNavWindowFrame = "{{851, 47}, {1093, 831}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* HipCrush */ = {
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 /* HipCrush.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* HipCrush.r */; };
8BA05A6B0720730100365D66 /* HipCrush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* HipCrush.cpp */; };
8BA05A6E0720730100365D66 /* HipCrushVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* HipCrushVersion.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 /* HipCrush.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* HipCrush.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 /* HipCrush.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HipCrush.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* HipCrush.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = HipCrush.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* HipCrush.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = HipCrush.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* HipCrushVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HipCrushVersion.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 /* HipCrush.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HipCrush.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* HipCrush.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HipCrush.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 /* HipCrush */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = HipCrush;
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 /* HipCrush.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* HipCrush.h */,
8BA05A660720730100365D66 /* HipCrush.cpp */,
8BA05A670720730100365D66 /* HipCrush.exp */,
8BA05A680720730100365D66 /* HipCrush.r */,
8BA05A690720730100365D66 /* HipCrushVersion.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 /* HipCrushVersion.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 /* HipCrush.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 /* HipCrush */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "HipCrush" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = HipCrush;
productInstallPath = "$(HOME)/Library/Bundles";
productName = HipCrush;
productReference = 8D01CCD20486CAD60068D4B7 /* HipCrush.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 "HipCrush" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* HipCrush */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* HipCrush */,
);
};
/* 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 /* HipCrush.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* HipCrush.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 = HipCrush.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 = HipCrush;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = HipCrush.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 = HipCrush;
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 "HipCrush" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "HipCrush" */ = {
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: HipCrushVersion.h
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 __HipCrushVersion_h__
#define __HipCrushVersion_h__
#ifdef DEBUG
#define kHipCrushVersion 0xFFFFFFFF
#else
#define kHipCrushVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define HipCrush_COMP_MANF 'Dthr'
#define HipCrush_COMP_SUBTYPE 'hpch'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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,467 @@
/*
* File: SoftClock2.cpp
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
SoftClock2.cpp
=============================================================================*/
#include "SoftClock2.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(SoftClock2)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::SoftClock2
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SoftClock2::SoftClock2(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 );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::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 = 40;
outParameterInfo.maxValue = 240;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
switch ((int)GetParameter( kParam_B )){
case 0:outParameterInfo.unitName = CFSTR("0"); break;
case 1: outParameterInfo.unitName = CFSTR("1"); break;
case 2:outParameterInfo.unitName = CFSTR("2"); break;
case 3:outParameterInfo.unitName = CFSTR("3"); break;
case 4:outParameterInfo.unitName = CFSTR("4"); break;
case 5:outParameterInfo.unitName = CFSTR("5"); break;
case 6:outParameterInfo.unitName = CFSTR("6"); break;
case 7:outParameterInfo.unitName = CFSTR("7"); break;
case 8:outParameterInfo.unitName = CFSTR("8"); break;
case 9:outParameterInfo.unitName = CFSTR("9"); break;
case 10:outParameterInfo.unitName = CFSTR("10"); break;
case 11:outParameterInfo.unitName = CFSTR("11"); break;
case 12:outParameterInfo.unitName = CFSTR("11"); break;
case 13:outParameterInfo.unitName = CFSTR("11"); break;
case 14:outParameterInfo.unitName = CFSTR("11"); break;
case 15:outParameterInfo.unitName = CFSTR("13"); break;
case 16:outParameterInfo.unitName = CFSTR("16"); break;
case 17:outParameterInfo.unitName = CFSTR("13"); break;
case 18:outParameterInfo.unitName = CFSTR("13"); break;
case 19:outParameterInfo.unitName = CFSTR("17"); break;
case 20:outParameterInfo.unitName = CFSTR("17"); break;
case 21:outParameterInfo.unitName = CFSTR("17"); break;
case 22:outParameterInfo.unitName = CFSTR("17"); break;
case 23:outParameterInfo.unitName = CFSTR("19"); break;
case 24:outParameterInfo.unitName = CFSTR("24"); break;
case 25:outParameterInfo.unitName = CFSTR("19"); break;
case 26:outParameterInfo.unitName = CFSTR("19"); break;
case 27:outParameterInfo.unitName = CFSTR("19"); break;
case 28:outParameterInfo.unitName = CFSTR("23"); break;
case 29:outParameterInfo.unitName = CFSTR("23"); break;
case 30:outParameterInfo.unitName = CFSTR("23"); break;
case 31:outParameterInfo.unitName = CFSTR("23"); break;
case 32:outParameterInfo.unitName = CFSTR("32"); break;
default: break;
}
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 32;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 16;
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;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::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 SoftClock2::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// SoftClock2::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____SoftClock2EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::SoftClock2Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
sinePos = 0.0;
barPos = 0.0;
beatPos = 0;
for (int x = 0; x < 34; x++) {beatAccent[x] = 0.0; beatSwing[x] = 0.0;}
inc = 0.0;
beatTable[0]=0;
beatTable[1]=1;
beatTable[2]=2;
beatTable[3]=3;
beatTable[4]=4;
beatTable[5]=5;
beatTable[6]=6;
beatTable[7]=7;
beatTable[8]=8;
beatTable[9]=9;
beatTable[10]=10;
beatTable[11]=11;
beatTable[12]=11;
beatTable[13]=11;
beatTable[14]=11;
beatTable[15]=13;
beatTable[16]=16;
beatTable[17]=13;
beatTable[18]=13;
beatTable[19]=17;
beatTable[20]=17;
beatTable[21]=17;
beatTable[22]=17;
beatTable[23]=19;
beatTable[24]=24;
beatTable[25]=19;
beatTable[26]=19;
beatTable[27]=19;
beatTable[28]=23;
beatTable[29]=23;
beatTable[30]=23;
beatTable[31]=23;
beatTable[32]=32;
beatTable[33]=32;
beatTable[34]=32;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus SoftClock2::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 bpm = GetParameter( kParam_A );
int beatCode = GetParameter( kParam_B );
double notes = (double)fmax(GetParameter( kParam_C )/4.0, 0.125);
double bpmTarget = (GetSampleRate()*60.0)/((double)bpm*notes);
double swing = GetParameter( kParam_D )*bpmTarget*0.66666;
double peak = GetParameter( kParam_E )*bpmTarget*0.33333;
double valley = GetParameter( kParam_F )*bpmTarget*0.33333;
//swing makes beats hit LATER, so the One is 0.0
//peak means go UP to a late beat
//valley means go DOWN to a late beat
int beatMax = beatTable[beatCode];
//only some counts are literal, others are ways to do prime grooves with different subrhythms
for (int x = 0; x < (beatMax+1); x++) {
beatAccent[x] = ((double)fabs((double)beatMax-((double)x*2.0)))/(double)(beatMax*1.618033988749894);
if (x % 2 > 0) beatSwing[x] = 0.0;
else beatSwing[x] = swing;
} //this makes the non-accented beats drop down to quiet and back up to half volume
if (beatCode > 0) beatAccent[1] = 0.9; beatSwing[1] = peak; //first note is an accent at full crank
switch (beatCode)
{
case 0: break; //not used
case 1: break; //1
case 2: break; //2
case 3: break; //3
case 4: beatAccent[3]=0.9;
beatSwing[3]=valley; break; //4-22
case 5: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //5-32
case 6: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //6-33
case 7: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //7-43
case 8: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //8-44
case 9: beatAccent[4]=0.9; beatAccent[7]=0.8;
beatSwing[4]=valley; beatSwing[7]=valley; break; //9-333
case 10: beatAccent[6]=0.9;
beatSwing[6]=valley; break; //10-55
case 11: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //11-3332
case 12: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //11-443
case 13: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //11-551
case 14: beatAccent[7]=0.9;
beatSwing[7]=valley; break; //11-65
case 15: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //13-3334
case 16: beatAccent[9]=0.9;
beatSwing[9]=valley; break; //16-88
case 17: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //13-445
case 18: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //13-553
case 19: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //17-44441
case 20: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //17-5552
case 21: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //17-773
case 22: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //17-881
case 23: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //19-44443
case 24: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //24-888
case 25: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //19-5554
case 26: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //19-775
case 27: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //19-883
case 28: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75; beatAccent[21]=0.7;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; beatSwing[21]=valley; break; //23-444443
case 29: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //23-5558
case 30: beatAccent[8]=0.9; beatAccent[15]=0.8; beatAccent[22]=0.7;
beatSwing[8]=valley; beatSwing[15]=valley; beatSwing[22]=valley; break; //23-7772
case 31: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //23-887
case 32: beatAccent[9]=0.9; beatAccent[17]=0.8; beatAccent[25]=0.7;
beatSwing[9]=valley; beatSwing[17]=valley; beatSwing[25]=valley; break; //32-8888
default: break;
}
double accent = 1.0-pow(1.0-GetParameter( kParam_G ),2);
double chaseSpeed = ((GetParameter( kParam_I )*0.00016)+0.000016)/overallscale;
double rootSpeed = 1.0-(chaseSpeed*((1.0-GetParameter( kParam_I ))+0.5)*4.0);
double pulseWidth = ((GetParameter( kParam_H )*0.2)-((1.0-GetParameter( kParam_I ))*0.03))/chaseSpeed;
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;
barPos += 1.0;
if (barPos>bpmTarget) {
barPos=0.0;
beatPos++;
if (beatPos>beatMax) beatPos=1;
}
if ((barPos < (pulseWidth+beatSwing[beatPos])) && (barPos > beatSwing[beatPos]))
inc = (((beatAccent[beatPos]*accent)+(1.0-accent))*chaseSpeed)+(inc*(1.0-chaseSpeed));
else
inc *= rootSpeed;
sinePos += inc;
if (sinePos > 6.283185307179586) sinePos -= 6.283185307179586;
inputSampleL = inputSampleR = sin(sin(sinePos)*inc*8.0);
//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 @@
_SoftClock2Entry

View file

@ -0,0 +1,149 @@
/*
* File: SoftClock2.h
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 "SoftClock2Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __SoftClock2_h__
#define __SoftClock2_h__
#pragma mark ____SoftClock2 Parameters
// parameters
static const float kDefaultValue_ParamA = 120;
static const float kDefaultValue_ParamB = 4;
static const float kDefaultValue_ParamC = 4;
static const float kDefaultValue_ParamD = 0.0;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.0;
static const float kDefaultValue_ParamG = 0.5;
static const float kDefaultValue_ParamH = 0.5;
static const float kDefaultValue_ParamI = 0.5;
static CFStringRef kParameterAName = CFSTR("Tempo");
static CFStringRef kParameterBName = CFSTR("Count");
static CFStringRef kParameterCName = CFSTR("Tuple");
static CFStringRef kParameterDName = CFSTR("Swing");
static CFStringRef kParameterEName = CFSTR("Peak");
static CFStringRef kParameterFName = CFSTR("Valley");
static CFStringRef kParameterGName = CFSTR("Accents");
static CFStringRef kParameterHName = CFSTR("Boost");
static CFStringRef kParameterIName = CFSTR("Speed");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
//Add your parameters here...
kNumberOfParameters=9
};
#pragma mark ____SoftClock2
class SoftClock2 : public AUEffectBase
{
public:
SoftClock2(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~SoftClock2 () { 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 kSoftClock2Version; }
private:
double sinePos;
double barPos;
double inc;
int beatPos;
double beatAccent[35];
double beatSwing[35];
int beatTable[35];
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: SoftClock2.r
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 "SoftClock2Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_SoftClock2 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SoftClock2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_SoftClock2
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE SoftClock2_COMP_SUBTYPE
#define COMP_MANUF SoftClock2_COMP_MANF
#define VERSION kSoftClock2Version
#define NAME "Airwindows: SoftClock2"
#define DESCRIPTION "SoftClock2 AU"
#define ENTRY_POINT "SoftClock2Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,153 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* SoftClock2 */;
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 = 782671993;
PBXWorkspaceStateSaveDate = 782671993;
};
perUserProjectItems = {
8BAA80D12EA6955000A83054 /* PBXTextBookmark */ = 8BAA80D12EA6955000A83054 /* PBXTextBookmark */;
8BAA80D22EA6955000A83054 /* PBXTextBookmark */ = 8BAA80D22EA6955000A83054 /* PBXTextBookmark */;
8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */ = 8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */;
8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */ = 8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* SoftClock2.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {930, 8730}}";
sepNavSelRange = "{7733, 0}";
sepNavVisRange = "{4958, 2193}";
sepNavWindowFrame = "{{505, 55}, {812, 821}}";
};
};
8BA05A690720730100365D66 /* SoftClock2Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 1278}}";
sepNavSelRange = "{2785, 0}";
sepNavVisRange = "{2786, 183}";
sepNavWindowFrame = "{{15, 50}, {839, 823}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BAA80D12EA6955000A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* SoftClock2Version.h */;
name = "SoftClock2Version.h: 51";
rLen = 0;
rLoc = 2785;
rType = 0;
vrLen = 183;
vrLoc = 2786;
};
8BAA80D22EA6955000A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* SoftClock2.cpp */;
name = "SoftClock2.cpp: 387";
rLen = 0;
rLoc = 19643;
rType = 0;
vrLen = 328;
vrLoc = 17570;
};
8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SoftClock2.h */;
name = "SoftClock2.h: 68";
rLen = 0;
rLoc = 3309;
rType = 0;
vrLen = 160;
vrLoc = 3255;
};
8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SoftClock2.h */;
name = "SoftClock2.h: 68";
rLen = 0;
rLoc = 3309;
rType = 0;
vrLen = 160;
vrLoc = 3255;
};
8BC6025B073B072D006C4272 /* SoftClock2.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {554, 2664}}";
sepNavSelRange = "{3309, 0}";
sepNavVisRange = "{3255, 160}";
sepNavWindowFrame = "{{575, 55}, {839, 823}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* SoftClock2 */ = {
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 /* SoftClock2.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* SoftClock2.r */; };
8BA05A6B0720730100365D66 /* SoftClock2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* SoftClock2.cpp */; };
8BA05A6E0720730100365D66 /* SoftClock2Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* SoftClock2Version.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 /* SoftClock2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* SoftClock2.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 /* SoftClock2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SoftClock2.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* SoftClock2.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = SoftClock2.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* SoftClock2.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = SoftClock2.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* SoftClock2Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoftClock2Version.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 /* SoftClock2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoftClock2.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* SoftClock2.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SoftClock2.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 /* SoftClock2 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = SoftClock2;
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 /* SoftClock2.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* SoftClock2.h */,
8BA05A660720730100365D66 /* SoftClock2.cpp */,
8BA05A670720730100365D66 /* SoftClock2.exp */,
8BA05A680720730100365D66 /* SoftClock2.r */,
8BA05A690720730100365D66 /* SoftClock2Version.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 /* SoftClock2Version.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 /* SoftClock2.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 /* SoftClock2 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "SoftClock2" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = SoftClock2;
productInstallPath = "$(HOME)/Library/Bundles";
productName = SoftClock2;
productReference = 8D01CCD20486CAD60068D4B7 /* SoftClock2.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 "SoftClock2" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* SoftClock2 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* SoftClock2 */,
);
};
/* 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 /* SoftClock2.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* SoftClock2.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 = SoftClock2.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 = SoftClock2;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = SoftClock2.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 = SoftClock2;
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 "SoftClock2" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "SoftClock2" */ = {
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: SoftClock2Version.h
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 __SoftClock2Version_h__
#define __SoftClock2Version_h__
#ifdef DEBUG
#define kSoftClock2Version 0xFFFFFFFF
#else
#define kSoftClock2Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define SoftClock2_COMP_MANF 'Dthr'
#define SoftClock2_COMP_SUBTYPE 'sfc2'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,257 @@
/*
* File: Density3.cpp
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
Density3.cpp
=============================================================================*/
#include "Density3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Density3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Density3::Density3(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::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 = -1.0;
outParameterInfo.maxValue = 4.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Density3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Density3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Density3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Density3::Density3Kernel::Reset()
{
iirSample = 0.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Density3::Density3Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Density3::Density3Kernel::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 density = GetParameter( kParam_A )+1.0;
double iirAmount = pow(GetParameter( kParam_B ),3)/overallscale;
if (iirAmount == 0.0) iirSample = 0.0;
double output = GetParameter( kParam_C );
double wet = GetParameter( kParam_D );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
iirSample = (iirSample * (1.0 - iirAmount)) + (inputSample * iirAmount);
inputSample -= iirSample;
double altered = inputSample;
if (density > 1.0) {
altered = fmax(fmin(inputSample*density*M_PI_2,M_PI_2),-M_PI_2);
double X = altered*altered;
double temp = altered*X;
altered -= (temp / 6.0); temp *= X;
altered += (temp / 120.0); temp *= X;
altered -= (temp / 5040.0); temp *= X;
altered += (temp / 362880.0); temp *= X;
altered -= (temp / 39916800.0);
}
if (density < 1.0) {
altered = fmax(fmin(inputSample,1.0),-1.0);
double polarity = altered;
double X = inputSample * altered;
double temp = X;
altered = (temp / 2.0); temp *= X;
altered -= (temp / 24.0); temp *= X;
altered += (temp / 720.0); temp *= X;
altered -= (temp / 40320.0); temp *= X;
altered += (temp / 3628800.0);
altered *= ((polarity<0.0)?-1.0:1.0);
}
if (density > 2.0) inputSample = altered;
else inputSample = (inputSample*(1.0-fabs(density-1.0)))+(altered*fabs(density-1.0));
inputSample = (drySample*(1.0-wet))+(inputSample*output*wet);
//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 @@
_Density3Entry
_Density3Factory

View file

@ -0,0 +1,146 @@
/*
* File: Density3.h
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 "Density3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Density3_h__
#define __Density3_h__
#pragma mark ____Density3 Parameters
// parameters
static const float kDefaultValue_ParamA = 0.0;
static const float kDefaultValue_ParamB = 0.0;
static const float kDefaultValue_ParamC = 1.0;
static const float kDefaultValue_ParamD = 1.0;
//let's assume we always have a default of 0.0, for no effect
static CFStringRef kParameterAName = CFSTR("Density");
static CFStringRef kParameterBName = CFSTR("Highpass");
static CFStringRef kParameterCName = CFSTR("Output");
static CFStringRef kParameterDName = CFSTR("Dry/Wet");
//Alter the name if desired, but using the plugin name is a start
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
//Add your parameters here...
kNumberOfParameters=4
};
#pragma mark ____Density3
class Density3 : public AUEffectBase
{
public:
Density3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Density3 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new Density3Kernel(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 kDensity3Version; }
protected:
class Density3Kernel : public AUKernelBase // most of the real work happens here
{
public:
Density3Kernel(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:
double iirSample;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Density3.r
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 "Density3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Density3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Density3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Density3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Density3_COMP_SUBTYPE
#define COMP_MANUF Density3_COMP_MANF
#define VERSION kDensity3Version
#define NAME "Airwindows: Density3"
#define DESCRIPTION "Density3 AU"
#define ENTRY_POINT "Density3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Density3 */;
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 = 782680461;
PBXWorkspaceStateSaveDate = 782680461;
};
perUserProjectItems = {
8B47CAFE2EA6C1700014555E /* PlistBookmark */ = 8B47CAFE2EA6C1700014555E /* PlistBookmark */;
8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */ = 8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */;
8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */ = 8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B47CAFE2EA6C1700014555E /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Density3/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B47CB1C2EA6C5A70014555E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Density3.cpp */;
name = "Density3.cpp: 244";
rLen = 0;
rLoc = 10801;
rType = 0;
vrLen = 345;
vrLoc = 10603;
};
8B47CB1D2EA6C5A70014555E /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Density3.cpp */;
name = "Density3.cpp: 244";
rLen = 0;
rLoc = 10801;
rType = 0;
vrLen = 345;
vrLoc = 10603;
};
8BA05A660720730100365D66 /* Density3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {849, 4770}}";
sepNavSelRange = "{10801, 0}";
sepNavVisRange = "{10603, 345}";
sepNavWindowFrame = "{{751, 33}, {918, 757}}";
};
};
8BA05A690720730100365D66 /* Density3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2900, 0}";
sepNavVisRange = "{862, 2101}";
sepNavWindowFrame = "{{15, 38}, {944, 840}}";
};
};
8BC6025B073B072D006C4272 /* Density3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2628}}";
sepNavSelRange = "{5492, 0}";
sepNavVisRange = "{2631, 959}";
sepNavWindowFrame = "{{798, 32}, {944, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Density3 */ = {
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 */
8B328E542EA6EB240082009B /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DCC2EA6EB240082009B /* CAExtAudioFile.h */; };
8B328E552EA6EB240082009B /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DCD2EA6EB240082009B /* CACFMachPort.h */; };
8B328E562EA6EB240082009B /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DCE2EA6EB240082009B /* CABool.h */; };
8B328E572EA6EB240082009B /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DCF2EA6EB240082009B /* CAComponent.cpp */; };
8B328E582EA6EB240082009B /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD02EA6EB240082009B /* CADebugger.h */; };
8B328E592EA6EB240082009B /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DD12EA6EB240082009B /* CACFNumber.cpp */; };
8B328E5A2EA6EB240082009B /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD22EA6EB240082009B /* CAGuard.h */; };
8B328E5B2EA6EB240082009B /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD32EA6EB240082009B /* CAAtomic.h */; };
8B328E5C2EA6EB240082009B /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD42EA6EB240082009B /* CAStreamBasicDescription.h */; };
8B328E5D2EA6EB240082009B /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD52EA6EB240082009B /* CACFObject.h */; };
8B328E5E2EA6EB240082009B /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD62EA6EB240082009B /* CAStreamRangedDescription.h */; };
8B328E5F2EA6EB240082009B /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD72EA6EB240082009B /* CATokenMap.h */; };
8B328E602EA6EB240082009B /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD82EA6EB240082009B /* CAComponent.h */; };
8B328E612EA6EB240082009B /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DD92EA6EB240082009B /* CAAudioBufferList.h */; };
8B328E622EA6EB240082009B /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DDA2EA6EB240082009B /* CAAudioUnit.h */; };
8B328E632EA6EB240082009B /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DDB2EA6EB240082009B /* CAAUParameter.h */; };
8B328E642EA6EB240082009B /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DDC2EA6EB240082009B /* CAException.h */; };
8B328E652EA6EB240082009B /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DDD2EA6EB240082009B /* CAAUProcessor.cpp */; };
8B328E662EA6EB240082009B /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DDE2EA6EB240082009B /* CAAUProcessor.h */; };
8B328E672EA6EB240082009B /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DDF2EA6EB240082009B /* CAProcess.h */; };
8B328E682EA6EB240082009B /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE02EA6EB240082009B /* CACFDictionary.h */; };
8B328E692EA6EB240082009B /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE12EA6EB240082009B /* CAPThread.h */; };
8B328E6A2EA6EB240082009B /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DE22EA6EB240082009B /* CAAUParameter.cpp */; };
8B328E6B2EA6EB240082009B /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE32EA6EB240082009B /* CAAudioTimeStamp.h */; };
8B328E6C2EA6EB240082009B /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DE42EA6EB240082009B /* CAFilePathUtils.cpp */; };
8B328E6D2EA6EB240082009B /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE52EA6EB240082009B /* CAAudioValueRange.h */; };
8B328E6E2EA6EB240082009B /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE62EA6EB240082009B /* CAVectorUnitTypes.h */; };
8B328E6F2EA6EB240082009B /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DE72EA6EB240082009B /* CAAudioChannelLayoutObject.cpp */; };
8B328E702EA6EB240082009B /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DE82EA6EB240082009B /* CAGuard.cpp */; };
8B328E712EA6EB240082009B /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DE92EA6EB240082009B /* CACFNumber.h */; };
8B328E722EA6EB240082009B /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DEA2EA6EB240082009B /* CACFDistributedNotification.cpp */; };
8B328E732EA6EB240082009B /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DEB2EA6EB240082009B /* CACFString.h */; };
8B328E742EA6EB240082009B /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DEC2EA6EB240082009B /* CAAUMIDIMapManager.cpp */; };
8B328E752EA6EB240082009B /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DED2EA6EB240082009B /* CAComponentDescription.cpp */; };
8B328E762EA6EB240082009B /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DEE2EA6EB240082009B /* CAHostTimeBase.h */; };
8B328E772EA6EB240082009B /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DEF2EA6EB240082009B /* CADebugMacros.cpp */; };
8B328E782EA6EB240082009B /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF02EA6EB240082009B /* CAAudioFileFormats.h */; };
8B328E792EA6EB240082009B /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF12EA6EB240082009B /* CAAUMIDIMapManager.h */; };
8B328E7A2EA6EB240082009B /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DF22EA6EB240082009B /* CACFDictionary.cpp */; };
8B328E7B2EA6EB240082009B /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF32EA6EB240082009B /* CAMutex.h */; };
8B328E7C2EA6EB240082009B /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DF42EA6EB240082009B /* CACFString.cpp */; };
8B328E7D2EA6EB240082009B /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF52EA6EB240082009B /* CASettingsStorage.h */; };
8B328E7E2EA6EB240082009B /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF62EA6EB240082009B /* CADebugPrintf.h */; };
8B328E7F2EA6EB240082009B /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DF72EA6EB240082009B /* CAXException.cpp */; };
8B328E802EA6EB240082009B /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF82EA6EB240082009B /* CAAUMIDIMap.h */; };
8B328E812EA6EB240082009B /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DF92EA6EB240082009B /* AUParamInfo.h */; };
8B328E822EA6EB240082009B /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DFA2EA6EB240082009B /* CABitOperations.h */; };
8B328E832EA6EB240082009B /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DFB2EA6EB240082009B /* CACFPreferences.cpp */; };
8B328E842EA6EB240082009B /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DFC2EA6EB240082009B /* CABundleLocker.h */; };
8B328E852EA6EB240082009B /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DFD2EA6EB240082009B /* CAPropertyAddress.h */; };
8B328E862EA6EB240082009B /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328DFE2EA6EB240082009B /* CAXException.h */; };
8B328E872EA6EB240082009B /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328DFF2EA6EB240082009B /* CAAudioChannelLayout.cpp */; };
8B328E882EA6EB240082009B /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E002EA6EB240082009B /* CAThreadSafeList.h */; };
8B328E892EA6EB240082009B /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E012EA6EB240082009B /* CAAudioUnitOutputCapturer.h */; };
8B328E8A2EA6EB240082009B /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E022EA6EB240082009B /* AUParamInfo.cpp */; };
8B328E8B2EA6EB240082009B /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E032EA6EB240082009B /* CASharedLibrary.cpp */; };
8B328E8C2EA6EB240082009B /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E042EA6EB240082009B /* CAAUMIDIMap.cpp */; };
8B328E8D2EA6EB240082009B /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E052EA6EB240082009B /* CALogMacros.h */; };
8B328E8E2EA6EB240082009B /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E062EA6EB240082009B /* CACFMessagePort.cpp */; };
8B328E8F2EA6EB240082009B /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E072EA6EB240082009B /* CARingBuffer.h */; };
8B328E902EA6EB240082009B /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E082EA6EB240082009B /* AUOutputBL.cpp */; };
8B328E912EA6EB240082009B /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E092EA6EB240082009B /* CABufferList.h */; };
8B328E922EA6EB240082009B /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E0A2EA6EB240082009B /* CASharedLibrary.h */; };
8B328E932EA6EB240082009B /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E0B2EA6EB240082009B /* CACFData.h */; };
8B328E942EA6EB240082009B /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E0C2EA6EB240082009B /* CAStreamRangedDescription.cpp */; };
8B328E952EA6EB240082009B /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E0D2EA6EB240082009B /* CAPThread.cpp */; };
8B328E962EA6EB240082009B /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E0E2EA6EB240082009B /* CAAutoDisposer.h */; };
8B328E972EA6EB240082009B /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E0F2EA6EB240082009B /* CACFPreferences.h */; };
8B328E982EA6EB240082009B /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E102EA6EB240082009B /* CAVectorUnit.cpp */; };
8B328E992EA6EB240082009B /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E112EA6EB240082009B /* CAComponentDescription.h */; };
8B328E9A2EA6EB240082009B /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E122EA6EB240082009B /* CADebugMacros.h */; };
8B328E9B2EA6EB240082009B /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E132EA6EB240082009B /* AUOutputBL.h */; };
8B328E9C2EA6EB240082009B /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E142EA6EB240082009B /* CADebugPrintf.cpp */; };
8B328E9D2EA6EB240082009B /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E152EA6EB240082009B /* CARingBuffer.cpp */; };
8B328E9E2EA6EB240082009B /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E162EA6EB240082009B /* CACFPlugIn.h */; };
8B328E9F2EA6EB240082009B /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E172EA6EB240082009B /* CASettingsStorage.cpp */; };
8B328EA02EA6EB240082009B /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E182EA6EB240082009B /* CAMixMap.h */; };
8B328EA12EA6EB240082009B /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E192EA6EB240082009B /* CACFDistributedNotification.h */; };
8B328EA22EA6EB240082009B /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E1A2EA6EB240082009B /* CAFilePathUtils.h */; };
8B328EA32EA6EB240082009B /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E1B2EA6EB240082009B /* CATink.h */; };
8B328EA42EA6EB240082009B /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E1C2EA6EB240082009B /* CAStreamBasicDescription.cpp */; };
8B328EA52EA6EB240082009B /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E1D2EA6EB240082009B /* CAAudioChannelLayout.h */; };
8B328EA62EA6EB240082009B /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E1E2EA6EB240082009B /* CAProcess.cpp */; };
8B328EA72EA6EB240082009B /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E1F2EA6EB240082009B /* CAHostTimeBase.cpp */; };
8B328EA82EA6EB240082009B /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E202EA6EB240082009B /* CAPersistence.cpp */; };
8B328EA92EA6EB240082009B /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E212EA6EB240082009B /* CAAudioBufferList.cpp */; };
8B328EAA2EA6EB240082009B /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E222EA6EB240082009B /* CAAudioTimeStamp.cpp */; };
8B328EAB2EA6EB240082009B /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E232EA6EB240082009B /* CAVectorUnit.h */; };
8B328EAC2EA6EB240082009B /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E242EA6EB240082009B /* CAByteOrder.h */; };
8B328EAD2EA6EB240082009B /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E252EA6EB240082009B /* CACFArray.h */; };
8B328EAE2EA6EB240082009B /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E262EA6EB240082009B /* CAAtomicStack.h */; };
8B328EAF2EA6EB240082009B /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E272EA6EB240082009B /* CAReferenceCounted.h */; };
8B328EB02EA6EB240082009B /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E282EA6EB240082009B /* CACFMachPort.cpp */; };
8B328EB12EA6EB240082009B /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E292EA6EB240082009B /* CABufferList.cpp */; };
8B328EB22EA6EB240082009B /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E2A2EA6EB240082009B /* CAMutex.cpp */; };
8B328EB32EA6EB240082009B /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E2B2EA6EB240082009B /* CADebugger.cpp */; };
8B328EB42EA6EB240082009B /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E2C2EA6EB240082009B /* CABundleLocker.cpp */; };
8B328EB52EA6EB240082009B /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E2D2EA6EB240082009B /* CAAudioFileFormats.cpp */; };
8B328EB62EA6EB240082009B /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E2E2EA6EB240082009B /* CAMath.h */; };
8B328EB72EA6EB240082009B /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E2F2EA6EB240082009B /* CACFArray.cpp */; };
8B328EB82EA6EB240082009B /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E302EA6EB240082009B /* CACFMessagePort.h */; };
8B328EB92EA6EB240082009B /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E312EA6EB240082009B /* CAAudioValueRange.cpp */; };
8B328EBA2EA6EB240082009B /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E322EA6EB240082009B /* CAAudioUnit.cpp */; };
8B328EBB2EA6EB240082009B /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E362EA6EB240082009B /* AUViewLocalizedStringKeys.h */; };
8B328EBC2EA6EB240082009B /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E382EA6EB240082009B /* ComponentBase.cpp */; };
8B328EBD2EA6EB240082009B /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E392EA6EB240082009B /* AUScopeElement.cpp */; };
8B328EBE2EA6EB240082009B /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E3A2EA6EB240082009B /* ComponentBase.h */; };
8B328EBF2EA6EB240082009B /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E3B2EA6EB240082009B /* AUBase.cpp */; };
8B328EC02EA6EB240082009B /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E3C2EA6EB240082009B /* AUInputElement.h */; };
8B328EC12EA6EB240082009B /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E3D2EA6EB240082009B /* AUBase.h */; };
8B328EC22EA6EB240082009B /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E3E2EA6EB240082009B /* AUPlugInDispatch.h */; };
8B328EC32EA6EB240082009B /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E3F2EA6EB240082009B /* AUDispatch.h */; };
8B328EC42EA6EB240082009B /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E402EA6EB240082009B /* AUOutputElement.cpp */; };
8B328EC62EA6EB240082009B /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E422EA6EB240082009B /* AUPlugInDispatch.cpp */; };
8B328EC72EA6EB240082009B /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E432EA6EB240082009B /* AUOutputElement.h */; };
8B328EC82EA6EB240082009B /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E442EA6EB240082009B /* AUDispatch.cpp */; };
8B328EC92EA6EB240082009B /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E452EA6EB240082009B /* AUScopeElement.h */; };
8B328ECA2EA6EB240082009B /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E462EA6EB240082009B /* AUInputElement.cpp */; };
8B328ECB2EA6EB240082009B /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E482EA6EB240082009B /* AUEffectBase.cpp */; };
8B328ECC2EA6EB240082009B /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E492EA6EB240082009B /* AUEffectBase.h */; };
8B328ECD2EA6EB240082009B /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E4B2EA6EB240082009B /* AUTimestampGenerator.h */; };
8B328ECE2EA6EB240082009B /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E4C2EA6EB240082009B /* AUBaseHelper.cpp */; };
8B328ECF2EA6EB240082009B /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E4D2EA6EB240082009B /* AUSilentTimeout.h */; };
8B328ED02EA6EB240082009B /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E4E2EA6EB240082009B /* AUInputFormatConverter.h */; };
8B328ED12EA6EB240082009B /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E4F2EA6EB240082009B /* AUTimestampGenerator.cpp */; };
8B328ED22EA6EB240082009B /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328E502EA6EB240082009B /* AUBuffer.cpp */; };
8B328ED32EA6EB240082009B /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E512EA6EB240082009B /* AUMIDIDefs.h */; };
8B328ED42EA6EB240082009B /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E522EA6EB240082009B /* AUBuffer.h */; };
8B328ED52EA6EB240082009B /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328E532EA6EB240082009B /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* Density3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Density3.cpp */; };
8BA05A6E0720730100365D66 /* Density3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Density3Version.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 /* Density3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Density3.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B328DCC2EA6EB240082009B /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B328DCD2EA6EB240082009B /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B328DCE2EA6EB240082009B /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B328DCF2EA6EB240082009B /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B328DD02EA6EB240082009B /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B328DD12EA6EB240082009B /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B328DD22EA6EB240082009B /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B328DD32EA6EB240082009B /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B328DD42EA6EB240082009B /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B328DD52EA6EB240082009B /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B328DD62EA6EB240082009B /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B328DD72EA6EB240082009B /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B328DD82EA6EB240082009B /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B328DD92EA6EB240082009B /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B328DDA2EA6EB240082009B /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B328DDB2EA6EB240082009B /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B328DDC2EA6EB240082009B /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B328DDD2EA6EB240082009B /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B328DDE2EA6EB240082009B /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B328DDF2EA6EB240082009B /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B328DE02EA6EB240082009B /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B328DE12EA6EB240082009B /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B328DE22EA6EB240082009B /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B328DE32EA6EB240082009B /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B328DE42EA6EB240082009B /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B328DE52EA6EB240082009B /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B328DE62EA6EB240082009B /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B328DE72EA6EB240082009B /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B328DE82EA6EB240082009B /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B328DE92EA6EB240082009B /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B328DEA2EA6EB240082009B /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B328DEB2EA6EB240082009B /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B328DEC2EA6EB240082009B /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B328DED2EA6EB240082009B /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B328DEE2EA6EB240082009B /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B328DEF2EA6EB240082009B /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B328DF02EA6EB240082009B /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B328DF12EA6EB240082009B /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B328DF22EA6EB240082009B /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B328DF32EA6EB240082009B /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B328DF42EA6EB240082009B /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B328DF52EA6EB240082009B /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B328DF62EA6EB240082009B /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B328DF72EA6EB240082009B /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B328DF82EA6EB240082009B /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B328DF92EA6EB240082009B /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B328DFA2EA6EB240082009B /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B328DFB2EA6EB240082009B /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B328DFC2EA6EB240082009B /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B328DFD2EA6EB240082009B /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B328DFE2EA6EB240082009B /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B328DFF2EA6EB240082009B /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B328E002EA6EB240082009B /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B328E012EA6EB240082009B /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B328E022EA6EB240082009B /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B328E032EA6EB240082009B /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B328E042EA6EB240082009B /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B328E052EA6EB240082009B /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B328E062EA6EB240082009B /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B328E072EA6EB240082009B /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B328E082EA6EB240082009B /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B328E092EA6EB240082009B /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B328E0A2EA6EB240082009B /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B328E0B2EA6EB240082009B /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B328E0C2EA6EB240082009B /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B328E0D2EA6EB240082009B /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B328E0E2EA6EB240082009B /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B328E0F2EA6EB240082009B /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B328E102EA6EB240082009B /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B328E112EA6EB240082009B /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B328E122EA6EB240082009B /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B328E132EA6EB240082009B /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B328E142EA6EB240082009B /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B328E152EA6EB240082009B /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B328E162EA6EB240082009B /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B328E172EA6EB240082009B /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B328E182EA6EB240082009B /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B328E192EA6EB240082009B /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B328E1A2EA6EB240082009B /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B328E1B2EA6EB240082009B /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B328E1C2EA6EB240082009B /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B328E1D2EA6EB240082009B /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B328E1E2EA6EB240082009B /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B328E1F2EA6EB240082009B /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B328E202EA6EB240082009B /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B328E212EA6EB240082009B /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B328E222EA6EB240082009B /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B328E232EA6EB240082009B /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B328E242EA6EB240082009B /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B328E252EA6EB240082009B /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B328E262EA6EB240082009B /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B328E272EA6EB240082009B /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B328E282EA6EB240082009B /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B328E292EA6EB240082009B /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B328E2A2EA6EB240082009B /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B328E2B2EA6EB240082009B /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B328E2C2EA6EB240082009B /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B328E2D2EA6EB240082009B /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B328E2E2EA6EB240082009B /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B328E2F2EA6EB240082009B /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B328E302EA6EB240082009B /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B328E312EA6EB240082009B /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B328E322EA6EB240082009B /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B328E362EA6EB240082009B /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B328E382EA6EB240082009B /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B328E392EA6EB240082009B /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B328E3A2EA6EB240082009B /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B328E3B2EA6EB240082009B /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B328E3C2EA6EB240082009B /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B328E3D2EA6EB240082009B /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B328E3E2EA6EB240082009B /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B328E3F2EA6EB240082009B /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B328E402EA6EB240082009B /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B328E412EA6EB240082009B /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B328E422EA6EB240082009B /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B328E432EA6EB240082009B /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B328E442EA6EB240082009B /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B328E452EA6EB240082009B /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B328E462EA6EB240082009B /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B328E482EA6EB240082009B /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B328E492EA6EB240082009B /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B328E4B2EA6EB240082009B /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B328E4C2EA6EB240082009B /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B328E4D2EA6EB240082009B /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B328E4E2EA6EB240082009B /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B328E4F2EA6EB240082009B /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B328E502EA6EB240082009B /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B328E512EA6EB240082009B /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B328E522EA6EB240082009B /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B328E532EA6EB240082009B /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B328ED62EA6EC4A0082009B /* 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 /* Density3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Density3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Density3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Density3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Density3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Density3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Density3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Density3Version.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 /* Density3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Density3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Density3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Density3.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 /* Density3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Density3;
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 = (
8B328DCA2EA6EB240082009B /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Density3.component */,
);
name = Products;
sourceTree = "<group>";
};
8B328DCA2EA6EB240082009B /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B328DCB2EA6EB240082009B /* PublicUtility */,
8B328E332EA6EB240082009B /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B328DCB2EA6EB240082009B /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B328DCC2EA6EB240082009B /* CAExtAudioFile.h */,
8B328DCD2EA6EB240082009B /* CACFMachPort.h */,
8B328DCE2EA6EB240082009B /* CABool.h */,
8B328DCF2EA6EB240082009B /* CAComponent.cpp */,
8B328DD02EA6EB240082009B /* CADebugger.h */,
8B328DD12EA6EB240082009B /* CACFNumber.cpp */,
8B328DD22EA6EB240082009B /* CAGuard.h */,
8B328DD32EA6EB240082009B /* CAAtomic.h */,
8B328DD42EA6EB240082009B /* CAStreamBasicDescription.h */,
8B328DD52EA6EB240082009B /* CACFObject.h */,
8B328DD62EA6EB240082009B /* CAStreamRangedDescription.h */,
8B328DD72EA6EB240082009B /* CATokenMap.h */,
8B328DD82EA6EB240082009B /* CAComponent.h */,
8B328DD92EA6EB240082009B /* CAAudioBufferList.h */,
8B328DDA2EA6EB240082009B /* CAAudioUnit.h */,
8B328DDB2EA6EB240082009B /* CAAUParameter.h */,
8B328DDC2EA6EB240082009B /* CAException.h */,
8B328DDD2EA6EB240082009B /* CAAUProcessor.cpp */,
8B328DDE2EA6EB240082009B /* CAAUProcessor.h */,
8B328DDF2EA6EB240082009B /* CAProcess.h */,
8B328DE02EA6EB240082009B /* CACFDictionary.h */,
8B328DE12EA6EB240082009B /* CAPThread.h */,
8B328DE22EA6EB240082009B /* CAAUParameter.cpp */,
8B328DE32EA6EB240082009B /* CAAudioTimeStamp.h */,
8B328DE42EA6EB240082009B /* CAFilePathUtils.cpp */,
8B328DE52EA6EB240082009B /* CAAudioValueRange.h */,
8B328DE62EA6EB240082009B /* CAVectorUnitTypes.h */,
8B328DE72EA6EB240082009B /* CAAudioChannelLayoutObject.cpp */,
8B328DE82EA6EB240082009B /* CAGuard.cpp */,
8B328DE92EA6EB240082009B /* CACFNumber.h */,
8B328DEA2EA6EB240082009B /* CACFDistributedNotification.cpp */,
8B328DEB2EA6EB240082009B /* CACFString.h */,
8B328DEC2EA6EB240082009B /* CAAUMIDIMapManager.cpp */,
8B328DED2EA6EB240082009B /* CAComponentDescription.cpp */,
8B328DEE2EA6EB240082009B /* CAHostTimeBase.h */,
8B328DEF2EA6EB240082009B /* CADebugMacros.cpp */,
8B328DF02EA6EB240082009B /* CAAudioFileFormats.h */,
8B328DF12EA6EB240082009B /* CAAUMIDIMapManager.h */,
8B328DF22EA6EB240082009B /* CACFDictionary.cpp */,
8B328DF32EA6EB240082009B /* CAMutex.h */,
8B328DF42EA6EB240082009B /* CACFString.cpp */,
8B328DF52EA6EB240082009B /* CASettingsStorage.h */,
8B328DF62EA6EB240082009B /* CADebugPrintf.h */,
8B328DF72EA6EB240082009B /* CAXException.cpp */,
8B328DF82EA6EB240082009B /* CAAUMIDIMap.h */,
8B328DF92EA6EB240082009B /* AUParamInfo.h */,
8B328DFA2EA6EB240082009B /* CABitOperations.h */,
8B328DFB2EA6EB240082009B /* CACFPreferences.cpp */,
8B328DFC2EA6EB240082009B /* CABundleLocker.h */,
8B328DFD2EA6EB240082009B /* CAPropertyAddress.h */,
8B328DFE2EA6EB240082009B /* CAXException.h */,
8B328DFF2EA6EB240082009B /* CAAudioChannelLayout.cpp */,
8B328E002EA6EB240082009B /* CAThreadSafeList.h */,
8B328E012EA6EB240082009B /* CAAudioUnitOutputCapturer.h */,
8B328E022EA6EB240082009B /* AUParamInfo.cpp */,
8B328E032EA6EB240082009B /* CASharedLibrary.cpp */,
8B328E042EA6EB240082009B /* CAAUMIDIMap.cpp */,
8B328E052EA6EB240082009B /* CALogMacros.h */,
8B328E062EA6EB240082009B /* CACFMessagePort.cpp */,
8B328E072EA6EB240082009B /* CARingBuffer.h */,
8B328E082EA6EB240082009B /* AUOutputBL.cpp */,
8B328E092EA6EB240082009B /* CABufferList.h */,
8B328E0A2EA6EB240082009B /* CASharedLibrary.h */,
8B328E0B2EA6EB240082009B /* CACFData.h */,
8B328E0C2EA6EB240082009B /* CAStreamRangedDescription.cpp */,
8B328E0D2EA6EB240082009B /* CAPThread.cpp */,
8B328E0E2EA6EB240082009B /* CAAutoDisposer.h */,
8B328E0F2EA6EB240082009B /* CACFPreferences.h */,
8B328E102EA6EB240082009B /* CAVectorUnit.cpp */,
8B328E112EA6EB240082009B /* CAComponentDescription.h */,
8B328E122EA6EB240082009B /* CADebugMacros.h */,
8B328E132EA6EB240082009B /* AUOutputBL.h */,
8B328E142EA6EB240082009B /* CADebugPrintf.cpp */,
8B328E152EA6EB240082009B /* CARingBuffer.cpp */,
8B328E162EA6EB240082009B /* CACFPlugIn.h */,
8B328E172EA6EB240082009B /* CASettingsStorage.cpp */,
8B328E182EA6EB240082009B /* CAMixMap.h */,
8B328E192EA6EB240082009B /* CACFDistributedNotification.h */,
8B328E1A2EA6EB240082009B /* CAFilePathUtils.h */,
8B328E1B2EA6EB240082009B /* CATink.h */,
8B328E1C2EA6EB240082009B /* CAStreamBasicDescription.cpp */,
8B328E1D2EA6EB240082009B /* CAAudioChannelLayout.h */,
8B328E1E2EA6EB240082009B /* CAProcess.cpp */,
8B328E1F2EA6EB240082009B /* CAHostTimeBase.cpp */,
8B328E202EA6EB240082009B /* CAPersistence.cpp */,
8B328E212EA6EB240082009B /* CAAudioBufferList.cpp */,
8B328E222EA6EB240082009B /* CAAudioTimeStamp.cpp */,
8B328E232EA6EB240082009B /* CAVectorUnit.h */,
8B328E242EA6EB240082009B /* CAByteOrder.h */,
8B328E252EA6EB240082009B /* CACFArray.h */,
8B328E262EA6EB240082009B /* CAAtomicStack.h */,
8B328E272EA6EB240082009B /* CAReferenceCounted.h */,
8B328E282EA6EB240082009B /* CACFMachPort.cpp */,
8B328E292EA6EB240082009B /* CABufferList.cpp */,
8B328E2A2EA6EB240082009B /* CAMutex.cpp */,
8B328E2B2EA6EB240082009B /* CADebugger.cpp */,
8B328E2C2EA6EB240082009B /* CABundleLocker.cpp */,
8B328E2D2EA6EB240082009B /* CAAudioFileFormats.cpp */,
8B328E2E2EA6EB240082009B /* CAMath.h */,
8B328E2F2EA6EB240082009B /* CACFArray.cpp */,
8B328E302EA6EB240082009B /* CACFMessagePort.h */,
8B328E312EA6EB240082009B /* CAAudioValueRange.cpp */,
8B328E322EA6EB240082009B /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B328E332EA6EB240082009B /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B328E342EA6EB240082009B /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B328E342EA6EB240082009B /* AUPublic */ = {
isa = PBXGroup;
children = (
8B328E352EA6EB240082009B /* AUViewBase */,
8B328E372EA6EB240082009B /* AUBase */,
8B328E472EA6EB240082009B /* OtherBases */,
8B328E4A2EA6EB240082009B /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B328E352EA6EB240082009B /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B328E362EA6EB240082009B /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B328E372EA6EB240082009B /* AUBase */ = {
isa = PBXGroup;
children = (
8B328E382EA6EB240082009B /* ComponentBase.cpp */,
8B328E392EA6EB240082009B /* AUScopeElement.cpp */,
8B328E3A2EA6EB240082009B /* ComponentBase.h */,
8B328E3B2EA6EB240082009B /* AUBase.cpp */,
8B328E3C2EA6EB240082009B /* AUInputElement.h */,
8B328E3D2EA6EB240082009B /* AUBase.h */,
8B328E3E2EA6EB240082009B /* AUPlugInDispatch.h */,
8B328E3F2EA6EB240082009B /* AUDispatch.h */,
8B328E402EA6EB240082009B /* AUOutputElement.cpp */,
8B328E412EA6EB240082009B /* AUResources.r */,
8B328E422EA6EB240082009B /* AUPlugInDispatch.cpp */,
8B328E432EA6EB240082009B /* AUOutputElement.h */,
8B328E442EA6EB240082009B /* AUDispatch.cpp */,
8B328E452EA6EB240082009B /* AUScopeElement.h */,
8B328E462EA6EB240082009B /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B328E472EA6EB240082009B /* OtherBases */ = {
isa = PBXGroup;
children = (
8B328E482EA6EB240082009B /* AUEffectBase.cpp */,
8B328E492EA6EB240082009B /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B328E4A2EA6EB240082009B /* Utility */ = {
isa = PBXGroup;
children = (
8B328E4B2EA6EB240082009B /* AUTimestampGenerator.h */,
8B328E4C2EA6EB240082009B /* AUBaseHelper.cpp */,
8B328E4D2EA6EB240082009B /* AUSilentTimeout.h */,
8B328E4E2EA6EB240082009B /* AUInputFormatConverter.h */,
8B328E4F2EA6EB240082009B /* AUTimestampGenerator.cpp */,
8B328E502EA6EB240082009B /* AUBuffer.cpp */,
8B328E512EA6EB240082009B /* AUMIDIDefs.h */,
8B328E522EA6EB240082009B /* AUBuffer.h */,
8B328E532EA6EB240082009B /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Density3.h */,
8BA05A660720730100365D66 /* Density3.cpp */,
8BA05A670720730100365D66 /* Density3.exp */,
8BA05A680720730100365D66 /* Density3.r */,
8BA05A690720730100365D66 /* Density3Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B328E842EA6EB240082009B /* CABundleLocker.h in Headers */,
8B328EA52EA6EB240082009B /* CAAudioChannelLayout.h in Headers */,
8B328E9B2EA6EB240082009B /* AUOutputBL.h in Headers */,
8B328E762EA6EB240082009B /* CAHostTimeBase.h in Headers */,
8B328EBE2EA6EB240082009B /* ComponentBase.h in Headers */,
8B328EAE2EA6EB240082009B /* CAAtomicStack.h in Headers */,
8B328E6B2EA6EB240082009B /* CAAudioTimeStamp.h in Headers */,
8B328E882EA6EB240082009B /* CAThreadSafeList.h in Headers */,
8B328E632EA6EB240082009B /* CAAUParameter.h in Headers */,
8B328ED52EA6EB240082009B /* AUBaseHelper.h in Headers */,
8B328ECD2EA6EB240082009B /* AUTimestampGenerator.h in Headers */,
8B328E7E2EA6EB240082009B /* CADebugPrintf.h in Headers */,
8B328EB82EA6EB240082009B /* CACFMessagePort.h in Headers */,
8B328E662EA6EB240082009B /* CAAUProcessor.h in Headers */,
8B328E622EA6EB240082009B /* CAAudioUnit.h in Headers */,
8B328EBB2EA6EB240082009B /* AUViewLocalizedStringKeys.h in Headers */,
8B328EA12EA6EB240082009B /* CACFDistributedNotification.h in Headers */,
8B328E602EA6EB240082009B /* CAComponent.h in Headers */,
8B328E6E2EA6EB240082009B /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* Density3Version.h in Headers */,
8B328EA22EA6EB240082009B /* CAFilePathUtils.h in Headers */,
8B328E642EA6EB240082009B /* CAException.h in Headers */,
8B328E5B2EA6EB240082009B /* CAAtomic.h in Headers */,
8B328E5A2EA6EB240082009B /* CAGuard.h in Headers */,
8B328EC02EA6EB240082009B /* AUInputElement.h in Headers */,
8B328E972EA6EB240082009B /* CACFPreferences.h in Headers */,
8B328EAC2EA6EB240082009B /* CAByteOrder.h in Headers */,
8B328E8F2EA6EB240082009B /* CARingBuffer.h in Headers */,
8B328E562EA6EB240082009B /* CABool.h in Headers */,
8B328E7B2EA6EB240082009B /* CAMutex.h in Headers */,
8B328EC12EA6EB240082009B /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* Density3.h in Headers */,
8B328E732EA6EB240082009B /* CACFString.h in Headers */,
8B328E922EA6EB240082009B /* CASharedLibrary.h in Headers */,
8B328E5F2EA6EB240082009B /* CATokenMap.h in Headers */,
8B328E542EA6EB240082009B /* CAExtAudioFile.h in Headers */,
8B328E692EA6EB240082009B /* CAPThread.h in Headers */,
8B328E852EA6EB240082009B /* CAPropertyAddress.h in Headers */,
8B328EAF2EA6EB240082009B /* CAReferenceCounted.h in Headers */,
8B328ED42EA6EB240082009B /* AUBuffer.h in Headers */,
8B328EB62EA6EB240082009B /* CAMath.h in Headers */,
8B328E962EA6EB240082009B /* CAAutoDisposer.h in Headers */,
8B328E5D2EA6EB240082009B /* CACFObject.h in Headers */,
8B328E7D2EA6EB240082009B /* CASettingsStorage.h in Headers */,
8B328E862EA6EB240082009B /* CAXException.h in Headers */,
8B328EA32EA6EB240082009B /* CATink.h in Headers */,
8B328ED02EA6EB240082009B /* AUInputFormatConverter.h in Headers */,
8B328EAB2EA6EB240082009B /* CAVectorUnit.h in Headers */,
8B328E672EA6EB240082009B /* CAProcess.h in Headers */,
8B328E6D2EA6EB240082009B /* CAAudioValueRange.h in Headers */,
8B328E822EA6EB240082009B /* CABitOperations.h in Headers */,
8B328E782EA6EB240082009B /* CAAudioFileFormats.h in Headers */,
8B328E712EA6EB240082009B /* CACFNumber.h in Headers */,
8B328E892EA6EB240082009B /* CAAudioUnitOutputCapturer.h in Headers */,
8B328E9A2EA6EB240082009B /* CADebugMacros.h in Headers */,
8B328ED32EA6EB240082009B /* AUMIDIDefs.h in Headers */,
8B328E932EA6EB240082009B /* CACFData.h in Headers */,
8B328E5C2EA6EB240082009B /* CAStreamBasicDescription.h in Headers */,
8B328EC22EA6EB240082009B /* AUPlugInDispatch.h in Headers */,
8B328E5E2EA6EB240082009B /* CAStreamRangedDescription.h in Headers */,
8B328E9E2EA6EB240082009B /* CACFPlugIn.h in Headers */,
8B328E612EA6EB240082009B /* CAAudioBufferList.h in Headers */,
8B328E792EA6EB240082009B /* CAAUMIDIMapManager.h in Headers */,
8B328ECC2EA6EB240082009B /* AUEffectBase.h in Headers */,
8B328E682EA6EB240082009B /* CACFDictionary.h in Headers */,
8B328EC92EA6EB240082009B /* AUScopeElement.h in Headers */,
8B328E992EA6EB240082009B /* CAComponentDescription.h in Headers */,
8B328ECF2EA6EB240082009B /* AUSilentTimeout.h in Headers */,
8B328E912EA6EB240082009B /* CABufferList.h in Headers */,
8B328EC32EA6EB240082009B /* AUDispatch.h in Headers */,
8B328EC72EA6EB240082009B /* AUOutputElement.h in Headers */,
8B328E8D2EA6EB240082009B /* CALogMacros.h in Headers */,
8B328E812EA6EB240082009B /* AUParamInfo.h in Headers */,
8B328EA02EA6EB240082009B /* CAMixMap.h in Headers */,
8B328EAD2EA6EB240082009B /* CACFArray.h in Headers */,
8B328E552EA6EB240082009B /* CACFMachPort.h in Headers */,
8B328E802EA6EB240082009B /* CAAUMIDIMap.h in Headers */,
8B328E582EA6EB240082009B /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Density3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Density3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Density3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Density3;
productReference = 8D01CCD20486CAD60068D4B7 /* Density3.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 "Density3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
ja,
en,
fr,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* Density3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Density3 */,
);
};
/* 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 = (
8B328E902EA6EB240082009B /* AUOutputBL.cpp in Sources */,
8B328EB52EA6EB240082009B /* CAAudioFileFormats.cpp in Sources */,
8B328EA72EA6EB240082009B /* CAHostTimeBase.cpp in Sources */,
8B328E7F2EA6EB240082009B /* CAXException.cpp in Sources */,
8B328EA92EA6EB240082009B /* CAAudioBufferList.cpp in Sources */,
8B328E6C2EA6EB240082009B /* CAFilePathUtils.cpp in Sources */,
8B328E6A2EA6EB240082009B /* CAAUParameter.cpp in Sources */,
8B328E8C2EA6EB240082009B /* CAAUMIDIMap.cpp in Sources */,
8B328EB92EA6EB240082009B /* CAAudioValueRange.cpp in Sources */,
8B328EC82EA6EB240082009B /* AUDispatch.cpp in Sources */,
8B328E832EA6EB240082009B /* CACFPreferences.cpp in Sources */,
8B328EC62EA6EB240082009B /* AUPlugInDispatch.cpp in Sources */,
8B328E652EA6EB240082009B /* CAAUProcessor.cpp in Sources */,
8B328E7A2EA6EB240082009B /* CACFDictionary.cpp in Sources */,
8B328ECE2EA6EB240082009B /* AUBaseHelper.cpp in Sources */,
8B328EB32EA6EB240082009B /* CADebugger.cpp in Sources */,
8B328E872EA6EB240082009B /* CAAudioChannelLayout.cpp in Sources */,
8B328E8A2EA6EB240082009B /* AUParamInfo.cpp in Sources */,
8B328EA82EA6EB240082009B /* CAPersistence.cpp in Sources */,
8B328E9C2EA6EB240082009B /* CADebugPrintf.cpp in Sources */,
8B328ED12EA6EB240082009B /* AUTimestampGenerator.cpp in Sources */,
8B328EA42EA6EB240082009B /* CAStreamBasicDescription.cpp in Sources */,
8B328E742EA6EB240082009B /* CAAUMIDIMapManager.cpp in Sources */,
8B328E9F2EA6EB240082009B /* CASettingsStorage.cpp in Sources */,
8B328EC42EA6EB240082009B /* AUOutputElement.cpp in Sources */,
8B328E702EA6EB240082009B /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* Density3.cpp in Sources */,
8B328EB22EA6EB240082009B /* CAMutex.cpp in Sources */,
8B328ECB2EA6EB240082009B /* AUEffectBase.cpp in Sources */,
8B328EB02EA6EB240082009B /* CACFMachPort.cpp in Sources */,
8B328EBF2EA6EB240082009B /* AUBase.cpp in Sources */,
8B328E8B2EA6EB240082009B /* CASharedLibrary.cpp in Sources */,
8B328E722EA6EB240082009B /* CACFDistributedNotification.cpp in Sources */,
8B328E752EA6EB240082009B /* CAComponentDescription.cpp in Sources */,
8B328E7C2EA6EB240082009B /* CACFString.cpp in Sources */,
8B328EBC2EA6EB240082009B /* ComponentBase.cpp in Sources */,
8B328E9D2EA6EB240082009B /* CARingBuffer.cpp in Sources */,
8B328EBD2EA6EB240082009B /* AUScopeElement.cpp in Sources */,
8B328EBA2EA6EB240082009B /* CAAudioUnit.cpp in Sources */,
8B328EB72EA6EB240082009B /* CACFArray.cpp in Sources */,
8B328EB42EA6EB240082009B /* CABundleLocker.cpp in Sources */,
8B328EA62EA6EB240082009B /* CAProcess.cpp in Sources */,
8B328E942EA6EB240082009B /* CAStreamRangedDescription.cpp in Sources */,
8B328E952EA6EB240082009B /* CAPThread.cpp in Sources */,
8B328E572EA6EB240082009B /* CAComponent.cpp in Sources */,
8B328E6F2EA6EB240082009B /* CAAudioChannelLayoutObject.cpp in Sources */,
8B328EAA2EA6EB240082009B /* CAAudioTimeStamp.cpp in Sources */,
8B328EB12EA6EB240082009B /* CABufferList.cpp in Sources */,
8B328E8E2EA6EB240082009B /* CACFMessagePort.cpp in Sources */,
8B328E982EA6EB240082009B /* CAVectorUnit.cpp in Sources */,
8B328ECA2EA6EB240082009B /* AUInputElement.cpp in Sources */,
8B328ED22EA6EB240082009B /* AUBuffer.cpp in Sources */,
8B328E772EA6EB240082009B /* CADebugMacros.cpp in Sources */,
8B328E592EA6EB240082009B /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B328ED62EA6EC4A0082009B /* 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 = Density3.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 = Density3;
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 = Density3.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 = Density3;
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 "Density3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Density3" */ = {
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 = "Density3.component"
BlueprintName = "Density3"
ReferencedContainer = "container:Density3.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 = "Density3.component"
BlueprintName = "Density3"
ReferencedContainer = "container:Density3.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>Density3.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: Density3Version.h
*
* Version: 1.0
*
* Created: 10/11/25
*
* Copyright: Copyright © 2025 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 __Density3Version_h__
#define __Density3Version_h__
#ifdef DEBUG
#define kDensity3Version 0xFFFFFFFF
#else
#define kDensity3Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Density3_COMP_MANF 'Dthr'
#define Density3_COMP_SUBTYPE 'den3'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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>den3</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

Binary file not shown.

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,393 @@
/*
* File: HipCrush.cpp
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
HipCrush.cpp
=============================================================================*/
#include "HipCrush.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, HipCrush)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrush
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
HipCrush::HipCrush(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_TRF, kDefaultValue_ParamTRF );
SetParameter(kParam_TRG, kDefaultValue_ParamTRG );
SetParameter(kParam_TRB, kDefaultValue_ParamTRB );
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
SetParameter(kParam_HMB, kDefaultValue_ParamHMB );
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
SetParameter(kParam_LMB, kDefaultValue_ParamLMB );
SetParameter(kParam_DW, kDefaultValue_ParamDW );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_TRF:
AUBase::FillInParameterName (outParameterInfo, kParameterTRFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("High");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRF;
break;
case kParam_TRG:
AUBase::FillInParameterName (outParameterInfo, kParameterTRGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRG;
break;
case kParam_TRB:
AUBase::FillInParameterName (outParameterInfo, kParameterTRBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamTRB;
break;
case kParam_HMF:
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Mid");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
break;
case kParam_HMG:
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
break;
case kParam_HMB:
AUBase::FillInParameterName (outParameterInfo, kParameterHMBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamHMB;
break;
case kParam_LMF:
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Low");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
break;
case kParam_LMG:
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
break;
case kParam_LMB:
AUBase::FillInParameterName (outParameterInfo, kParameterLMBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamLMB;
break;
case kParam_DW:
AUBase::FillInParameterName (outParameterInfo, kParameterDWName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
outParameterInfo.unitName = CFSTR("Wet");
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamDW;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// HipCrush::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult HipCrush::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____HipCrushEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrushKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void HipCrush::HipCrushKernel::Reset()
{
for (int x = 0; x < biqs_total; x++) {
high[x] = 0.0;
hmid[x] = 0.0;
lmid[x] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// HipCrush::HipCrushKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void HipCrush::HipCrushKernel::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();
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),3)*16000.0)+1000.0)/GetSampleRate());
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
double K = tan(M_PI * high[biqs_freq]);
double norm = 1.0 / (1.0 + K / (high[biqs_reso]*0.618033988749894848204586) + K * K);
high[biqs_a0] = K / (high[biqs_reso]*0.618033988749894848204586) * norm;
high[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_b2] = (1.0 - K / (high[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (high[biqs_reso]*1.618033988749894848204586) + K * K);
high[biqs_c0] = K / (high[biqs_reso]*1.618033988749894848204586) * norm;
high[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
high[biqs_d2] = (1.0 - K / (high[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//high
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3)*7000.0)+300.0)/GetSampleRate());
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
K = tan(M_PI * hmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K);
hmid[biqs_a0] = K / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
hmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_b2] = (1.0 - K / (hmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K);
hmid[biqs_c0] = K / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
hmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
hmid[biqs_d2] = (1.0 - K / (hmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//hmid
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3)*3000.0)+20.0)/GetSampleRate());
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
K = tan(M_PI * lmid[biqs_freq]);
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K);
lmid[biqs_a0] = K / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
lmid[biqs_b1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_b2] = (1.0 - K / (lmid[biqs_reso]*0.618033988749894848204586) + K * K) * norm;
norm = 1.0 / (1.0 + K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K);
lmid[biqs_c0] = K / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
lmid[biqs_d1] = 2.0 * (K * K - 1.0) * norm;
lmid[biqs_d2] = (1.0 - K / (lmid[biqs_reso]*1.618033988749894848204586) + K * K) * norm;
//lmid
double wet = GetParameter( kParam_DW );
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
//begin Stacked Biquad With Reversed Neutron Flow L
high[biqs_outL] = inputSample * fabs(high[biqs_level]);
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
high[biqs_outL] = high[biqs_temp];
if (high[biqs_bit] != 0.0) {
double bitFactor = high[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
high[biqs_outL] *= bitFactor;
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
high[biqs_outL] /= bitFactor;
}
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
high[biqs_outL] = high[biqs_temp];
high[biqs_outL] *= high[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
hmid[biqs_outL] = inputSample * fabs(hmid[biqs_level]);
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
hmid[biqs_outL] = hmid[biqs_temp];
if (hmid[biqs_bit] != 0.0) {
double bitFactor = hmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
hmid[biqs_outL] *= bitFactor;
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
hmid[biqs_outL] /= bitFactor;
}
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
hmid[biqs_outL] = hmid[biqs_temp];
hmid[biqs_outL] *= hmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
//begin Stacked Biquad With Reversed Neutron Flow L
lmid[biqs_outL] = inputSample * fabs(lmid[biqs_level]);
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
lmid[biqs_outL] = lmid[biqs_temp];
if (lmid[biqs_bit] != 0.0) {
double bitFactor = lmid[biqs_bit];
bool crushGate = (bitFactor < 0.0);
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
lmid[biqs_outL] *= bitFactor;
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
lmid[biqs_outL] /= bitFactor;
}
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
lmid[biqs_outL] = lmid[biqs_temp];
lmid[biqs_outL] *= lmid[biqs_level];
//end Stacked Biquad With Reversed Neutron Flow L
double parametric = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL];
inputSample = (drySample * (1.0-wet)) + (parametric * wet);
//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 @@
_HipCrushEntry
_HipCrushFactory

View file

@ -0,0 +1,175 @@
/*
* File: HipCrush.h
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 "HipCrushVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __HipCrush_h__
#define __HipCrush_h__
#pragma mark ____HipCrush Parameters
// parameters
static const float kDefaultValue_ParamTRF = 0.5;
static const float kDefaultValue_ParamTRG = 0.0;
static const float kDefaultValue_ParamTRB = 0.5;
static const float kDefaultValue_ParamHMF = 0.5;
static const float kDefaultValue_ParamHMG = 0.0;
static const float kDefaultValue_ParamHMB = 0.5;
static const float kDefaultValue_ParamLMF = 0.5;
static const float kDefaultValue_ParamLMG = 0.0;
static const float kDefaultValue_ParamLMB = 0.5;
static const float kDefaultValue_ParamDW = 1.0;
static CFStringRef kParameterTRFName = CFSTR("Hi Freq");
static CFStringRef kParameterTRGName = CFSTR("High");
static CFStringRef kParameterTRBName = CFSTR("HiCrush");
static CFStringRef kParameterHMFName = CFSTR("MidFreq");
static CFStringRef kParameterHMGName = CFSTR("Mid");
static CFStringRef kParameterHMBName = CFSTR("MdCrush");
static CFStringRef kParameterLMFName = CFSTR("Lo Freq");
static CFStringRef kParameterLMGName = CFSTR("Low");
static CFStringRef kParameterLMBName = CFSTR("LoCrush");
static CFStringRef kParameterDWName = CFSTR("Dry/Wet");
enum {
kParam_TRF =0,
kParam_TRG =1,
kParam_TRB =2,
kParam_HMF =3,
kParam_HMG =4,
kParam_HMB =5,
kParam_LMF =6,
kParam_LMG =7,
kParam_LMB =8,
kParam_DW = 9,
//Add your parameters here...
kNumberOfParameters=10
};
#pragma mark ____HipCrush
class HipCrush : public AUEffectBase
{
public:
HipCrush(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~HipCrush () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new HipCrushKernel(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 kHipCrushVersion; }
protected:
class HipCrushKernel : public AUKernelBase // most of the real work happens here
{
public:
HipCrushKernel(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 {
biqs_freq, biqs_reso, biqs_level,
biqs_temp, biqs_bit,
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
biqs_outL, biqs_outR, biqs_total
};
double high[biqs_total];
double hmid[biqs_total];
double lmid[biqs_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: HipCrush.r
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 "HipCrushVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_HipCrush 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HipCrush~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_HipCrush
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE HipCrush_COMP_SUBTYPE
#define COMP_MANUF HipCrush_COMP_MANF
#define VERSION kHipCrushVersion
#define NAME "Airwindows: HipCrush"
#define DESCRIPTION "HipCrush AU"
#define ENTRY_POINT "HipCrushEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,153 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* HipCrush */;
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 = 782941073;
PBXWorkspaceStateSaveDate = 782941073;
};
perUserProjectItems = {
8B55FE142EAA8FF500EF0881 /* PlistBookmark */ = 8B55FE142EAA8FF500EF0881 /* PlistBookmark */;
8B55FE792EAAA49900EF0881 /* PBXTextBookmark */ = 8B55FE792EAAA49900EF0881 /* PBXTextBookmark */;
8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */ = 8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */;
8B55FF472EAACBCD00EF0881 /* PBXBookmark */ = 8B55FF472EAACBCD00EF0881 /* PBXBookmark */;
8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */ = 8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B55FE142EAA8FF500EF0881 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/HipCrush/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B55FE792EAAA49900EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* HipCrushVersion.h */;
name = "HipCrushVersion.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 455;
vrLoc = 0;
};
8B55FF462EAACBCD00EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* HipCrush.h */;
name = "HipCrush.h: 157";
rLen = 0;
rLoc = 6162;
rType = 0;
vrLen = 289;
vrLoc = 6074;
};
8B55FF472EAACBCD00EF0881 /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BA05A660720730100365D66 /* HipCrush.cpp */;
};
8B55FF482EAACBCD00EF0881 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* HipCrush.cpp */;
name = "HipCrush.cpp: 293";
rLen = 0;
rLoc = 14324;
rType = 0;
vrLen = 679;
vrLoc = 13967;
};
8BA05A660720730100365D66 /* HipCrush.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {876, 6966}}";
sepNavSelRange = "{14324, 0}";
sepNavVisRange = "{13967, 679}";
sepNavWindowFrame = "{{351, 83}, {1089, 795}}";
};
};
8BA05A690720730100365D66 /* HipCrushVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{862, 2101}";
sepNavWindowFrame = "{{347, 47}, {1093, 831}}";
};
};
8BC6025B073B072D006C4272 /* HipCrush.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 3150}}";
sepNavSelRange = "{6088, 0}";
sepNavVisRange = "{2600, 1282}";
sepNavWindowFrame = "{{851, 47}, {1093, 831}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* HipCrush */ = {
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 */
8B62487C2EAAF4220013AB58 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247F42EAAF4220013AB58 /* CAExtAudioFile.h */; };
8B62487D2EAAF4220013AB58 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247F52EAAF4220013AB58 /* CACFMachPort.h */; };
8B62487E2EAAF4220013AB58 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247F62EAAF4220013AB58 /* CABool.h */; };
8B62487F2EAAF4220013AB58 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6247F72EAAF4220013AB58 /* CAComponent.cpp */; };
8B6248802EAAF4220013AB58 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247F82EAAF4220013AB58 /* CADebugger.h */; };
8B6248812EAAF4220013AB58 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6247F92EAAF4220013AB58 /* CACFNumber.cpp */; };
8B6248822EAAF4220013AB58 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FA2EAAF4220013AB58 /* CAGuard.h */; };
8B6248832EAAF4220013AB58 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FB2EAAF4220013AB58 /* CAAtomic.h */; };
8B6248842EAAF4220013AB58 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FC2EAAF4220013AB58 /* CAStreamBasicDescription.h */; };
8B6248852EAAF4220013AB58 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FD2EAAF4220013AB58 /* CACFObject.h */; };
8B6248862EAAF4220013AB58 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FE2EAAF4220013AB58 /* CAStreamRangedDescription.h */; };
8B6248872EAAF4220013AB58 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6247FF2EAAF4220013AB58 /* CATokenMap.h */; };
8B6248882EAAF4220013AB58 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248002EAAF4220013AB58 /* CAComponent.h */; };
8B6248892EAAF4220013AB58 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248012EAAF4220013AB58 /* CAAudioBufferList.h */; };
8B62488A2EAAF4220013AB58 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248022EAAF4220013AB58 /* CAAudioUnit.h */; };
8B62488B2EAAF4220013AB58 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248032EAAF4220013AB58 /* CAAUParameter.h */; };
8B62488C2EAAF4220013AB58 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248042EAAF4220013AB58 /* CAException.h */; };
8B62488D2EAAF4220013AB58 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248052EAAF4220013AB58 /* CAAUProcessor.cpp */; };
8B62488E2EAAF4220013AB58 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248062EAAF4220013AB58 /* CAAUProcessor.h */; };
8B62488F2EAAF4220013AB58 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248072EAAF4220013AB58 /* CAProcess.h */; };
8B6248902EAAF4220013AB58 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248082EAAF4220013AB58 /* CACFDictionary.h */; };
8B6248912EAAF4220013AB58 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248092EAAF4220013AB58 /* CAPThread.h */; };
8B6248922EAAF4220013AB58 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62480A2EAAF4220013AB58 /* CAAUParameter.cpp */; };
8B6248932EAAF4220013AB58 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62480B2EAAF4220013AB58 /* CAAudioTimeStamp.h */; };
8B6248942EAAF4220013AB58 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62480C2EAAF4220013AB58 /* CAFilePathUtils.cpp */; };
8B6248952EAAF4220013AB58 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62480D2EAAF4220013AB58 /* CAAudioValueRange.h */; };
8B6248962EAAF4220013AB58 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62480E2EAAF4220013AB58 /* CAVectorUnitTypes.h */; };
8B6248972EAAF4220013AB58 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62480F2EAAF4220013AB58 /* CAAudioChannelLayoutObject.cpp */; };
8B6248982EAAF4220013AB58 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248102EAAF4220013AB58 /* CAGuard.cpp */; };
8B6248992EAAF4220013AB58 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248112EAAF4220013AB58 /* CACFNumber.h */; };
8B62489A2EAAF4220013AB58 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248122EAAF4220013AB58 /* CACFDistributedNotification.cpp */; };
8B62489B2EAAF4230013AB58 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248132EAAF4220013AB58 /* CACFString.h */; };
8B62489C2EAAF4230013AB58 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248142EAAF4220013AB58 /* CAAUMIDIMapManager.cpp */; };
8B62489D2EAAF4230013AB58 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248152EAAF4220013AB58 /* CAComponentDescription.cpp */; };
8B62489E2EAAF4230013AB58 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248162EAAF4220013AB58 /* CAHostTimeBase.h */; };
8B62489F2EAAF4230013AB58 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248172EAAF4220013AB58 /* CADebugMacros.cpp */; };
8B6248A02EAAF4230013AB58 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248182EAAF4220013AB58 /* CAAudioFileFormats.h */; };
8B6248A12EAAF4230013AB58 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248192EAAF4220013AB58 /* CAAUMIDIMapManager.h */; };
8B6248A22EAAF4230013AB58 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62481A2EAAF4220013AB58 /* CACFDictionary.cpp */; };
8B6248A32EAAF4230013AB58 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62481B2EAAF4220013AB58 /* CAMutex.h */; };
8B6248A42EAAF4230013AB58 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62481C2EAAF4220013AB58 /* CACFString.cpp */; };
8B6248A52EAAF4230013AB58 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62481D2EAAF4220013AB58 /* CASettingsStorage.h */; };
8B6248A62EAAF4230013AB58 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62481E2EAAF4220013AB58 /* CADebugPrintf.h */; };
8B6248A72EAAF4230013AB58 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62481F2EAAF4220013AB58 /* CAXException.cpp */; };
8B6248A82EAAF4230013AB58 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248202EAAF4220013AB58 /* CAAUMIDIMap.h */; };
8B6248A92EAAF4230013AB58 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248212EAAF4220013AB58 /* AUParamInfo.h */; };
8B6248AA2EAAF4230013AB58 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248222EAAF4220013AB58 /* CABitOperations.h */; };
8B6248AB2EAAF4230013AB58 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248232EAAF4220013AB58 /* CACFPreferences.cpp */; };
8B6248AC2EAAF4230013AB58 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248242EAAF4220013AB58 /* CABundleLocker.h */; };
8B6248AD2EAAF4230013AB58 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248252EAAF4220013AB58 /* CAPropertyAddress.h */; };
8B6248AE2EAAF4230013AB58 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248262EAAF4220013AB58 /* CAXException.h */; };
8B6248AF2EAAF4230013AB58 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248272EAAF4220013AB58 /* CAAudioChannelLayout.cpp */; };
8B6248B02EAAF4230013AB58 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248282EAAF4220013AB58 /* CAThreadSafeList.h */; };
8B6248B12EAAF4230013AB58 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248292EAAF4220013AB58 /* CAAudioUnitOutputCapturer.h */; };
8B6248B22EAAF4230013AB58 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62482A2EAAF4220013AB58 /* AUParamInfo.cpp */; };
8B6248B32EAAF4230013AB58 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62482B2EAAF4220013AB58 /* CASharedLibrary.cpp */; };
8B6248B42EAAF4230013AB58 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62482C2EAAF4220013AB58 /* CAAUMIDIMap.cpp */; };
8B6248B52EAAF4230013AB58 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62482D2EAAF4220013AB58 /* CALogMacros.h */; };
8B6248B62EAAF4230013AB58 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62482E2EAAF4220013AB58 /* CACFMessagePort.cpp */; };
8B6248B72EAAF4230013AB58 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62482F2EAAF4220013AB58 /* CARingBuffer.h */; };
8B6248B82EAAF4230013AB58 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248302EAAF4220013AB58 /* AUOutputBL.cpp */; };
8B6248B92EAAF4230013AB58 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248312EAAF4220013AB58 /* CABufferList.h */; };
8B6248BA2EAAF4230013AB58 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248322EAAF4220013AB58 /* CASharedLibrary.h */; };
8B6248BB2EAAF4230013AB58 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248332EAAF4220013AB58 /* CACFData.h */; };
8B6248BC2EAAF4230013AB58 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248342EAAF4220013AB58 /* CAStreamRangedDescription.cpp */; };
8B6248BD2EAAF4230013AB58 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248352EAAF4220013AB58 /* CAPThread.cpp */; };
8B6248BE2EAAF4230013AB58 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248362EAAF4220013AB58 /* CAAutoDisposer.h */; };
8B6248BF2EAAF4230013AB58 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248372EAAF4220013AB58 /* CACFPreferences.h */; };
8B6248C02EAAF4230013AB58 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248382EAAF4220013AB58 /* CAVectorUnit.cpp */; };
8B6248C12EAAF4230013AB58 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248392EAAF4220013AB58 /* CAComponentDescription.h */; };
8B6248C22EAAF4230013AB58 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62483A2EAAF4220013AB58 /* CADebugMacros.h */; };
8B6248C32EAAF4230013AB58 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62483B2EAAF4220013AB58 /* AUOutputBL.h */; };
8B6248C42EAAF4230013AB58 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62483C2EAAF4220013AB58 /* CADebugPrintf.cpp */; };
8B6248C52EAAF4230013AB58 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62483D2EAAF4220013AB58 /* CARingBuffer.cpp */; };
8B6248C62EAAF4230013AB58 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62483E2EAAF4220013AB58 /* CACFPlugIn.h */; };
8B6248C72EAAF4230013AB58 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62483F2EAAF4220013AB58 /* CASettingsStorage.cpp */; };
8B6248C82EAAF4230013AB58 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248402EAAF4220013AB58 /* CAMixMap.h */; };
8B6248C92EAAF4230013AB58 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248412EAAF4220013AB58 /* CACFDistributedNotification.h */; };
8B6248CA2EAAF4230013AB58 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248422EAAF4220013AB58 /* CAFilePathUtils.h */; };
8B6248CB2EAAF4230013AB58 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248432EAAF4220013AB58 /* CATink.h */; };
8B6248CC2EAAF4230013AB58 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248442EAAF4220013AB58 /* CAStreamBasicDescription.cpp */; };
8B6248CD2EAAF4230013AB58 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248452EAAF4220013AB58 /* CAAudioChannelLayout.h */; };
8B6248CE2EAAF4230013AB58 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248462EAAF4220013AB58 /* CAProcess.cpp */; };
8B6248CF2EAAF4230013AB58 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248472EAAF4220013AB58 /* CAHostTimeBase.cpp */; };
8B6248D02EAAF4230013AB58 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248482EAAF4220013AB58 /* CAPersistence.cpp */; };
8B6248D12EAAF4230013AB58 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248492EAAF4220013AB58 /* CAAudioBufferList.cpp */; };
8B6248D22EAAF4230013AB58 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62484A2EAAF4220013AB58 /* CAAudioTimeStamp.cpp */; };
8B6248D32EAAF4230013AB58 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62484B2EAAF4220013AB58 /* CAVectorUnit.h */; };
8B6248D42EAAF4230013AB58 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62484C2EAAF4220013AB58 /* CAByteOrder.h */; };
8B6248D52EAAF4230013AB58 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62484D2EAAF4220013AB58 /* CACFArray.h */; };
8B6248D62EAAF4230013AB58 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62484E2EAAF4220013AB58 /* CAAtomicStack.h */; };
8B6248D72EAAF4230013AB58 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62484F2EAAF4220013AB58 /* CAReferenceCounted.h */; };
8B6248D82EAAF4230013AB58 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248502EAAF4220013AB58 /* CACFMachPort.cpp */; };
8B6248D92EAAF4230013AB58 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248512EAAF4220013AB58 /* CABufferList.cpp */; };
8B6248DA2EAAF4230013AB58 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248522EAAF4220013AB58 /* CAMutex.cpp */; };
8B6248DB2EAAF4230013AB58 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248532EAAF4220013AB58 /* CADebugger.cpp */; };
8B6248DC2EAAF4230013AB58 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248542EAAF4220013AB58 /* CABundleLocker.cpp */; };
8B6248DD2EAAF4230013AB58 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248552EAAF4220013AB58 /* CAAudioFileFormats.cpp */; };
8B6248DE2EAAF4230013AB58 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248562EAAF4220013AB58 /* CAMath.h */; };
8B6248DF2EAAF4230013AB58 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248572EAAF4220013AB58 /* CACFArray.cpp */; };
8B6248E02EAAF4230013AB58 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248582EAAF4220013AB58 /* CACFMessagePort.h */; };
8B6248E12EAAF4230013AB58 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248592EAAF4220013AB58 /* CAAudioValueRange.cpp */; };
8B6248E22EAAF4230013AB58 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62485A2EAAF4220013AB58 /* CAAudioUnit.cpp */; };
8B6248E32EAAF4230013AB58 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62485E2EAAF4220013AB58 /* AUViewLocalizedStringKeys.h */; };
8B6248E42EAAF4230013AB58 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248602EAAF4220013AB58 /* ComponentBase.cpp */; };
8B6248E52EAAF4230013AB58 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248612EAAF4220013AB58 /* AUScopeElement.cpp */; };
8B6248E62EAAF4230013AB58 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248622EAAF4220013AB58 /* ComponentBase.h */; };
8B6248E72EAAF4230013AB58 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248632EAAF4220013AB58 /* AUBase.cpp */; };
8B6248E82EAAF4230013AB58 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248642EAAF4220013AB58 /* AUInputElement.h */; };
8B6248E92EAAF4230013AB58 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248652EAAF4220013AB58 /* AUBase.h */; };
8B6248EA2EAAF4230013AB58 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248662EAAF4220013AB58 /* AUPlugInDispatch.h */; };
8B6248EB2EAAF4230013AB58 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248672EAAF4220013AB58 /* AUDispatch.h */; };
8B6248EC2EAAF4230013AB58 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248682EAAF4220013AB58 /* AUOutputElement.cpp */; };
8B6248EE2EAAF4230013AB58 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62486A2EAAF4220013AB58 /* AUPlugInDispatch.cpp */; };
8B6248EF2EAAF4230013AB58 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62486B2EAAF4220013AB58 /* AUOutputElement.h */; };
8B6248F02EAAF4230013AB58 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62486C2EAAF4220013AB58 /* AUDispatch.cpp */; };
8B6248F12EAAF4230013AB58 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62486D2EAAF4220013AB58 /* AUScopeElement.h */; };
8B6248F22EAAF4230013AB58 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B62486E2EAAF4220013AB58 /* AUInputElement.cpp */; };
8B6248F32EAAF4230013AB58 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248702EAAF4220013AB58 /* AUEffectBase.cpp */; };
8B6248F42EAAF4230013AB58 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248712EAAF4220013AB58 /* AUEffectBase.h */; };
8B6248F52EAAF4230013AB58 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248732EAAF4220013AB58 /* AUTimestampGenerator.h */; };
8B6248F62EAAF4230013AB58 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248742EAAF4220013AB58 /* AUBaseHelper.cpp */; };
8B6248F72EAAF4230013AB58 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248752EAAF4220013AB58 /* AUSilentTimeout.h */; };
8B6248F82EAAF4230013AB58 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248762EAAF4220013AB58 /* AUInputFormatConverter.h */; };
8B6248F92EAAF4230013AB58 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248772EAAF4220013AB58 /* AUTimestampGenerator.cpp */; };
8B6248FA2EAAF4230013AB58 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B6248782EAAF4220013AB58 /* AUBuffer.cpp */; };
8B6248FB2EAAF4230013AB58 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B6248792EAAF4220013AB58 /* AUMIDIDefs.h */; };
8B6248FC2EAAF4230013AB58 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62487A2EAAF4220013AB58 /* AUBuffer.h */; };
8B6248FD2EAAF4230013AB58 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B62487B2EAAF4220013AB58 /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* HipCrush.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* HipCrush.cpp */; };
8BA05A6E0720730100365D66 /* HipCrushVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* HipCrushVersion.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 /* HipCrush.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* HipCrush.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8B6247F42EAAF4220013AB58 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B6247F52EAAF4220013AB58 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B6247F62EAAF4220013AB58 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B6247F72EAAF4220013AB58 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B6247F82EAAF4220013AB58 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B6247F92EAAF4220013AB58 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B6247FA2EAAF4220013AB58 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B6247FB2EAAF4220013AB58 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B6247FC2EAAF4220013AB58 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B6247FD2EAAF4220013AB58 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B6247FE2EAAF4220013AB58 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B6247FF2EAAF4220013AB58 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B6248002EAAF4220013AB58 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B6248012EAAF4220013AB58 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B6248022EAAF4220013AB58 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B6248032EAAF4220013AB58 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B6248042EAAF4220013AB58 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B6248052EAAF4220013AB58 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B6248062EAAF4220013AB58 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B6248072EAAF4220013AB58 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B6248082EAAF4220013AB58 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B6248092EAAF4220013AB58 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B62480A2EAAF4220013AB58 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B62480B2EAAF4220013AB58 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B62480C2EAAF4220013AB58 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B62480D2EAAF4220013AB58 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B62480E2EAAF4220013AB58 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B62480F2EAAF4220013AB58 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B6248102EAAF4220013AB58 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B6248112EAAF4220013AB58 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B6248122EAAF4220013AB58 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B6248132EAAF4220013AB58 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B6248142EAAF4220013AB58 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B6248152EAAF4220013AB58 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B6248162EAAF4220013AB58 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B6248172EAAF4220013AB58 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B6248182EAAF4220013AB58 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B6248192EAAF4220013AB58 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B62481A2EAAF4220013AB58 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B62481B2EAAF4220013AB58 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B62481C2EAAF4220013AB58 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B62481D2EAAF4220013AB58 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B62481E2EAAF4220013AB58 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B62481F2EAAF4220013AB58 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B6248202EAAF4220013AB58 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B6248212EAAF4220013AB58 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B6248222EAAF4220013AB58 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B6248232EAAF4220013AB58 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B6248242EAAF4220013AB58 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B6248252EAAF4220013AB58 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B6248262EAAF4220013AB58 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B6248272EAAF4220013AB58 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B6248282EAAF4220013AB58 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B6248292EAAF4220013AB58 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B62482A2EAAF4220013AB58 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B62482B2EAAF4220013AB58 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B62482C2EAAF4220013AB58 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B62482D2EAAF4220013AB58 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B62482E2EAAF4220013AB58 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B62482F2EAAF4220013AB58 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B6248302EAAF4220013AB58 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B6248312EAAF4220013AB58 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B6248322EAAF4220013AB58 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B6248332EAAF4220013AB58 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B6248342EAAF4220013AB58 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B6248352EAAF4220013AB58 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B6248362EAAF4220013AB58 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B6248372EAAF4220013AB58 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B6248382EAAF4220013AB58 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B6248392EAAF4220013AB58 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B62483A2EAAF4220013AB58 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B62483B2EAAF4220013AB58 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B62483C2EAAF4220013AB58 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B62483D2EAAF4220013AB58 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B62483E2EAAF4220013AB58 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B62483F2EAAF4220013AB58 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B6248402EAAF4220013AB58 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B6248412EAAF4220013AB58 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B6248422EAAF4220013AB58 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B6248432EAAF4220013AB58 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B6248442EAAF4220013AB58 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B6248452EAAF4220013AB58 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B6248462EAAF4220013AB58 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B6248472EAAF4220013AB58 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B6248482EAAF4220013AB58 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B6248492EAAF4220013AB58 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B62484A2EAAF4220013AB58 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B62484B2EAAF4220013AB58 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B62484C2EAAF4220013AB58 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B62484D2EAAF4220013AB58 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B62484E2EAAF4220013AB58 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B62484F2EAAF4220013AB58 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B6248502EAAF4220013AB58 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B6248512EAAF4220013AB58 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B6248522EAAF4220013AB58 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B6248532EAAF4220013AB58 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B6248542EAAF4220013AB58 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B6248552EAAF4220013AB58 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B6248562EAAF4220013AB58 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B6248572EAAF4220013AB58 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B6248582EAAF4220013AB58 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B6248592EAAF4220013AB58 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B62485A2EAAF4220013AB58 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B62485E2EAAF4220013AB58 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B6248602EAAF4220013AB58 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B6248612EAAF4220013AB58 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B6248622EAAF4220013AB58 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B6248632EAAF4220013AB58 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B6248642EAAF4220013AB58 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B6248652EAAF4220013AB58 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B6248662EAAF4220013AB58 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B6248672EAAF4220013AB58 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B6248682EAAF4220013AB58 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B6248692EAAF4220013AB58 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B62486A2EAAF4220013AB58 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B62486B2EAAF4220013AB58 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B62486C2EAAF4220013AB58 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B62486D2EAAF4220013AB58 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B62486E2EAAF4220013AB58 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B6248702EAAF4220013AB58 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B6248712EAAF4220013AB58 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B6248732EAAF4220013AB58 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B6248742EAAF4220013AB58 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B6248752EAAF4220013AB58 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B6248762EAAF4220013AB58 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B6248772EAAF4220013AB58 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B6248782EAAF4220013AB58 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B6248792EAAF4220013AB58 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B62487A2EAAF4220013AB58 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B62487B2EAAF4220013AB58 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B6248FE2EAAF4F10013AB58 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8BA05A660720730100365D66 /* HipCrush.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = HipCrush.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* HipCrush.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = HipCrush.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* HipCrush.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = HipCrush.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* HipCrushVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HipCrushVersion.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 /* HipCrush.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HipCrush.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* HipCrush.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = HipCrush.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 /* HipCrush */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = HipCrush;
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 = (
8B6247F22EAAF4220013AB58 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* HipCrush.component */,
);
name = Products;
sourceTree = "<group>";
};
8B6247F22EAAF4220013AB58 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B6247F32EAAF4220013AB58 /* PublicUtility */,
8B62485B2EAAF4220013AB58 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B6247F32EAAF4220013AB58 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B6247F42EAAF4220013AB58 /* CAExtAudioFile.h */,
8B6247F52EAAF4220013AB58 /* CACFMachPort.h */,
8B6247F62EAAF4220013AB58 /* CABool.h */,
8B6247F72EAAF4220013AB58 /* CAComponent.cpp */,
8B6247F82EAAF4220013AB58 /* CADebugger.h */,
8B6247F92EAAF4220013AB58 /* CACFNumber.cpp */,
8B6247FA2EAAF4220013AB58 /* CAGuard.h */,
8B6247FB2EAAF4220013AB58 /* CAAtomic.h */,
8B6247FC2EAAF4220013AB58 /* CAStreamBasicDescription.h */,
8B6247FD2EAAF4220013AB58 /* CACFObject.h */,
8B6247FE2EAAF4220013AB58 /* CAStreamRangedDescription.h */,
8B6247FF2EAAF4220013AB58 /* CATokenMap.h */,
8B6248002EAAF4220013AB58 /* CAComponent.h */,
8B6248012EAAF4220013AB58 /* CAAudioBufferList.h */,
8B6248022EAAF4220013AB58 /* CAAudioUnit.h */,
8B6248032EAAF4220013AB58 /* CAAUParameter.h */,
8B6248042EAAF4220013AB58 /* CAException.h */,
8B6248052EAAF4220013AB58 /* CAAUProcessor.cpp */,
8B6248062EAAF4220013AB58 /* CAAUProcessor.h */,
8B6248072EAAF4220013AB58 /* CAProcess.h */,
8B6248082EAAF4220013AB58 /* CACFDictionary.h */,
8B6248092EAAF4220013AB58 /* CAPThread.h */,
8B62480A2EAAF4220013AB58 /* CAAUParameter.cpp */,
8B62480B2EAAF4220013AB58 /* CAAudioTimeStamp.h */,
8B62480C2EAAF4220013AB58 /* CAFilePathUtils.cpp */,
8B62480D2EAAF4220013AB58 /* CAAudioValueRange.h */,
8B62480E2EAAF4220013AB58 /* CAVectorUnitTypes.h */,
8B62480F2EAAF4220013AB58 /* CAAudioChannelLayoutObject.cpp */,
8B6248102EAAF4220013AB58 /* CAGuard.cpp */,
8B6248112EAAF4220013AB58 /* CACFNumber.h */,
8B6248122EAAF4220013AB58 /* CACFDistributedNotification.cpp */,
8B6248132EAAF4220013AB58 /* CACFString.h */,
8B6248142EAAF4220013AB58 /* CAAUMIDIMapManager.cpp */,
8B6248152EAAF4220013AB58 /* CAComponentDescription.cpp */,
8B6248162EAAF4220013AB58 /* CAHostTimeBase.h */,
8B6248172EAAF4220013AB58 /* CADebugMacros.cpp */,
8B6248182EAAF4220013AB58 /* CAAudioFileFormats.h */,
8B6248192EAAF4220013AB58 /* CAAUMIDIMapManager.h */,
8B62481A2EAAF4220013AB58 /* CACFDictionary.cpp */,
8B62481B2EAAF4220013AB58 /* CAMutex.h */,
8B62481C2EAAF4220013AB58 /* CACFString.cpp */,
8B62481D2EAAF4220013AB58 /* CASettingsStorage.h */,
8B62481E2EAAF4220013AB58 /* CADebugPrintf.h */,
8B62481F2EAAF4220013AB58 /* CAXException.cpp */,
8B6248202EAAF4220013AB58 /* CAAUMIDIMap.h */,
8B6248212EAAF4220013AB58 /* AUParamInfo.h */,
8B6248222EAAF4220013AB58 /* CABitOperations.h */,
8B6248232EAAF4220013AB58 /* CACFPreferences.cpp */,
8B6248242EAAF4220013AB58 /* CABundleLocker.h */,
8B6248252EAAF4220013AB58 /* CAPropertyAddress.h */,
8B6248262EAAF4220013AB58 /* CAXException.h */,
8B6248272EAAF4220013AB58 /* CAAudioChannelLayout.cpp */,
8B6248282EAAF4220013AB58 /* CAThreadSafeList.h */,
8B6248292EAAF4220013AB58 /* CAAudioUnitOutputCapturer.h */,
8B62482A2EAAF4220013AB58 /* AUParamInfo.cpp */,
8B62482B2EAAF4220013AB58 /* CASharedLibrary.cpp */,
8B62482C2EAAF4220013AB58 /* CAAUMIDIMap.cpp */,
8B62482D2EAAF4220013AB58 /* CALogMacros.h */,
8B62482E2EAAF4220013AB58 /* CACFMessagePort.cpp */,
8B62482F2EAAF4220013AB58 /* CARingBuffer.h */,
8B6248302EAAF4220013AB58 /* AUOutputBL.cpp */,
8B6248312EAAF4220013AB58 /* CABufferList.h */,
8B6248322EAAF4220013AB58 /* CASharedLibrary.h */,
8B6248332EAAF4220013AB58 /* CACFData.h */,
8B6248342EAAF4220013AB58 /* CAStreamRangedDescription.cpp */,
8B6248352EAAF4220013AB58 /* CAPThread.cpp */,
8B6248362EAAF4220013AB58 /* CAAutoDisposer.h */,
8B6248372EAAF4220013AB58 /* CACFPreferences.h */,
8B6248382EAAF4220013AB58 /* CAVectorUnit.cpp */,
8B6248392EAAF4220013AB58 /* CAComponentDescription.h */,
8B62483A2EAAF4220013AB58 /* CADebugMacros.h */,
8B62483B2EAAF4220013AB58 /* AUOutputBL.h */,
8B62483C2EAAF4220013AB58 /* CADebugPrintf.cpp */,
8B62483D2EAAF4220013AB58 /* CARingBuffer.cpp */,
8B62483E2EAAF4220013AB58 /* CACFPlugIn.h */,
8B62483F2EAAF4220013AB58 /* CASettingsStorage.cpp */,
8B6248402EAAF4220013AB58 /* CAMixMap.h */,
8B6248412EAAF4220013AB58 /* CACFDistributedNotification.h */,
8B6248422EAAF4220013AB58 /* CAFilePathUtils.h */,
8B6248432EAAF4220013AB58 /* CATink.h */,
8B6248442EAAF4220013AB58 /* CAStreamBasicDescription.cpp */,
8B6248452EAAF4220013AB58 /* CAAudioChannelLayout.h */,
8B6248462EAAF4220013AB58 /* CAProcess.cpp */,
8B6248472EAAF4220013AB58 /* CAHostTimeBase.cpp */,
8B6248482EAAF4220013AB58 /* CAPersistence.cpp */,
8B6248492EAAF4220013AB58 /* CAAudioBufferList.cpp */,
8B62484A2EAAF4220013AB58 /* CAAudioTimeStamp.cpp */,
8B62484B2EAAF4220013AB58 /* CAVectorUnit.h */,
8B62484C2EAAF4220013AB58 /* CAByteOrder.h */,
8B62484D2EAAF4220013AB58 /* CACFArray.h */,
8B62484E2EAAF4220013AB58 /* CAAtomicStack.h */,
8B62484F2EAAF4220013AB58 /* CAReferenceCounted.h */,
8B6248502EAAF4220013AB58 /* CACFMachPort.cpp */,
8B6248512EAAF4220013AB58 /* CABufferList.cpp */,
8B6248522EAAF4220013AB58 /* CAMutex.cpp */,
8B6248532EAAF4220013AB58 /* CADebugger.cpp */,
8B6248542EAAF4220013AB58 /* CABundleLocker.cpp */,
8B6248552EAAF4220013AB58 /* CAAudioFileFormats.cpp */,
8B6248562EAAF4220013AB58 /* CAMath.h */,
8B6248572EAAF4220013AB58 /* CACFArray.cpp */,
8B6248582EAAF4220013AB58 /* CACFMessagePort.h */,
8B6248592EAAF4220013AB58 /* CAAudioValueRange.cpp */,
8B62485A2EAAF4220013AB58 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B62485B2EAAF4220013AB58 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B62485C2EAAF4220013AB58 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B62485C2EAAF4220013AB58 /* AUPublic */ = {
isa = PBXGroup;
children = (
8B62485D2EAAF4220013AB58 /* AUViewBase */,
8B62485F2EAAF4220013AB58 /* AUBase */,
8B62486F2EAAF4220013AB58 /* OtherBases */,
8B6248722EAAF4220013AB58 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B62485D2EAAF4220013AB58 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B62485E2EAAF4220013AB58 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B62485F2EAAF4220013AB58 /* AUBase */ = {
isa = PBXGroup;
children = (
8B6248602EAAF4220013AB58 /* ComponentBase.cpp */,
8B6248612EAAF4220013AB58 /* AUScopeElement.cpp */,
8B6248622EAAF4220013AB58 /* ComponentBase.h */,
8B6248632EAAF4220013AB58 /* AUBase.cpp */,
8B6248642EAAF4220013AB58 /* AUInputElement.h */,
8B6248652EAAF4220013AB58 /* AUBase.h */,
8B6248662EAAF4220013AB58 /* AUPlugInDispatch.h */,
8B6248672EAAF4220013AB58 /* AUDispatch.h */,
8B6248682EAAF4220013AB58 /* AUOutputElement.cpp */,
8B6248692EAAF4220013AB58 /* AUResources.r */,
8B62486A2EAAF4220013AB58 /* AUPlugInDispatch.cpp */,
8B62486B2EAAF4220013AB58 /* AUOutputElement.h */,
8B62486C2EAAF4220013AB58 /* AUDispatch.cpp */,
8B62486D2EAAF4220013AB58 /* AUScopeElement.h */,
8B62486E2EAAF4220013AB58 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B62486F2EAAF4220013AB58 /* OtherBases */ = {
isa = PBXGroup;
children = (
8B6248702EAAF4220013AB58 /* AUEffectBase.cpp */,
8B6248712EAAF4220013AB58 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B6248722EAAF4220013AB58 /* Utility */ = {
isa = PBXGroup;
children = (
8B6248732EAAF4220013AB58 /* AUTimestampGenerator.h */,
8B6248742EAAF4220013AB58 /* AUBaseHelper.cpp */,
8B6248752EAAF4220013AB58 /* AUSilentTimeout.h */,
8B6248762EAAF4220013AB58 /* AUInputFormatConverter.h */,
8B6248772EAAF4220013AB58 /* AUTimestampGenerator.cpp */,
8B6248782EAAF4220013AB58 /* AUBuffer.cpp */,
8B6248792EAAF4220013AB58 /* AUMIDIDefs.h */,
8B62487A2EAAF4220013AB58 /* AUBuffer.h */,
8B62487B2EAAF4220013AB58 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* HipCrush.h */,
8BA05A660720730100365D66 /* HipCrush.cpp */,
8BA05A670720730100365D66 /* HipCrush.exp */,
8BA05A680720730100365D66 /* HipCrush.r */,
8BA05A690720730100365D66 /* HipCrushVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B6248AC2EAAF4230013AB58 /* CABundleLocker.h in Headers */,
8B6248CD2EAAF4230013AB58 /* CAAudioChannelLayout.h in Headers */,
8B6248C32EAAF4230013AB58 /* AUOutputBL.h in Headers */,
8B62489E2EAAF4230013AB58 /* CAHostTimeBase.h in Headers */,
8B6248E62EAAF4230013AB58 /* ComponentBase.h in Headers */,
8B6248D62EAAF4230013AB58 /* CAAtomicStack.h in Headers */,
8B6248932EAAF4220013AB58 /* CAAudioTimeStamp.h in Headers */,
8B6248B02EAAF4230013AB58 /* CAThreadSafeList.h in Headers */,
8B62488B2EAAF4220013AB58 /* CAAUParameter.h in Headers */,
8B6248FD2EAAF4230013AB58 /* AUBaseHelper.h in Headers */,
8B6248F52EAAF4230013AB58 /* AUTimestampGenerator.h in Headers */,
8B6248A62EAAF4230013AB58 /* CADebugPrintf.h in Headers */,
8B6248E02EAAF4230013AB58 /* CACFMessagePort.h in Headers */,
8B62488E2EAAF4220013AB58 /* CAAUProcessor.h in Headers */,
8B62488A2EAAF4220013AB58 /* CAAudioUnit.h in Headers */,
8B6248E32EAAF4230013AB58 /* AUViewLocalizedStringKeys.h in Headers */,
8B6248C92EAAF4230013AB58 /* CACFDistributedNotification.h in Headers */,
8B6248882EAAF4220013AB58 /* CAComponent.h in Headers */,
8B6248962EAAF4220013AB58 /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* HipCrushVersion.h in Headers */,
8B6248CA2EAAF4230013AB58 /* CAFilePathUtils.h in Headers */,
8B62488C2EAAF4220013AB58 /* CAException.h in Headers */,
8B6248832EAAF4220013AB58 /* CAAtomic.h in Headers */,
8B6248822EAAF4220013AB58 /* CAGuard.h in Headers */,
8B6248E82EAAF4230013AB58 /* AUInputElement.h in Headers */,
8B6248BF2EAAF4230013AB58 /* CACFPreferences.h in Headers */,
8B6248D42EAAF4230013AB58 /* CAByteOrder.h in Headers */,
8B6248B72EAAF4230013AB58 /* CARingBuffer.h in Headers */,
8B62487E2EAAF4220013AB58 /* CABool.h in Headers */,
8B6248A32EAAF4230013AB58 /* CAMutex.h in Headers */,
8B6248E92EAAF4230013AB58 /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* HipCrush.h in Headers */,
8B62489B2EAAF4230013AB58 /* CACFString.h in Headers */,
8B6248BA2EAAF4230013AB58 /* CASharedLibrary.h in Headers */,
8B6248872EAAF4220013AB58 /* CATokenMap.h in Headers */,
8B62487C2EAAF4220013AB58 /* CAExtAudioFile.h in Headers */,
8B6248912EAAF4220013AB58 /* CAPThread.h in Headers */,
8B6248AD2EAAF4230013AB58 /* CAPropertyAddress.h in Headers */,
8B6248D72EAAF4230013AB58 /* CAReferenceCounted.h in Headers */,
8B6248FC2EAAF4230013AB58 /* AUBuffer.h in Headers */,
8B6248DE2EAAF4230013AB58 /* CAMath.h in Headers */,
8B6248BE2EAAF4230013AB58 /* CAAutoDisposer.h in Headers */,
8B6248852EAAF4220013AB58 /* CACFObject.h in Headers */,
8B6248A52EAAF4230013AB58 /* CASettingsStorage.h in Headers */,
8B6248AE2EAAF4230013AB58 /* CAXException.h in Headers */,
8B6248CB2EAAF4230013AB58 /* CATink.h in Headers */,
8B6248F82EAAF4230013AB58 /* AUInputFormatConverter.h in Headers */,
8B6248D32EAAF4230013AB58 /* CAVectorUnit.h in Headers */,
8B62488F2EAAF4220013AB58 /* CAProcess.h in Headers */,
8B6248952EAAF4220013AB58 /* CAAudioValueRange.h in Headers */,
8B6248AA2EAAF4230013AB58 /* CABitOperations.h in Headers */,
8B6248A02EAAF4230013AB58 /* CAAudioFileFormats.h in Headers */,
8B6248992EAAF4220013AB58 /* CACFNumber.h in Headers */,
8B6248B12EAAF4230013AB58 /* CAAudioUnitOutputCapturer.h in Headers */,
8B6248C22EAAF4230013AB58 /* CADebugMacros.h in Headers */,
8B6248FB2EAAF4230013AB58 /* AUMIDIDefs.h in Headers */,
8B6248BB2EAAF4230013AB58 /* CACFData.h in Headers */,
8B6248842EAAF4220013AB58 /* CAStreamBasicDescription.h in Headers */,
8B6248EA2EAAF4230013AB58 /* AUPlugInDispatch.h in Headers */,
8B6248862EAAF4220013AB58 /* CAStreamRangedDescription.h in Headers */,
8B6248C62EAAF4230013AB58 /* CACFPlugIn.h in Headers */,
8B6248892EAAF4220013AB58 /* CAAudioBufferList.h in Headers */,
8B6248A12EAAF4230013AB58 /* CAAUMIDIMapManager.h in Headers */,
8B6248F42EAAF4230013AB58 /* AUEffectBase.h in Headers */,
8B6248902EAAF4220013AB58 /* CACFDictionary.h in Headers */,
8B6248F12EAAF4230013AB58 /* AUScopeElement.h in Headers */,
8B6248C12EAAF4230013AB58 /* CAComponentDescription.h in Headers */,
8B6248F72EAAF4230013AB58 /* AUSilentTimeout.h in Headers */,
8B6248B92EAAF4230013AB58 /* CABufferList.h in Headers */,
8B6248EB2EAAF4230013AB58 /* AUDispatch.h in Headers */,
8B6248EF2EAAF4230013AB58 /* AUOutputElement.h in Headers */,
8B6248B52EAAF4230013AB58 /* CALogMacros.h in Headers */,
8B6248A92EAAF4230013AB58 /* AUParamInfo.h in Headers */,
8B6248C82EAAF4230013AB58 /* CAMixMap.h in Headers */,
8B6248D52EAAF4230013AB58 /* CACFArray.h in Headers */,
8B62487D2EAAF4220013AB58 /* CACFMachPort.h in Headers */,
8B6248A82EAAF4230013AB58 /* CAAUMIDIMap.h in Headers */,
8B6248802EAAF4220013AB58 /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* HipCrush */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "HipCrush" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = HipCrush;
productInstallPath = "$(HOME)/Library/Bundles";
productName = HipCrush;
productReference = 8D01CCD20486CAD60068D4B7 /* HipCrush.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 "HipCrush" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
en,
fr,
Base,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* HipCrush */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* HipCrush */,
);
};
/* 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 = (
8B6248B82EAAF4230013AB58 /* AUOutputBL.cpp in Sources */,
8B6248DD2EAAF4230013AB58 /* CAAudioFileFormats.cpp in Sources */,
8B6248CF2EAAF4230013AB58 /* CAHostTimeBase.cpp in Sources */,
8B6248A72EAAF4230013AB58 /* CAXException.cpp in Sources */,
8B6248D12EAAF4230013AB58 /* CAAudioBufferList.cpp in Sources */,
8B6248942EAAF4220013AB58 /* CAFilePathUtils.cpp in Sources */,
8B6248922EAAF4220013AB58 /* CAAUParameter.cpp in Sources */,
8B6248B42EAAF4230013AB58 /* CAAUMIDIMap.cpp in Sources */,
8B6248E12EAAF4230013AB58 /* CAAudioValueRange.cpp in Sources */,
8B6248F02EAAF4230013AB58 /* AUDispatch.cpp in Sources */,
8B6248AB2EAAF4230013AB58 /* CACFPreferences.cpp in Sources */,
8B6248EE2EAAF4230013AB58 /* AUPlugInDispatch.cpp in Sources */,
8B62488D2EAAF4220013AB58 /* CAAUProcessor.cpp in Sources */,
8B6248A22EAAF4230013AB58 /* CACFDictionary.cpp in Sources */,
8B6248F62EAAF4230013AB58 /* AUBaseHelper.cpp in Sources */,
8B6248DB2EAAF4230013AB58 /* CADebugger.cpp in Sources */,
8B6248AF2EAAF4230013AB58 /* CAAudioChannelLayout.cpp in Sources */,
8B6248B22EAAF4230013AB58 /* AUParamInfo.cpp in Sources */,
8B6248D02EAAF4230013AB58 /* CAPersistence.cpp in Sources */,
8B6248C42EAAF4230013AB58 /* CADebugPrintf.cpp in Sources */,
8B6248F92EAAF4230013AB58 /* AUTimestampGenerator.cpp in Sources */,
8B6248CC2EAAF4230013AB58 /* CAStreamBasicDescription.cpp in Sources */,
8B62489C2EAAF4230013AB58 /* CAAUMIDIMapManager.cpp in Sources */,
8B6248C72EAAF4230013AB58 /* CASettingsStorage.cpp in Sources */,
8B6248EC2EAAF4230013AB58 /* AUOutputElement.cpp in Sources */,
8B6248982EAAF4220013AB58 /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* HipCrush.cpp in Sources */,
8B6248DA2EAAF4230013AB58 /* CAMutex.cpp in Sources */,
8B6248F32EAAF4230013AB58 /* AUEffectBase.cpp in Sources */,
8B6248D82EAAF4230013AB58 /* CACFMachPort.cpp in Sources */,
8B6248E72EAAF4230013AB58 /* AUBase.cpp in Sources */,
8B6248B32EAAF4230013AB58 /* CASharedLibrary.cpp in Sources */,
8B62489A2EAAF4220013AB58 /* CACFDistributedNotification.cpp in Sources */,
8B62489D2EAAF4230013AB58 /* CAComponentDescription.cpp in Sources */,
8B6248A42EAAF4230013AB58 /* CACFString.cpp in Sources */,
8B6248E42EAAF4230013AB58 /* ComponentBase.cpp in Sources */,
8B6248C52EAAF4230013AB58 /* CARingBuffer.cpp in Sources */,
8B6248E52EAAF4230013AB58 /* AUScopeElement.cpp in Sources */,
8B6248E22EAAF4230013AB58 /* CAAudioUnit.cpp in Sources */,
8B6248DF2EAAF4230013AB58 /* CACFArray.cpp in Sources */,
8B6248DC2EAAF4230013AB58 /* CABundleLocker.cpp in Sources */,
8B6248CE2EAAF4230013AB58 /* CAProcess.cpp in Sources */,
8B6248BC2EAAF4230013AB58 /* CAStreamRangedDescription.cpp in Sources */,
8B6248BD2EAAF4230013AB58 /* CAPThread.cpp in Sources */,
8B62487F2EAAF4220013AB58 /* CAComponent.cpp in Sources */,
8B6248972EAAF4220013AB58 /* CAAudioChannelLayoutObject.cpp in Sources */,
8B6248D22EAAF4230013AB58 /* CAAudioTimeStamp.cpp in Sources */,
8B6248D92EAAF4230013AB58 /* CABufferList.cpp in Sources */,
8B6248B62EAAF4230013AB58 /* CACFMessagePort.cpp in Sources */,
8B6248C02EAAF4230013AB58 /* CAVectorUnit.cpp in Sources */,
8B6248F22EAAF4230013AB58 /* AUInputElement.cpp in Sources */,
8B6248FA2EAAF4230013AB58 /* AUBuffer.cpp in Sources */,
8B62489F2EAAF4230013AB58 /* CADebugMacros.cpp in Sources */,
8B6248812EAAF4220013AB58 /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B6248FE2EAAF4F10013AB58 /* 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 = HipCrush.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 = HipCrush;
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 = HipCrush.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 = HipCrush;
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 "HipCrush" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "HipCrush" */ = {
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 = "HipCrush.component"
BlueprintName = "HipCrush"
ReferencedContainer = "container:HipCrush.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 = "HipCrush.component"
BlueprintName = "HipCrush"
ReferencedContainer = "container:HipCrush.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>HipCrush.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: HipCrushVersion.h
*
* Version: 1.0
*
* Created: 10/23/25
*
* Copyright: Copyright © 2025 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 __HipCrushVersion_h__
#define __HipCrushVersion_h__
#ifdef DEBUG
#define kHipCrushVersion 0xFFFFFFFF
#else
#define kHipCrushVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define HipCrush_COMP_MANF 'Dthr'
#define HipCrush_COMP_SUBTYPE 'hpch'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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>hpch</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

Binary file not shown.

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,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>sfc2</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,467 @@
/*
* File: SoftClock2.cpp
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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.
*
*/
/*=============================================================================
SoftClock2.cpp
=============================================================================*/
#include "SoftClock2.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, SoftClock2)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::SoftClock2
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SoftClock2::SoftClock2(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 );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::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 = 40;
outParameterInfo.maxValue = 240;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
switch ((int)GetParameter( kParam_B )){
case 0:outParameterInfo.unitName = CFSTR("0"); break;
case 1: outParameterInfo.unitName = CFSTR("1"); break;
case 2:outParameterInfo.unitName = CFSTR("2"); break;
case 3:outParameterInfo.unitName = CFSTR("3"); break;
case 4:outParameterInfo.unitName = CFSTR("4"); break;
case 5:outParameterInfo.unitName = CFSTR("5"); break;
case 6:outParameterInfo.unitName = CFSTR("6"); break;
case 7:outParameterInfo.unitName = CFSTR("7"); break;
case 8:outParameterInfo.unitName = CFSTR("8"); break;
case 9:outParameterInfo.unitName = CFSTR("9"); break;
case 10:outParameterInfo.unitName = CFSTR("10"); break;
case 11:outParameterInfo.unitName = CFSTR("11"); break;
case 12:outParameterInfo.unitName = CFSTR("11"); break;
case 13:outParameterInfo.unitName = CFSTR("11"); break;
case 14:outParameterInfo.unitName = CFSTR("11"); break;
case 15:outParameterInfo.unitName = CFSTR("13"); break;
case 16:outParameterInfo.unitName = CFSTR("16"); break;
case 17:outParameterInfo.unitName = CFSTR("13"); break;
case 18:outParameterInfo.unitName = CFSTR("13"); break;
case 19:outParameterInfo.unitName = CFSTR("17"); break;
case 20:outParameterInfo.unitName = CFSTR("17"); break;
case 21:outParameterInfo.unitName = CFSTR("17"); break;
case 22:outParameterInfo.unitName = CFSTR("17"); break;
case 23:outParameterInfo.unitName = CFSTR("19"); break;
case 24:outParameterInfo.unitName = CFSTR("24"); break;
case 25:outParameterInfo.unitName = CFSTR("19"); break;
case 26:outParameterInfo.unitName = CFSTR("19"); break;
case 27:outParameterInfo.unitName = CFSTR("19"); break;
case 28:outParameterInfo.unitName = CFSTR("23"); break;
case 29:outParameterInfo.unitName = CFSTR("23"); break;
case 30:outParameterInfo.unitName = CFSTR("23"); break;
case 31:outParameterInfo.unitName = CFSTR("23"); break;
case 32:outParameterInfo.unitName = CFSTR("32"); break;
default: break;
}
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 32;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
outParameterInfo.minValue = 0;
outParameterInfo.maxValue = 16;
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;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::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 SoftClock2::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// SoftClock2::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____SoftClock2EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::SoftClock2Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SoftClock2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
sinePos = 0.0;
barPos = 0.0;
beatPos = 0;
for (int x = 0; x < 34; x++) {beatAccent[x] = 0.0; beatSwing[x] = 0.0;}
inc = 0.0;
beatTable[0]=0;
beatTable[1]=1;
beatTable[2]=2;
beatTable[3]=3;
beatTable[4]=4;
beatTable[5]=5;
beatTable[6]=6;
beatTable[7]=7;
beatTable[8]=8;
beatTable[9]=9;
beatTable[10]=10;
beatTable[11]=11;
beatTable[12]=11;
beatTable[13]=11;
beatTable[14]=11;
beatTable[15]=13;
beatTable[16]=16;
beatTable[17]=13;
beatTable[18]=13;
beatTable[19]=17;
beatTable[20]=17;
beatTable[21]=17;
beatTable[22]=17;
beatTable[23]=19;
beatTable[24]=24;
beatTable[25]=19;
beatTable[26]=19;
beatTable[27]=19;
beatTable[28]=23;
beatTable[29]=23;
beatTable[30]=23;
beatTable[31]=23;
beatTable[32]=32;
beatTable[33]=32;
beatTable[34]=32;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SoftClock2::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus SoftClock2::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 bpm = GetParameter( kParam_A );
int beatCode = GetParameter( kParam_B );
double notes = (double)fmax(GetParameter( kParam_C )/4.0, 0.125);
double bpmTarget = (GetSampleRate()*60.0)/((double)bpm*notes);
double swing = GetParameter( kParam_D )*bpmTarget*0.66666;
double peak = GetParameter( kParam_E )*bpmTarget*0.33333;
double valley = GetParameter( kParam_F )*bpmTarget*0.33333;
//swing makes beats hit LATER, so the One is 0.0
//peak means go UP to a late beat
//valley means go DOWN to a late beat
int beatMax = beatTable[beatCode];
//only some counts are literal, others are ways to do prime grooves with different subrhythms
for (int x = 0; x < (beatMax+1); x++) {
beatAccent[x] = ((double)fabs((double)beatMax-((double)x*2.0)))/(double)(beatMax*1.618033988749894);
if (x % 2 > 0) beatSwing[x] = 0.0;
else beatSwing[x] = swing;
} //this makes the non-accented beats drop down to quiet and back up to half volume
if (beatCode > 0) beatAccent[1] = 0.9; beatSwing[1] = peak; //first note is an accent at full crank
switch (beatCode)
{
case 0: break; //not used
case 1: break; //1
case 2: break; //2
case 3: break; //3
case 4: beatAccent[3]=0.9;
beatSwing[3]=valley; break; //4-22
case 5: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //5-32
case 6: beatAccent[4]=0.9;
beatSwing[4]=valley; break; //6-33
case 7: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //7-43
case 8: beatAccent[5]=0.9;
beatSwing[5]=valley; break; //8-44
case 9: beatAccent[4]=0.9; beatAccent[7]=0.8;
beatSwing[4]=valley; beatSwing[7]=valley; break; //9-333
case 10: beatAccent[6]=0.9;
beatSwing[6]=valley; break; //10-55
case 11: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //11-3332
case 12: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //11-443
case 13: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //11-551
case 14: beatAccent[7]=0.9;
beatSwing[7]=valley; break; //11-65
case 15: beatAccent[4]=0.9; beatAccent[7]=0.8; beatAccent[10]=0.7;
beatSwing[4]=valley; beatSwing[7]=valley; beatSwing[10]=valley; break; //13-3334
case 16: beatAccent[9]=0.9;
beatSwing[9]=valley; break; //16-88
case 17: beatAccent[5]=0.9; beatAccent[9]=0.8;
beatSwing[5]=valley; beatSwing[9]=valley; break; //13-445
case 18: beatAccent[6]=0.9; beatAccent[11]=0.8;
beatSwing[6]=valley; beatSwing[11]=valley; break; //13-553
case 19: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //17-44441
case 20: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //17-5552
case 21: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //17-773
case 22: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //17-881
case 23: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; break; //19-44443
case 24: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //24-888
case 25: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //19-5554
case 26: beatAccent[8]=0.9; beatAccent[15]=0.8;
beatSwing[8]=valley; beatSwing[15]=valley; break; //19-775
case 27: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //19-883
case 28: beatAccent[5]=0.9; beatAccent[9]=0.85; beatAccent[13]=0.8; beatAccent[17]=0.75; beatAccent[21]=0.7;
beatSwing[5]=valley; beatSwing[9]=valley; beatSwing[13]=valley; beatSwing[17]=valley; beatSwing[21]=valley; break; //23-444443
case 29: beatAccent[6]=0.9; beatAccent[11]=0.8; beatAccent[16]=0.7;
beatSwing[6]=valley; beatSwing[11]=valley; beatSwing[16]=valley; break; //23-5558
case 30: beatAccent[8]=0.9; beatAccent[15]=0.8; beatAccent[22]=0.7;
beatSwing[8]=valley; beatSwing[15]=valley; beatSwing[22]=valley; break; //23-7772
case 31: beatAccent[9]=0.9; beatAccent[17]=0.8;
beatSwing[9]=valley; beatSwing[17]=valley; break; //23-887
case 32: beatAccent[9]=0.9; beatAccent[17]=0.8; beatAccent[25]=0.7;
beatSwing[9]=valley; beatSwing[17]=valley; beatSwing[25]=valley; break; //32-8888
default: break;
}
double accent = 1.0-pow(1.0-GetParameter( kParam_G ),2);
double chaseSpeed = ((GetParameter( kParam_I )*0.00016)+0.000016)/overallscale;
double rootSpeed = 1.0-(chaseSpeed*((1.0-GetParameter( kParam_I ))+0.5)*4.0);
double pulseWidth = ((GetParameter( kParam_H )*0.2)-((1.0-GetParameter( kParam_I ))*0.03))/chaseSpeed;
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;
barPos += 1.0;
if (barPos>bpmTarget) {
barPos=0.0;
beatPos++;
if (beatPos>beatMax) beatPos=1;
}
if ((barPos < (pulseWidth+beatSwing[beatPos])) && (barPos > beatSwing[beatPos]))
inc = (((beatAccent[beatPos]*accent)+(1.0-accent))*chaseSpeed)+(inc*(1.0-chaseSpeed));
else
inc *= rootSpeed;
sinePos += inc;
if (sinePos > 6.283185307179586) sinePos -= 6.283185307179586;
inputSampleL = inputSampleR = sin(sin(sinePos)*inc*8.0);
//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 @@
_SoftClock2Entry
_SoftClock2Factory

View file

@ -0,0 +1,149 @@
/*
* File: SoftClock2.h
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 "SoftClock2Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __SoftClock2_h__
#define __SoftClock2_h__
#pragma mark ____SoftClock2 Parameters
// parameters
static const float kDefaultValue_ParamA = 120;
static const float kDefaultValue_ParamB = 4;
static const float kDefaultValue_ParamC = 4;
static const float kDefaultValue_ParamD = 0.0;
static const float kDefaultValue_ParamE = 0.0;
static const float kDefaultValue_ParamF = 0.0;
static const float kDefaultValue_ParamG = 0.5;
static const float kDefaultValue_ParamH = 0.5;
static const float kDefaultValue_ParamI = 0.5;
static CFStringRef kParameterAName = CFSTR("Tempo");
static CFStringRef kParameterBName = CFSTR("Count");
static CFStringRef kParameterCName = CFSTR("Tuple");
static CFStringRef kParameterDName = CFSTR("Swing");
static CFStringRef kParameterEName = CFSTR("Peak");
static CFStringRef kParameterFName = CFSTR("Valley");
static CFStringRef kParameterGName = CFSTR("Accents");
static CFStringRef kParameterHName = CFSTR("Boost");
static CFStringRef kParameterIName = CFSTR("Speed");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
//Add your parameters here...
kNumberOfParameters=9
};
#pragma mark ____SoftClock2
class SoftClock2 : public AUEffectBase
{
public:
SoftClock2(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~SoftClock2 () { 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 kSoftClock2Version; }
private:
double sinePos;
double barPos;
double inc;
int beatPos;
double beatAccent[35];
double beatSwing[35];
int beatTable[35];
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: SoftClock2.r
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 "SoftClock2Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_SoftClock2 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SoftClock2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_SoftClock2
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE SoftClock2_COMP_SUBTYPE
#define COMP_MANUF SoftClock2_COMP_MANF
#define VERSION kSoftClock2Version
#define NAME "Airwindows: SoftClock2"
#define DESCRIPTION "SoftClock2 AU"
#define ENTRY_POINT "SoftClock2Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,153 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* SoftClock2 */;
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 = 782671993;
PBXWorkspaceStateSaveDate = 782671993;
};
perUserProjectItems = {
8BAA80D12EA6955000A83054 /* PBXTextBookmark */ = 8BAA80D12EA6955000A83054 /* PBXTextBookmark */;
8BAA80D22EA6955000A83054 /* PBXTextBookmark */ = 8BAA80D22EA6955000A83054 /* PBXTextBookmark */;
8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */ = 8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */;
8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */ = 8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* SoftClock2.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {930, 8730}}";
sepNavSelRange = "{7733, 0}";
sepNavVisRange = "{4958, 2193}";
sepNavWindowFrame = "{{505, 55}, {812, 821}}";
};
};
8BA05A690720730100365D66 /* SoftClock2Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 1278}}";
sepNavSelRange = "{2785, 0}";
sepNavVisRange = "{2786, 183}";
sepNavWindowFrame = "{{15, 50}, {839, 823}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BAA80D12EA6955000A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* SoftClock2Version.h */;
name = "SoftClock2Version.h: 51";
rLen = 0;
rLoc = 2785;
rType = 0;
vrLen = 183;
vrLoc = 2786;
};
8BAA80D22EA6955000A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* SoftClock2.cpp */;
name = "SoftClock2.cpp: 387";
rLen = 0;
rLoc = 19643;
rType = 0;
vrLen = 328;
vrLoc = 17570;
};
8BAA812E2EA6A2A300A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SoftClock2.h */;
name = "SoftClock2.h: 68";
rLen = 0;
rLoc = 3309;
rType = 0;
vrLen = 160;
vrLoc = 3255;
};
8BAA812F2EA6A2A300A83054 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SoftClock2.h */;
name = "SoftClock2.h: 68";
rLen = 0;
rLoc = 3309;
rType = 0;
vrLen = 160;
vrLoc = 3255;
};
8BC6025B073B072D006C4272 /* SoftClock2.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {554, 2664}}";
sepNavSelRange = "{3309, 0}";
sepNavVisRange = "{3255, 160}";
sepNavWindowFrame = "{{575, 55}, {839, 823}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* SoftClock2 */ = {
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 */
8B328F612EA6ECD50082009B /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328ED92EA6ECD50082009B /* CAExtAudioFile.h */; };
8B328F622EA6ECD50082009B /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EDA2EA6ECD50082009B /* CACFMachPort.h */; };
8B328F632EA6ECD50082009B /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EDB2EA6ECD50082009B /* CABool.h */; };
8B328F642EA6ECD50082009B /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EDC2EA6ECD50082009B /* CAComponent.cpp */; };
8B328F652EA6ECD50082009B /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EDD2EA6ECD50082009B /* CADebugger.h */; };
8B328F662EA6ECD50082009B /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EDE2EA6ECD50082009B /* CACFNumber.cpp */; };
8B328F672EA6ECD50082009B /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EDF2EA6ECD50082009B /* CAGuard.h */; };
8B328F682EA6ECD50082009B /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE02EA6ECD50082009B /* CAAtomic.h */; };
8B328F692EA6ECD50082009B /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE12EA6ECD50082009B /* CAStreamBasicDescription.h */; };
8B328F6A2EA6ECD50082009B /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE22EA6ECD50082009B /* CACFObject.h */; };
8B328F6B2EA6ECD50082009B /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE32EA6ECD50082009B /* CAStreamRangedDescription.h */; };
8B328F6C2EA6ECD50082009B /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE42EA6ECD50082009B /* CATokenMap.h */; };
8B328F6D2EA6ECD50082009B /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE52EA6ECD50082009B /* CAComponent.h */; };
8B328F6E2EA6ECD50082009B /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE62EA6ECD50082009B /* CAAudioBufferList.h */; };
8B328F6F2EA6ECD50082009B /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE72EA6ECD50082009B /* CAAudioUnit.h */; };
8B328F702EA6ECD50082009B /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE82EA6ECD50082009B /* CAAUParameter.h */; };
8B328F712EA6ECD50082009B /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EE92EA6ECD50082009B /* CAException.h */; };
8B328F722EA6ECD50082009B /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EEA2EA6ECD50082009B /* CAAUProcessor.cpp */; };
8B328F732EA6ECD50082009B /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EEB2EA6ECD50082009B /* CAAUProcessor.h */; };
8B328F742EA6ECD50082009B /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EEC2EA6ECD50082009B /* CAProcess.h */; };
8B328F752EA6ECD50082009B /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EED2EA6ECD50082009B /* CACFDictionary.h */; };
8B328F762EA6ECD50082009B /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EEE2EA6ECD50082009B /* CAPThread.h */; };
8B328F772EA6ECD50082009B /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EEF2EA6ECD50082009B /* CAAUParameter.cpp */; };
8B328F782EA6ECD50082009B /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EF02EA6ECD50082009B /* CAAudioTimeStamp.h */; };
8B328F792EA6ECD50082009B /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EF12EA6ECD50082009B /* CAFilePathUtils.cpp */; };
8B328F7A2EA6ECD50082009B /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EF22EA6ECD50082009B /* CAAudioValueRange.h */; };
8B328F7B2EA6ECD50082009B /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EF32EA6ECD50082009B /* CAVectorUnitTypes.h */; };
8B328F7C2EA6ECD50082009B /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EF42EA6ECD50082009B /* CAAudioChannelLayoutObject.cpp */; };
8B328F7D2EA6ECD50082009B /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EF52EA6ECD50082009B /* CAGuard.cpp */; };
8B328F7E2EA6ECD50082009B /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EF62EA6ECD50082009B /* CACFNumber.h */; };
8B328F7F2EA6ECD50082009B /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EF72EA6ECD50082009B /* CACFDistributedNotification.cpp */; };
8B328F802EA6ECD50082009B /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EF82EA6ECD50082009B /* CACFString.h */; };
8B328F812EA6ECD50082009B /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EF92EA6ECD50082009B /* CAAUMIDIMapManager.cpp */; };
8B328F822EA6ECD50082009B /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EFA2EA6ECD50082009B /* CAComponentDescription.cpp */; };
8B328F832EA6ECD50082009B /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EFB2EA6ECD50082009B /* CAHostTimeBase.h */; };
8B328F842EA6ECD50082009B /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EFC2EA6ECD50082009B /* CADebugMacros.cpp */; };
8B328F852EA6ECD50082009B /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EFD2EA6ECD50082009B /* CAAudioFileFormats.h */; };
8B328F862EA6ECD50082009B /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328EFE2EA6ECD50082009B /* CAAUMIDIMapManager.h */; };
8B328F872EA6ECD50082009B /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328EFF2EA6ECD50082009B /* CACFDictionary.cpp */; };
8B328F882EA6ECD50082009B /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F002EA6ECD50082009B /* CAMutex.h */; };
8B328F892EA6ECD50082009B /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F012EA6ECD50082009B /* CACFString.cpp */; };
8B328F8A2EA6ECD50082009B /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F022EA6ECD50082009B /* CASettingsStorage.h */; };
8B328F8B2EA6ECD50082009B /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F032EA6ECD50082009B /* CADebugPrintf.h */; };
8B328F8C2EA6ECD50082009B /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F042EA6ECD50082009B /* CAXException.cpp */; };
8B328F8D2EA6ECD50082009B /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F052EA6ECD50082009B /* CAAUMIDIMap.h */; };
8B328F8E2EA6ECD50082009B /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F062EA6ECD50082009B /* AUParamInfo.h */; };
8B328F8F2EA6ECD50082009B /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F072EA6ECD50082009B /* CABitOperations.h */; };
8B328F902EA6ECD50082009B /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F082EA6ECD50082009B /* CACFPreferences.cpp */; };
8B328F912EA6ECD50082009B /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F092EA6ECD50082009B /* CABundleLocker.h */; };
8B328F922EA6ECD50082009B /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F0A2EA6ECD50082009B /* CAPropertyAddress.h */; };
8B328F932EA6ECD50082009B /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F0B2EA6ECD50082009B /* CAXException.h */; };
8B328F942EA6ECD50082009B /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F0C2EA6ECD50082009B /* CAAudioChannelLayout.cpp */; };
8B328F952EA6ECD50082009B /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F0D2EA6ECD50082009B /* CAThreadSafeList.h */; };
8B328F962EA6ECD50082009B /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F0E2EA6ECD50082009B /* CAAudioUnitOutputCapturer.h */; };
8B328F972EA6ECD50082009B /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F0F2EA6ECD50082009B /* AUParamInfo.cpp */; };
8B328F982EA6ECD50082009B /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F102EA6ECD50082009B /* CASharedLibrary.cpp */; };
8B328F992EA6ECD50082009B /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F112EA6ECD50082009B /* CAAUMIDIMap.cpp */; };
8B328F9A2EA6ECD50082009B /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F122EA6ECD50082009B /* CALogMacros.h */; };
8B328F9B2EA6ECD50082009B /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F132EA6ECD50082009B /* CACFMessagePort.cpp */; };
8B328F9C2EA6ECD50082009B /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F142EA6ECD50082009B /* CARingBuffer.h */; };
8B328F9D2EA6ECD50082009B /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F152EA6ECD50082009B /* AUOutputBL.cpp */; };
8B328F9E2EA6ECD50082009B /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F162EA6ECD50082009B /* CABufferList.h */; };
8B328F9F2EA6ECD50082009B /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F172EA6ECD50082009B /* CASharedLibrary.h */; };
8B328FA02EA6ECD50082009B /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F182EA6ECD50082009B /* CACFData.h */; };
8B328FA12EA6ECD50082009B /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F192EA6ECD50082009B /* CAStreamRangedDescription.cpp */; };
8B328FA22EA6ECD50082009B /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F1A2EA6ECD50082009B /* CAPThread.cpp */; };
8B328FA32EA6ECD50082009B /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F1B2EA6ECD50082009B /* CAAutoDisposer.h */; };
8B328FA42EA6ECD50082009B /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F1C2EA6ECD50082009B /* CACFPreferences.h */; };
8B328FA52EA6ECD50082009B /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F1D2EA6ECD50082009B /* CAVectorUnit.cpp */; };
8B328FA62EA6ECD50082009B /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F1E2EA6ECD50082009B /* CAComponentDescription.h */; };
8B328FA72EA6ECD50082009B /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F1F2EA6ECD50082009B /* CADebugMacros.h */; };
8B328FA82EA6ECD50082009B /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F202EA6ECD50082009B /* AUOutputBL.h */; };
8B328FA92EA6ECD50082009B /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F212EA6ECD50082009B /* CADebugPrintf.cpp */; };
8B328FAA2EA6ECD50082009B /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F222EA6ECD50082009B /* CARingBuffer.cpp */; };
8B328FAB2EA6ECD50082009B /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F232EA6ECD50082009B /* CACFPlugIn.h */; };
8B328FAC2EA6ECD50082009B /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F242EA6ECD50082009B /* CASettingsStorage.cpp */; };
8B328FAD2EA6ECD50082009B /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F252EA6ECD50082009B /* CAMixMap.h */; };
8B328FAE2EA6ECD50082009B /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F262EA6ECD50082009B /* CACFDistributedNotification.h */; };
8B328FAF2EA6ECD50082009B /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F272EA6ECD50082009B /* CAFilePathUtils.h */; };
8B328FB02EA6ECD50082009B /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F282EA6ECD50082009B /* CATink.h */; };
8B328FB12EA6ECD50082009B /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F292EA6ECD50082009B /* CAStreamBasicDescription.cpp */; };
8B328FB22EA6ECD50082009B /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F2A2EA6ECD50082009B /* CAAudioChannelLayout.h */; };
8B328FB32EA6ECD50082009B /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F2B2EA6ECD50082009B /* CAProcess.cpp */; };
8B328FB42EA6ECD50082009B /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F2C2EA6ECD50082009B /* CAHostTimeBase.cpp */; };
8B328FB52EA6ECD50082009B /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F2D2EA6ECD50082009B /* CAPersistence.cpp */; };
8B328FB62EA6ECD50082009B /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F2E2EA6ECD50082009B /* CAAudioBufferList.cpp */; };
8B328FB72EA6ECD50082009B /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F2F2EA6ECD50082009B /* CAAudioTimeStamp.cpp */; };
8B328FB82EA6ECD50082009B /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F302EA6ECD50082009B /* CAVectorUnit.h */; };
8B328FB92EA6ECD50082009B /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F312EA6ECD50082009B /* CAByteOrder.h */; };
8B328FBA2EA6ECD50082009B /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F322EA6ECD50082009B /* CACFArray.h */; };
8B328FBB2EA6ECD50082009B /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F332EA6ECD50082009B /* CAAtomicStack.h */; };
8B328FBC2EA6ECD50082009B /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F342EA6ECD50082009B /* CAReferenceCounted.h */; };
8B328FBD2EA6ECD50082009B /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F352EA6ECD50082009B /* CACFMachPort.cpp */; };
8B328FBE2EA6ECD50082009B /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F362EA6ECD50082009B /* CABufferList.cpp */; };
8B328FBF2EA6ECD50082009B /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F372EA6ECD50082009B /* CAMutex.cpp */; };
8B328FC02EA6ECD50082009B /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F382EA6ECD50082009B /* CADebugger.cpp */; };
8B328FC12EA6ECD50082009B /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F392EA6ECD50082009B /* CABundleLocker.cpp */; };
8B328FC22EA6ECD50082009B /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F3A2EA6ECD50082009B /* CAAudioFileFormats.cpp */; };
8B328FC32EA6ECD50082009B /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F3B2EA6ECD50082009B /* CAMath.h */; };
8B328FC42EA6ECD50082009B /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F3C2EA6ECD50082009B /* CACFArray.cpp */; };
8B328FC52EA6ECD50082009B /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F3D2EA6ECD50082009B /* CACFMessagePort.h */; };
8B328FC62EA6ECD50082009B /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F3E2EA6ECD50082009B /* CAAudioValueRange.cpp */; };
8B328FC72EA6ECD50082009B /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F3F2EA6ECD50082009B /* CAAudioUnit.cpp */; };
8B328FC82EA6ECD50082009B /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F432EA6ECD50082009B /* AUViewLocalizedStringKeys.h */; };
8B328FC92EA6ECD50082009B /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F452EA6ECD50082009B /* ComponentBase.cpp */; };
8B328FCA2EA6ECD50082009B /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F462EA6ECD50082009B /* AUScopeElement.cpp */; };
8B328FCB2EA6ECD50082009B /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F472EA6ECD50082009B /* ComponentBase.h */; };
8B328FCC2EA6ECD50082009B /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F482EA6ECD50082009B /* AUBase.cpp */; };
8B328FCD2EA6ECD50082009B /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F492EA6ECD50082009B /* AUInputElement.h */; };
8B328FCE2EA6ECD50082009B /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F4A2EA6ECD50082009B /* AUBase.h */; };
8B328FCF2EA6ECD50082009B /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F4B2EA6ECD50082009B /* AUPlugInDispatch.h */; };
8B328FD02EA6ECD50082009B /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F4C2EA6ECD50082009B /* AUDispatch.h */; };
8B328FD12EA6ECD50082009B /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F4D2EA6ECD50082009B /* AUOutputElement.cpp */; };
8B328FD32EA6ECD50082009B /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F4F2EA6ECD50082009B /* AUPlugInDispatch.cpp */; };
8B328FD42EA6ECD50082009B /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F502EA6ECD50082009B /* AUOutputElement.h */; };
8B328FD52EA6ECD50082009B /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F512EA6ECD50082009B /* AUDispatch.cpp */; };
8B328FD62EA6ECD50082009B /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F522EA6ECD50082009B /* AUScopeElement.h */; };
8B328FD72EA6ECD50082009B /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F532EA6ECD50082009B /* AUInputElement.cpp */; };
8B328FD82EA6ECD50082009B /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F552EA6ECD50082009B /* AUEffectBase.cpp */; };
8B328FD92EA6ECD50082009B /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F562EA6ECD50082009B /* AUEffectBase.h */; };
8B328FDA2EA6ECD50082009B /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F582EA6ECD50082009B /* AUTimestampGenerator.h */; };
8B328FDB2EA6ECD50082009B /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F592EA6ECD50082009B /* AUBaseHelper.cpp */; };
8B328FDC2EA6ECD50082009B /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F5A2EA6ECD50082009B /* AUSilentTimeout.h */; };
8B328FDD2EA6ECD50082009B /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F5B2EA6ECD50082009B /* AUInputFormatConverter.h */; };
8B328FDE2EA6ECD50082009B /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F5C2EA6ECD50082009B /* AUTimestampGenerator.cpp */; };
8B328FDF2EA6ECD50082009B /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B328F5D2EA6ECD50082009B /* AUBuffer.cpp */; };
8B328FE02EA6ECD50082009B /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F5E2EA6ECD50082009B /* AUMIDIDefs.h */; };
8B328FE12EA6ECD50082009B /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F5F2EA6ECD50082009B /* AUBuffer.h */; };
8B328FE22EA6ECD50082009B /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B328F602EA6ECD50082009B /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* SoftClock2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* SoftClock2.cpp */; };
8BA05A6E0720730100365D66 /* SoftClock2Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* SoftClock2Version.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 /* SoftClock2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* SoftClock2.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B328ED92EA6ECD50082009B /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B328EDA2EA6ECD50082009B /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B328EDB2EA6ECD50082009B /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B328EDC2EA6ECD50082009B /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B328EDD2EA6ECD50082009B /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B328EDE2EA6ECD50082009B /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B328EDF2EA6ECD50082009B /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B328EE02EA6ECD50082009B /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B328EE12EA6ECD50082009B /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B328EE22EA6ECD50082009B /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B328EE32EA6ECD50082009B /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B328EE42EA6ECD50082009B /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B328EE52EA6ECD50082009B /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B328EE62EA6ECD50082009B /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B328EE72EA6ECD50082009B /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B328EE82EA6ECD50082009B /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B328EE92EA6ECD50082009B /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B328EEA2EA6ECD50082009B /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B328EEB2EA6ECD50082009B /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B328EEC2EA6ECD50082009B /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B328EED2EA6ECD50082009B /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B328EEE2EA6ECD50082009B /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B328EEF2EA6ECD50082009B /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B328EF02EA6ECD50082009B /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B328EF12EA6ECD50082009B /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B328EF22EA6ECD50082009B /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B328EF32EA6ECD50082009B /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B328EF42EA6ECD50082009B /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B328EF52EA6ECD50082009B /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B328EF62EA6ECD50082009B /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B328EF72EA6ECD50082009B /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B328EF82EA6ECD50082009B /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B328EF92EA6ECD50082009B /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B328EFA2EA6ECD50082009B /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B328EFB2EA6ECD50082009B /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B328EFC2EA6ECD50082009B /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B328EFD2EA6ECD50082009B /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B328EFE2EA6ECD50082009B /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B328EFF2EA6ECD50082009B /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B328F002EA6ECD50082009B /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B328F012EA6ECD50082009B /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B328F022EA6ECD50082009B /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B328F032EA6ECD50082009B /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B328F042EA6ECD50082009B /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B328F052EA6ECD50082009B /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B328F062EA6ECD50082009B /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B328F072EA6ECD50082009B /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B328F082EA6ECD50082009B /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B328F092EA6ECD50082009B /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B328F0A2EA6ECD50082009B /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B328F0B2EA6ECD50082009B /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B328F0C2EA6ECD50082009B /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B328F0D2EA6ECD50082009B /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B328F0E2EA6ECD50082009B /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B328F0F2EA6ECD50082009B /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B328F102EA6ECD50082009B /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B328F112EA6ECD50082009B /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B328F122EA6ECD50082009B /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B328F132EA6ECD50082009B /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B328F142EA6ECD50082009B /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B328F152EA6ECD50082009B /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B328F162EA6ECD50082009B /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B328F172EA6ECD50082009B /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B328F182EA6ECD50082009B /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B328F192EA6ECD50082009B /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B328F1A2EA6ECD50082009B /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B328F1B2EA6ECD50082009B /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B328F1C2EA6ECD50082009B /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B328F1D2EA6ECD50082009B /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B328F1E2EA6ECD50082009B /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B328F1F2EA6ECD50082009B /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B328F202EA6ECD50082009B /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B328F212EA6ECD50082009B /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B328F222EA6ECD50082009B /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B328F232EA6ECD50082009B /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B328F242EA6ECD50082009B /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B328F252EA6ECD50082009B /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B328F262EA6ECD50082009B /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B328F272EA6ECD50082009B /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B328F282EA6ECD50082009B /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B328F292EA6ECD50082009B /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B328F2A2EA6ECD50082009B /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B328F2B2EA6ECD50082009B /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B328F2C2EA6ECD50082009B /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B328F2D2EA6ECD50082009B /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B328F2E2EA6ECD50082009B /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B328F2F2EA6ECD50082009B /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B328F302EA6ECD50082009B /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B328F312EA6ECD50082009B /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B328F322EA6ECD50082009B /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B328F332EA6ECD50082009B /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B328F342EA6ECD50082009B /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B328F352EA6ECD50082009B /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B328F362EA6ECD50082009B /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B328F372EA6ECD50082009B /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B328F382EA6ECD50082009B /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B328F392EA6ECD50082009B /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B328F3A2EA6ECD50082009B /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B328F3B2EA6ECD50082009B /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B328F3C2EA6ECD50082009B /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B328F3D2EA6ECD50082009B /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B328F3E2EA6ECD50082009B /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B328F3F2EA6ECD50082009B /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B328F432EA6ECD50082009B /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B328F452EA6ECD50082009B /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B328F462EA6ECD50082009B /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B328F472EA6ECD50082009B /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B328F482EA6ECD50082009B /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B328F492EA6ECD50082009B /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B328F4A2EA6ECD50082009B /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B328F4B2EA6ECD50082009B /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B328F4C2EA6ECD50082009B /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B328F4D2EA6ECD50082009B /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B328F4E2EA6ECD50082009B /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B328F4F2EA6ECD50082009B /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B328F502EA6ECD50082009B /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B328F512EA6ECD50082009B /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B328F522EA6ECD50082009B /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B328F532EA6ECD50082009B /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B328F552EA6ECD50082009B /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B328F562EA6ECD50082009B /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B328F582EA6ECD50082009B /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B328F592EA6ECD50082009B /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B328F5A2EA6ECD50082009B /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B328F5B2EA6ECD50082009B /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B328F5C2EA6ECD50082009B /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B328F5D2EA6ECD50082009B /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B328F5E2EA6ECD50082009B /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B328F5F2EA6ECD50082009B /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B328F602EA6ECD50082009B /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B328FE32EA6ED610082009B /* 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 /* SoftClock2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SoftClock2.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* SoftClock2.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = SoftClock2.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* SoftClock2.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = SoftClock2.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* SoftClock2Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoftClock2Version.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 /* SoftClock2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SoftClock2.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* SoftClock2.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SoftClock2.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 /* SoftClock2 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = SoftClock2;
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 = (
8B328ED72EA6ECD50082009B /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* SoftClock2.component */,
);
name = Products;
sourceTree = "<group>";
};
8B328ED72EA6ECD50082009B /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B328ED82EA6ECD50082009B /* PublicUtility */,
8B328F402EA6ECD50082009B /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B328ED82EA6ECD50082009B /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B328ED92EA6ECD50082009B /* CAExtAudioFile.h */,
8B328EDA2EA6ECD50082009B /* CACFMachPort.h */,
8B328EDB2EA6ECD50082009B /* CABool.h */,
8B328EDC2EA6ECD50082009B /* CAComponent.cpp */,
8B328EDD2EA6ECD50082009B /* CADebugger.h */,
8B328EDE2EA6ECD50082009B /* CACFNumber.cpp */,
8B328EDF2EA6ECD50082009B /* CAGuard.h */,
8B328EE02EA6ECD50082009B /* CAAtomic.h */,
8B328EE12EA6ECD50082009B /* CAStreamBasicDescription.h */,
8B328EE22EA6ECD50082009B /* CACFObject.h */,
8B328EE32EA6ECD50082009B /* CAStreamRangedDescription.h */,
8B328EE42EA6ECD50082009B /* CATokenMap.h */,
8B328EE52EA6ECD50082009B /* CAComponent.h */,
8B328EE62EA6ECD50082009B /* CAAudioBufferList.h */,
8B328EE72EA6ECD50082009B /* CAAudioUnit.h */,
8B328EE82EA6ECD50082009B /* CAAUParameter.h */,
8B328EE92EA6ECD50082009B /* CAException.h */,
8B328EEA2EA6ECD50082009B /* CAAUProcessor.cpp */,
8B328EEB2EA6ECD50082009B /* CAAUProcessor.h */,
8B328EEC2EA6ECD50082009B /* CAProcess.h */,
8B328EED2EA6ECD50082009B /* CACFDictionary.h */,
8B328EEE2EA6ECD50082009B /* CAPThread.h */,
8B328EEF2EA6ECD50082009B /* CAAUParameter.cpp */,
8B328EF02EA6ECD50082009B /* CAAudioTimeStamp.h */,
8B328EF12EA6ECD50082009B /* CAFilePathUtils.cpp */,
8B328EF22EA6ECD50082009B /* CAAudioValueRange.h */,
8B328EF32EA6ECD50082009B /* CAVectorUnitTypes.h */,
8B328EF42EA6ECD50082009B /* CAAudioChannelLayoutObject.cpp */,
8B328EF52EA6ECD50082009B /* CAGuard.cpp */,
8B328EF62EA6ECD50082009B /* CACFNumber.h */,
8B328EF72EA6ECD50082009B /* CACFDistributedNotification.cpp */,
8B328EF82EA6ECD50082009B /* CACFString.h */,
8B328EF92EA6ECD50082009B /* CAAUMIDIMapManager.cpp */,
8B328EFA2EA6ECD50082009B /* CAComponentDescription.cpp */,
8B328EFB2EA6ECD50082009B /* CAHostTimeBase.h */,
8B328EFC2EA6ECD50082009B /* CADebugMacros.cpp */,
8B328EFD2EA6ECD50082009B /* CAAudioFileFormats.h */,
8B328EFE2EA6ECD50082009B /* CAAUMIDIMapManager.h */,
8B328EFF2EA6ECD50082009B /* CACFDictionary.cpp */,
8B328F002EA6ECD50082009B /* CAMutex.h */,
8B328F012EA6ECD50082009B /* CACFString.cpp */,
8B328F022EA6ECD50082009B /* CASettingsStorage.h */,
8B328F032EA6ECD50082009B /* CADebugPrintf.h */,
8B328F042EA6ECD50082009B /* CAXException.cpp */,
8B328F052EA6ECD50082009B /* CAAUMIDIMap.h */,
8B328F062EA6ECD50082009B /* AUParamInfo.h */,
8B328F072EA6ECD50082009B /* CABitOperations.h */,
8B328F082EA6ECD50082009B /* CACFPreferences.cpp */,
8B328F092EA6ECD50082009B /* CABundleLocker.h */,
8B328F0A2EA6ECD50082009B /* CAPropertyAddress.h */,
8B328F0B2EA6ECD50082009B /* CAXException.h */,
8B328F0C2EA6ECD50082009B /* CAAudioChannelLayout.cpp */,
8B328F0D2EA6ECD50082009B /* CAThreadSafeList.h */,
8B328F0E2EA6ECD50082009B /* CAAudioUnitOutputCapturer.h */,
8B328F0F2EA6ECD50082009B /* AUParamInfo.cpp */,
8B328F102EA6ECD50082009B /* CASharedLibrary.cpp */,
8B328F112EA6ECD50082009B /* CAAUMIDIMap.cpp */,
8B328F122EA6ECD50082009B /* CALogMacros.h */,
8B328F132EA6ECD50082009B /* CACFMessagePort.cpp */,
8B328F142EA6ECD50082009B /* CARingBuffer.h */,
8B328F152EA6ECD50082009B /* AUOutputBL.cpp */,
8B328F162EA6ECD50082009B /* CABufferList.h */,
8B328F172EA6ECD50082009B /* CASharedLibrary.h */,
8B328F182EA6ECD50082009B /* CACFData.h */,
8B328F192EA6ECD50082009B /* CAStreamRangedDescription.cpp */,
8B328F1A2EA6ECD50082009B /* CAPThread.cpp */,
8B328F1B2EA6ECD50082009B /* CAAutoDisposer.h */,
8B328F1C2EA6ECD50082009B /* CACFPreferences.h */,
8B328F1D2EA6ECD50082009B /* CAVectorUnit.cpp */,
8B328F1E2EA6ECD50082009B /* CAComponentDescription.h */,
8B328F1F2EA6ECD50082009B /* CADebugMacros.h */,
8B328F202EA6ECD50082009B /* AUOutputBL.h */,
8B328F212EA6ECD50082009B /* CADebugPrintf.cpp */,
8B328F222EA6ECD50082009B /* CARingBuffer.cpp */,
8B328F232EA6ECD50082009B /* CACFPlugIn.h */,
8B328F242EA6ECD50082009B /* CASettingsStorage.cpp */,
8B328F252EA6ECD50082009B /* CAMixMap.h */,
8B328F262EA6ECD50082009B /* CACFDistributedNotification.h */,
8B328F272EA6ECD50082009B /* CAFilePathUtils.h */,
8B328F282EA6ECD50082009B /* CATink.h */,
8B328F292EA6ECD50082009B /* CAStreamBasicDescription.cpp */,
8B328F2A2EA6ECD50082009B /* CAAudioChannelLayout.h */,
8B328F2B2EA6ECD50082009B /* CAProcess.cpp */,
8B328F2C2EA6ECD50082009B /* CAHostTimeBase.cpp */,
8B328F2D2EA6ECD50082009B /* CAPersistence.cpp */,
8B328F2E2EA6ECD50082009B /* CAAudioBufferList.cpp */,
8B328F2F2EA6ECD50082009B /* CAAudioTimeStamp.cpp */,
8B328F302EA6ECD50082009B /* CAVectorUnit.h */,
8B328F312EA6ECD50082009B /* CAByteOrder.h */,
8B328F322EA6ECD50082009B /* CACFArray.h */,
8B328F332EA6ECD50082009B /* CAAtomicStack.h */,
8B328F342EA6ECD50082009B /* CAReferenceCounted.h */,
8B328F352EA6ECD50082009B /* CACFMachPort.cpp */,
8B328F362EA6ECD50082009B /* CABufferList.cpp */,
8B328F372EA6ECD50082009B /* CAMutex.cpp */,
8B328F382EA6ECD50082009B /* CADebugger.cpp */,
8B328F392EA6ECD50082009B /* CABundleLocker.cpp */,
8B328F3A2EA6ECD50082009B /* CAAudioFileFormats.cpp */,
8B328F3B2EA6ECD50082009B /* CAMath.h */,
8B328F3C2EA6ECD50082009B /* CACFArray.cpp */,
8B328F3D2EA6ECD50082009B /* CACFMessagePort.h */,
8B328F3E2EA6ECD50082009B /* CAAudioValueRange.cpp */,
8B328F3F2EA6ECD50082009B /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B328F402EA6ECD50082009B /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B328F412EA6ECD50082009B /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B328F412EA6ECD50082009B /* AUPublic */ = {
isa = PBXGroup;
children = (
8B328F422EA6ECD50082009B /* AUViewBase */,
8B328F442EA6ECD50082009B /* AUBase */,
8B328F542EA6ECD50082009B /* OtherBases */,
8B328F572EA6ECD50082009B /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B328F422EA6ECD50082009B /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B328F432EA6ECD50082009B /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B328F442EA6ECD50082009B /* AUBase */ = {
isa = PBXGroup;
children = (
8B328F452EA6ECD50082009B /* ComponentBase.cpp */,
8B328F462EA6ECD50082009B /* AUScopeElement.cpp */,
8B328F472EA6ECD50082009B /* ComponentBase.h */,
8B328F482EA6ECD50082009B /* AUBase.cpp */,
8B328F492EA6ECD50082009B /* AUInputElement.h */,
8B328F4A2EA6ECD50082009B /* AUBase.h */,
8B328F4B2EA6ECD50082009B /* AUPlugInDispatch.h */,
8B328F4C2EA6ECD50082009B /* AUDispatch.h */,
8B328F4D2EA6ECD50082009B /* AUOutputElement.cpp */,
8B328F4E2EA6ECD50082009B /* AUResources.r */,
8B328F4F2EA6ECD50082009B /* AUPlugInDispatch.cpp */,
8B328F502EA6ECD50082009B /* AUOutputElement.h */,
8B328F512EA6ECD50082009B /* AUDispatch.cpp */,
8B328F522EA6ECD50082009B /* AUScopeElement.h */,
8B328F532EA6ECD50082009B /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B328F542EA6ECD50082009B /* OtherBases */ = {
isa = PBXGroup;
children = (
8B328F552EA6ECD50082009B /* AUEffectBase.cpp */,
8B328F562EA6ECD50082009B /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B328F572EA6ECD50082009B /* Utility */ = {
isa = PBXGroup;
children = (
8B328F582EA6ECD50082009B /* AUTimestampGenerator.h */,
8B328F592EA6ECD50082009B /* AUBaseHelper.cpp */,
8B328F5A2EA6ECD50082009B /* AUSilentTimeout.h */,
8B328F5B2EA6ECD50082009B /* AUInputFormatConverter.h */,
8B328F5C2EA6ECD50082009B /* AUTimestampGenerator.cpp */,
8B328F5D2EA6ECD50082009B /* AUBuffer.cpp */,
8B328F5E2EA6ECD50082009B /* AUMIDIDefs.h */,
8B328F5F2EA6ECD50082009B /* AUBuffer.h */,
8B328F602EA6ECD50082009B /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* SoftClock2.h */,
8BA05A660720730100365D66 /* SoftClock2.cpp */,
8BA05A670720730100365D66 /* SoftClock2.exp */,
8BA05A680720730100365D66 /* SoftClock2.r */,
8BA05A690720730100365D66 /* SoftClock2Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B328F912EA6ECD50082009B /* CABundleLocker.h in Headers */,
8B328FB22EA6ECD50082009B /* CAAudioChannelLayout.h in Headers */,
8B328FA82EA6ECD50082009B /* AUOutputBL.h in Headers */,
8B328F832EA6ECD50082009B /* CAHostTimeBase.h in Headers */,
8B328FCB2EA6ECD50082009B /* ComponentBase.h in Headers */,
8B328FBB2EA6ECD50082009B /* CAAtomicStack.h in Headers */,
8B328F782EA6ECD50082009B /* CAAudioTimeStamp.h in Headers */,
8B328F952EA6ECD50082009B /* CAThreadSafeList.h in Headers */,
8B328F702EA6ECD50082009B /* CAAUParameter.h in Headers */,
8B328FE22EA6ECD50082009B /* AUBaseHelper.h in Headers */,
8B328FDA2EA6ECD50082009B /* AUTimestampGenerator.h in Headers */,
8B328F8B2EA6ECD50082009B /* CADebugPrintf.h in Headers */,
8B328FC52EA6ECD50082009B /* CACFMessagePort.h in Headers */,
8B328F732EA6ECD50082009B /* CAAUProcessor.h in Headers */,
8B328F6F2EA6ECD50082009B /* CAAudioUnit.h in Headers */,
8B328FC82EA6ECD50082009B /* AUViewLocalizedStringKeys.h in Headers */,
8B328FAE2EA6ECD50082009B /* CACFDistributedNotification.h in Headers */,
8B328F6D2EA6ECD50082009B /* CAComponent.h in Headers */,
8B328F7B2EA6ECD50082009B /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* SoftClock2Version.h in Headers */,
8B328FAF2EA6ECD50082009B /* CAFilePathUtils.h in Headers */,
8B328F712EA6ECD50082009B /* CAException.h in Headers */,
8B328F682EA6ECD50082009B /* CAAtomic.h in Headers */,
8B328F672EA6ECD50082009B /* CAGuard.h in Headers */,
8B328FCD2EA6ECD50082009B /* AUInputElement.h in Headers */,
8B328FA42EA6ECD50082009B /* CACFPreferences.h in Headers */,
8B328FB92EA6ECD50082009B /* CAByteOrder.h in Headers */,
8B328F9C2EA6ECD50082009B /* CARingBuffer.h in Headers */,
8B328F632EA6ECD50082009B /* CABool.h in Headers */,
8B328F882EA6ECD50082009B /* CAMutex.h in Headers */,
8B328FCE2EA6ECD50082009B /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* SoftClock2.h in Headers */,
8B328F802EA6ECD50082009B /* CACFString.h in Headers */,
8B328F9F2EA6ECD50082009B /* CASharedLibrary.h in Headers */,
8B328F6C2EA6ECD50082009B /* CATokenMap.h in Headers */,
8B328F612EA6ECD50082009B /* CAExtAudioFile.h in Headers */,
8B328F762EA6ECD50082009B /* CAPThread.h in Headers */,
8B328F922EA6ECD50082009B /* CAPropertyAddress.h in Headers */,
8B328FBC2EA6ECD50082009B /* CAReferenceCounted.h in Headers */,
8B328FE12EA6ECD50082009B /* AUBuffer.h in Headers */,
8B328FC32EA6ECD50082009B /* CAMath.h in Headers */,
8B328FA32EA6ECD50082009B /* CAAutoDisposer.h in Headers */,
8B328F6A2EA6ECD50082009B /* CACFObject.h in Headers */,
8B328F8A2EA6ECD50082009B /* CASettingsStorage.h in Headers */,
8B328F932EA6ECD50082009B /* CAXException.h in Headers */,
8B328FB02EA6ECD50082009B /* CATink.h in Headers */,
8B328FDD2EA6ECD50082009B /* AUInputFormatConverter.h in Headers */,
8B328FB82EA6ECD50082009B /* CAVectorUnit.h in Headers */,
8B328F742EA6ECD50082009B /* CAProcess.h in Headers */,
8B328F7A2EA6ECD50082009B /* CAAudioValueRange.h in Headers */,
8B328F8F2EA6ECD50082009B /* CABitOperations.h in Headers */,
8B328F852EA6ECD50082009B /* CAAudioFileFormats.h in Headers */,
8B328F7E2EA6ECD50082009B /* CACFNumber.h in Headers */,
8B328F962EA6ECD50082009B /* CAAudioUnitOutputCapturer.h in Headers */,
8B328FA72EA6ECD50082009B /* CADebugMacros.h in Headers */,
8B328FE02EA6ECD50082009B /* AUMIDIDefs.h in Headers */,
8B328FA02EA6ECD50082009B /* CACFData.h in Headers */,
8B328F692EA6ECD50082009B /* CAStreamBasicDescription.h in Headers */,
8B328FCF2EA6ECD50082009B /* AUPlugInDispatch.h in Headers */,
8B328F6B2EA6ECD50082009B /* CAStreamRangedDescription.h in Headers */,
8B328FAB2EA6ECD50082009B /* CACFPlugIn.h in Headers */,
8B328F6E2EA6ECD50082009B /* CAAudioBufferList.h in Headers */,
8B328F862EA6ECD50082009B /* CAAUMIDIMapManager.h in Headers */,
8B328FD92EA6ECD50082009B /* AUEffectBase.h in Headers */,
8B328F752EA6ECD50082009B /* CACFDictionary.h in Headers */,
8B328FD62EA6ECD50082009B /* AUScopeElement.h in Headers */,
8B328FA62EA6ECD50082009B /* CAComponentDescription.h in Headers */,
8B328FDC2EA6ECD50082009B /* AUSilentTimeout.h in Headers */,
8B328F9E2EA6ECD50082009B /* CABufferList.h in Headers */,
8B328FD02EA6ECD50082009B /* AUDispatch.h in Headers */,
8B328FD42EA6ECD50082009B /* AUOutputElement.h in Headers */,
8B328F9A2EA6ECD50082009B /* CALogMacros.h in Headers */,
8B328F8E2EA6ECD50082009B /* AUParamInfo.h in Headers */,
8B328FAD2EA6ECD50082009B /* CAMixMap.h in Headers */,
8B328FBA2EA6ECD50082009B /* CACFArray.h in Headers */,
8B328F622EA6ECD50082009B /* CACFMachPort.h in Headers */,
8B328F8D2EA6ECD50082009B /* CAAUMIDIMap.h in Headers */,
8B328F652EA6ECD50082009B /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* SoftClock2 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "SoftClock2" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = SoftClock2;
productInstallPath = "$(HOME)/Library/Bundles";
productName = SoftClock2;
productReference = 8D01CCD20486CAD60068D4B7 /* SoftClock2.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 "SoftClock2" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
de,
fr,
en,
Base,
);
mainGroup = 089C166AFE841209C02AAC07 /* SoftClock2 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* SoftClock2 */,
);
};
/* 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 = (
8B328F9D2EA6ECD50082009B /* AUOutputBL.cpp in Sources */,
8B328FC22EA6ECD50082009B /* CAAudioFileFormats.cpp in Sources */,
8B328FB42EA6ECD50082009B /* CAHostTimeBase.cpp in Sources */,
8B328F8C2EA6ECD50082009B /* CAXException.cpp in Sources */,
8B328FB62EA6ECD50082009B /* CAAudioBufferList.cpp in Sources */,
8B328F792EA6ECD50082009B /* CAFilePathUtils.cpp in Sources */,
8B328F772EA6ECD50082009B /* CAAUParameter.cpp in Sources */,
8B328F992EA6ECD50082009B /* CAAUMIDIMap.cpp in Sources */,
8B328FC62EA6ECD50082009B /* CAAudioValueRange.cpp in Sources */,
8B328FD52EA6ECD50082009B /* AUDispatch.cpp in Sources */,
8B328F902EA6ECD50082009B /* CACFPreferences.cpp in Sources */,
8B328FD32EA6ECD50082009B /* AUPlugInDispatch.cpp in Sources */,
8B328F722EA6ECD50082009B /* CAAUProcessor.cpp in Sources */,
8B328F872EA6ECD50082009B /* CACFDictionary.cpp in Sources */,
8B328FDB2EA6ECD50082009B /* AUBaseHelper.cpp in Sources */,
8B328FC02EA6ECD50082009B /* CADebugger.cpp in Sources */,
8B328F942EA6ECD50082009B /* CAAudioChannelLayout.cpp in Sources */,
8B328F972EA6ECD50082009B /* AUParamInfo.cpp in Sources */,
8B328FB52EA6ECD50082009B /* CAPersistence.cpp in Sources */,
8B328FA92EA6ECD50082009B /* CADebugPrintf.cpp in Sources */,
8B328FDE2EA6ECD50082009B /* AUTimestampGenerator.cpp in Sources */,
8B328FB12EA6ECD50082009B /* CAStreamBasicDescription.cpp in Sources */,
8B328F812EA6ECD50082009B /* CAAUMIDIMapManager.cpp in Sources */,
8B328FAC2EA6ECD50082009B /* CASettingsStorage.cpp in Sources */,
8B328FD12EA6ECD50082009B /* AUOutputElement.cpp in Sources */,
8B328F7D2EA6ECD50082009B /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* SoftClock2.cpp in Sources */,
8B328FBF2EA6ECD50082009B /* CAMutex.cpp in Sources */,
8B328FD82EA6ECD50082009B /* AUEffectBase.cpp in Sources */,
8B328FBD2EA6ECD50082009B /* CACFMachPort.cpp in Sources */,
8B328FCC2EA6ECD50082009B /* AUBase.cpp in Sources */,
8B328F982EA6ECD50082009B /* CASharedLibrary.cpp in Sources */,
8B328F7F2EA6ECD50082009B /* CACFDistributedNotification.cpp in Sources */,
8B328F822EA6ECD50082009B /* CAComponentDescription.cpp in Sources */,
8B328F892EA6ECD50082009B /* CACFString.cpp in Sources */,
8B328FC92EA6ECD50082009B /* ComponentBase.cpp in Sources */,
8B328FAA2EA6ECD50082009B /* CARingBuffer.cpp in Sources */,
8B328FCA2EA6ECD50082009B /* AUScopeElement.cpp in Sources */,
8B328FC72EA6ECD50082009B /* CAAudioUnit.cpp in Sources */,
8B328FC42EA6ECD50082009B /* CACFArray.cpp in Sources */,
8B328FC12EA6ECD50082009B /* CABundleLocker.cpp in Sources */,
8B328FB32EA6ECD50082009B /* CAProcess.cpp in Sources */,
8B328FA12EA6ECD50082009B /* CAStreamRangedDescription.cpp in Sources */,
8B328FA22EA6ECD50082009B /* CAPThread.cpp in Sources */,
8B328F642EA6ECD50082009B /* CAComponent.cpp in Sources */,
8B328F7C2EA6ECD50082009B /* CAAudioChannelLayoutObject.cpp in Sources */,
8B328FB72EA6ECD50082009B /* CAAudioTimeStamp.cpp in Sources */,
8B328FBE2EA6ECD50082009B /* CABufferList.cpp in Sources */,
8B328F9B2EA6ECD50082009B /* CACFMessagePort.cpp in Sources */,
8B328FA52EA6ECD50082009B /* CAVectorUnit.cpp in Sources */,
8B328FD72EA6ECD50082009B /* AUInputElement.cpp in Sources */,
8B328FDF2EA6ECD50082009B /* AUBuffer.cpp in Sources */,
8B328F842EA6ECD50082009B /* CADebugMacros.cpp in Sources */,
8B328F662EA6ECD50082009B /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B328FE32EA6ED610082009B /* 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 = SoftClock2.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 = SoftClock2;
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 = SoftClock2.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 = SoftClock2;
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 "SoftClock2" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "SoftClock2" */ = {
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 = "SoftClock2.component"
BlueprintName = "SoftClock2"
ReferencedContainer = "container:SoftClock2.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 = "SoftClock2.component"
BlueprintName = "SoftClock2"
ReferencedContainer = "container:SoftClock2.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>SoftClock2.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: SoftClock2Version.h
*
* Version: 1.0
*
* Created: 10/20/25
*
* Copyright: Copyright © 2025 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 __SoftClock2Version_h__
#define __SoftClock2Version_h__
#ifdef DEBUG
#define kSoftClock2Version 0xFFFFFFFF
#else
#define kSoftClock2Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define SoftClock2_COMP_MANF 'Dthr'
#define SoftClock2_COMP_SUBTYPE 'sfc2'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

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

Binary file not shown.

View file

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildVersion</key>
<string>3</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>ProjectName</key>
<string>${EXECUTABLE_NAME}</string>
<key>SourceVersion</key>
<string>590000</string>
</dict>
</plist>

View file

@ -0,0 +1,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Density3 */;
codeSenseManager = 8B02375F1D42B1C400E1E8C8 /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
324,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 782679840;
PBXWorkspaceStateSaveDate = 782679840;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Density3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 2592}}";
sepNavSelRange = "{4112, 0}";
sepNavVisRange = "{3316, 1886}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* Density3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1620}}";
sepNavSelRange = "{2378, 0}";
sepNavVisRange = "{0, 1133}";
sepNavWindowFrame = "{{20, 47}, {895, 831}}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 20267}}";
sepNavSelRange = "{10616, 0}";
sepNavVisRange = "{9653, 2414}";
sepNavWindowFrame = "{{15, 42}, {895, 831}}";
};
};
24D8286F09A914000093AEF8 /* Density3Proc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1046, 4284}}";
sepNavSelRange = "{443, 0}";
sepNavVisRange = "{0, 1258}";
sepNavWindowFrame = "{{56, 47}, {1093, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* Density3 */ = {
activeExec = 0;
};
}

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