This commit is contained in:
Christopher Johnson 2025-04-12 14:57:27 -04:00
parent d109d6b994
commit 013f2d5e58
161 changed files with 41140 additions and 1 deletions

View file

@ -320,6 +320,7 @@ add_airwindows_plugin(Precious)
add_airwindows_plugin(Preponderant)
add_airwindows_plugin(Pressure4)
add_airwindows_plugin(Pressure5)
add_airwindows_plugin(PrimeFIR)
add_airwindows_plugin(PurestAir)
add_airwindows_plugin(PurestConsoleBuss)
add_airwindows_plugin(PurestConsoleChannel)
@ -359,6 +360,7 @@ add_airwindows_plugin(Slew3)
add_airwindows_plugin(SlewOnly)
add_airwindows_plugin(SlewSonic)
add_airwindows_plugin(Smooth)
add_airwindows_plugin(SmoothEQ)
add_airwindows_plugin(SoftClock)
add_airwindows_plugin(SoftGate)
add_airwindows_plugin(SpatializeDither)

View file

@ -0,0 +1,139 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#include "PrimeFIR.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new PrimeFIR(audioMaster);}
PrimeFIR::PrimeFIR(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 1.0;
B = 0.5;
C = 0.0;
for(int count = 0; count < 32767; count++) {firBufferL[count] = 0.0;firBufferR[count] = 0.0;}
firPosition = 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
}
PrimeFIR::~PrimeFIR() {}
VstInt32 PrimeFIR::getVendorVersion () {return 1000;}
void PrimeFIR::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void PrimeFIR::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 PrimeFIR::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 PrimeFIR::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void PrimeFIR::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float PrimeFIR::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void PrimeFIR::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Freq", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Window", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Prime", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void PrimeFIR::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void PrimeFIR::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 PrimeFIR::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool PrimeFIR::getEffectName(char* name) {
vst_strncpy(name, "PrimeFIR", kVstMaxProductStrLen); return true;
}
VstPlugCategory PrimeFIR::getPlugCategory() {return kPlugCategEffect;}
bool PrimeFIR::getProductString(char* text) {
vst_strncpy (text, "airwindows PrimeFIR", kVstMaxProductStrLen); return true;
}
bool PrimeFIR::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,72 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#define __PrimeFIR_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kNumParameters = 3
};
static int prime[] = {3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919};
//first 999 primes go from 1 to 7919
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'prif'; //Change this to what the AU identity is!
class PrimeFIR :
public AudioEffectX
{
public:
PrimeFIR(audioMasterCallback audioMaster);
~PrimeFIR();
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;
double firBufferL[32768];
double firBufferR[32768];
int firPosition;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,222 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#include "PrimeFIR.h"
#endif
void PrimeFIR::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 freq = pow(A,2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(B*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[1000];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (C < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
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;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = inputSampleL; inputSampleL = 0.0;
firBufferR[firp] = inputSampleR; inputSampleR = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip] * fir[fip];
inputSampleR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.25;
inputSampleR *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip]] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.5;
inputSampleR *= 0.5;
}
inputSampleL *= sqrt(freq); //compensate for gain
inputSampleR *= sqrt(freq); //compensate for gain
firPosition--;
//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 PrimeFIR::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 freq = pow(A,2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(B*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[1000];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (C < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
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;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = inputSampleL; inputSampleL = 0.0;
firBufferR[firp] = inputSampleR; inputSampleR = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip] * fir[fip];
inputSampleR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.25;
inputSampleR *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip]] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.5;
inputSampleR *= 0.5;
}
inputSampleL *= sqrt(freq); //compensate for gain
inputSampleR *= sqrt(freq); //compensate for gain
firPosition--;
//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,159 @@
/* ========================================
* SmoothEQ - SmoothEQ.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SmoothEQ_H
#include "SmoothEQ.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new SmoothEQ(audioMaster);}
SmoothEQ::SmoothEQ(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.5;
D = 0.6;
E = 0.4;
for (int x = 0; x < biq_total; x++) {
besselA[x] = 0.0;
besselB[x] = 0.0;
besselC[x] = 0.0;
besselD[x] = 0.0;
besselE[x] = 0.0;
besselF[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
}
SmoothEQ::~SmoothEQ() {}
VstInt32 SmoothEQ::getVendorVersion () {return 1000;}
void SmoothEQ::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void SmoothEQ::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 SmoothEQ::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;
/* 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 SmoothEQ::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]);
/* 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 SmoothEQ::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;
default: throw; // unknown parameter, shouldn't happen!
}
}
float SmoothEQ::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;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void SmoothEQ::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "XoverH", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "XoverL", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void SmoothEQ::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void SmoothEQ::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 SmoothEQ::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool SmoothEQ::getEffectName(char* name) {
vst_strncpy(name, "SmoothEQ", kVstMaxProductStrLen); return true;
}
VstPlugCategory SmoothEQ::getPlugCategory() {return kPlugCategEffect;}
bool SmoothEQ::getProductString(char* text) {
vst_strncpy (text, "airwindows SmoothEQ", kVstMaxProductStrLen); return true;
}
bool SmoothEQ::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,91 @@
/* ========================================
* SmoothEQ - SmoothEQ.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SmoothEQ_H
#define __SmoothEQ_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,
kNumParameters = 5
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'smeq'; //Change this to what the AU identity is!
class SmoothEQ :
public AudioEffectX
{
public:
SmoothEQ(audioMasterCallback audioMaster);
~SmoothEQ();
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;
enum {
biq_freq,
biq_reso,
biq_a0,
biq_a1,
biq_a2,
biq_b1,
biq_b2,
biq_sL1,
biq_sL2,
biq_sR1,
biq_sR2,
biq_total
}; //coefficient interpolating bessel filter, stereo
double besselA[biq_total];
double besselB[biq_total];
double besselC[biq_total];
double besselD[biq_total];
double besselE[biq_total];
double besselF[biq_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,346 @@
/* ========================================
* SmoothEQ - SmoothEQ.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __SmoothEQ_H
#include "SmoothEQ.h"
#endif
void SmoothEQ::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 trebleGain = A*2.0;
double midGain = B*2.0;
double bassGain = C*2.0; //amount ends up being pow(gain,3)
//simple three band to adjust
besselA[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.9047076123;
if (besselA[biq_freq] < 0.00025) besselA[biq_freq] = 0.00025;
if (besselA[biq_freq] > 0.4999) besselA[biq_freq] = 0.4999;
besselA[biq_reso] = 1.02331395383;
besselB[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.68916826762;
if (besselB[biq_freq] < 0.00025) besselB[biq_freq] = 0.00025;
if (besselB[biq_freq] > 0.4999) besselB[biq_freq] = 0.4999;
besselB[biq_reso] = 0.611194546878;
besselC[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.60391912877;
if (besselC[biq_freq] < 0.00025) besselC[biq_freq] = 0.00025;
if (besselC[biq_freq] > 0.4999) besselC[biq_freq] = 0.4999;
besselC[biq_reso] = 0.510317824749;
besselD[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.9047076123;
if (besselD[biq_freq] < 0.00025) besselD[biq_freq] = 0.00025;
if (besselD[biq_freq] > 0.4999) besselD[biq_freq] = 0.4999;
besselD[biq_reso] = 1.02331395383;
besselE[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.68916826762;
if (besselE[biq_freq] < 0.00025) besselE[biq_freq] = 0.00025;
if (besselE[biq_freq] > 0.4999) besselE[biq_freq] = 0.4999;
besselE[biq_reso] = 0.611194546878;
besselF[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.60391912877;
if (besselF[biq_freq] < 0.00025) besselF[biq_freq] = 0.00025;
if (besselF[biq_freq] > 0.4999) besselF[biq_freq] = 0.4999;
besselF[biq_reso] = 0.510317824749;
double K = tan(M_PI * besselA[biq_freq]);
double norm = 1.0 / (1.0 + K / besselA[biq_reso] + K * K);
besselA[biq_a0] = K * K * norm;
besselA[biq_a1] = 2.0 * besselA[biq_a0];
besselA[biq_a2] = besselA[biq_a0];
besselA[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselA[biq_b2] = (1.0 - K / besselA[biq_reso] + K * K) * norm;
K = tan(M_PI * besselB[biq_freq]);
norm = 1.0 / (1.0 + K / besselB[biq_reso] + K * K);
besselB[biq_a0] = K * K * norm;
besselB[biq_a1] = 2.0 * besselB[biq_a0];
besselB[biq_a2] = besselB[biq_a0];
besselB[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselB[biq_b2] = (1.0 - K / besselB[biq_reso] + K * K) * norm;
K = tan(M_PI * besselC[biq_freq]);
norm = 1.0 / (1.0 + K / besselC[biq_reso] + K * K);
besselC[biq_a0] = K * K * norm;
besselC[biq_a1] = 2.0 * besselC[biq_a0];
besselC[biq_a2] = besselC[biq_a0];
besselC[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselC[biq_b2] = (1.0 - K / besselC[biq_reso] + K * K) * norm;
K = tan(M_PI * besselD[biq_freq]);
norm = 1.0 / (1.0 + K / besselD[biq_reso] + K * K);
besselD[biq_a0] = K * K * norm;
besselD[biq_a1] = 2.0 * besselD[biq_a0];
besselD[biq_a2] = besselD[biq_a0];
besselD[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselD[biq_b2] = (1.0 - K / besselD[biq_reso] + K * K) * norm;
K = tan(M_PI * besselE[biq_freq]);
norm = 1.0 / (1.0 + K / besselE[biq_reso] + K * K);
besselE[biq_a0] = K * K * norm;
besselE[biq_a1] = 2.0 * besselE[biq_a0];
besselE[biq_a2] = besselE[biq_a0];
besselE[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselE[biq_b2] = (1.0 - K / besselE[biq_reso] + K * K) * norm;
K = tan(M_PI * besselF[biq_freq]);
norm = 1.0 / (1.0 + K / besselF[biq_reso] + K * K);
besselF[biq_a0] = K * K * norm;
besselF[biq_a1] = 2.0 * besselF[biq_a0];
besselF[biq_a2] = besselF[biq_a0];
besselF[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselF[biq_b2] = (1.0 - K / besselF[biq_reso] + K * K) * norm;
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 trebleL = inputSampleL;
double outSample = (trebleL * besselA[biq_a0]) + besselA[biq_sL1];
besselA[biq_sL1] = (trebleL * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sL2];
besselA[biq_sL2] = (trebleL * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midL = outSample; trebleL -= midL;
outSample = (midL * besselD[biq_a0]) + besselD[biq_sL1];
besselD[biq_sL1] = (midL * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sL2];
besselD[biq_sL2] = (midL * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselB[biq_a0]) + besselB[biq_sL1];
besselB[biq_sL1] = (trebleL * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sL2];
besselB[biq_sL2] = (trebleL * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselE[biq_a0]) + besselE[biq_sL1];
besselE[biq_sL1] = (midL * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sL2];
besselE[biq_sL2] = (midL * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselC[biq_a0]) + besselC[biq_sL1];
besselC[biq_sL1] = (trebleL * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sL2];
besselC[biq_sL2] = (trebleL * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselF[biq_a0]) + besselF[biq_sL1];
besselF[biq_sL1] = (midL * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sL2];
besselF[biq_sL2] = (midL * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassL = outSample; midL -= bassL;
inputSampleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
double trebleR = inputSampleR;
outSample = (trebleR * besselA[biq_a0]) + besselA[biq_sR1];
besselA[biq_sR1] = (trebleR * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sR2];
besselA[biq_sR2] = (trebleR * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midR = outSample; trebleR -= midR;
outSample = (midR * besselD[biq_a0]) + besselD[biq_sR1];
besselD[biq_sR1] = (midR * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sR2];
besselD[biq_sR2] = (midR * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassR = outSample; midR -= bassR;
trebleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
outSample = (trebleR * besselB[biq_a0]) + besselB[biq_sR1];
besselB[biq_sR1] = (trebleR * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sR2];
besselB[biq_sR2] = (trebleR * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midR = outSample; trebleR -= midR;
outSample = (midR * besselE[biq_a0]) + besselE[biq_sR1];
besselE[biq_sR1] = (midR * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sR2];
besselE[biq_sR2] = (midR * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassR = outSample; midR -= bassR;
trebleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
outSample = (trebleR * besselC[biq_a0]) + besselC[biq_sR1];
besselC[biq_sR1] = (trebleR * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sR2];
besselC[biq_sR2] = (trebleR * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midR = outSample; trebleR -= midR;
outSample = (midR * besselF[biq_a0]) + besselF[biq_sR1];
besselF[biq_sR1] = (midR * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sR2];
besselF[biq_sR2] = (midR * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassR = outSample; midR -= bassR;
inputSampleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
//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 SmoothEQ::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 trebleGain = A*2.0;
double midGain = B*2.0;
double bassGain = C*2.0; //amount ends up being pow(gain,3)
//simple three band to adjust
besselA[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.9047076123;
if (besselA[biq_freq] < 0.00025) besselA[biq_freq] = 0.00025;
if (besselA[biq_freq] > 0.4999) besselA[biq_freq] = 0.4999;
besselA[biq_reso] = 1.02331395383;
besselB[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.68916826762;
if (besselB[biq_freq] < 0.00025) besselB[biq_freq] = 0.00025;
if (besselB[biq_freq] > 0.4999) besselB[biq_freq] = 0.4999;
besselB[biq_reso] = 0.611194546878;
besselC[biq_freq] = pow(D,2) * (0.25/overallscale) * 1.60391912877;
if (besselC[biq_freq] < 0.00025) besselC[biq_freq] = 0.00025;
if (besselC[biq_freq] > 0.4999) besselC[biq_freq] = 0.4999;
besselC[biq_reso] = 0.510317824749;
besselD[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.9047076123;
if (besselD[biq_freq] < 0.00025) besselD[biq_freq] = 0.00025;
if (besselD[biq_freq] > 0.4999) besselD[biq_freq] = 0.4999;
besselD[biq_reso] = 1.02331395383;
besselE[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.68916826762;
if (besselE[biq_freq] < 0.00025) besselE[biq_freq] = 0.00025;
if (besselE[biq_freq] > 0.4999) besselE[biq_freq] = 0.4999;
besselE[biq_reso] = 0.611194546878;
besselF[biq_freq] = pow(E,4) * (0.25/overallscale) * 1.60391912877;
if (besselF[biq_freq] < 0.00025) besselF[biq_freq] = 0.00025;
if (besselF[biq_freq] > 0.4999) besselF[biq_freq] = 0.4999;
besselF[biq_reso] = 0.510317824749;
double K = tan(M_PI * besselA[biq_freq]);
double norm = 1.0 / (1.0 + K / besselA[biq_reso] + K * K);
besselA[biq_a0] = K * K * norm;
besselA[biq_a1] = 2.0 * besselA[biq_a0];
besselA[biq_a2] = besselA[biq_a0];
besselA[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselA[biq_b2] = (1.0 - K / besselA[biq_reso] + K * K) * norm;
K = tan(M_PI * besselB[biq_freq]);
norm = 1.0 / (1.0 + K / besselB[biq_reso] + K * K);
besselB[biq_a0] = K * K * norm;
besselB[biq_a1] = 2.0 * besselB[biq_a0];
besselB[biq_a2] = besselB[biq_a0];
besselB[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselB[biq_b2] = (1.0 - K / besselB[biq_reso] + K * K) * norm;
K = tan(M_PI * besselC[biq_freq]);
norm = 1.0 / (1.0 + K / besselC[biq_reso] + K * K);
besselC[biq_a0] = K * K * norm;
besselC[biq_a1] = 2.0 * besselC[biq_a0];
besselC[biq_a2] = besselC[biq_a0];
besselC[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselC[biq_b2] = (1.0 - K / besselC[biq_reso] + K * K) * norm;
K = tan(M_PI * besselD[biq_freq]);
norm = 1.0 / (1.0 + K / besselD[biq_reso] + K * K);
besselD[biq_a0] = K * K * norm;
besselD[biq_a1] = 2.0 * besselD[biq_a0];
besselD[biq_a2] = besselD[biq_a0];
besselD[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselD[biq_b2] = (1.0 - K / besselD[biq_reso] + K * K) * norm;
K = tan(M_PI * besselE[biq_freq]);
norm = 1.0 / (1.0 + K / besselE[biq_reso] + K * K);
besselE[biq_a0] = K * K * norm;
besselE[biq_a1] = 2.0 * besselE[biq_a0];
besselE[biq_a2] = besselE[biq_a0];
besselE[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselE[biq_b2] = (1.0 - K / besselE[biq_reso] + K * K) * norm;
K = tan(M_PI * besselF[biq_freq]);
norm = 1.0 / (1.0 + K / besselF[biq_reso] + K * K);
besselF[biq_a0] = K * K * norm;
besselF[biq_a1] = 2.0 * besselF[biq_a0];
besselF[biq_a2] = besselF[biq_a0];
besselF[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselF[biq_b2] = (1.0 - K / besselF[biq_reso] + K * K) * norm;
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 trebleL = inputSampleL;
double outSample = (trebleL * besselA[biq_a0]) + besselA[biq_sL1];
besselA[biq_sL1] = (trebleL * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sL2];
besselA[biq_sL2] = (trebleL * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midL = outSample; trebleL -= midL;
outSample = (midL * besselD[biq_a0]) + besselD[biq_sL1];
besselD[biq_sL1] = (midL * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sL2];
besselD[biq_sL2] = (midL * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselB[biq_a0]) + besselB[biq_sL1];
besselB[biq_sL1] = (trebleL * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sL2];
besselB[biq_sL2] = (trebleL * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselE[biq_a0]) + besselE[biq_sL1];
besselE[biq_sL1] = (midL * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sL2];
besselE[biq_sL2] = (midL * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselC[biq_a0]) + besselC[biq_sL1];
besselC[biq_sL1] = (trebleL * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sL2];
besselC[biq_sL2] = (trebleL * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselF[biq_a0]) + besselF[biq_sL1];
besselF[biq_sL1] = (midL * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sL2];
besselF[biq_sL2] = (midL * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassL = outSample; midL -= bassL;
inputSampleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
double trebleR = inputSampleR;
outSample = (trebleR * besselA[biq_a0]) + besselA[biq_sR1];
besselA[biq_sR1] = (trebleR * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sR2];
besselA[biq_sR2] = (trebleR * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midR = outSample; trebleR -= midR;
outSample = (midR * besselD[biq_a0]) + besselD[biq_sR1];
besselD[biq_sR1] = (midR * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sR2];
besselD[biq_sR2] = (midR * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassR = outSample; midR -= bassR;
trebleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
outSample = (trebleR * besselB[biq_a0]) + besselB[biq_sR1];
besselB[biq_sR1] = (trebleR * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sR2];
besselB[biq_sR2] = (trebleR * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midR = outSample; trebleR -= midR;
outSample = (midR * besselE[biq_a0]) + besselE[biq_sR1];
besselE[biq_sR1] = (midR * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sR2];
besselE[biq_sR2] = (midR * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassR = outSample; midR -= bassR;
trebleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
outSample = (trebleR * besselC[biq_a0]) + besselC[biq_sR1];
besselC[biq_sR1] = (trebleR * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sR2];
besselC[biq_sR2] = (trebleR * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midR = outSample; trebleR -= midR;
outSample = (midR * besselF[biq_a0]) + besselF[biq_sR1];
besselF[biq_sR1] = (midR * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sR2];
besselF[biq_sR2] = (midR * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassR = outSample; midR -= bassR;
inputSampleR = (bassR*bassGain) + (midR*midGain) + (trebleR*trebleGain);
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

Binary file not shown.

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,276 @@
/*
* File: PrimeFIR.cpp
*
* Version: 1.0
*
* Created: 3/24/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.
*
*/
/*=============================================================================
PrimeFIR.cpp
=============================================================================*/
#include "PrimeFIR.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(PrimeFIR)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIR
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PrimeFIR::PrimeFIR(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// PrimeFIR::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____PrimeFIREffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIRKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void PrimeFIR::PrimeFIRKernel::Reset()
{
for(int count = 0; count < 32767; count++) {firBuffer[count] = 0.0;}
firPosition = 0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIRKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void PrimeFIR::PrimeFIRKernel::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 freq = pow(GetParameter( kParam_A ),2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(GetParameter( kParam_B )*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[window+2];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (GetParameter( kParam_C ) < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBuffer[firp] = inputSample; inputSample = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSample *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSample *= 0.5;
}
inputSample *= sqrt(freq); //compensate for gain
firPosition--;
//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 @@
_PrimeFIREntry

144
plugins/MacAU/PrimeFIR/PrimeFIR.h Executable file
View file

@ -0,0 +1,144 @@
/*
* File: PrimeFIR.h
*
* Version: 1.0
*
* Created: 3/24/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 "PrimeFIRVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __PrimeFIR_h__
#define __PrimeFIR_h__
#pragma mark ____PrimeFIR Parameters
// parameters
static const float kDefaultValue_ParamA = 1.0;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.0;
static CFStringRef kParameterAName = CFSTR("Freq");
static CFStringRef kParameterBName = CFSTR("Window");
static CFStringRef kParameterCName = CFSTR("Prime");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
static int prime[] = {3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919};
//first 999 primes go from 1 to 7919
#pragma mark ____PrimeFIR
class PrimeFIR : public AUEffectBase
{
public:
PrimeFIR(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~PrimeFIR () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new PrimeFIRKernel(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 kPrimeFIRVersion; }
protected:
class PrimeFIRKernel : public AUKernelBase // most of the real work happens here
{
public:
PrimeFIRKernel(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 firBuffer[32768];
int firPosition;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: PrimeFIR.r
*
* Version: 1.0
*
* Created: 3/24/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 "PrimeFIRVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_PrimeFIR 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PrimeFIR~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_PrimeFIR
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE PrimeFIR_COMP_SUBTYPE
#define COMP_MANUF PrimeFIR_COMP_MANF
#define VERSION kPrimeFIRVersion
#define NAME "Airwindows: PrimeFIR"
#define DESCRIPTION "PrimeFIR AU"
#define ENTRY_POINT "PrimeFIREntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,128 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* PrimeFIR */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
229,
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 = 765921735;
PBXWorkspaceStateSaveDate = 765921735;
};
perUserProjectItems = {
8B41FE852DA702DC00732ABB /* PlistBookmark */ = 8B41FE852DA702DC00732ABB /* PlistBookmark */;
8BB86D962DA7100E005F9CE2 /* PlistBookmark */ = 8BB86D962DA7100E005F9CE2 /* PlistBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B41FE852DA702DC00732ABB /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/PrimeFIR/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BA05A660720730100365D66 /* PrimeFIR.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 4986}}";
sepNavSelRange = "{8975, 1460}";
sepNavVisRange = "{9369, 1496}";
sepNavWindowFrame = "{{617, 38}, {1071, 840}}";
};
};
8BA05A690720730100365D66 /* PrimeFIRVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{760, 2202}";
sepNavWindowFrame = "{{651, 38}, {860, 840}}";
};
};
8BB86D962DA7100E005F9CE2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/PrimeFIR/Info.plist;
rLen = 0;
rLoc = 9223372036854775807;
};
8BC6025B073B072D006C4272 /* PrimeFIR.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {43428, 2592}}";
sepNavSelRange = "{10084, 46}";
sepNavVisRange = "{9116, 1139}";
sepNavWindowFrame = "{{369, 38}, {1071, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* PrimeFIR */ = {
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 /* PrimeFIR.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* PrimeFIR.r */; };
8BA05A6B0720730100365D66 /* PrimeFIR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* PrimeFIR.cpp */; };
8BA05A6E0720730100365D66 /* PrimeFIRVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* PrimeFIRVersion.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 /* PrimeFIR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* PrimeFIR.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 /* PrimeFIR.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PrimeFIR.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* PrimeFIR.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = PrimeFIR.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* PrimeFIR.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = PrimeFIR.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* PrimeFIRVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrimeFIRVersion.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 /* PrimeFIR.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrimeFIR.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* PrimeFIR.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeFIR.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 /* PrimeFIR */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = PrimeFIR;
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 /* PrimeFIR.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* PrimeFIR.h */,
8BA05A660720730100365D66 /* PrimeFIR.cpp */,
8BA05A670720730100365D66 /* PrimeFIR.exp */,
8BA05A680720730100365D66 /* PrimeFIR.r */,
8BA05A690720730100365D66 /* PrimeFIRVersion.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 /* PrimeFIRVersion.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 /* PrimeFIR.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 /* PrimeFIR */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PrimeFIR" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = PrimeFIR;
productInstallPath = "$(HOME)/Library/Bundles";
productName = PrimeFIR;
productReference = 8D01CCD20486CAD60068D4B7 /* PrimeFIR.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 "PrimeFIR" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* PrimeFIR */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* PrimeFIR */,
);
};
/* 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 /* PrimeFIR.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* PrimeFIR.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 = PrimeFIR.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 = PrimeFIR;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = PrimeFIR.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 = PrimeFIR;
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 "PrimeFIR" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PrimeFIR" */ = {
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: PrimeFIRVersion.h
*
* Version: 1.0
*
* Created: 3/24/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 __PrimeFIRVersion_h__
#define __PrimeFIRVersion_h__
#ifdef DEBUG
#define kPrimeFIRVersion 0xFFFFFFFF
#else
#define kPrimeFIRVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define PrimeFIR_COMP_MANF 'Dthr'
#define PrimeFIR_COMP_SUBTYPE 'prif'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

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

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,338 @@
/*
* File: SmoothEQ.cpp
*
* Version: 1.0
*
* Created: 3/24/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.
*
*/
/*=============================================================================
SmoothEQ.cpp
=============================================================================*/
#include "SmoothEQ.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(SmoothEQ)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SmoothEQ::SmoothEQ(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 );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// SmoothEQ::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____SmoothEQEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SmoothEQ::SmoothEQKernel::Reset()
{
for (int x = 0; x < biq_total; x++) {
besselA[x] = 0.0;
besselB[x] = 0.0;
besselC[x] = 0.0;
besselD[x] = 0.0;
besselE[x] = 0.0;
besselF[x] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SmoothEQ::SmoothEQKernel::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 trebleGain = GetParameter( kParam_A )*2.0;
double midGain = GetParameter( kParam_B )*2.0;
double bassGain = GetParameter( kParam_C )*2.0; //amount ends up being pow(gain,3)
//simple three band to adjust
besselA[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.9047076123;
if (besselA[biq_freq] < 0.00025) besselA[biq_freq] = 0.00025;
if (besselA[biq_freq] > 0.4999) besselA[biq_freq] = 0.4999;
besselA[biq_reso] = 1.02331395383;
besselB[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.68916826762;
if (besselB[biq_freq] < 0.00025) besselB[biq_freq] = 0.00025;
if (besselB[biq_freq] > 0.4999) besselB[biq_freq] = 0.4999;
besselB[biq_reso] = 0.611194546878;
besselC[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.60391912877;
if (besselC[biq_freq] < 0.00025) besselC[biq_freq] = 0.00025;
if (besselC[biq_freq] > 0.4999) besselC[biq_freq] = 0.4999;
besselC[biq_reso] = 0.510317824749;
besselD[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.9047076123;
if (besselD[biq_freq] < 0.00025) besselD[biq_freq] = 0.00025;
if (besselD[biq_freq] > 0.4999) besselD[biq_freq] = 0.4999;
besselD[biq_reso] = 1.02331395383;
besselE[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.68916826762;
if (besselE[biq_freq] < 0.00025) besselE[biq_freq] = 0.00025;
if (besselE[biq_freq] > 0.4999) besselE[biq_freq] = 0.4999;
besselE[biq_reso] = 0.611194546878;
besselF[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.60391912877;
if (besselF[biq_freq] < 0.00025) besselF[biq_freq] = 0.00025;
if (besselF[biq_freq] > 0.4999) besselF[biq_freq] = 0.4999;
besselF[biq_reso] = 0.510317824749;
double K = tan(M_PI * besselA[biq_freq]);
double norm = 1.0 / (1.0 + K / besselA[biq_reso] + K * K);
besselA[biq_a0] = K * K * norm;
besselA[biq_a1] = 2.0 * besselA[biq_a0];
besselA[biq_a2] = besselA[biq_a0];
besselA[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselA[biq_b2] = (1.0 - K / besselA[biq_reso] + K * K) * norm;
K = tan(M_PI * besselB[biq_freq]);
norm = 1.0 / (1.0 + K / besselB[biq_reso] + K * K);
besselB[biq_a0] = K * K * norm;
besselB[biq_a1] = 2.0 * besselB[biq_a0];
besselB[biq_a2] = besselB[biq_a0];
besselB[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselB[biq_b2] = (1.0 - K / besselB[biq_reso] + K * K) * norm;
K = tan(M_PI * besselC[biq_freq]);
norm = 1.0 / (1.0 + K / besselC[biq_reso] + K * K);
besselC[biq_a0] = K * K * norm;
besselC[biq_a1] = 2.0 * besselC[biq_a0];
besselC[biq_a2] = besselC[biq_a0];
besselC[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselC[biq_b2] = (1.0 - K / besselC[biq_reso] + K * K) * norm;
K = tan(M_PI * besselD[biq_freq]);
norm = 1.0 / (1.0 + K / besselD[biq_reso] + K * K);
besselD[biq_a0] = K * K * norm;
besselD[biq_a1] = 2.0 * besselD[biq_a0];
besselD[biq_a2] = besselD[biq_a0];
besselD[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselD[biq_b2] = (1.0 - K / besselD[biq_reso] + K * K) * norm;
K = tan(M_PI * besselE[biq_freq]);
norm = 1.0 / (1.0 + K / besselE[biq_reso] + K * K);
besselE[biq_a0] = K * K * norm;
besselE[biq_a1] = 2.0 * besselE[biq_a0];
besselE[biq_a2] = besselE[biq_a0];
besselE[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselE[biq_b2] = (1.0 - K / besselE[biq_reso] + K * K) * norm;
K = tan(M_PI * besselF[biq_freq]);
norm = 1.0 / (1.0 + K / besselF[biq_reso] + K * K);
besselF[biq_a0] = K * K * norm;
besselF[biq_a1] = 2.0 * besselF[biq_a0];
besselF[biq_a2] = besselF[biq_a0];
besselF[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselF[biq_b2] = (1.0 - K / besselF[biq_reso] + K * K) * norm;
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
double trebleL = inputSampleL;
double outSample = (trebleL * besselA[biq_a0]) + besselA[biq_sL1];
besselA[biq_sL1] = (trebleL * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sL2];
besselA[biq_sL2] = (trebleL * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midL = outSample; trebleL -= midL;
outSample = (midL * besselD[biq_a0]) + besselD[biq_sL1];
besselD[biq_sL1] = (midL * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sL2];
besselD[biq_sL2] = (midL * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselB[biq_a0]) + besselB[biq_sL1];
besselB[biq_sL1] = (trebleL * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sL2];
besselB[biq_sL2] = (trebleL * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselE[biq_a0]) + besselE[biq_sL1];
besselE[biq_sL1] = (midL * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sL2];
besselE[biq_sL2] = (midL * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselC[biq_a0]) + besselC[biq_sL1];
besselC[biq_sL1] = (trebleL * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sL2];
besselC[biq_sL2] = (trebleL * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselF[biq_a0]) + besselF[biq_sL1];
besselF[biq_sL1] = (midL * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sL2];
besselF[biq_sL2] = (midL * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassL = outSample; midL -= bassL;
inputSampleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
//begin 32 bit floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSampleL;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1 @@
_SmoothEQEntry

167
plugins/MacAU/SmoothEQ/SmoothEQ.h Executable file
View file

@ -0,0 +1,167 @@
/*
* File: SmoothEQ.h
*
* Version: 1.0
*
* Created: 3/24/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 "SmoothEQVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __SmoothEQ_h__
#define __SmoothEQ_h__
#pragma mark ____SmoothEQ Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.6;
static const float kDefaultValue_ParamE = 0.4;
static CFStringRef kParameterAName = CFSTR("High");
static CFStringRef kParameterBName = CFSTR("Mid");
static CFStringRef kParameterCName = CFSTR("Low");
static CFStringRef kParameterDName = CFSTR("XoverH");
static CFStringRef kParameterEName = CFSTR("XoverL");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
//Add your parameters here...
kNumberOfParameters=5
};
#pragma mark ____SmoothEQ
class SmoothEQ : public AUEffectBase
{
public:
SmoothEQ(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~SmoothEQ () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new SmoothEQKernel(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 kSmoothEQVersion; }
protected:
class SmoothEQKernel : public AUKernelBase // most of the real work happens here
{
public:
SmoothEQKernel(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 {
biq_freq,
biq_reso,
biq_a0,
biq_a1,
biq_a2,
biq_b1,
biq_b2,
biq_sL1,
biq_sL2,
biq_sR1,
biq_sR2,
biq_total
}; //coefficient interpolating bessel filter, stereo
double besselA[biq_total];
double besselB[biq_total];
double besselC[biq_total];
double besselD[biq_total];
double besselE[biq_total];
double besselF[biq_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: SmoothEQ.r
*
* Version: 1.0
*
* Created: 3/24/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 "SmoothEQVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_SmoothEQ 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SmoothEQ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_SmoothEQ
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE SmoothEQ_COMP_SUBTYPE
#define COMP_MANUF SmoothEQ_COMP_MANF
#define VERSION kSmoothEQVersion
#define NAME "Airwindows: SmoothEQ"
#define DESCRIPTION "SmoothEQ AU"
#define ENTRY_POINT "SmoothEQEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* SmoothEQ */;
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 = 765920491;
PBXWorkspaceStateSaveDate = 765920491;
};
perUserProjectItems = {
8B41FEB42DA7079D00732ABB /* PlistBookmark */ = 8B41FEB42DA7079D00732ABB /* PlistBookmark */;
8B41FEB52DA7079D00732ABB /* PBXBookmark */ = 8B41FEB52DA7079D00732ABB /* PBXBookmark */;
8B41FEB62DA7079D00732ABB /* PBXTextBookmark */ = 8B41FEB62DA7079D00732ABB /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B41FEB42DA7079D00732ABB /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/SmoothEQ/Info.plist;
rLen = 0;
rLoc = 9223372036854775807;
};
8B41FEB52DA7079D00732ABB /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BC6025B073B072D006C4272 /* SmoothEQ.h */;
};
8B41FEB62DA7079D00732ABB /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SmoothEQ.h */;
name = "SmoothEQ.h: 61";
rLen = 0;
rLoc = 3058;
rType = 0;
vrLen = 343;
vrLoc = 2872;
};
8BA05A660720730100365D66 /* SmoothEQ.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1024, 6030}}";
sepNavSelRange = "{15593, 0}";
sepNavVisRange = "{13661, 2291}";
sepNavWindowFrame = "{{738, 38}, {1071, 840}}";
};
};
8BA05A690720730100365D66 /* SmoothEQVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{861, 2101}";
sepNavWindowFrame = "{{15, 38}, {860, 840}}";
};
};
8BC6025B073B072D006C4272 /* SmoothEQ.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 3240}}";
sepNavSelRange = "{3058, 0}";
sepNavVisRange = "{2872, 343}";
sepNavWindowFrame = "{{821, 38}, {1071, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* SmoothEQ */ = {
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 /* SmoothEQ.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* SmoothEQ.r */; };
8BA05A6B0720730100365D66 /* SmoothEQ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* SmoothEQ.cpp */; };
8BA05A6E0720730100365D66 /* SmoothEQVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* SmoothEQVersion.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 /* SmoothEQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* SmoothEQ.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 /* SmoothEQ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SmoothEQ.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* SmoothEQ.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = SmoothEQ.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* SmoothEQ.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = SmoothEQ.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* SmoothEQVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmoothEQVersion.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 /* SmoothEQ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmoothEQ.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* SmoothEQ.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmoothEQ.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 /* SmoothEQ */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = SmoothEQ;
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 /* SmoothEQ.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* SmoothEQ.h */,
8BA05A660720730100365D66 /* SmoothEQ.cpp */,
8BA05A670720730100365D66 /* SmoothEQ.exp */,
8BA05A680720730100365D66 /* SmoothEQ.r */,
8BA05A690720730100365D66 /* SmoothEQVersion.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 /* SmoothEQVersion.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 /* SmoothEQ.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 /* SmoothEQ */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "SmoothEQ" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = SmoothEQ;
productInstallPath = "$(HOME)/Library/Bundles";
productName = SmoothEQ;
productReference = 8D01CCD20486CAD60068D4B7 /* SmoothEQ.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 "SmoothEQ" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* SmoothEQ */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* SmoothEQ */,
);
};
/* 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 /* SmoothEQ.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* SmoothEQ.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 = SmoothEQ.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 = SmoothEQ;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = SmoothEQ.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 = SmoothEQ;
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 "SmoothEQ" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "SmoothEQ" */ = {
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: SmoothEQVersion.h
*
* Version: 1.0
*
* Created: 3/24/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 __SmoothEQVersion_h__
#define __SmoothEQVersion_h__
#ifdef DEBUG
#define kSmoothEQVersion 0xFFFFFFFF
#else
#define kSmoothEQVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define SmoothEQ_COMP_MANF 'Dthr'
#define SmoothEQ_COMP_SUBTYPE 'smeq'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

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

View file

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

View file

@ -0,0 +1,276 @@
/*
* File: PrimeFIR.cpp
*
* Version: 1.0
*
* Created: 3/24/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.
*
*/
/*=============================================================================
PrimeFIR.cpp
=============================================================================*/
#include "PrimeFIR.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, PrimeFIR)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIR
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PrimeFIR::PrimeFIR(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// PrimeFIR::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult PrimeFIR::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____PrimeFIREffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIRKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void PrimeFIR::PrimeFIRKernel::Reset()
{
for(int count = 0; count < 32767; count++) {firBuffer[count] = 0.0;}
firPosition = 0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// PrimeFIR::PrimeFIRKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void PrimeFIR::PrimeFIRKernel::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 freq = pow(GetParameter( kParam_A ),2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(GetParameter( kParam_B )*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[window+2];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (GetParameter( kParam_C ) < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBuffer[firp] = inputSample; inputSample = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSample *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSample += firBuffer[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSample *= 0.5;
}
inputSample *= sqrt(freq); //compensate for gain
firPosition--;
//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 @@
_PrimeFIREntry
_PrimeFIRFactory

View file

@ -0,0 +1,144 @@
/*
* File: PrimeFIR.h
*
* Version: 1.0
*
* Created: 3/24/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 "PrimeFIRVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __PrimeFIR_h__
#define __PrimeFIR_h__
#pragma mark ____PrimeFIR Parameters
// parameters
static const float kDefaultValue_ParamA = 1.0;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.0;
static CFStringRef kParameterAName = CFSTR("Freq");
static CFStringRef kParameterBName = CFSTR("Window");
static CFStringRef kParameterCName = CFSTR("Prime");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
static int prime[] = {3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919};
//first 999 primes go from 1 to 7919
#pragma mark ____PrimeFIR
class PrimeFIR : public AUEffectBase
{
public:
PrimeFIR(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~PrimeFIR () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new PrimeFIRKernel(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 kPrimeFIRVersion; }
protected:
class PrimeFIRKernel : public AUKernelBase // most of the real work happens here
{
public:
PrimeFIRKernel(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 firBuffer[32768];
int firPosition;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: PrimeFIR.r
*
* Version: 1.0
*
* Created: 3/24/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 "PrimeFIRVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_PrimeFIR 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PrimeFIR~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_PrimeFIR
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE PrimeFIR_COMP_SUBTYPE
#define COMP_MANUF PrimeFIR_COMP_MANF
#define VERSION kPrimeFIRVersion
#define NAME "Airwindows: PrimeFIR"
#define DESCRIPTION "PrimeFIR AU"
#define ENTRY_POINT "PrimeFIREntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,128 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* PrimeFIR */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
229,
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 = 765921735;
PBXWorkspaceStateSaveDate = 765921735;
};
perUserProjectItems = {
8B41FE852DA702DC00732ABB /* PlistBookmark */ = 8B41FE852DA702DC00732ABB /* PlistBookmark */;
8BB86D962DA7100E005F9CE2 /* PlistBookmark */ = 8BB86D962DA7100E005F9CE2 /* PlistBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B41FE852DA702DC00732ABB /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/PrimeFIR/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BA05A660720730100365D66 /* PrimeFIR.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 4986}}";
sepNavSelRange = "{8975, 1460}";
sepNavVisRange = "{9369, 1496}";
sepNavWindowFrame = "{{617, 38}, {1071, 840}}";
};
};
8BA05A690720730100365D66 /* PrimeFIRVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{760, 2202}";
sepNavWindowFrame = "{{651, 38}, {860, 840}}";
};
};
8BB86D962DA7100E005F9CE2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/PrimeFIR/Info.plist;
rLen = 0;
rLoc = 9223372036854775807;
};
8BC6025B073B072D006C4272 /* PrimeFIR.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {43428, 2592}}";
sepNavSelRange = "{10084, 46}";
sepNavVisRange = "{9116, 1139}";
sepNavWindowFrame = "{{369, 38}, {1071, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* PrimeFIR */ = {
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 */
8B4C5E902DAAB5BF003E2503 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E082DAAB5BF003E2503 /* CAExtAudioFile.h */; };
8B4C5E912DAAB5BF003E2503 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E092DAAB5BF003E2503 /* CACFMachPort.h */; };
8B4C5E922DAAB5BF003E2503 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E0A2DAAB5BF003E2503 /* CABool.h */; };
8B4C5E932DAAB5BF003E2503 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E0B2DAAB5BF003E2503 /* CAComponent.cpp */; };
8B4C5E942DAAB5BF003E2503 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E0C2DAAB5BF003E2503 /* CADebugger.h */; };
8B4C5E952DAAB5BF003E2503 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E0D2DAAB5BF003E2503 /* CACFNumber.cpp */; };
8B4C5E962DAAB5BF003E2503 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E0E2DAAB5BF003E2503 /* CAGuard.h */; };
8B4C5E972DAAB5BF003E2503 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E0F2DAAB5BF003E2503 /* CAAtomic.h */; };
8B4C5E982DAAB5BF003E2503 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E102DAAB5BF003E2503 /* CAStreamBasicDescription.h */; };
8B4C5E992DAAB5BF003E2503 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E112DAAB5BF003E2503 /* CACFObject.h */; };
8B4C5E9A2DAAB5BF003E2503 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E122DAAB5BF003E2503 /* CAStreamRangedDescription.h */; };
8B4C5E9B2DAAB5BF003E2503 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E132DAAB5BF003E2503 /* CATokenMap.h */; };
8B4C5E9C2DAAB5BF003E2503 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E142DAAB5BF003E2503 /* CAComponent.h */; };
8B4C5E9D2DAAB5BF003E2503 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E152DAAB5BF003E2503 /* CAAudioBufferList.h */; };
8B4C5E9E2DAAB5BF003E2503 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E162DAAB5BF003E2503 /* CAAudioUnit.h */; };
8B4C5E9F2DAAB5BF003E2503 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E172DAAB5BF003E2503 /* CAAUParameter.h */; };
8B4C5EA02DAAB5BF003E2503 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E182DAAB5BF003E2503 /* CAException.h */; };
8B4C5EA12DAAB5BF003E2503 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E192DAAB5BF003E2503 /* CAAUProcessor.cpp */; };
8B4C5EA22DAAB5BF003E2503 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E1A2DAAB5BF003E2503 /* CAAUProcessor.h */; };
8B4C5EA32DAAB5BF003E2503 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E1B2DAAB5BF003E2503 /* CAProcess.h */; };
8B4C5EA42DAAB5BF003E2503 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E1C2DAAB5BF003E2503 /* CACFDictionary.h */; };
8B4C5EA52DAAB5BF003E2503 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E1D2DAAB5BF003E2503 /* CAPThread.h */; };
8B4C5EA62DAAB5BF003E2503 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E1E2DAAB5BF003E2503 /* CAAUParameter.cpp */; };
8B4C5EA72DAAB5BF003E2503 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E1F2DAAB5BF003E2503 /* CAAudioTimeStamp.h */; };
8B4C5EA82DAAB5BF003E2503 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E202DAAB5BF003E2503 /* CAFilePathUtils.cpp */; };
8B4C5EA92DAAB5BF003E2503 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E212DAAB5BF003E2503 /* CAAudioValueRange.h */; };
8B4C5EAA2DAAB5BF003E2503 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E222DAAB5BF003E2503 /* CAVectorUnitTypes.h */; };
8B4C5EAB2DAAB5BF003E2503 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E232DAAB5BF003E2503 /* CAAudioChannelLayoutObject.cpp */; };
8B4C5EAC2DAAB5BF003E2503 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E242DAAB5BF003E2503 /* CAGuard.cpp */; };
8B4C5EAD2DAAB5BF003E2503 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E252DAAB5BF003E2503 /* CACFNumber.h */; };
8B4C5EAE2DAAB5BF003E2503 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E262DAAB5BF003E2503 /* CACFDistributedNotification.cpp */; };
8B4C5EAF2DAAB5BF003E2503 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E272DAAB5BF003E2503 /* CACFString.h */; };
8B4C5EB02DAAB5BF003E2503 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E282DAAB5BF003E2503 /* CAAUMIDIMapManager.cpp */; };
8B4C5EB12DAAB5BF003E2503 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E292DAAB5BF003E2503 /* CAComponentDescription.cpp */; };
8B4C5EB22DAAB5BF003E2503 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E2A2DAAB5BF003E2503 /* CAHostTimeBase.h */; };
8B4C5EB32DAAB5BF003E2503 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E2B2DAAB5BF003E2503 /* CADebugMacros.cpp */; };
8B4C5EB42DAAB5BF003E2503 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E2C2DAAB5BF003E2503 /* CAAudioFileFormats.h */; };
8B4C5EB52DAAB5BF003E2503 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E2D2DAAB5BF003E2503 /* CAAUMIDIMapManager.h */; };
8B4C5EB62DAAB5BF003E2503 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E2E2DAAB5BF003E2503 /* CACFDictionary.cpp */; };
8B4C5EB72DAAB5BF003E2503 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E2F2DAAB5BF003E2503 /* CAMutex.h */; };
8B4C5EB82DAAB5BF003E2503 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E302DAAB5BF003E2503 /* CACFString.cpp */; };
8B4C5EB92DAAB5BF003E2503 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E312DAAB5BF003E2503 /* CASettingsStorage.h */; };
8B4C5EBA2DAAB5BF003E2503 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E322DAAB5BF003E2503 /* CADebugPrintf.h */; };
8B4C5EBB2DAAB5BF003E2503 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E332DAAB5BF003E2503 /* CAXException.cpp */; };
8B4C5EBC2DAAB5BF003E2503 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E342DAAB5BF003E2503 /* CAAUMIDIMap.h */; };
8B4C5EBD2DAAB5BF003E2503 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E352DAAB5BF003E2503 /* AUParamInfo.h */; };
8B4C5EBE2DAAB5BF003E2503 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E362DAAB5BF003E2503 /* CABitOperations.h */; };
8B4C5EBF2DAAB5BF003E2503 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E372DAAB5BF003E2503 /* CACFPreferences.cpp */; };
8B4C5EC02DAAB5BF003E2503 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E382DAAB5BF003E2503 /* CABundleLocker.h */; };
8B4C5EC12DAAB5BF003E2503 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E392DAAB5BF003E2503 /* CAPropertyAddress.h */; };
8B4C5EC22DAAB5BF003E2503 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E3A2DAAB5BF003E2503 /* CAXException.h */; };
8B4C5EC32DAAB5BF003E2503 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E3B2DAAB5BF003E2503 /* CAAudioChannelLayout.cpp */; };
8B4C5EC42DAAB5BF003E2503 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E3C2DAAB5BF003E2503 /* CAThreadSafeList.h */; };
8B4C5EC52DAAB5BF003E2503 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E3D2DAAB5BF003E2503 /* CAAudioUnitOutputCapturer.h */; };
8B4C5EC62DAAB5BF003E2503 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E3E2DAAB5BF003E2503 /* AUParamInfo.cpp */; };
8B4C5EC72DAAB5BF003E2503 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E3F2DAAB5BF003E2503 /* CASharedLibrary.cpp */; };
8B4C5EC82DAAB5BF003E2503 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E402DAAB5BF003E2503 /* CAAUMIDIMap.cpp */; };
8B4C5EC92DAAB5BF003E2503 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E412DAAB5BF003E2503 /* CALogMacros.h */; };
8B4C5ECA2DAAB5BF003E2503 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E422DAAB5BF003E2503 /* CACFMessagePort.cpp */; };
8B4C5ECB2DAAB5BF003E2503 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E432DAAB5BF003E2503 /* CARingBuffer.h */; };
8B4C5ECC2DAAB5BF003E2503 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E442DAAB5BF003E2503 /* AUOutputBL.cpp */; };
8B4C5ECD2DAAB5BF003E2503 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E452DAAB5BF003E2503 /* CABufferList.h */; };
8B4C5ECE2DAAB5BF003E2503 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E462DAAB5BF003E2503 /* CASharedLibrary.h */; };
8B4C5ECF2DAAB5BF003E2503 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E472DAAB5BF003E2503 /* CACFData.h */; };
8B4C5ED02DAAB5BF003E2503 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E482DAAB5BF003E2503 /* CAStreamRangedDescription.cpp */; };
8B4C5ED12DAAB5BF003E2503 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E492DAAB5BF003E2503 /* CAPThread.cpp */; };
8B4C5ED22DAAB5BF003E2503 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E4A2DAAB5BF003E2503 /* CAAutoDisposer.h */; };
8B4C5ED32DAAB5BF003E2503 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E4B2DAAB5BF003E2503 /* CACFPreferences.h */; };
8B4C5ED42DAAB5BF003E2503 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E4C2DAAB5BF003E2503 /* CAVectorUnit.cpp */; };
8B4C5ED52DAAB5BF003E2503 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E4D2DAAB5BF003E2503 /* CAComponentDescription.h */; };
8B4C5ED62DAAB5BF003E2503 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E4E2DAAB5BF003E2503 /* CADebugMacros.h */; };
8B4C5ED72DAAB5BF003E2503 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E4F2DAAB5BF003E2503 /* AUOutputBL.h */; };
8B4C5ED82DAAB5BF003E2503 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E502DAAB5BF003E2503 /* CADebugPrintf.cpp */; };
8B4C5ED92DAAB5BF003E2503 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E512DAAB5BF003E2503 /* CARingBuffer.cpp */; };
8B4C5EDA2DAAB5BF003E2503 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E522DAAB5BF003E2503 /* CACFPlugIn.h */; };
8B4C5EDB2DAAB5BF003E2503 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E532DAAB5BF003E2503 /* CASettingsStorage.cpp */; };
8B4C5EDC2DAAB5BF003E2503 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E542DAAB5BF003E2503 /* CAMixMap.h */; };
8B4C5EDD2DAAB5BF003E2503 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E552DAAB5BF003E2503 /* CACFDistributedNotification.h */; };
8B4C5EDE2DAAB5BF003E2503 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E562DAAB5BF003E2503 /* CAFilePathUtils.h */; };
8B4C5EDF2DAAB5BF003E2503 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E572DAAB5BF003E2503 /* CATink.h */; };
8B4C5EE02DAAB5BF003E2503 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E582DAAB5BF003E2503 /* CAStreamBasicDescription.cpp */; };
8B4C5EE12DAAB5BF003E2503 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E592DAAB5BF003E2503 /* CAAudioChannelLayout.h */; };
8B4C5EE22DAAB5BF003E2503 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E5A2DAAB5BF003E2503 /* CAProcess.cpp */; };
8B4C5EE32DAAB5BF003E2503 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E5B2DAAB5BF003E2503 /* CAHostTimeBase.cpp */; };
8B4C5EE42DAAB5BF003E2503 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E5C2DAAB5BF003E2503 /* CAPersistence.cpp */; };
8B4C5EE52DAAB5BF003E2503 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E5D2DAAB5BF003E2503 /* CAAudioBufferList.cpp */; };
8B4C5EE62DAAB5BF003E2503 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E5E2DAAB5BF003E2503 /* CAAudioTimeStamp.cpp */; };
8B4C5EE72DAAB5BF003E2503 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E5F2DAAB5BF003E2503 /* CAVectorUnit.h */; };
8B4C5EE82DAAB5BF003E2503 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E602DAAB5BF003E2503 /* CAByteOrder.h */; };
8B4C5EE92DAAB5BF003E2503 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E612DAAB5BF003E2503 /* CACFArray.h */; };
8B4C5EEA2DAAB5BF003E2503 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E622DAAB5BF003E2503 /* CAAtomicStack.h */; };
8B4C5EEB2DAAB5BF003E2503 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E632DAAB5BF003E2503 /* CAReferenceCounted.h */; };
8B4C5EEC2DAAB5BF003E2503 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E642DAAB5BF003E2503 /* CACFMachPort.cpp */; };
8B4C5EED2DAAB5BF003E2503 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E652DAAB5BF003E2503 /* CABufferList.cpp */; };
8B4C5EEE2DAAB5BF003E2503 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E662DAAB5BF003E2503 /* CAMutex.cpp */; };
8B4C5EEF2DAAB5BF003E2503 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E672DAAB5BF003E2503 /* CADebugger.cpp */; };
8B4C5EF02DAAB5BF003E2503 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E682DAAB5BF003E2503 /* CABundleLocker.cpp */; };
8B4C5EF12DAAB5BF003E2503 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E692DAAB5BF003E2503 /* CAAudioFileFormats.cpp */; };
8B4C5EF22DAAB5BF003E2503 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E6A2DAAB5BF003E2503 /* CAMath.h */; };
8B4C5EF32DAAB5BF003E2503 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E6B2DAAB5BF003E2503 /* CACFArray.cpp */; };
8B4C5EF42DAAB5BF003E2503 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E6C2DAAB5BF003E2503 /* CACFMessagePort.h */; };
8B4C5EF52DAAB5BF003E2503 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E6D2DAAB5BF003E2503 /* CAAudioValueRange.cpp */; };
8B4C5EF62DAAB5BF003E2503 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E6E2DAAB5BF003E2503 /* CAAudioUnit.cpp */; };
8B4C5EF72DAAB5BF003E2503 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E722DAAB5BF003E2503 /* AUViewLocalizedStringKeys.h */; };
8B4C5EF82DAAB5BF003E2503 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E742DAAB5BF003E2503 /* ComponentBase.cpp */; };
8B4C5EF92DAAB5BF003E2503 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E752DAAB5BF003E2503 /* AUScopeElement.cpp */; };
8B4C5EFA2DAAB5BF003E2503 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E762DAAB5BF003E2503 /* ComponentBase.h */; };
8B4C5EFB2DAAB5BF003E2503 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E772DAAB5BF003E2503 /* AUBase.cpp */; };
8B4C5EFC2DAAB5BF003E2503 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E782DAAB5BF003E2503 /* AUInputElement.h */; };
8B4C5EFD2DAAB5BF003E2503 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E792DAAB5BF003E2503 /* AUBase.h */; };
8B4C5EFE2DAAB5BF003E2503 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E7A2DAAB5BF003E2503 /* AUPlugInDispatch.h */; };
8B4C5EFF2DAAB5BF003E2503 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E7B2DAAB5BF003E2503 /* AUDispatch.h */; };
8B4C5F002DAAB5BF003E2503 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E7C2DAAB5BF003E2503 /* AUOutputElement.cpp */; };
8B4C5F022DAAB5BF003E2503 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E7E2DAAB5BF003E2503 /* AUPlugInDispatch.cpp */; };
8B4C5F032DAAB5BF003E2503 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E7F2DAAB5BF003E2503 /* AUOutputElement.h */; };
8B4C5F042DAAB5BF003E2503 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E802DAAB5BF003E2503 /* AUDispatch.cpp */; };
8B4C5F052DAAB5BF003E2503 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E812DAAB5BF003E2503 /* AUScopeElement.h */; };
8B4C5F062DAAB5BF003E2503 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E822DAAB5BF003E2503 /* AUInputElement.cpp */; };
8B4C5F072DAAB5BF003E2503 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E842DAAB5BF003E2503 /* AUEffectBase.cpp */; };
8B4C5F082DAAB5BF003E2503 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E852DAAB5BF003E2503 /* AUEffectBase.h */; };
8B4C5F092DAAB5BF003E2503 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E872DAAB5BF003E2503 /* AUTimestampGenerator.h */; };
8B4C5F0A2DAAB5BF003E2503 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E882DAAB5BF003E2503 /* AUBaseHelper.cpp */; };
8B4C5F0B2DAAB5BF003E2503 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E892DAAB5BF003E2503 /* AUSilentTimeout.h */; };
8B4C5F0C2DAAB5BF003E2503 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E8A2DAAB5BF003E2503 /* AUInputFormatConverter.h */; };
8B4C5F0D2DAAB5BF003E2503 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E8B2DAAB5BF003E2503 /* AUTimestampGenerator.cpp */; };
8B4C5F0E2DAAB5BF003E2503 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5E8C2DAAB5BF003E2503 /* AUBuffer.cpp */; };
8B4C5F0F2DAAB5BF003E2503 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E8D2DAAB5BF003E2503 /* AUMIDIDefs.h */; };
8B4C5F102DAAB5BF003E2503 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E8E2DAAB5BF003E2503 /* AUBuffer.h */; };
8B4C5F112DAAB5BF003E2503 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5E8F2DAAB5BF003E2503 /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* PrimeFIR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* PrimeFIR.cpp */; };
8BA05A6E0720730100365D66 /* PrimeFIRVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* PrimeFIRVersion.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 /* PrimeFIR.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* PrimeFIR.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B4C5E082DAAB5BF003E2503 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B4C5E092DAAB5BF003E2503 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B4C5E0A2DAAB5BF003E2503 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B4C5E0B2DAAB5BF003E2503 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B4C5E0C2DAAB5BF003E2503 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B4C5E0D2DAAB5BF003E2503 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B4C5E0E2DAAB5BF003E2503 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B4C5E0F2DAAB5BF003E2503 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B4C5E102DAAB5BF003E2503 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B4C5E112DAAB5BF003E2503 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B4C5E122DAAB5BF003E2503 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B4C5E132DAAB5BF003E2503 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B4C5E142DAAB5BF003E2503 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B4C5E152DAAB5BF003E2503 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B4C5E162DAAB5BF003E2503 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B4C5E172DAAB5BF003E2503 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B4C5E182DAAB5BF003E2503 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B4C5E192DAAB5BF003E2503 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B4C5E1A2DAAB5BF003E2503 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B4C5E1B2DAAB5BF003E2503 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B4C5E1C2DAAB5BF003E2503 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B4C5E1D2DAAB5BF003E2503 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B4C5E1E2DAAB5BF003E2503 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B4C5E1F2DAAB5BF003E2503 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B4C5E202DAAB5BF003E2503 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B4C5E212DAAB5BF003E2503 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B4C5E222DAAB5BF003E2503 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B4C5E232DAAB5BF003E2503 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B4C5E242DAAB5BF003E2503 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B4C5E252DAAB5BF003E2503 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B4C5E262DAAB5BF003E2503 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B4C5E272DAAB5BF003E2503 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B4C5E282DAAB5BF003E2503 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B4C5E292DAAB5BF003E2503 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B4C5E2A2DAAB5BF003E2503 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B4C5E2B2DAAB5BF003E2503 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B4C5E2C2DAAB5BF003E2503 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B4C5E2D2DAAB5BF003E2503 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B4C5E2E2DAAB5BF003E2503 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B4C5E2F2DAAB5BF003E2503 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B4C5E302DAAB5BF003E2503 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B4C5E312DAAB5BF003E2503 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B4C5E322DAAB5BF003E2503 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B4C5E332DAAB5BF003E2503 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B4C5E342DAAB5BF003E2503 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B4C5E352DAAB5BF003E2503 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B4C5E362DAAB5BF003E2503 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B4C5E372DAAB5BF003E2503 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B4C5E382DAAB5BF003E2503 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B4C5E392DAAB5BF003E2503 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B4C5E3A2DAAB5BF003E2503 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B4C5E3B2DAAB5BF003E2503 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B4C5E3C2DAAB5BF003E2503 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B4C5E3D2DAAB5BF003E2503 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B4C5E3E2DAAB5BF003E2503 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B4C5E3F2DAAB5BF003E2503 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B4C5E402DAAB5BF003E2503 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B4C5E412DAAB5BF003E2503 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B4C5E422DAAB5BF003E2503 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B4C5E432DAAB5BF003E2503 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B4C5E442DAAB5BF003E2503 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B4C5E452DAAB5BF003E2503 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B4C5E462DAAB5BF003E2503 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B4C5E472DAAB5BF003E2503 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B4C5E482DAAB5BF003E2503 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B4C5E492DAAB5BF003E2503 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B4C5E4A2DAAB5BF003E2503 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B4C5E4B2DAAB5BF003E2503 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B4C5E4C2DAAB5BF003E2503 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B4C5E4D2DAAB5BF003E2503 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B4C5E4E2DAAB5BF003E2503 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B4C5E4F2DAAB5BF003E2503 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B4C5E502DAAB5BF003E2503 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B4C5E512DAAB5BF003E2503 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B4C5E522DAAB5BF003E2503 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B4C5E532DAAB5BF003E2503 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B4C5E542DAAB5BF003E2503 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B4C5E552DAAB5BF003E2503 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B4C5E562DAAB5BF003E2503 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B4C5E572DAAB5BF003E2503 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B4C5E582DAAB5BF003E2503 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B4C5E592DAAB5BF003E2503 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B4C5E5A2DAAB5BF003E2503 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B4C5E5B2DAAB5BF003E2503 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B4C5E5C2DAAB5BF003E2503 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B4C5E5D2DAAB5BF003E2503 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B4C5E5E2DAAB5BF003E2503 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B4C5E5F2DAAB5BF003E2503 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B4C5E602DAAB5BF003E2503 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B4C5E612DAAB5BF003E2503 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B4C5E622DAAB5BF003E2503 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B4C5E632DAAB5BF003E2503 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B4C5E642DAAB5BF003E2503 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B4C5E652DAAB5BF003E2503 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B4C5E662DAAB5BF003E2503 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B4C5E672DAAB5BF003E2503 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B4C5E682DAAB5BF003E2503 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B4C5E692DAAB5BF003E2503 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B4C5E6A2DAAB5BF003E2503 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B4C5E6B2DAAB5BF003E2503 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B4C5E6C2DAAB5BF003E2503 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B4C5E6D2DAAB5BF003E2503 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B4C5E6E2DAAB5BF003E2503 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B4C5E722DAAB5BF003E2503 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B4C5E742DAAB5BF003E2503 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B4C5E752DAAB5BF003E2503 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B4C5E762DAAB5BF003E2503 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B4C5E772DAAB5BF003E2503 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B4C5E782DAAB5BF003E2503 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B4C5E792DAAB5BF003E2503 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B4C5E7A2DAAB5BF003E2503 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B4C5E7B2DAAB5BF003E2503 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B4C5E7C2DAAB5BF003E2503 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B4C5E7D2DAAB5BF003E2503 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B4C5E7E2DAAB5BF003E2503 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B4C5E7F2DAAB5BF003E2503 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B4C5E802DAAB5BF003E2503 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B4C5E812DAAB5BF003E2503 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B4C5E822DAAB5BF003E2503 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B4C5E842DAAB5BF003E2503 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B4C5E852DAAB5BF003E2503 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B4C5E872DAAB5BF003E2503 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B4C5E882DAAB5BF003E2503 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B4C5E892DAAB5BF003E2503 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B4C5E8A2DAAB5BF003E2503 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B4C5E8B2DAAB5BF003E2503 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B4C5E8C2DAAB5BF003E2503 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B4C5E8D2DAAB5BF003E2503 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B4C5E8E2DAAB5BF003E2503 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B4C5E8F2DAAB5BF003E2503 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B4C5F122DAAB700003E2503 /* 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 /* PrimeFIR.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PrimeFIR.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* PrimeFIR.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = PrimeFIR.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* PrimeFIR.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = PrimeFIR.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* PrimeFIRVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrimeFIRVersion.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 /* PrimeFIR.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PrimeFIR.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* PrimeFIR.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeFIR.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 /* PrimeFIR */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = PrimeFIR;
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 = (
8B4C5E062DAAB5BF003E2503 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* PrimeFIR.component */,
);
name = Products;
sourceTree = "<group>";
};
8B4C5E062DAAB5BF003E2503 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B4C5E072DAAB5BF003E2503 /* PublicUtility */,
8B4C5E6F2DAAB5BF003E2503 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B4C5E072DAAB5BF003E2503 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B4C5E082DAAB5BF003E2503 /* CAExtAudioFile.h */,
8B4C5E092DAAB5BF003E2503 /* CACFMachPort.h */,
8B4C5E0A2DAAB5BF003E2503 /* CABool.h */,
8B4C5E0B2DAAB5BF003E2503 /* CAComponent.cpp */,
8B4C5E0C2DAAB5BF003E2503 /* CADebugger.h */,
8B4C5E0D2DAAB5BF003E2503 /* CACFNumber.cpp */,
8B4C5E0E2DAAB5BF003E2503 /* CAGuard.h */,
8B4C5E0F2DAAB5BF003E2503 /* CAAtomic.h */,
8B4C5E102DAAB5BF003E2503 /* CAStreamBasicDescription.h */,
8B4C5E112DAAB5BF003E2503 /* CACFObject.h */,
8B4C5E122DAAB5BF003E2503 /* CAStreamRangedDescription.h */,
8B4C5E132DAAB5BF003E2503 /* CATokenMap.h */,
8B4C5E142DAAB5BF003E2503 /* CAComponent.h */,
8B4C5E152DAAB5BF003E2503 /* CAAudioBufferList.h */,
8B4C5E162DAAB5BF003E2503 /* CAAudioUnit.h */,
8B4C5E172DAAB5BF003E2503 /* CAAUParameter.h */,
8B4C5E182DAAB5BF003E2503 /* CAException.h */,
8B4C5E192DAAB5BF003E2503 /* CAAUProcessor.cpp */,
8B4C5E1A2DAAB5BF003E2503 /* CAAUProcessor.h */,
8B4C5E1B2DAAB5BF003E2503 /* CAProcess.h */,
8B4C5E1C2DAAB5BF003E2503 /* CACFDictionary.h */,
8B4C5E1D2DAAB5BF003E2503 /* CAPThread.h */,
8B4C5E1E2DAAB5BF003E2503 /* CAAUParameter.cpp */,
8B4C5E1F2DAAB5BF003E2503 /* CAAudioTimeStamp.h */,
8B4C5E202DAAB5BF003E2503 /* CAFilePathUtils.cpp */,
8B4C5E212DAAB5BF003E2503 /* CAAudioValueRange.h */,
8B4C5E222DAAB5BF003E2503 /* CAVectorUnitTypes.h */,
8B4C5E232DAAB5BF003E2503 /* CAAudioChannelLayoutObject.cpp */,
8B4C5E242DAAB5BF003E2503 /* CAGuard.cpp */,
8B4C5E252DAAB5BF003E2503 /* CACFNumber.h */,
8B4C5E262DAAB5BF003E2503 /* CACFDistributedNotification.cpp */,
8B4C5E272DAAB5BF003E2503 /* CACFString.h */,
8B4C5E282DAAB5BF003E2503 /* CAAUMIDIMapManager.cpp */,
8B4C5E292DAAB5BF003E2503 /* CAComponentDescription.cpp */,
8B4C5E2A2DAAB5BF003E2503 /* CAHostTimeBase.h */,
8B4C5E2B2DAAB5BF003E2503 /* CADebugMacros.cpp */,
8B4C5E2C2DAAB5BF003E2503 /* CAAudioFileFormats.h */,
8B4C5E2D2DAAB5BF003E2503 /* CAAUMIDIMapManager.h */,
8B4C5E2E2DAAB5BF003E2503 /* CACFDictionary.cpp */,
8B4C5E2F2DAAB5BF003E2503 /* CAMutex.h */,
8B4C5E302DAAB5BF003E2503 /* CACFString.cpp */,
8B4C5E312DAAB5BF003E2503 /* CASettingsStorage.h */,
8B4C5E322DAAB5BF003E2503 /* CADebugPrintf.h */,
8B4C5E332DAAB5BF003E2503 /* CAXException.cpp */,
8B4C5E342DAAB5BF003E2503 /* CAAUMIDIMap.h */,
8B4C5E352DAAB5BF003E2503 /* AUParamInfo.h */,
8B4C5E362DAAB5BF003E2503 /* CABitOperations.h */,
8B4C5E372DAAB5BF003E2503 /* CACFPreferences.cpp */,
8B4C5E382DAAB5BF003E2503 /* CABundleLocker.h */,
8B4C5E392DAAB5BF003E2503 /* CAPropertyAddress.h */,
8B4C5E3A2DAAB5BF003E2503 /* CAXException.h */,
8B4C5E3B2DAAB5BF003E2503 /* CAAudioChannelLayout.cpp */,
8B4C5E3C2DAAB5BF003E2503 /* CAThreadSafeList.h */,
8B4C5E3D2DAAB5BF003E2503 /* CAAudioUnitOutputCapturer.h */,
8B4C5E3E2DAAB5BF003E2503 /* AUParamInfo.cpp */,
8B4C5E3F2DAAB5BF003E2503 /* CASharedLibrary.cpp */,
8B4C5E402DAAB5BF003E2503 /* CAAUMIDIMap.cpp */,
8B4C5E412DAAB5BF003E2503 /* CALogMacros.h */,
8B4C5E422DAAB5BF003E2503 /* CACFMessagePort.cpp */,
8B4C5E432DAAB5BF003E2503 /* CARingBuffer.h */,
8B4C5E442DAAB5BF003E2503 /* AUOutputBL.cpp */,
8B4C5E452DAAB5BF003E2503 /* CABufferList.h */,
8B4C5E462DAAB5BF003E2503 /* CASharedLibrary.h */,
8B4C5E472DAAB5BF003E2503 /* CACFData.h */,
8B4C5E482DAAB5BF003E2503 /* CAStreamRangedDescription.cpp */,
8B4C5E492DAAB5BF003E2503 /* CAPThread.cpp */,
8B4C5E4A2DAAB5BF003E2503 /* CAAutoDisposer.h */,
8B4C5E4B2DAAB5BF003E2503 /* CACFPreferences.h */,
8B4C5E4C2DAAB5BF003E2503 /* CAVectorUnit.cpp */,
8B4C5E4D2DAAB5BF003E2503 /* CAComponentDescription.h */,
8B4C5E4E2DAAB5BF003E2503 /* CADebugMacros.h */,
8B4C5E4F2DAAB5BF003E2503 /* AUOutputBL.h */,
8B4C5E502DAAB5BF003E2503 /* CADebugPrintf.cpp */,
8B4C5E512DAAB5BF003E2503 /* CARingBuffer.cpp */,
8B4C5E522DAAB5BF003E2503 /* CACFPlugIn.h */,
8B4C5E532DAAB5BF003E2503 /* CASettingsStorage.cpp */,
8B4C5E542DAAB5BF003E2503 /* CAMixMap.h */,
8B4C5E552DAAB5BF003E2503 /* CACFDistributedNotification.h */,
8B4C5E562DAAB5BF003E2503 /* CAFilePathUtils.h */,
8B4C5E572DAAB5BF003E2503 /* CATink.h */,
8B4C5E582DAAB5BF003E2503 /* CAStreamBasicDescription.cpp */,
8B4C5E592DAAB5BF003E2503 /* CAAudioChannelLayout.h */,
8B4C5E5A2DAAB5BF003E2503 /* CAProcess.cpp */,
8B4C5E5B2DAAB5BF003E2503 /* CAHostTimeBase.cpp */,
8B4C5E5C2DAAB5BF003E2503 /* CAPersistence.cpp */,
8B4C5E5D2DAAB5BF003E2503 /* CAAudioBufferList.cpp */,
8B4C5E5E2DAAB5BF003E2503 /* CAAudioTimeStamp.cpp */,
8B4C5E5F2DAAB5BF003E2503 /* CAVectorUnit.h */,
8B4C5E602DAAB5BF003E2503 /* CAByteOrder.h */,
8B4C5E612DAAB5BF003E2503 /* CACFArray.h */,
8B4C5E622DAAB5BF003E2503 /* CAAtomicStack.h */,
8B4C5E632DAAB5BF003E2503 /* CAReferenceCounted.h */,
8B4C5E642DAAB5BF003E2503 /* CACFMachPort.cpp */,
8B4C5E652DAAB5BF003E2503 /* CABufferList.cpp */,
8B4C5E662DAAB5BF003E2503 /* CAMutex.cpp */,
8B4C5E672DAAB5BF003E2503 /* CADebugger.cpp */,
8B4C5E682DAAB5BF003E2503 /* CABundleLocker.cpp */,
8B4C5E692DAAB5BF003E2503 /* CAAudioFileFormats.cpp */,
8B4C5E6A2DAAB5BF003E2503 /* CAMath.h */,
8B4C5E6B2DAAB5BF003E2503 /* CACFArray.cpp */,
8B4C5E6C2DAAB5BF003E2503 /* CACFMessagePort.h */,
8B4C5E6D2DAAB5BF003E2503 /* CAAudioValueRange.cpp */,
8B4C5E6E2DAAB5BF003E2503 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B4C5E6F2DAAB5BF003E2503 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B4C5E702DAAB5BF003E2503 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B4C5E702DAAB5BF003E2503 /* AUPublic */ = {
isa = PBXGroup;
children = (
8B4C5E712DAAB5BF003E2503 /* AUViewBase */,
8B4C5E732DAAB5BF003E2503 /* AUBase */,
8B4C5E832DAAB5BF003E2503 /* OtherBases */,
8B4C5E862DAAB5BF003E2503 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B4C5E712DAAB5BF003E2503 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B4C5E722DAAB5BF003E2503 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B4C5E732DAAB5BF003E2503 /* AUBase */ = {
isa = PBXGroup;
children = (
8B4C5E742DAAB5BF003E2503 /* ComponentBase.cpp */,
8B4C5E752DAAB5BF003E2503 /* AUScopeElement.cpp */,
8B4C5E762DAAB5BF003E2503 /* ComponentBase.h */,
8B4C5E772DAAB5BF003E2503 /* AUBase.cpp */,
8B4C5E782DAAB5BF003E2503 /* AUInputElement.h */,
8B4C5E792DAAB5BF003E2503 /* AUBase.h */,
8B4C5E7A2DAAB5BF003E2503 /* AUPlugInDispatch.h */,
8B4C5E7B2DAAB5BF003E2503 /* AUDispatch.h */,
8B4C5E7C2DAAB5BF003E2503 /* AUOutputElement.cpp */,
8B4C5E7D2DAAB5BF003E2503 /* AUResources.r */,
8B4C5E7E2DAAB5BF003E2503 /* AUPlugInDispatch.cpp */,
8B4C5E7F2DAAB5BF003E2503 /* AUOutputElement.h */,
8B4C5E802DAAB5BF003E2503 /* AUDispatch.cpp */,
8B4C5E812DAAB5BF003E2503 /* AUScopeElement.h */,
8B4C5E822DAAB5BF003E2503 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B4C5E832DAAB5BF003E2503 /* OtherBases */ = {
isa = PBXGroup;
children = (
8B4C5E842DAAB5BF003E2503 /* AUEffectBase.cpp */,
8B4C5E852DAAB5BF003E2503 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B4C5E862DAAB5BF003E2503 /* Utility */ = {
isa = PBXGroup;
children = (
8B4C5E872DAAB5BF003E2503 /* AUTimestampGenerator.h */,
8B4C5E882DAAB5BF003E2503 /* AUBaseHelper.cpp */,
8B4C5E892DAAB5BF003E2503 /* AUSilentTimeout.h */,
8B4C5E8A2DAAB5BF003E2503 /* AUInputFormatConverter.h */,
8B4C5E8B2DAAB5BF003E2503 /* AUTimestampGenerator.cpp */,
8B4C5E8C2DAAB5BF003E2503 /* AUBuffer.cpp */,
8B4C5E8D2DAAB5BF003E2503 /* AUMIDIDefs.h */,
8B4C5E8E2DAAB5BF003E2503 /* AUBuffer.h */,
8B4C5E8F2DAAB5BF003E2503 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* PrimeFIR.h */,
8BA05A660720730100365D66 /* PrimeFIR.cpp */,
8BA05A670720730100365D66 /* PrimeFIR.exp */,
8BA05A680720730100365D66 /* PrimeFIR.r */,
8BA05A690720730100365D66 /* PrimeFIRVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B4C5EC02DAAB5BF003E2503 /* CABundleLocker.h in Headers */,
8B4C5EE12DAAB5BF003E2503 /* CAAudioChannelLayout.h in Headers */,
8B4C5ED72DAAB5BF003E2503 /* AUOutputBL.h in Headers */,
8B4C5EB22DAAB5BF003E2503 /* CAHostTimeBase.h in Headers */,
8B4C5EFA2DAAB5BF003E2503 /* ComponentBase.h in Headers */,
8B4C5EEA2DAAB5BF003E2503 /* CAAtomicStack.h in Headers */,
8B4C5EA72DAAB5BF003E2503 /* CAAudioTimeStamp.h in Headers */,
8B4C5EC42DAAB5BF003E2503 /* CAThreadSafeList.h in Headers */,
8B4C5E9F2DAAB5BF003E2503 /* CAAUParameter.h in Headers */,
8B4C5F112DAAB5BF003E2503 /* AUBaseHelper.h in Headers */,
8B4C5F092DAAB5BF003E2503 /* AUTimestampGenerator.h in Headers */,
8B4C5EBA2DAAB5BF003E2503 /* CADebugPrintf.h in Headers */,
8B4C5EF42DAAB5BF003E2503 /* CACFMessagePort.h in Headers */,
8B4C5EA22DAAB5BF003E2503 /* CAAUProcessor.h in Headers */,
8B4C5E9E2DAAB5BF003E2503 /* CAAudioUnit.h in Headers */,
8B4C5EF72DAAB5BF003E2503 /* AUViewLocalizedStringKeys.h in Headers */,
8B4C5EDD2DAAB5BF003E2503 /* CACFDistributedNotification.h in Headers */,
8B4C5E9C2DAAB5BF003E2503 /* CAComponent.h in Headers */,
8B4C5EAA2DAAB5BF003E2503 /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* PrimeFIRVersion.h in Headers */,
8B4C5EDE2DAAB5BF003E2503 /* CAFilePathUtils.h in Headers */,
8B4C5EA02DAAB5BF003E2503 /* CAException.h in Headers */,
8B4C5E972DAAB5BF003E2503 /* CAAtomic.h in Headers */,
8B4C5E962DAAB5BF003E2503 /* CAGuard.h in Headers */,
8B4C5EFC2DAAB5BF003E2503 /* AUInputElement.h in Headers */,
8B4C5ED32DAAB5BF003E2503 /* CACFPreferences.h in Headers */,
8B4C5EE82DAAB5BF003E2503 /* CAByteOrder.h in Headers */,
8B4C5ECB2DAAB5BF003E2503 /* CARingBuffer.h in Headers */,
8B4C5E922DAAB5BF003E2503 /* CABool.h in Headers */,
8B4C5EB72DAAB5BF003E2503 /* CAMutex.h in Headers */,
8B4C5EFD2DAAB5BF003E2503 /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* PrimeFIR.h in Headers */,
8B4C5EAF2DAAB5BF003E2503 /* CACFString.h in Headers */,
8B4C5ECE2DAAB5BF003E2503 /* CASharedLibrary.h in Headers */,
8B4C5E9B2DAAB5BF003E2503 /* CATokenMap.h in Headers */,
8B4C5E902DAAB5BF003E2503 /* CAExtAudioFile.h in Headers */,
8B4C5EA52DAAB5BF003E2503 /* CAPThread.h in Headers */,
8B4C5EC12DAAB5BF003E2503 /* CAPropertyAddress.h in Headers */,
8B4C5EEB2DAAB5BF003E2503 /* CAReferenceCounted.h in Headers */,
8B4C5F102DAAB5BF003E2503 /* AUBuffer.h in Headers */,
8B4C5EF22DAAB5BF003E2503 /* CAMath.h in Headers */,
8B4C5ED22DAAB5BF003E2503 /* CAAutoDisposer.h in Headers */,
8B4C5E992DAAB5BF003E2503 /* CACFObject.h in Headers */,
8B4C5EB92DAAB5BF003E2503 /* CASettingsStorage.h in Headers */,
8B4C5EC22DAAB5BF003E2503 /* CAXException.h in Headers */,
8B4C5EDF2DAAB5BF003E2503 /* CATink.h in Headers */,
8B4C5F0C2DAAB5BF003E2503 /* AUInputFormatConverter.h in Headers */,
8B4C5EE72DAAB5BF003E2503 /* CAVectorUnit.h in Headers */,
8B4C5EA32DAAB5BF003E2503 /* CAProcess.h in Headers */,
8B4C5EA92DAAB5BF003E2503 /* CAAudioValueRange.h in Headers */,
8B4C5EBE2DAAB5BF003E2503 /* CABitOperations.h in Headers */,
8B4C5EB42DAAB5BF003E2503 /* CAAudioFileFormats.h in Headers */,
8B4C5EAD2DAAB5BF003E2503 /* CACFNumber.h in Headers */,
8B4C5EC52DAAB5BF003E2503 /* CAAudioUnitOutputCapturer.h in Headers */,
8B4C5ED62DAAB5BF003E2503 /* CADebugMacros.h in Headers */,
8B4C5F0F2DAAB5BF003E2503 /* AUMIDIDefs.h in Headers */,
8B4C5ECF2DAAB5BF003E2503 /* CACFData.h in Headers */,
8B4C5E982DAAB5BF003E2503 /* CAStreamBasicDescription.h in Headers */,
8B4C5EFE2DAAB5BF003E2503 /* AUPlugInDispatch.h in Headers */,
8B4C5E9A2DAAB5BF003E2503 /* CAStreamRangedDescription.h in Headers */,
8B4C5EDA2DAAB5BF003E2503 /* CACFPlugIn.h in Headers */,
8B4C5E9D2DAAB5BF003E2503 /* CAAudioBufferList.h in Headers */,
8B4C5EB52DAAB5BF003E2503 /* CAAUMIDIMapManager.h in Headers */,
8B4C5F082DAAB5BF003E2503 /* AUEffectBase.h in Headers */,
8B4C5EA42DAAB5BF003E2503 /* CACFDictionary.h in Headers */,
8B4C5F052DAAB5BF003E2503 /* AUScopeElement.h in Headers */,
8B4C5ED52DAAB5BF003E2503 /* CAComponentDescription.h in Headers */,
8B4C5F0B2DAAB5BF003E2503 /* AUSilentTimeout.h in Headers */,
8B4C5ECD2DAAB5BF003E2503 /* CABufferList.h in Headers */,
8B4C5EFF2DAAB5BF003E2503 /* AUDispatch.h in Headers */,
8B4C5F032DAAB5BF003E2503 /* AUOutputElement.h in Headers */,
8B4C5EC92DAAB5BF003E2503 /* CALogMacros.h in Headers */,
8B4C5EBD2DAAB5BF003E2503 /* AUParamInfo.h in Headers */,
8B4C5EDC2DAAB5BF003E2503 /* CAMixMap.h in Headers */,
8B4C5EE92DAAB5BF003E2503 /* CACFArray.h in Headers */,
8B4C5E912DAAB5BF003E2503 /* CACFMachPort.h in Headers */,
8B4C5EBC2DAAB5BF003E2503 /* CAAUMIDIMap.h in Headers */,
8B4C5E942DAAB5BF003E2503 /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* PrimeFIR */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PrimeFIR" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = PrimeFIR;
productInstallPath = "$(HOME)/Library/Bundles";
productName = PrimeFIR;
productReference = 8D01CCD20486CAD60068D4B7 /* PrimeFIR.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 "PrimeFIR" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
ja,
en,
Base,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* PrimeFIR */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* PrimeFIR */,
);
};
/* 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 = (
8B4C5ECC2DAAB5BF003E2503 /* AUOutputBL.cpp in Sources */,
8B4C5EF12DAAB5BF003E2503 /* CAAudioFileFormats.cpp in Sources */,
8B4C5EE32DAAB5BF003E2503 /* CAHostTimeBase.cpp in Sources */,
8B4C5EBB2DAAB5BF003E2503 /* CAXException.cpp in Sources */,
8B4C5EE52DAAB5BF003E2503 /* CAAudioBufferList.cpp in Sources */,
8B4C5EA82DAAB5BF003E2503 /* CAFilePathUtils.cpp in Sources */,
8B4C5EA62DAAB5BF003E2503 /* CAAUParameter.cpp in Sources */,
8B4C5EC82DAAB5BF003E2503 /* CAAUMIDIMap.cpp in Sources */,
8B4C5EF52DAAB5BF003E2503 /* CAAudioValueRange.cpp in Sources */,
8B4C5F042DAAB5BF003E2503 /* AUDispatch.cpp in Sources */,
8B4C5EBF2DAAB5BF003E2503 /* CACFPreferences.cpp in Sources */,
8B4C5F022DAAB5BF003E2503 /* AUPlugInDispatch.cpp in Sources */,
8B4C5EA12DAAB5BF003E2503 /* CAAUProcessor.cpp in Sources */,
8B4C5EB62DAAB5BF003E2503 /* CACFDictionary.cpp in Sources */,
8B4C5F0A2DAAB5BF003E2503 /* AUBaseHelper.cpp in Sources */,
8B4C5EEF2DAAB5BF003E2503 /* CADebugger.cpp in Sources */,
8B4C5EC32DAAB5BF003E2503 /* CAAudioChannelLayout.cpp in Sources */,
8B4C5EC62DAAB5BF003E2503 /* AUParamInfo.cpp in Sources */,
8B4C5EE42DAAB5BF003E2503 /* CAPersistence.cpp in Sources */,
8B4C5ED82DAAB5BF003E2503 /* CADebugPrintf.cpp in Sources */,
8B4C5F0D2DAAB5BF003E2503 /* AUTimestampGenerator.cpp in Sources */,
8B4C5EE02DAAB5BF003E2503 /* CAStreamBasicDescription.cpp in Sources */,
8B4C5EB02DAAB5BF003E2503 /* CAAUMIDIMapManager.cpp in Sources */,
8B4C5EDB2DAAB5BF003E2503 /* CASettingsStorage.cpp in Sources */,
8B4C5F002DAAB5BF003E2503 /* AUOutputElement.cpp in Sources */,
8B4C5EAC2DAAB5BF003E2503 /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* PrimeFIR.cpp in Sources */,
8B4C5EEE2DAAB5BF003E2503 /* CAMutex.cpp in Sources */,
8B4C5F072DAAB5BF003E2503 /* AUEffectBase.cpp in Sources */,
8B4C5EEC2DAAB5BF003E2503 /* CACFMachPort.cpp in Sources */,
8B4C5EFB2DAAB5BF003E2503 /* AUBase.cpp in Sources */,
8B4C5EC72DAAB5BF003E2503 /* CASharedLibrary.cpp in Sources */,
8B4C5EAE2DAAB5BF003E2503 /* CACFDistributedNotification.cpp in Sources */,
8B4C5EB12DAAB5BF003E2503 /* CAComponentDescription.cpp in Sources */,
8B4C5EB82DAAB5BF003E2503 /* CACFString.cpp in Sources */,
8B4C5EF82DAAB5BF003E2503 /* ComponentBase.cpp in Sources */,
8B4C5ED92DAAB5BF003E2503 /* CARingBuffer.cpp in Sources */,
8B4C5EF92DAAB5BF003E2503 /* AUScopeElement.cpp in Sources */,
8B4C5EF62DAAB5BF003E2503 /* CAAudioUnit.cpp in Sources */,
8B4C5EF32DAAB5BF003E2503 /* CACFArray.cpp in Sources */,
8B4C5EF02DAAB5BF003E2503 /* CABundleLocker.cpp in Sources */,
8B4C5EE22DAAB5BF003E2503 /* CAProcess.cpp in Sources */,
8B4C5ED02DAAB5BF003E2503 /* CAStreamRangedDescription.cpp in Sources */,
8B4C5ED12DAAB5BF003E2503 /* CAPThread.cpp in Sources */,
8B4C5E932DAAB5BF003E2503 /* CAComponent.cpp in Sources */,
8B4C5EAB2DAAB5BF003E2503 /* CAAudioChannelLayoutObject.cpp in Sources */,
8B4C5EE62DAAB5BF003E2503 /* CAAudioTimeStamp.cpp in Sources */,
8B4C5EED2DAAB5BF003E2503 /* CABufferList.cpp in Sources */,
8B4C5ECA2DAAB5BF003E2503 /* CACFMessagePort.cpp in Sources */,
8B4C5ED42DAAB5BF003E2503 /* CAVectorUnit.cpp in Sources */,
8B4C5F062DAAB5BF003E2503 /* AUInputElement.cpp in Sources */,
8B4C5F0E2DAAB5BF003E2503 /* AUBuffer.cpp in Sources */,
8B4C5EB32DAAB5BF003E2503 /* CADebugMacros.cpp in Sources */,
8B4C5E952DAAB5BF003E2503 /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B4C5F122DAAB700003E2503 /* 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 = PrimeFIR.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 = PrimeFIR;
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 = PrimeFIR.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 = PrimeFIR;
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 "PrimeFIR" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PrimeFIR" */ = {
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 = "PrimeFIR.component"
BlueprintName = "PrimeFIR"
ReferencedContainer = "container:PrimeFIR.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 = "PrimeFIR.component"
BlueprintName = "PrimeFIR"
ReferencedContainer = "container:PrimeFIR.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>PrimeFIR.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: PrimeFIRVersion.h
*
* Version: 1.0
*
* Created: 3/24/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 __PrimeFIRVersion_h__
#define __PrimeFIRVersion_h__
#ifdef DEBUG
#define kPrimeFIRVersion 0xFFFFFFFF
#else
#define kPrimeFIRVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define PrimeFIR_COMP_MANF 'Dthr'
#define PrimeFIR_COMP_SUBTYPE 'prif'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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>smeq</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>

View file

@ -0,0 +1,338 @@
/*
* File: SmoothEQ.cpp
*
* Version: 1.0
*
* Created: 3/24/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.
*
*/
/*=============================================================================
SmoothEQ.cpp
=============================================================================*/
#include "SmoothEQ.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, SmoothEQ)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQ
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SmoothEQ::SmoothEQ(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 );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// SmoothEQ::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult SmoothEQ::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____SmoothEQEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SmoothEQ::SmoothEQKernel::Reset()
{
for (int x = 0; x < biq_total; x++) {
besselA[x] = 0.0;
besselB[x] = 0.0;
besselC[x] = 0.0;
besselD[x] = 0.0;
besselE[x] = 0.0;
besselF[x] = 0.0;
}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// SmoothEQ::SmoothEQKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void SmoothEQ::SmoothEQKernel::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 trebleGain = GetParameter( kParam_A )*2.0;
double midGain = GetParameter( kParam_B )*2.0;
double bassGain = GetParameter( kParam_C )*2.0; //amount ends up being pow(gain,3)
//simple three band to adjust
besselA[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.9047076123;
if (besselA[biq_freq] < 0.00025) besselA[biq_freq] = 0.00025;
if (besselA[biq_freq] > 0.4999) besselA[biq_freq] = 0.4999;
besselA[biq_reso] = 1.02331395383;
besselB[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.68916826762;
if (besselB[biq_freq] < 0.00025) besselB[biq_freq] = 0.00025;
if (besselB[biq_freq] > 0.4999) besselB[biq_freq] = 0.4999;
besselB[biq_reso] = 0.611194546878;
besselC[biq_freq] = pow(GetParameter( kParam_D ),2) * (0.25/overallscale) * 1.60391912877;
if (besselC[biq_freq] < 0.00025) besselC[biq_freq] = 0.00025;
if (besselC[biq_freq] > 0.4999) besselC[biq_freq] = 0.4999;
besselC[biq_reso] = 0.510317824749;
besselD[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.9047076123;
if (besselD[biq_freq] < 0.00025) besselD[biq_freq] = 0.00025;
if (besselD[biq_freq] > 0.4999) besselD[biq_freq] = 0.4999;
besselD[biq_reso] = 1.02331395383;
besselE[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.68916826762;
if (besselE[biq_freq] < 0.00025) besselE[biq_freq] = 0.00025;
if (besselE[biq_freq] > 0.4999) besselE[biq_freq] = 0.4999;
besselE[biq_reso] = 0.611194546878;
besselF[biq_freq] = pow(GetParameter( kParam_E ),4) * (0.25/overallscale) * 1.60391912877;
if (besselF[biq_freq] < 0.00025) besselF[biq_freq] = 0.00025;
if (besselF[biq_freq] > 0.4999) besselF[biq_freq] = 0.4999;
besselF[biq_reso] = 0.510317824749;
double K = tan(M_PI * besselA[biq_freq]);
double norm = 1.0 / (1.0 + K / besselA[biq_reso] + K * K);
besselA[biq_a0] = K * K * norm;
besselA[biq_a1] = 2.0 * besselA[biq_a0];
besselA[biq_a2] = besselA[biq_a0];
besselA[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselA[biq_b2] = (1.0 - K / besselA[biq_reso] + K * K) * norm;
K = tan(M_PI * besselB[biq_freq]);
norm = 1.0 / (1.0 + K / besselB[biq_reso] + K * K);
besselB[biq_a0] = K * K * norm;
besselB[biq_a1] = 2.0 * besselB[biq_a0];
besselB[biq_a2] = besselB[biq_a0];
besselB[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselB[biq_b2] = (1.0 - K / besselB[biq_reso] + K * K) * norm;
K = tan(M_PI * besselC[biq_freq]);
norm = 1.0 / (1.0 + K / besselC[biq_reso] + K * K);
besselC[biq_a0] = K * K * norm;
besselC[biq_a1] = 2.0 * besselC[biq_a0];
besselC[biq_a2] = besselC[biq_a0];
besselC[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselC[biq_b2] = (1.0 - K / besselC[biq_reso] + K * K) * norm;
K = tan(M_PI * besselD[biq_freq]);
norm = 1.0 / (1.0 + K / besselD[biq_reso] + K * K);
besselD[biq_a0] = K * K * norm;
besselD[biq_a1] = 2.0 * besselD[biq_a0];
besselD[biq_a2] = besselD[biq_a0];
besselD[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselD[biq_b2] = (1.0 - K / besselD[biq_reso] + K * K) * norm;
K = tan(M_PI * besselE[biq_freq]);
norm = 1.0 / (1.0 + K / besselE[biq_reso] + K * K);
besselE[biq_a0] = K * K * norm;
besselE[biq_a1] = 2.0 * besselE[biq_a0];
besselE[biq_a2] = besselE[biq_a0];
besselE[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselE[biq_b2] = (1.0 - K / besselE[biq_reso] + K * K) * norm;
K = tan(M_PI * besselF[biq_freq]);
norm = 1.0 / (1.0 + K / besselF[biq_reso] + K * K);
besselF[biq_a0] = K * K * norm;
besselF[biq_a1] = 2.0 * besselF[biq_a0];
besselF[biq_a2] = besselF[biq_a0];
besselF[biq_b1] = 2.0 * (K * K - 1.0) * norm;
besselF[biq_b2] = (1.0 - K / besselF[biq_reso] + K * K) * norm;
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
double trebleL = inputSampleL;
double outSample = (trebleL * besselA[biq_a0]) + besselA[biq_sL1];
besselA[biq_sL1] = (trebleL * besselA[biq_a1]) - (outSample * besselA[biq_b1]) + besselA[biq_sL2];
besselA[biq_sL2] = (trebleL * besselA[biq_a2]) - (outSample * besselA[biq_b2]);
double midL = outSample; trebleL -= midL;
outSample = (midL * besselD[biq_a0]) + besselD[biq_sL1];
besselD[biq_sL1] = (midL * besselD[biq_a1]) - (outSample * besselD[biq_b1]) + besselD[biq_sL2];
besselD[biq_sL2] = (midL * besselD[biq_a2]) - (outSample * besselD[biq_b2]);
double bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselB[biq_a0]) + besselB[biq_sL1];
besselB[biq_sL1] = (trebleL * besselB[biq_a1]) - (outSample * besselB[biq_b1]) + besselB[biq_sL2];
besselB[biq_sL2] = (trebleL * besselB[biq_a2]) - (outSample * besselB[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselE[biq_a0]) + besselE[biq_sL1];
besselE[biq_sL1] = (midL * besselE[biq_a1]) - (outSample * besselE[biq_b1]) + besselE[biq_sL2];
besselE[biq_sL2] = (midL * besselE[biq_a2]) - (outSample * besselE[biq_b2]);
bassL = outSample; midL -= bassL;
trebleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
outSample = (trebleL * besselC[biq_a0]) + besselC[biq_sL1];
besselC[biq_sL1] = (trebleL * besselC[biq_a1]) - (outSample * besselC[biq_b1]) + besselC[biq_sL2];
besselC[biq_sL2] = (trebleL * besselC[biq_a2]) - (outSample * besselC[biq_b2]);
midL = outSample; trebleL -= midL;
outSample = (midL * besselF[biq_a0]) + besselF[biq_sL1];
besselF[biq_sL1] = (midL * besselF[biq_a1]) - (outSample * besselF[biq_b1]) + besselF[biq_sL2];
besselF[biq_sL2] = (midL * besselF[biq_a2]) - (outSample * besselF[biq_b2]);
bassL = outSample; midL -= bassL;
inputSampleL = (bassL*bassGain) + (midL*midGain) + (trebleL*trebleGain);
//begin 32 bit floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSampleL;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1,2 @@
_SmoothEQEntry
_SmoothEQFactory

View file

@ -0,0 +1,167 @@
/*
* File: SmoothEQ.h
*
* Version: 1.0
*
* Created: 3/24/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 "SmoothEQVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __SmoothEQ_h__
#define __SmoothEQ_h__
#pragma mark ____SmoothEQ Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.6;
static const float kDefaultValue_ParamE = 0.4;
static CFStringRef kParameterAName = CFSTR("High");
static CFStringRef kParameterBName = CFSTR("Mid");
static CFStringRef kParameterCName = CFSTR("Low");
static CFStringRef kParameterDName = CFSTR("XoverH");
static CFStringRef kParameterEName = CFSTR("XoverL");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
//Add your parameters here...
kNumberOfParameters=5
};
#pragma mark ____SmoothEQ
class SmoothEQ : public AUEffectBase
{
public:
SmoothEQ(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~SmoothEQ () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new SmoothEQKernel(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 kSmoothEQVersion; }
protected:
class SmoothEQKernel : public AUKernelBase // most of the real work happens here
{
public:
SmoothEQKernel(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 {
biq_freq,
biq_reso,
biq_a0,
biq_a1,
biq_a2,
biq_b1,
biq_b2,
biq_sL1,
biq_sL2,
biq_sR1,
biq_sR2,
biq_total
}; //coefficient interpolating bessel filter, stereo
double besselA[biq_total];
double besselB[biq_total];
double besselC[biq_total];
double besselD[biq_total];
double besselE[biq_total];
double besselF[biq_total];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: SmoothEQ.r
*
* Version: 1.0
*
* Created: 3/24/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 "SmoothEQVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_SmoothEQ 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ SmoothEQ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_SmoothEQ
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE SmoothEQ_COMP_SUBTYPE
#define COMP_MANUF SmoothEQ_COMP_MANF
#define VERSION kSmoothEQVersion
#define NAME "Airwindows: SmoothEQ"
#define DESCRIPTION "SmoothEQ AU"
#define ENTRY_POINT "SmoothEQEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,131 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* SmoothEQ */;
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 = 765920491;
PBXWorkspaceStateSaveDate = 765920491;
};
perUserProjectItems = {
8B41FEB42DA7079D00732ABB /* PlistBookmark */ = 8B41FEB42DA7079D00732ABB /* PlistBookmark */;
8B41FEB52DA7079D00732ABB /* PBXBookmark */ = 8B41FEB52DA7079D00732ABB /* PBXBookmark */;
8B41FEB62DA7079D00732ABB /* PBXTextBookmark */ = 8B41FEB62DA7079D00732ABB /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B41FEB42DA7079D00732ABB /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/SmoothEQ/Info.plist;
rLen = 0;
rLoc = 9223372036854775807;
};
8B41FEB52DA7079D00732ABB /* PBXBookmark */ = {
isa = PBXBookmark;
fRef = 8BC6025B073B072D006C4272 /* SmoothEQ.h */;
};
8B41FEB62DA7079D00732ABB /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* SmoothEQ.h */;
name = "SmoothEQ.h: 61";
rLen = 0;
rLoc = 3058;
rType = 0;
vrLen = 343;
vrLoc = 2872;
};
8BA05A660720730100365D66 /* SmoothEQ.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1024, 6030}}";
sepNavSelRange = "{15593, 0}";
sepNavVisRange = "{13661, 2291}";
sepNavWindowFrame = "{{738, 38}, {1071, 840}}";
};
};
8BA05A690720730100365D66 /* SmoothEQVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2899, 0}";
sepNavVisRange = "{861, 2101}";
sepNavWindowFrame = "{{15, 38}, {860, 840}}";
};
};
8BC6025B073B072D006C4272 /* SmoothEQ.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 3240}}";
sepNavSelRange = "{3058, 0}";
sepNavVisRange = "{2872, 343}";
sepNavWindowFrame = "{{821, 38}, {1071, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* SmoothEQ */ = {
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 */
8B4C5F9D2DAAB755003E2503 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F152DAAB755003E2503 /* CAExtAudioFile.h */; };
8B4C5F9E2DAAB755003E2503 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F162DAAB755003E2503 /* CACFMachPort.h */; };
8B4C5F9F2DAAB755003E2503 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F172DAAB755003E2503 /* CABool.h */; };
8B4C5FA02DAAB755003E2503 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F182DAAB755003E2503 /* CAComponent.cpp */; };
8B4C5FA12DAAB755003E2503 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F192DAAB755003E2503 /* CADebugger.h */; };
8B4C5FA22DAAB755003E2503 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F1A2DAAB755003E2503 /* CACFNumber.cpp */; };
8B4C5FA32DAAB755003E2503 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F1B2DAAB755003E2503 /* CAGuard.h */; };
8B4C5FA42DAAB755003E2503 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F1C2DAAB755003E2503 /* CAAtomic.h */; };
8B4C5FA52DAAB755003E2503 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F1D2DAAB755003E2503 /* CAStreamBasicDescription.h */; };
8B4C5FA62DAAB755003E2503 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F1E2DAAB755003E2503 /* CACFObject.h */; };
8B4C5FA72DAAB755003E2503 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F1F2DAAB755003E2503 /* CAStreamRangedDescription.h */; };
8B4C5FA82DAAB755003E2503 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F202DAAB755003E2503 /* CATokenMap.h */; };
8B4C5FA92DAAB755003E2503 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F212DAAB755003E2503 /* CAComponent.h */; };
8B4C5FAA2DAAB755003E2503 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F222DAAB755003E2503 /* CAAudioBufferList.h */; };
8B4C5FAB2DAAB755003E2503 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F232DAAB755003E2503 /* CAAudioUnit.h */; };
8B4C5FAC2DAAB755003E2503 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F242DAAB755003E2503 /* CAAUParameter.h */; };
8B4C5FAD2DAAB755003E2503 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F252DAAB755003E2503 /* CAException.h */; };
8B4C5FAE2DAAB755003E2503 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F262DAAB755003E2503 /* CAAUProcessor.cpp */; };
8B4C5FAF2DAAB755003E2503 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F272DAAB755003E2503 /* CAAUProcessor.h */; };
8B4C5FB02DAAB755003E2503 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F282DAAB755003E2503 /* CAProcess.h */; };
8B4C5FB12DAAB755003E2503 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F292DAAB755003E2503 /* CACFDictionary.h */; };
8B4C5FB22DAAB755003E2503 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F2A2DAAB755003E2503 /* CAPThread.h */; };
8B4C5FB32DAAB755003E2503 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F2B2DAAB755003E2503 /* CAAUParameter.cpp */; };
8B4C5FB42DAAB755003E2503 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F2C2DAAB755003E2503 /* CAAudioTimeStamp.h */; };
8B4C5FB52DAAB755003E2503 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F2D2DAAB755003E2503 /* CAFilePathUtils.cpp */; };
8B4C5FB62DAAB755003E2503 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F2E2DAAB755003E2503 /* CAAudioValueRange.h */; };
8B4C5FB72DAAB755003E2503 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F2F2DAAB755003E2503 /* CAVectorUnitTypes.h */; };
8B4C5FB82DAAB755003E2503 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F302DAAB755003E2503 /* CAAudioChannelLayoutObject.cpp */; };
8B4C5FB92DAAB755003E2503 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F312DAAB755003E2503 /* CAGuard.cpp */; };
8B4C5FBA2DAAB755003E2503 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F322DAAB755003E2503 /* CACFNumber.h */; };
8B4C5FBB2DAAB755003E2503 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F332DAAB755003E2503 /* CACFDistributedNotification.cpp */; };
8B4C5FBC2DAAB755003E2503 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F342DAAB755003E2503 /* CACFString.h */; };
8B4C5FBD2DAAB755003E2503 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F352DAAB755003E2503 /* CAAUMIDIMapManager.cpp */; };
8B4C5FBE2DAAB755003E2503 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F362DAAB755003E2503 /* CAComponentDescription.cpp */; };
8B4C5FBF2DAAB755003E2503 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F372DAAB755003E2503 /* CAHostTimeBase.h */; };
8B4C5FC02DAAB755003E2503 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F382DAAB755003E2503 /* CADebugMacros.cpp */; };
8B4C5FC12DAAB755003E2503 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F392DAAB755003E2503 /* CAAudioFileFormats.h */; };
8B4C5FC22DAAB755003E2503 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F3A2DAAB755003E2503 /* CAAUMIDIMapManager.h */; };
8B4C5FC32DAAB755003E2503 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F3B2DAAB755003E2503 /* CACFDictionary.cpp */; };
8B4C5FC42DAAB755003E2503 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F3C2DAAB755003E2503 /* CAMutex.h */; };
8B4C5FC52DAAB755003E2503 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F3D2DAAB755003E2503 /* CACFString.cpp */; };
8B4C5FC62DAAB755003E2503 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F3E2DAAB755003E2503 /* CASettingsStorage.h */; };
8B4C5FC72DAAB755003E2503 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F3F2DAAB755003E2503 /* CADebugPrintf.h */; };
8B4C5FC82DAAB755003E2503 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F402DAAB755003E2503 /* CAXException.cpp */; };
8B4C5FC92DAAB755003E2503 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F412DAAB755003E2503 /* CAAUMIDIMap.h */; };
8B4C5FCA2DAAB755003E2503 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F422DAAB755003E2503 /* AUParamInfo.h */; };
8B4C5FCB2DAAB755003E2503 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F432DAAB755003E2503 /* CABitOperations.h */; };
8B4C5FCC2DAAB755003E2503 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F442DAAB755003E2503 /* CACFPreferences.cpp */; };
8B4C5FCD2DAAB755003E2503 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F452DAAB755003E2503 /* CABundleLocker.h */; };
8B4C5FCE2DAAB755003E2503 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F462DAAB755003E2503 /* CAPropertyAddress.h */; };
8B4C5FCF2DAAB755003E2503 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F472DAAB755003E2503 /* CAXException.h */; };
8B4C5FD02DAAB755003E2503 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F482DAAB755003E2503 /* CAAudioChannelLayout.cpp */; };
8B4C5FD12DAAB755003E2503 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F492DAAB755003E2503 /* CAThreadSafeList.h */; };
8B4C5FD22DAAB755003E2503 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F4A2DAAB755003E2503 /* CAAudioUnitOutputCapturer.h */; };
8B4C5FD32DAAB755003E2503 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F4B2DAAB755003E2503 /* AUParamInfo.cpp */; };
8B4C5FD42DAAB755003E2503 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F4C2DAAB755003E2503 /* CASharedLibrary.cpp */; };
8B4C5FD52DAAB755003E2503 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F4D2DAAB755003E2503 /* CAAUMIDIMap.cpp */; };
8B4C5FD62DAAB755003E2503 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F4E2DAAB755003E2503 /* CALogMacros.h */; };
8B4C5FD72DAAB755003E2503 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F4F2DAAB755003E2503 /* CACFMessagePort.cpp */; };
8B4C5FD82DAAB755003E2503 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F502DAAB755003E2503 /* CARingBuffer.h */; };
8B4C5FD92DAAB755003E2503 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F512DAAB755003E2503 /* AUOutputBL.cpp */; };
8B4C5FDA2DAAB755003E2503 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F522DAAB755003E2503 /* CABufferList.h */; };
8B4C5FDB2DAAB755003E2503 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F532DAAB755003E2503 /* CASharedLibrary.h */; };
8B4C5FDC2DAAB755003E2503 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F542DAAB755003E2503 /* CACFData.h */; };
8B4C5FDD2DAAB755003E2503 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F552DAAB755003E2503 /* CAStreamRangedDescription.cpp */; };
8B4C5FDE2DAAB755003E2503 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F562DAAB755003E2503 /* CAPThread.cpp */; };
8B4C5FDF2DAAB755003E2503 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F572DAAB755003E2503 /* CAAutoDisposer.h */; };
8B4C5FE02DAAB755003E2503 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F582DAAB755003E2503 /* CACFPreferences.h */; };
8B4C5FE12DAAB755003E2503 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F592DAAB755003E2503 /* CAVectorUnit.cpp */; };
8B4C5FE22DAAB755003E2503 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F5A2DAAB755003E2503 /* CAComponentDescription.h */; };
8B4C5FE32DAAB755003E2503 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F5B2DAAB755003E2503 /* CADebugMacros.h */; };
8B4C5FE42DAAB755003E2503 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F5C2DAAB755003E2503 /* AUOutputBL.h */; };
8B4C5FE52DAAB755003E2503 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F5D2DAAB755003E2503 /* CADebugPrintf.cpp */; };
8B4C5FE62DAAB755003E2503 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F5E2DAAB755003E2503 /* CARingBuffer.cpp */; };
8B4C5FE72DAAB755003E2503 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F5F2DAAB755003E2503 /* CACFPlugIn.h */; };
8B4C5FE82DAAB755003E2503 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F602DAAB755003E2503 /* CASettingsStorage.cpp */; };
8B4C5FE92DAAB755003E2503 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F612DAAB755003E2503 /* CAMixMap.h */; };
8B4C5FEA2DAAB755003E2503 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F622DAAB755003E2503 /* CACFDistributedNotification.h */; };
8B4C5FEB2DAAB755003E2503 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F632DAAB755003E2503 /* CAFilePathUtils.h */; };
8B4C5FEC2DAAB755003E2503 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F642DAAB755003E2503 /* CATink.h */; };
8B4C5FED2DAAB755003E2503 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F652DAAB755003E2503 /* CAStreamBasicDescription.cpp */; };
8B4C5FEE2DAAB755003E2503 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F662DAAB755003E2503 /* CAAudioChannelLayout.h */; };
8B4C5FEF2DAAB755003E2503 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F672DAAB755003E2503 /* CAProcess.cpp */; };
8B4C5FF02DAAB755003E2503 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F682DAAB755003E2503 /* CAHostTimeBase.cpp */; };
8B4C5FF12DAAB755003E2503 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F692DAAB755003E2503 /* CAPersistence.cpp */; };
8B4C5FF22DAAB755003E2503 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F6A2DAAB755003E2503 /* CAAudioBufferList.cpp */; };
8B4C5FF32DAAB755003E2503 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F6B2DAAB755003E2503 /* CAAudioTimeStamp.cpp */; };
8B4C5FF42DAAB755003E2503 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F6C2DAAB755003E2503 /* CAVectorUnit.h */; };
8B4C5FF52DAAB755003E2503 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F6D2DAAB755003E2503 /* CAByteOrder.h */; };
8B4C5FF62DAAB755003E2503 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F6E2DAAB755003E2503 /* CACFArray.h */; };
8B4C5FF72DAAB755003E2503 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F6F2DAAB755003E2503 /* CAAtomicStack.h */; };
8B4C5FF82DAAB755003E2503 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F702DAAB755003E2503 /* CAReferenceCounted.h */; };
8B4C5FF92DAAB755003E2503 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F712DAAB755003E2503 /* CACFMachPort.cpp */; };
8B4C5FFA2DAAB755003E2503 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F722DAAB755003E2503 /* CABufferList.cpp */; };
8B4C5FFB2DAAB755003E2503 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F732DAAB755003E2503 /* CAMutex.cpp */; };
8B4C5FFC2DAAB755003E2503 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F742DAAB755003E2503 /* CADebugger.cpp */; };
8B4C5FFD2DAAB755003E2503 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F752DAAB755003E2503 /* CABundleLocker.cpp */; };
8B4C5FFE2DAAB755003E2503 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F762DAAB755003E2503 /* CAAudioFileFormats.cpp */; };
8B4C5FFF2DAAB755003E2503 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F772DAAB755003E2503 /* CAMath.h */; };
8B4C60002DAAB755003E2503 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F782DAAB755003E2503 /* CACFArray.cpp */; };
8B4C60012DAAB755003E2503 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F792DAAB755003E2503 /* CACFMessagePort.h */; };
8B4C60022DAAB755003E2503 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F7A2DAAB755003E2503 /* CAAudioValueRange.cpp */; };
8B4C60032DAAB755003E2503 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F7B2DAAB755003E2503 /* CAAudioUnit.cpp */; };
8B4C60042DAAB755003E2503 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F7F2DAAB755003E2503 /* AUViewLocalizedStringKeys.h */; };
8B4C60052DAAB755003E2503 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F812DAAB755003E2503 /* ComponentBase.cpp */; };
8B4C60062DAAB755003E2503 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F822DAAB755003E2503 /* AUScopeElement.cpp */; };
8B4C60072DAAB755003E2503 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F832DAAB755003E2503 /* ComponentBase.h */; };
8B4C60082DAAB755003E2503 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F842DAAB755003E2503 /* AUBase.cpp */; };
8B4C60092DAAB755003E2503 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F852DAAB755003E2503 /* AUInputElement.h */; };
8B4C600A2DAAB755003E2503 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F862DAAB755003E2503 /* AUBase.h */; };
8B4C600B2DAAB755003E2503 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F872DAAB755003E2503 /* AUPlugInDispatch.h */; };
8B4C600C2DAAB755003E2503 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F882DAAB755003E2503 /* AUDispatch.h */; };
8B4C600D2DAAB755003E2503 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F892DAAB755003E2503 /* AUOutputElement.cpp */; };
8B4C600F2DAAB755003E2503 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F8B2DAAB755003E2503 /* AUPlugInDispatch.cpp */; };
8B4C60102DAAB755003E2503 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F8C2DAAB755003E2503 /* AUOutputElement.h */; };
8B4C60112DAAB755003E2503 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F8D2DAAB755003E2503 /* AUDispatch.cpp */; };
8B4C60122DAAB755003E2503 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F8E2DAAB755003E2503 /* AUScopeElement.h */; };
8B4C60132DAAB755003E2503 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F8F2DAAB755003E2503 /* AUInputElement.cpp */; };
8B4C60142DAAB755003E2503 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F912DAAB755003E2503 /* AUEffectBase.cpp */; };
8B4C60152DAAB755003E2503 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F922DAAB755003E2503 /* AUEffectBase.h */; };
8B4C60162DAAB755003E2503 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F942DAAB755003E2503 /* AUTimestampGenerator.h */; };
8B4C60172DAAB755003E2503 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F952DAAB755003E2503 /* AUBaseHelper.cpp */; };
8B4C60182DAAB755003E2503 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F962DAAB755003E2503 /* AUSilentTimeout.h */; };
8B4C60192DAAB755003E2503 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F972DAAB755003E2503 /* AUInputFormatConverter.h */; };
8B4C601A2DAAB755003E2503 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F982DAAB755003E2503 /* AUTimestampGenerator.cpp */; };
8B4C601B2DAAB755003E2503 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B4C5F992DAAB755003E2503 /* AUBuffer.cpp */; };
8B4C601C2DAAB755003E2503 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F9A2DAAB755003E2503 /* AUMIDIDefs.h */; };
8B4C601D2DAAB755003E2503 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F9B2DAAB755003E2503 /* AUBuffer.h */; };
8B4C601E2DAAB755003E2503 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B4C5F9C2DAAB755003E2503 /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* SmoothEQ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* SmoothEQ.cpp */; };
8BA05A6E0720730100365D66 /* SmoothEQVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* SmoothEQVersion.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 /* SmoothEQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* SmoothEQ.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B4C5F152DAAB755003E2503 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B4C5F162DAAB755003E2503 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B4C5F172DAAB755003E2503 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B4C5F182DAAB755003E2503 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B4C5F192DAAB755003E2503 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B4C5F1A2DAAB755003E2503 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B4C5F1B2DAAB755003E2503 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B4C5F1C2DAAB755003E2503 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B4C5F1D2DAAB755003E2503 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B4C5F1E2DAAB755003E2503 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B4C5F1F2DAAB755003E2503 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B4C5F202DAAB755003E2503 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B4C5F212DAAB755003E2503 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B4C5F222DAAB755003E2503 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B4C5F232DAAB755003E2503 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B4C5F242DAAB755003E2503 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B4C5F252DAAB755003E2503 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B4C5F262DAAB755003E2503 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B4C5F272DAAB755003E2503 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B4C5F282DAAB755003E2503 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B4C5F292DAAB755003E2503 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B4C5F2A2DAAB755003E2503 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B4C5F2B2DAAB755003E2503 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B4C5F2C2DAAB755003E2503 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B4C5F2D2DAAB755003E2503 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B4C5F2E2DAAB755003E2503 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B4C5F2F2DAAB755003E2503 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B4C5F302DAAB755003E2503 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B4C5F312DAAB755003E2503 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B4C5F322DAAB755003E2503 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B4C5F332DAAB755003E2503 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B4C5F342DAAB755003E2503 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B4C5F352DAAB755003E2503 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B4C5F362DAAB755003E2503 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B4C5F372DAAB755003E2503 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B4C5F382DAAB755003E2503 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B4C5F392DAAB755003E2503 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B4C5F3A2DAAB755003E2503 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B4C5F3B2DAAB755003E2503 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B4C5F3C2DAAB755003E2503 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B4C5F3D2DAAB755003E2503 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B4C5F3E2DAAB755003E2503 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B4C5F3F2DAAB755003E2503 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B4C5F402DAAB755003E2503 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B4C5F412DAAB755003E2503 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B4C5F422DAAB755003E2503 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B4C5F432DAAB755003E2503 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B4C5F442DAAB755003E2503 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B4C5F452DAAB755003E2503 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B4C5F462DAAB755003E2503 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B4C5F472DAAB755003E2503 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B4C5F482DAAB755003E2503 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B4C5F492DAAB755003E2503 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B4C5F4A2DAAB755003E2503 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B4C5F4B2DAAB755003E2503 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B4C5F4C2DAAB755003E2503 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B4C5F4D2DAAB755003E2503 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B4C5F4E2DAAB755003E2503 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B4C5F4F2DAAB755003E2503 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B4C5F502DAAB755003E2503 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B4C5F512DAAB755003E2503 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B4C5F522DAAB755003E2503 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B4C5F532DAAB755003E2503 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B4C5F542DAAB755003E2503 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B4C5F552DAAB755003E2503 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B4C5F562DAAB755003E2503 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B4C5F572DAAB755003E2503 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B4C5F582DAAB755003E2503 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B4C5F592DAAB755003E2503 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B4C5F5A2DAAB755003E2503 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B4C5F5B2DAAB755003E2503 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B4C5F5C2DAAB755003E2503 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B4C5F5D2DAAB755003E2503 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B4C5F5E2DAAB755003E2503 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B4C5F5F2DAAB755003E2503 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B4C5F602DAAB755003E2503 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B4C5F612DAAB755003E2503 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B4C5F622DAAB755003E2503 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B4C5F632DAAB755003E2503 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B4C5F642DAAB755003E2503 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B4C5F652DAAB755003E2503 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B4C5F662DAAB755003E2503 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B4C5F672DAAB755003E2503 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B4C5F682DAAB755003E2503 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B4C5F692DAAB755003E2503 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B4C5F6A2DAAB755003E2503 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B4C5F6B2DAAB755003E2503 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B4C5F6C2DAAB755003E2503 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B4C5F6D2DAAB755003E2503 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B4C5F6E2DAAB755003E2503 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B4C5F6F2DAAB755003E2503 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B4C5F702DAAB755003E2503 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B4C5F712DAAB755003E2503 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B4C5F722DAAB755003E2503 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B4C5F732DAAB755003E2503 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B4C5F742DAAB755003E2503 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B4C5F752DAAB755003E2503 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B4C5F762DAAB755003E2503 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B4C5F772DAAB755003E2503 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B4C5F782DAAB755003E2503 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B4C5F792DAAB755003E2503 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B4C5F7A2DAAB755003E2503 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B4C5F7B2DAAB755003E2503 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B4C5F7F2DAAB755003E2503 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B4C5F812DAAB755003E2503 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B4C5F822DAAB755003E2503 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B4C5F832DAAB755003E2503 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B4C5F842DAAB755003E2503 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B4C5F852DAAB755003E2503 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B4C5F862DAAB755003E2503 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B4C5F872DAAB755003E2503 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B4C5F882DAAB755003E2503 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B4C5F892DAAB755003E2503 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B4C5F8A2DAAB755003E2503 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B4C5F8B2DAAB755003E2503 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B4C5F8C2DAAB755003E2503 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B4C5F8D2DAAB755003E2503 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B4C5F8E2DAAB755003E2503 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B4C5F8F2DAAB755003E2503 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B4C5F912DAAB755003E2503 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B4C5F922DAAB755003E2503 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B4C5F942DAAB755003E2503 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B4C5F952DAAB755003E2503 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B4C5F962DAAB755003E2503 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B4C5F972DAAB755003E2503 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B4C5F982DAAB755003E2503 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B4C5F992DAAB755003E2503 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B4C5F9A2DAAB755003E2503 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B4C5F9B2DAAB755003E2503 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B4C5F9C2DAAB755003E2503 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B4C601F2DAAB856003E2503 /* 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 /* SmoothEQ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = SmoothEQ.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* SmoothEQ.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = SmoothEQ.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* SmoothEQ.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = SmoothEQ.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* SmoothEQVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmoothEQVersion.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 /* SmoothEQ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SmoothEQ.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* SmoothEQ.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmoothEQ.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 /* SmoothEQ */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = SmoothEQ;
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 = (
8B4C5F132DAAB755003E2503 /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* SmoothEQ.component */,
);
name = Products;
sourceTree = "<group>";
};
8B4C5F132DAAB755003E2503 /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B4C5F142DAAB755003E2503 /* PublicUtility */,
8B4C5F7C2DAAB755003E2503 /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B4C5F142DAAB755003E2503 /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B4C5F152DAAB755003E2503 /* CAExtAudioFile.h */,
8B4C5F162DAAB755003E2503 /* CACFMachPort.h */,
8B4C5F172DAAB755003E2503 /* CABool.h */,
8B4C5F182DAAB755003E2503 /* CAComponent.cpp */,
8B4C5F192DAAB755003E2503 /* CADebugger.h */,
8B4C5F1A2DAAB755003E2503 /* CACFNumber.cpp */,
8B4C5F1B2DAAB755003E2503 /* CAGuard.h */,
8B4C5F1C2DAAB755003E2503 /* CAAtomic.h */,
8B4C5F1D2DAAB755003E2503 /* CAStreamBasicDescription.h */,
8B4C5F1E2DAAB755003E2503 /* CACFObject.h */,
8B4C5F1F2DAAB755003E2503 /* CAStreamRangedDescription.h */,
8B4C5F202DAAB755003E2503 /* CATokenMap.h */,
8B4C5F212DAAB755003E2503 /* CAComponent.h */,
8B4C5F222DAAB755003E2503 /* CAAudioBufferList.h */,
8B4C5F232DAAB755003E2503 /* CAAudioUnit.h */,
8B4C5F242DAAB755003E2503 /* CAAUParameter.h */,
8B4C5F252DAAB755003E2503 /* CAException.h */,
8B4C5F262DAAB755003E2503 /* CAAUProcessor.cpp */,
8B4C5F272DAAB755003E2503 /* CAAUProcessor.h */,
8B4C5F282DAAB755003E2503 /* CAProcess.h */,
8B4C5F292DAAB755003E2503 /* CACFDictionary.h */,
8B4C5F2A2DAAB755003E2503 /* CAPThread.h */,
8B4C5F2B2DAAB755003E2503 /* CAAUParameter.cpp */,
8B4C5F2C2DAAB755003E2503 /* CAAudioTimeStamp.h */,
8B4C5F2D2DAAB755003E2503 /* CAFilePathUtils.cpp */,
8B4C5F2E2DAAB755003E2503 /* CAAudioValueRange.h */,
8B4C5F2F2DAAB755003E2503 /* CAVectorUnitTypes.h */,
8B4C5F302DAAB755003E2503 /* CAAudioChannelLayoutObject.cpp */,
8B4C5F312DAAB755003E2503 /* CAGuard.cpp */,
8B4C5F322DAAB755003E2503 /* CACFNumber.h */,
8B4C5F332DAAB755003E2503 /* CACFDistributedNotification.cpp */,
8B4C5F342DAAB755003E2503 /* CACFString.h */,
8B4C5F352DAAB755003E2503 /* CAAUMIDIMapManager.cpp */,
8B4C5F362DAAB755003E2503 /* CAComponentDescription.cpp */,
8B4C5F372DAAB755003E2503 /* CAHostTimeBase.h */,
8B4C5F382DAAB755003E2503 /* CADebugMacros.cpp */,
8B4C5F392DAAB755003E2503 /* CAAudioFileFormats.h */,
8B4C5F3A2DAAB755003E2503 /* CAAUMIDIMapManager.h */,
8B4C5F3B2DAAB755003E2503 /* CACFDictionary.cpp */,
8B4C5F3C2DAAB755003E2503 /* CAMutex.h */,
8B4C5F3D2DAAB755003E2503 /* CACFString.cpp */,
8B4C5F3E2DAAB755003E2503 /* CASettingsStorage.h */,
8B4C5F3F2DAAB755003E2503 /* CADebugPrintf.h */,
8B4C5F402DAAB755003E2503 /* CAXException.cpp */,
8B4C5F412DAAB755003E2503 /* CAAUMIDIMap.h */,
8B4C5F422DAAB755003E2503 /* AUParamInfo.h */,
8B4C5F432DAAB755003E2503 /* CABitOperations.h */,
8B4C5F442DAAB755003E2503 /* CACFPreferences.cpp */,
8B4C5F452DAAB755003E2503 /* CABundleLocker.h */,
8B4C5F462DAAB755003E2503 /* CAPropertyAddress.h */,
8B4C5F472DAAB755003E2503 /* CAXException.h */,
8B4C5F482DAAB755003E2503 /* CAAudioChannelLayout.cpp */,
8B4C5F492DAAB755003E2503 /* CAThreadSafeList.h */,
8B4C5F4A2DAAB755003E2503 /* CAAudioUnitOutputCapturer.h */,
8B4C5F4B2DAAB755003E2503 /* AUParamInfo.cpp */,
8B4C5F4C2DAAB755003E2503 /* CASharedLibrary.cpp */,
8B4C5F4D2DAAB755003E2503 /* CAAUMIDIMap.cpp */,
8B4C5F4E2DAAB755003E2503 /* CALogMacros.h */,
8B4C5F4F2DAAB755003E2503 /* CACFMessagePort.cpp */,
8B4C5F502DAAB755003E2503 /* CARingBuffer.h */,
8B4C5F512DAAB755003E2503 /* AUOutputBL.cpp */,
8B4C5F522DAAB755003E2503 /* CABufferList.h */,
8B4C5F532DAAB755003E2503 /* CASharedLibrary.h */,
8B4C5F542DAAB755003E2503 /* CACFData.h */,
8B4C5F552DAAB755003E2503 /* CAStreamRangedDescription.cpp */,
8B4C5F562DAAB755003E2503 /* CAPThread.cpp */,
8B4C5F572DAAB755003E2503 /* CAAutoDisposer.h */,
8B4C5F582DAAB755003E2503 /* CACFPreferences.h */,
8B4C5F592DAAB755003E2503 /* CAVectorUnit.cpp */,
8B4C5F5A2DAAB755003E2503 /* CAComponentDescription.h */,
8B4C5F5B2DAAB755003E2503 /* CADebugMacros.h */,
8B4C5F5C2DAAB755003E2503 /* AUOutputBL.h */,
8B4C5F5D2DAAB755003E2503 /* CADebugPrintf.cpp */,
8B4C5F5E2DAAB755003E2503 /* CARingBuffer.cpp */,
8B4C5F5F2DAAB755003E2503 /* CACFPlugIn.h */,
8B4C5F602DAAB755003E2503 /* CASettingsStorage.cpp */,
8B4C5F612DAAB755003E2503 /* CAMixMap.h */,
8B4C5F622DAAB755003E2503 /* CACFDistributedNotification.h */,
8B4C5F632DAAB755003E2503 /* CAFilePathUtils.h */,
8B4C5F642DAAB755003E2503 /* CATink.h */,
8B4C5F652DAAB755003E2503 /* CAStreamBasicDescription.cpp */,
8B4C5F662DAAB755003E2503 /* CAAudioChannelLayout.h */,
8B4C5F672DAAB755003E2503 /* CAProcess.cpp */,
8B4C5F682DAAB755003E2503 /* CAHostTimeBase.cpp */,
8B4C5F692DAAB755003E2503 /* CAPersistence.cpp */,
8B4C5F6A2DAAB755003E2503 /* CAAudioBufferList.cpp */,
8B4C5F6B2DAAB755003E2503 /* CAAudioTimeStamp.cpp */,
8B4C5F6C2DAAB755003E2503 /* CAVectorUnit.h */,
8B4C5F6D2DAAB755003E2503 /* CAByteOrder.h */,
8B4C5F6E2DAAB755003E2503 /* CACFArray.h */,
8B4C5F6F2DAAB755003E2503 /* CAAtomicStack.h */,
8B4C5F702DAAB755003E2503 /* CAReferenceCounted.h */,
8B4C5F712DAAB755003E2503 /* CACFMachPort.cpp */,
8B4C5F722DAAB755003E2503 /* CABufferList.cpp */,
8B4C5F732DAAB755003E2503 /* CAMutex.cpp */,
8B4C5F742DAAB755003E2503 /* CADebugger.cpp */,
8B4C5F752DAAB755003E2503 /* CABundleLocker.cpp */,
8B4C5F762DAAB755003E2503 /* CAAudioFileFormats.cpp */,
8B4C5F772DAAB755003E2503 /* CAMath.h */,
8B4C5F782DAAB755003E2503 /* CACFArray.cpp */,
8B4C5F792DAAB755003E2503 /* CACFMessagePort.h */,
8B4C5F7A2DAAB755003E2503 /* CAAudioValueRange.cpp */,
8B4C5F7B2DAAB755003E2503 /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B4C5F7C2DAAB755003E2503 /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B4C5F7D2DAAB755003E2503 /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B4C5F7D2DAAB755003E2503 /* AUPublic */ = {
isa = PBXGroup;
children = (
8B4C5F7E2DAAB755003E2503 /* AUViewBase */,
8B4C5F802DAAB755003E2503 /* AUBase */,
8B4C5F902DAAB755003E2503 /* OtherBases */,
8B4C5F932DAAB755003E2503 /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B4C5F7E2DAAB755003E2503 /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B4C5F7F2DAAB755003E2503 /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B4C5F802DAAB755003E2503 /* AUBase */ = {
isa = PBXGroup;
children = (
8B4C5F812DAAB755003E2503 /* ComponentBase.cpp */,
8B4C5F822DAAB755003E2503 /* AUScopeElement.cpp */,
8B4C5F832DAAB755003E2503 /* ComponentBase.h */,
8B4C5F842DAAB755003E2503 /* AUBase.cpp */,
8B4C5F852DAAB755003E2503 /* AUInputElement.h */,
8B4C5F862DAAB755003E2503 /* AUBase.h */,
8B4C5F872DAAB755003E2503 /* AUPlugInDispatch.h */,
8B4C5F882DAAB755003E2503 /* AUDispatch.h */,
8B4C5F892DAAB755003E2503 /* AUOutputElement.cpp */,
8B4C5F8A2DAAB755003E2503 /* AUResources.r */,
8B4C5F8B2DAAB755003E2503 /* AUPlugInDispatch.cpp */,
8B4C5F8C2DAAB755003E2503 /* AUOutputElement.h */,
8B4C5F8D2DAAB755003E2503 /* AUDispatch.cpp */,
8B4C5F8E2DAAB755003E2503 /* AUScopeElement.h */,
8B4C5F8F2DAAB755003E2503 /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B4C5F902DAAB755003E2503 /* OtherBases */ = {
isa = PBXGroup;
children = (
8B4C5F912DAAB755003E2503 /* AUEffectBase.cpp */,
8B4C5F922DAAB755003E2503 /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B4C5F932DAAB755003E2503 /* Utility */ = {
isa = PBXGroup;
children = (
8B4C5F942DAAB755003E2503 /* AUTimestampGenerator.h */,
8B4C5F952DAAB755003E2503 /* AUBaseHelper.cpp */,
8B4C5F962DAAB755003E2503 /* AUSilentTimeout.h */,
8B4C5F972DAAB755003E2503 /* AUInputFormatConverter.h */,
8B4C5F982DAAB755003E2503 /* AUTimestampGenerator.cpp */,
8B4C5F992DAAB755003E2503 /* AUBuffer.cpp */,
8B4C5F9A2DAAB755003E2503 /* AUMIDIDefs.h */,
8B4C5F9B2DAAB755003E2503 /* AUBuffer.h */,
8B4C5F9C2DAAB755003E2503 /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* SmoothEQ.h */,
8BA05A660720730100365D66 /* SmoothEQ.cpp */,
8BA05A670720730100365D66 /* SmoothEQ.exp */,
8BA05A680720730100365D66 /* SmoothEQ.r */,
8BA05A690720730100365D66 /* SmoothEQVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B4C5FCD2DAAB755003E2503 /* CABundleLocker.h in Headers */,
8B4C5FEE2DAAB755003E2503 /* CAAudioChannelLayout.h in Headers */,
8B4C5FE42DAAB755003E2503 /* AUOutputBL.h in Headers */,
8B4C5FBF2DAAB755003E2503 /* CAHostTimeBase.h in Headers */,
8B4C60072DAAB755003E2503 /* ComponentBase.h in Headers */,
8B4C5FF72DAAB755003E2503 /* CAAtomicStack.h in Headers */,
8B4C5FB42DAAB755003E2503 /* CAAudioTimeStamp.h in Headers */,
8B4C5FD12DAAB755003E2503 /* CAThreadSafeList.h in Headers */,
8B4C5FAC2DAAB755003E2503 /* CAAUParameter.h in Headers */,
8B4C601E2DAAB755003E2503 /* AUBaseHelper.h in Headers */,
8B4C60162DAAB755003E2503 /* AUTimestampGenerator.h in Headers */,
8B4C5FC72DAAB755003E2503 /* CADebugPrintf.h in Headers */,
8B4C60012DAAB755003E2503 /* CACFMessagePort.h in Headers */,
8B4C5FAF2DAAB755003E2503 /* CAAUProcessor.h in Headers */,
8B4C5FAB2DAAB755003E2503 /* CAAudioUnit.h in Headers */,
8B4C60042DAAB755003E2503 /* AUViewLocalizedStringKeys.h in Headers */,
8B4C5FEA2DAAB755003E2503 /* CACFDistributedNotification.h in Headers */,
8B4C5FA92DAAB755003E2503 /* CAComponent.h in Headers */,
8B4C5FB72DAAB755003E2503 /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* SmoothEQVersion.h in Headers */,
8B4C5FEB2DAAB755003E2503 /* CAFilePathUtils.h in Headers */,
8B4C5FAD2DAAB755003E2503 /* CAException.h in Headers */,
8B4C5FA42DAAB755003E2503 /* CAAtomic.h in Headers */,
8B4C5FA32DAAB755003E2503 /* CAGuard.h in Headers */,
8B4C60092DAAB755003E2503 /* AUInputElement.h in Headers */,
8B4C5FE02DAAB755003E2503 /* CACFPreferences.h in Headers */,
8B4C5FF52DAAB755003E2503 /* CAByteOrder.h in Headers */,
8B4C5FD82DAAB755003E2503 /* CARingBuffer.h in Headers */,
8B4C5F9F2DAAB755003E2503 /* CABool.h in Headers */,
8B4C5FC42DAAB755003E2503 /* CAMutex.h in Headers */,
8B4C600A2DAAB755003E2503 /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* SmoothEQ.h in Headers */,
8B4C5FBC2DAAB755003E2503 /* CACFString.h in Headers */,
8B4C5FDB2DAAB755003E2503 /* CASharedLibrary.h in Headers */,
8B4C5FA82DAAB755003E2503 /* CATokenMap.h in Headers */,
8B4C5F9D2DAAB755003E2503 /* CAExtAudioFile.h in Headers */,
8B4C5FB22DAAB755003E2503 /* CAPThread.h in Headers */,
8B4C5FCE2DAAB755003E2503 /* CAPropertyAddress.h in Headers */,
8B4C5FF82DAAB755003E2503 /* CAReferenceCounted.h in Headers */,
8B4C601D2DAAB755003E2503 /* AUBuffer.h in Headers */,
8B4C5FFF2DAAB755003E2503 /* CAMath.h in Headers */,
8B4C5FDF2DAAB755003E2503 /* CAAutoDisposer.h in Headers */,
8B4C5FA62DAAB755003E2503 /* CACFObject.h in Headers */,
8B4C5FC62DAAB755003E2503 /* CASettingsStorage.h in Headers */,
8B4C5FCF2DAAB755003E2503 /* CAXException.h in Headers */,
8B4C5FEC2DAAB755003E2503 /* CATink.h in Headers */,
8B4C60192DAAB755003E2503 /* AUInputFormatConverter.h in Headers */,
8B4C5FF42DAAB755003E2503 /* CAVectorUnit.h in Headers */,
8B4C5FB02DAAB755003E2503 /* CAProcess.h in Headers */,
8B4C5FB62DAAB755003E2503 /* CAAudioValueRange.h in Headers */,
8B4C5FCB2DAAB755003E2503 /* CABitOperations.h in Headers */,
8B4C5FC12DAAB755003E2503 /* CAAudioFileFormats.h in Headers */,
8B4C5FBA2DAAB755003E2503 /* CACFNumber.h in Headers */,
8B4C5FD22DAAB755003E2503 /* CAAudioUnitOutputCapturer.h in Headers */,
8B4C5FE32DAAB755003E2503 /* CADebugMacros.h in Headers */,
8B4C601C2DAAB755003E2503 /* AUMIDIDefs.h in Headers */,
8B4C5FDC2DAAB755003E2503 /* CACFData.h in Headers */,
8B4C5FA52DAAB755003E2503 /* CAStreamBasicDescription.h in Headers */,
8B4C600B2DAAB755003E2503 /* AUPlugInDispatch.h in Headers */,
8B4C5FA72DAAB755003E2503 /* CAStreamRangedDescription.h in Headers */,
8B4C5FE72DAAB755003E2503 /* CACFPlugIn.h in Headers */,
8B4C5FAA2DAAB755003E2503 /* CAAudioBufferList.h in Headers */,
8B4C5FC22DAAB755003E2503 /* CAAUMIDIMapManager.h in Headers */,
8B4C60152DAAB755003E2503 /* AUEffectBase.h in Headers */,
8B4C5FB12DAAB755003E2503 /* CACFDictionary.h in Headers */,
8B4C60122DAAB755003E2503 /* AUScopeElement.h in Headers */,
8B4C5FE22DAAB755003E2503 /* CAComponentDescription.h in Headers */,
8B4C60182DAAB755003E2503 /* AUSilentTimeout.h in Headers */,
8B4C5FDA2DAAB755003E2503 /* CABufferList.h in Headers */,
8B4C600C2DAAB755003E2503 /* AUDispatch.h in Headers */,
8B4C60102DAAB755003E2503 /* AUOutputElement.h in Headers */,
8B4C5FD62DAAB755003E2503 /* CALogMacros.h in Headers */,
8B4C5FCA2DAAB755003E2503 /* AUParamInfo.h in Headers */,
8B4C5FE92DAAB755003E2503 /* CAMixMap.h in Headers */,
8B4C5FF62DAAB755003E2503 /* CACFArray.h in Headers */,
8B4C5F9E2DAAB755003E2503 /* CACFMachPort.h in Headers */,
8B4C5FC92DAAB755003E2503 /* CAAUMIDIMap.h in Headers */,
8B4C5FA12DAAB755003E2503 /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* SmoothEQ */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "SmoothEQ" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = SmoothEQ;
productInstallPath = "$(HOME)/Library/Bundles";
productName = SmoothEQ;
productReference = 8D01CCD20486CAD60068D4B7 /* SmoothEQ.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 "SmoothEQ" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
de,
Base,
fr,
en,
ja,
);
mainGroup = 089C166AFE841209C02AAC07 /* SmoothEQ */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* SmoothEQ */,
);
};
/* 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 = (
8B4C5FD92DAAB755003E2503 /* AUOutputBL.cpp in Sources */,
8B4C5FFE2DAAB755003E2503 /* CAAudioFileFormats.cpp in Sources */,
8B4C5FF02DAAB755003E2503 /* CAHostTimeBase.cpp in Sources */,
8B4C5FC82DAAB755003E2503 /* CAXException.cpp in Sources */,
8B4C5FF22DAAB755003E2503 /* CAAudioBufferList.cpp in Sources */,
8B4C5FB52DAAB755003E2503 /* CAFilePathUtils.cpp in Sources */,
8B4C5FB32DAAB755003E2503 /* CAAUParameter.cpp in Sources */,
8B4C5FD52DAAB755003E2503 /* CAAUMIDIMap.cpp in Sources */,
8B4C60022DAAB755003E2503 /* CAAudioValueRange.cpp in Sources */,
8B4C60112DAAB755003E2503 /* AUDispatch.cpp in Sources */,
8B4C5FCC2DAAB755003E2503 /* CACFPreferences.cpp in Sources */,
8B4C600F2DAAB755003E2503 /* AUPlugInDispatch.cpp in Sources */,
8B4C5FAE2DAAB755003E2503 /* CAAUProcessor.cpp in Sources */,
8B4C5FC32DAAB755003E2503 /* CACFDictionary.cpp in Sources */,
8B4C60172DAAB755003E2503 /* AUBaseHelper.cpp in Sources */,
8B4C5FFC2DAAB755003E2503 /* CADebugger.cpp in Sources */,
8B4C5FD02DAAB755003E2503 /* CAAudioChannelLayout.cpp in Sources */,
8B4C5FD32DAAB755003E2503 /* AUParamInfo.cpp in Sources */,
8B4C5FF12DAAB755003E2503 /* CAPersistence.cpp in Sources */,
8B4C5FE52DAAB755003E2503 /* CADebugPrintf.cpp in Sources */,
8B4C601A2DAAB755003E2503 /* AUTimestampGenerator.cpp in Sources */,
8B4C5FED2DAAB755003E2503 /* CAStreamBasicDescription.cpp in Sources */,
8B4C5FBD2DAAB755003E2503 /* CAAUMIDIMapManager.cpp in Sources */,
8B4C5FE82DAAB755003E2503 /* CASettingsStorage.cpp in Sources */,
8B4C600D2DAAB755003E2503 /* AUOutputElement.cpp in Sources */,
8B4C5FB92DAAB755003E2503 /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* SmoothEQ.cpp in Sources */,
8B4C5FFB2DAAB755003E2503 /* CAMutex.cpp in Sources */,
8B4C60142DAAB755003E2503 /* AUEffectBase.cpp in Sources */,
8B4C5FF92DAAB755003E2503 /* CACFMachPort.cpp in Sources */,
8B4C60082DAAB755003E2503 /* AUBase.cpp in Sources */,
8B4C5FD42DAAB755003E2503 /* CASharedLibrary.cpp in Sources */,
8B4C5FBB2DAAB755003E2503 /* CACFDistributedNotification.cpp in Sources */,
8B4C5FBE2DAAB755003E2503 /* CAComponentDescription.cpp in Sources */,
8B4C5FC52DAAB755003E2503 /* CACFString.cpp in Sources */,
8B4C60052DAAB755003E2503 /* ComponentBase.cpp in Sources */,
8B4C5FE62DAAB755003E2503 /* CARingBuffer.cpp in Sources */,
8B4C60062DAAB755003E2503 /* AUScopeElement.cpp in Sources */,
8B4C60032DAAB755003E2503 /* CAAudioUnit.cpp in Sources */,
8B4C60002DAAB755003E2503 /* CACFArray.cpp in Sources */,
8B4C5FFD2DAAB755003E2503 /* CABundleLocker.cpp in Sources */,
8B4C5FEF2DAAB755003E2503 /* CAProcess.cpp in Sources */,
8B4C5FDD2DAAB755003E2503 /* CAStreamRangedDescription.cpp in Sources */,
8B4C5FDE2DAAB755003E2503 /* CAPThread.cpp in Sources */,
8B4C5FA02DAAB755003E2503 /* CAComponent.cpp in Sources */,
8B4C5FB82DAAB755003E2503 /* CAAudioChannelLayoutObject.cpp in Sources */,
8B4C5FF32DAAB755003E2503 /* CAAudioTimeStamp.cpp in Sources */,
8B4C5FFA2DAAB755003E2503 /* CABufferList.cpp in Sources */,
8B4C5FD72DAAB755003E2503 /* CACFMessagePort.cpp in Sources */,
8B4C5FE12DAAB755003E2503 /* CAVectorUnit.cpp in Sources */,
8B4C60132DAAB755003E2503 /* AUInputElement.cpp in Sources */,
8B4C601B2DAAB755003E2503 /* AUBuffer.cpp in Sources */,
8B4C5FC02DAAB755003E2503 /* CADebugMacros.cpp in Sources */,
8B4C5FA22DAAB755003E2503 /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B4C601F2DAAB856003E2503 /* 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 = SmoothEQ.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 = SmoothEQ;
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 = SmoothEQ.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 = SmoothEQ;
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 "SmoothEQ" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "SmoothEQ" */ = {
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 = "SmoothEQ.component"
BlueprintName = "SmoothEQ"
ReferencedContainer = "container:SmoothEQ.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 = "SmoothEQ.component"
BlueprintName = "SmoothEQ"
ReferencedContainer = "container:SmoothEQ.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>SmoothEQ.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: SmoothEQVersion.h
*
* Version: 1.0
*
* Created: 3/24/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 __SmoothEQVersion_h__
#define __SmoothEQVersion_h__
#ifdef DEBUG
#define kSmoothEQVersion 0xFFFFFFFF
#else
#define kSmoothEQVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define SmoothEQ_COMP_MANF 'Dthr'
#define SmoothEQ_COMP_SUBTYPE 'smeq'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

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,132 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* PrimeFIR */;
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 = 766152294;
PBXWorkspaceStateSaveDate = 766152294;
};
perUserProjectItems = {
8BA43E532DAA8EBC0092EE9F /* PBXTextBookmark */ = 8BA43E532DAA8EBC0092EE9F /* PBXTextBookmark */;
8BB86DB72DA71091005F9CE2 /* PBXTextBookmark */ = 8BB86DB72DA71091005F9CE2 /* PBXTextBookmark */;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* PrimeFIR.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {948, 2628}}";
sepNavSelRange = "{577, 0}";
sepNavVisRange = "{2112, 1292}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* PrimeFIR.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {43428, 1314}}";
sepNavSelRange = "{7360, 0}";
sepNavVisRange = "{5509, 1930}";
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 /* PrimeFIRProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {777, 3996}}";
sepNavSelRange = "{4907, 0}";
sepNavVisRange = "{5072, 74}";
sepNavWindowFrame = "{{248, 51}, {1098, 827}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BA43E532DAA8EBC0092EE9F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PrimeFIRProc.cpp */;
name = "PrimeFIRProc.cpp: 137";
rLen = 0;
rLoc = 4907;
rType = 0;
vrLen = 74;
vrLoc = 5072;
};
8BB86DB72DA71091005F9CE2 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 24D8286F09A914000093AEF8 /* PrimeFIRProc.cpp */;
name = "PrimeFIRProc.cpp: 137";
rLen = 0;
rLoc = 4907;
rType = 0;
vrLen = 107;
vrLoc = 5080;
};
8D01CCC60486CAD60068D4B7 /* PrimeFIR */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,462 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* PrimeFIR.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* PrimeFIR.cpp */; };
245463B90991757100464AD3 /* PrimeFIR.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* PrimeFIR.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* PrimeFIRProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* PrimeFIRProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8B013AD62DAAB8EF003F8AC2 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013ACA2DAAB8EF003F8AC2 /* vstfxstore.h */; };
8B013AD72DAAB8EF003F8AC2 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013ACB2DAAB8EF003F8AC2 /* aeffect.h */; };
8B013AD82DAAB8EF003F8AC2 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013ACC2DAAB8EF003F8AC2 /* aeffectx.h */; };
8B013AD92DAAB8EF003F8AC2 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AD02DAAB8EF003F8AC2 /* audioeffectx.h */; };
8B013ADA2DAAB8EF003F8AC2 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AD12DAAB8EF003F8AC2 /* audioeffect.cpp */; };
8B013ADB2DAAB8EF003F8AC2 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AD22DAAB8EF003F8AC2 /* audioeffectx.cpp */; };
8B013ADC2DAAB8EF003F8AC2 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AD32DAAB8EF003F8AC2 /* aeffeditor.h */; };
8B013ADD2DAAB8EF003F8AC2 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AD42DAAB8EF003F8AC2 /* vstplugmain.cpp */; };
8B013ADE2DAAB8EF003F8AC2 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AD52DAAB8EF003F8AC2 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* PrimeFIR.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeFIR.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* PrimeFIR.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = PrimeFIR.cpp; path = source/PrimeFIR.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* PrimeFIR.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PrimeFIR.h; path = source/PrimeFIR.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* PrimeFIRProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PrimeFIRProc.cpp; path = source/PrimeFIRProc.cpp; sourceTree = "<group>"; };
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
8B013ACA2DAAB8EF003F8AC2 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8B013ACB2DAAB8EF003F8AC2 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8B013ACC2DAAB8EF003F8AC2 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8B013AD02DAAB8EF003F8AC2 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8B013AD12DAAB8EF003F8AC2 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8B013AD22DAAB8EF003F8AC2 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8B013AD32DAAB8EF003F8AC2 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8B013AD42DAAB8EF003F8AC2 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8B013AD52DAAB8EF003F8AC2 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* FM-Chopper */ = {
isa = PBXGroup;
children = (
19C28FB4FE9D528D11CA2CBB /* Products */,
089C167CFE841241C02AAC07 /* Resources */,
08FB77ADFE841716C02AAC07 /* Source */,
);
name = "FM-Chopper";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
24CFB70307E7A0220081BD57 /* PkgInfo */,
8D01CCD10486CAD60068D4B7 /* Info.plist */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77ADFE841716C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
8B013AC72DAAB8EF003F8AC2 /* vstsdk2.4 */,
2407DEB6089929BA00EB68BF /* PrimeFIR.cpp */,
24D8286F09A914000093AEF8 /* PrimeFIRProc.cpp */,
245463B80991757100464AD3 /* PrimeFIR.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* PrimeFIR.vst */,
);
name = Products;
sourceTree = "<group>";
};
8B013AC72DAAB8EF003F8AC2 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8B013AC82DAAB8EF003F8AC2 /* pluginterfaces */,
8B013ACD2DAAB8EF003F8AC2 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8B013AC82DAAB8EF003F8AC2 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8B013AC92DAAB8EF003F8AC2 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8B013AC92DAAB8EF003F8AC2 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B013ACA2DAAB8EF003F8AC2 /* vstfxstore.h */,
8B013ACB2DAAB8EF003F8AC2 /* aeffect.h */,
8B013ACC2DAAB8EF003F8AC2 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8B013ACD2DAAB8EF003F8AC2 /* public.sdk */ = {
isa = PBXGroup;
children = (
8B013ACE2DAAB8EF003F8AC2 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8B013ACE2DAAB8EF003F8AC2 /* source */ = {
isa = PBXGroup;
children = (
8B013ACF2DAAB8EF003F8AC2 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8B013ACF2DAAB8EF003F8AC2 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B013AD02DAAB8EF003F8AC2 /* audioeffectx.h */,
8B013AD12DAAB8EF003F8AC2 /* audioeffect.cpp */,
8B013AD22DAAB8EF003F8AC2 /* audioeffectx.cpp */,
8B013AD32DAAB8EF003F8AC2 /* aeffeditor.h */,
8B013AD42DAAB8EF003F8AC2 /* vstplugmain.cpp */,
8B013AD52DAAB8EF003F8AC2 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B013ADC2DAAB8EF003F8AC2 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* PrimeFIR.h in Headers */,
8B013ADE2DAAB8EF003F8AC2 /* audioeffect.h in Headers */,
8B013AD72DAAB8EF003F8AC2 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8B013AD92DAAB8EF003F8AC2 /* audioeffectx.h in Headers */,
8B013AD62DAAB8EF003F8AC2 /* vstfxstore.h in Headers */,
8B013AD82DAAB8EF003F8AC2 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* PrimeFIR */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "PrimeFIR" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = PrimeFIR;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* PrimeFIR.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "PrimeFIR" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
de,
Base,
en,
fr,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* PrimeFIR */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy PkgInfo";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8B013ADB2DAAB8EF003F8AC2 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* PrimeFIR.cpp in Sources */,
8B013ADA2DAAB8EF003F8AC2 /* audioeffect.cpp in Sources */,
8B013ADD2DAAB8EF003F8AC2 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* PrimeFIRProc.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
24BEAAEE08919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_MODEL_TUNING = "";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.PrimeFIR;
PRODUCT_NAME = PrimeFIR;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Debug;
};
24BEAAEF08919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = "";
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.PrimeFIR;
PRODUCT_NAME = PrimeFIR;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
SKIP_INSTALL = NO;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Release;
};
24BEAAF208919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
24BEAAF308919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_MODEL_TUNING = G4;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = s;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "PrimeFIR" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "PrimeFIR" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAF208919AE700E695F9 /* Debug */,
24BEAAF308919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,143 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
829,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
789,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 345089498;
PBXWorkspaceStateSaveDate = 345089498;
};
perUserProjectItems = {
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
};
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
sepNavSelRange = "{247, 0}";
sepNavVisRange = "{0, 1657}";
};
};
245463B80991757100464AD3 /* Gain.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
sepNavSelRange = "{1552, 0}";
sepNavVisRange = "{796, 1857}";
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
};
};
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 798}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
sepNavSelRange = "{10641, 0}";
sepNavVisRange = "{10076, 1095}";
};
};
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
sepNavSelRange = "{239, 0}";
sepNavVisRange = "{0, 950}";
};
};
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
sepNavSelRange = "{249, 0}";
sepNavVisRange = "{0, 249}";
};
};
8D01CCC60486CAD60068D4B7 /* Gain */ = {
activeExec = 0;
};
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1657;
vrLoc = 0;
};
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1625;
vrLoc = 0;
};
91857D94148EF55400AAA11B /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
91857D95148EF55400AAA11B /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
}

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1420"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "PrimeFIR"
ReferencedContainer = "container:PrimeFIR.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "PrimeFIR"
ReferencedContainer = "container:PrimeFIR.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>PrimeFIR.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>«PROJECTNAME».xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "&#171;PROJECTNAME&#187;.vst"
BlueprintName = "&#171;PROJECTNAME&#187;"
ReferencedContainer = "container:Sample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>PrimeFIR</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

View file

@ -0,0 +1,17 @@
#define MAC 1
#define MACX 1
#define USE_NAMESPACE 0
#define TARGET_API_MAC_CARBON 1
#define USENAVSERVICES 1
#define __CF_USE_FRAMEWORK_INCLUDES__
#if __MWERKS__
#define __NOEXTENSIONS__
#endif
#define QUARTZ 1
#include <AvailabilityMacros.h>

View file

@ -0,0 +1,139 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#include "PrimeFIR.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new PrimeFIR(audioMaster);}
PrimeFIR::PrimeFIR(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 1.0;
B = 0.5;
C = 0.0;
for(int count = 0; count < 32767; count++) {firBufferL[count] = 0.0;firBufferR[count] = 0.0;}
firPosition = 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
}
PrimeFIR::~PrimeFIR() {}
VstInt32 PrimeFIR::getVendorVersion () {return 1000;}
void PrimeFIR::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void PrimeFIR::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 PrimeFIR::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 PrimeFIR::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void PrimeFIR::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float PrimeFIR::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void PrimeFIR::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Freq", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Window", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Prime", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void PrimeFIR::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void PrimeFIR::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 PrimeFIR::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool PrimeFIR::getEffectName(char* name) {
vst_strncpy(name, "PrimeFIR", kVstMaxProductStrLen); return true;
}
VstPlugCategory PrimeFIR::getPlugCategory() {return kPlugCategEffect;}
bool PrimeFIR::getProductString(char* text) {
vst_strncpy (text, "airwindows PrimeFIR", kVstMaxProductStrLen); return true;
}
bool PrimeFIR::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,72 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#define __PrimeFIR_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kNumParameters = 3
};
static int prime[] = {3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919};
//first 999 primes go from 1 to 7919
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'prif'; //Change this to what the AU identity is!
class PrimeFIR :
public AudioEffectX
{
public:
PrimeFIR(audioMasterCallback audioMaster);
~PrimeFIR();
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;
double firBufferL[32768];
double firBufferR[32768];
int firPosition;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,222 @@
/* ========================================
* PrimeFIR - PrimeFIR.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __PrimeFIR_H
#include "PrimeFIR.h"
#endif
void PrimeFIR::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 freq = pow(A,2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(B*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[1000];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (C < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
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;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = inputSampleL; inputSampleL = 0.0;
firBufferR[firp] = inputSampleR; inputSampleR = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip] * fir[fip];
inputSampleR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.25;
inputSampleR *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip]] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.5;
inputSampleR *= 0.5;
}
inputSampleL *= sqrt(freq); //compensate for gain
inputSampleR *= sqrt(freq); //compensate for gain
firPosition--;
//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 PrimeFIR::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 freq = pow(A,2)*M_PI_2; if (freq < 0.0001) freq = 0.0001;
double positionMiddle = sin(freq)*0.5; //shift relative to frequency, not sample-rate
freq /= overallscale; //generating the FIR relative to sample rate
int window = (int)(B*256.0*overallscale); //so's the window size
if (window < 2) window = 2; if (window > 998) window = 998;
double fir[1000];
int middle = (int)((double)window*positionMiddle);
bool nonPrime = (C < 0.5);
if (nonPrime) {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (fip-middle)*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
} else {
for(int fip = 0; fip < middle; fip++) {
fir[fip] = (prime[middle-fip])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
fir[middle] = 1.0;
for(int fip = middle+1; fip < window; fip++) {
fir[fip] = (prime[fip-middle])*freq;
fir[fip] = sin(fir[fip])/fir[fip]; //sinc function
fir[fip] *= sin(((double)fip/(double)window)*M_PI); //windowed with sin()
}
}
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;
if (firPosition < 0 || firPosition > 32767) firPosition = 32767; int firp = firPosition;
firBufferL[firp] = inputSampleL; inputSampleL = 0.0;
firBufferR[firp] = inputSampleR; inputSampleR = 0.0;
if (nonPrime) {
if (firp + window < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip] * fir[fip];
inputSampleR += firBufferR[firp+fip] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+fip - ((firp+fip > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.25;
inputSampleR *= 0.25;
} else {
if (firp + prime[window] < 32767) {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip]] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip]] * fir[fip];
}
} else {
for(int fip = 1; fip < window; fip++) {
inputSampleL += firBufferL[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
inputSampleR += firBufferR[firp+prime[fip] - ((firp+prime[fip] > 32767)?32768:0)] * fir[fip];
}
}
inputSampleL *= 0.5;
inputSampleR *= 0.5;
}
inputSampleL *= sqrt(freq); //compensate for gain
inputSampleR *= sqrt(freq); //compensate for gain
firPosition--;
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,108 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* SmoothEQ */;
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 = 765920389;
PBXWorkspaceStateSaveDate = 765920389;
};
sourceControlManager = 8B02375E1D42B1C400E1E8C8 /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* SmoothEQ.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {939, 2790}}";
sepNavSelRange = "{5351, 0}";
sepNavVisRange = "{4304, 1681}";
sepNavWindowFrame = "{{12, 47}, {895, 831}}";
};
};
245463B80991757100464AD3 /* SmoothEQ.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1110, 1656}}";
sepNavSelRange = "{2859, 0}";
sepNavVisRange = "{234, 1464}";
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 /* SmoothEQProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {966, 6246}}";
sepNavSelRange = "{16441, 0}";
sepNavVisRange = "{0, 1501}";
sepNavWindowFrame = "{{112, 39}, {895, 831}}";
};
};
8B02375E1D42B1C400E1E8C8 /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8B02375F1D42B1C400E1E8C8 /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* SmoothEQ */ = {
activeExec = 0;
};
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,462 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 45;
objects = {
/* Begin PBXBuildFile section */
2407DEB9089929BA00EB68BF /* SmoothEQ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2407DEB6089929BA00EB68BF /* SmoothEQ.cpp */; };
245463B90991757100464AD3 /* SmoothEQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 245463B80991757100464AD3 /* SmoothEQ.h */; };
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */ = {isa = PBXBuildFile; fileRef = 24CFB70307E7A0220081BD57 /* PkgInfo */; };
24D8287009A914000093AEF8 /* SmoothEQProc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 24D8286F09A914000093AEF8 /* SmoothEQProc.cpp */; };
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */ = {isa = PBXBuildFile; fileRef = 24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */; };
8B013AF12DAABA84003F8AC2 /* vstfxstore.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AE52DAABA84003F8AC2 /* vstfxstore.h */; };
8B013AF22DAABA84003F8AC2 /* aeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AE62DAABA84003F8AC2 /* aeffect.h */; };
8B013AF32DAABA84003F8AC2 /* aeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AE72DAABA84003F8AC2 /* aeffectx.h */; };
8B013AF42DAABA84003F8AC2 /* audioeffectx.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AEB2DAABA84003F8AC2 /* audioeffectx.h */; };
8B013AF52DAABA84003F8AC2 /* audioeffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AEC2DAABA84003F8AC2 /* audioeffect.cpp */; };
8B013AF62DAABA84003F8AC2 /* audioeffectx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AED2DAABA84003F8AC2 /* audioeffectx.cpp */; };
8B013AF72DAABA84003F8AC2 /* aeffeditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AEE2DAABA84003F8AC2 /* aeffeditor.h */; };
8B013AF82DAABA84003F8AC2 /* vstplugmain.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B013AEF2DAABA84003F8AC2 /* vstplugmain.cpp */; };
8B013AF92DAABA84003F8AC2 /* audioeffect.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B013AF02DAABA84003F8AC2 /* audioeffect.h */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
2407DE920899296600EB68BF /* SmoothEQ.vst */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SmoothEQ.vst; sourceTree = BUILT_PRODUCTS_DIR; };
2407DEB6089929BA00EB68BF /* SmoothEQ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = SmoothEQ.cpp; path = source/SmoothEQ.cpp; sourceTree = "<group>"; };
245463B80991757100464AD3 /* SmoothEQ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = SmoothEQ.h; path = source/SmoothEQ.h; sourceTree = "<group>"; };
24CFB70307E7A0220081BD57 /* PkgInfo */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = PkgInfo; path = mac/PkgInfo; sourceTree = "<group>"; };
24D8286F09A914000093AEF8 /* SmoothEQProc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SmoothEQProc.cpp; path = source/SmoothEQProc.cpp; sourceTree = "<group>"; };
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = xcode_vst_prefix.h; path = mac/xcode_vst_prefix.h; sourceTree = SOURCE_ROOT; };
8B013AE52DAABA84003F8AC2 /* vstfxstore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = vstfxstore.h; sourceTree = "<group>"; };
8B013AE62DAABA84003F8AC2 /* aeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffect.h; sourceTree = "<group>"; };
8B013AE72DAABA84003F8AC2 /* aeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffectx.h; sourceTree = "<group>"; };
8B013AEB2DAABA84003F8AC2 /* audioeffectx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffectx.h; sourceTree = "<group>"; };
8B013AEC2DAABA84003F8AC2 /* audioeffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffect.cpp; sourceTree = "<group>"; };
8B013AED2DAABA84003F8AC2 /* audioeffectx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = audioeffectx.cpp; sourceTree = "<group>"; };
8B013AEE2DAABA84003F8AC2 /* aeffeditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = aeffeditor.h; sourceTree = "<group>"; };
8B013AEF2DAABA84003F8AC2 /* vstplugmain.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = vstplugmain.cpp; sourceTree = "<group>"; };
8B013AF02DAABA84003F8AC2 /* audioeffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = audioeffect.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = mac/Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXGroup section */
089C166AFE841209C02AAC07 /* FM-Chopper */ = {
isa = PBXGroup;
children = (
19C28FB4FE9D528D11CA2CBB /* Products */,
089C167CFE841241C02AAC07 /* Resources */,
08FB77ADFE841716C02AAC07 /* Source */,
);
name = "FM-Chopper";
sourceTree = "<group>";
};
089C167CFE841241C02AAC07 /* Resources */ = {
isa = PBXGroup;
children = (
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */,
24CFB70307E7A0220081BD57 /* PkgInfo */,
8D01CCD10486CAD60068D4B7 /* Info.plist */,
);
name = Resources;
sourceTree = "<group>";
};
08FB77ADFE841716C02AAC07 /* Source */ = {
isa = PBXGroup;
children = (
8B013AE22DAABA84003F8AC2 /* vstsdk2.4 */,
2407DEB6089929BA00EB68BF /* SmoothEQ.cpp */,
24D8286F09A914000093AEF8 /* SmoothEQProc.cpp */,
245463B80991757100464AD3 /* SmoothEQ.h */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
2407DE920899296600EB68BF /* SmoothEQ.vst */,
);
name = Products;
sourceTree = "<group>";
};
8B013AE22DAABA84003F8AC2 /* vstsdk2.4 */ = {
isa = PBXGroup;
children = (
8B013AE32DAABA84003F8AC2 /* pluginterfaces */,
8B013AE82DAABA84003F8AC2 /* public.sdk */,
);
name = vstsdk2.4;
path = ../../../../vstsdk2.4;
sourceTree = "<group>";
};
8B013AE32DAABA84003F8AC2 /* pluginterfaces */ = {
isa = PBXGroup;
children = (
8B013AE42DAABA84003F8AC2 /* vst2.x */,
);
path = pluginterfaces;
sourceTree = "<group>";
};
8B013AE42DAABA84003F8AC2 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B013AE52DAABA84003F8AC2 /* vstfxstore.h */,
8B013AE62DAABA84003F8AC2 /* aeffect.h */,
8B013AE72DAABA84003F8AC2 /* aeffectx.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
8B013AE82DAABA84003F8AC2 /* public.sdk */ = {
isa = PBXGroup;
children = (
8B013AE92DAABA84003F8AC2 /* source */,
);
path = public.sdk;
sourceTree = "<group>";
};
8B013AE92DAABA84003F8AC2 /* source */ = {
isa = PBXGroup;
children = (
8B013AEA2DAABA84003F8AC2 /* vst2.x */,
);
path = source;
sourceTree = "<group>";
};
8B013AEA2DAABA84003F8AC2 /* vst2.x */ = {
isa = PBXGroup;
children = (
8B013AEB2DAABA84003F8AC2 /* audioeffectx.h */,
8B013AEC2DAABA84003F8AC2 /* audioeffect.cpp */,
8B013AED2DAABA84003F8AC2 /* audioeffectx.cpp */,
8B013AEE2DAABA84003F8AC2 /* aeffeditor.h */,
8B013AEF2DAABA84003F8AC2 /* vstplugmain.cpp */,
8B013AF02DAABA84003F8AC2 /* audioeffect.h */,
);
path = vst2.x;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B013AF72DAABA84003F8AC2 /* aeffeditor.h in Headers */,
245463B90991757100464AD3 /* SmoothEQ.h in Headers */,
8B013AF92DAABA84003F8AC2 /* audioeffect.h in Headers */,
8B013AF22DAABA84003F8AC2 /* aeffect.h in Headers */,
24D8287F09A9164A0093AEF8 /* xcode_vst_prefix.h in Headers */,
8B013AF42DAABA84003F8AC2 /* audioeffectx.h in Headers */,
8B013AF12DAABA84003F8AC2 /* vstfxstore.h in Headers */,
8B013AF32DAABA84003F8AC2 /* aeffectx.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* SmoothEQ */ = {
isa = PBXNativeTarget;
buildConfigurationList = 24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "SmoothEQ" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */,
);
buildRules = (
);
dependencies = (
);
name = SmoothEQ;
productInstallPath = "$(HOME)/Library/Bundles";
productName = "FM-Chopper";
productReference = 2407DE920899296600EB68BF /* SmoothEQ.vst */;
productType = "com.apple.product-type.bundle";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
089C1669FE841209C02AAC07 /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 1420;
};
buildConfigurationList = 24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "SmoothEQ" */;
compatibilityVersion = "Xcode 2.4";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
ja,
fr,
en,
Base,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* FM-Chopper */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* SmoothEQ */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D01CCC90486CAD60068D4B7 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
24CFB70407E7A0220081BD57 /* PkgInfo in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
24CFB70807E7A07C0081BD57 /* Copy PkgInfo */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
);
name = "Copy PkgInfo";
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/bash;
shellScript = "cp mac/PkgInfo \"$BUILT_PRODUCTS_DIR/$PRODUCT_NAME.vst/Contents/\"";
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8B013AF62DAABA84003F8AC2 /* audioeffectx.cpp in Sources */,
2407DEB9089929BA00EB68BF /* SmoothEQ.cpp in Sources */,
8B013AF52DAABA84003F8AC2 /* audioeffect.cpp in Sources */,
8B013AF82DAABA84003F8AC2 /* vstplugmain.cpp in Sources */,
24D8287009A914000093AEF8 /* SmoothEQProc.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
24BEAAEE08919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = NO;
DEAD_CODE_STRIPPING = YES;
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_DYNAMIC_NO_PIC = NO;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
GCC_MODEL_TUNING = "";
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.SmoothEQ;
PRODUCT_NAME = SmoothEQ;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Debug;
};
24BEAAEF08919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ENABLE_OBJC_WEAK = YES;
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application";
CODE_SIGN_STYLE = Manual;
COPY_PHASE_STRIP = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = "";
"DEVELOPMENT_TEAM[sdk=macosx*]" = 9BMAKYA76W;
FRAMEWORK_SEARCH_PATHS = "";
GCC_C_LANGUAGE_STANDARD = c99;
GCC_ENABLE_TRIGRAPHS = NO;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = "";
GCC_OPTIMIZATION_LEVEL = s;
GCC_PRECOMPILE_PREFIX_HEADER = YES;
GCC_PREFIX_HEADER = "";
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_UNKNOWN_PRAGMAS = NO;
HEADER_SEARCH_PATHS = "/Users/christopherjohnson/Desktop/vstsdk2.4/**";
INFOPLIST_FILE = ./mac/Info.plist;
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/VST";
LIBRARY_SEARCH_PATHS = "";
MACOSX_DEPLOYMENT_TARGET = 11.1;
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "";
OTHER_REZFLAGS = "";
PRODUCT_BUNDLE_IDENTIFIER = com.airwindows.SmoothEQ;
PRODUCT_NAME = SmoothEQ;
PROVISIONING_PROFILE_SPECIFIER = "";
SDKROOT = macosx;
SECTORDER_FLAGS = "";
SKIP_INSTALL = NO;
STRIP_INSTALLED_PRODUCT = YES;
STRIP_STYLE = debugging;
WARNING_CFLAGS = (
"-Wmost",
"-Wno-four-char-constants",
"-Wno-unknown-pragmas",
);
WRAPPER_EXTENSION = vst;
};
name = Release;
};
24BEAAF208919AE700E695F9 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_MODEL_TUNING = G5;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = "DEBUG=1";
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Debug;
};
24BEAAF308919AE700E695F9 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD)";
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = c99;
GCC_MODEL_TUNING = G4;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = s;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
INFOPLIST_FILE = "";
INFOPLIST_PREPROCESS = NO;
MACOSX_DEPLOYMENT_TARGET = 11.1;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = macosx;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
24BEAAED08919AE700E695F9 /* Build configuration list for PBXNativeTarget "SmoothEQ" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAEE08919AE700E695F9 /* Debug */,
24BEAAEF08919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
24BEAAF108919AE700E695F9 /* Build configuration list for PBXProject "SmoothEQ" */ = {
isa = XCConfigurationList;
buildConfigurations = (
24BEAAF208919AE700E695F9 /* Debug */,
24BEAAF308919AE700E695F9 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

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

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,143 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Gain */;
codeSenseManager = 91857D95148EF55400AAA11B /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
829,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
789,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 345089498;
PBXWorkspaceStateSaveDate = 345089498;
};
perUserProjectItems = {
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = 911C2A9D1491A5F600A430AF /* PBXTextBookmark */;
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = 915DCCBB1491A5B8008574E6 /* PBXTextBookmark */;
};
sourceControlManager = 91857D94148EF55400AAA11B /* Source Control */;
userBuildSettings = {
};
};
2407DEB6089929BA00EB68BF /* Gain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 1768}}";
sepNavSelRange = "{247, 0}";
sepNavVisRange = "{0, 1657}";
};
};
245463B80991757100464AD3 /* Gain.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 975}}";
sepNavSelRange = "{1552, 0}";
sepNavVisRange = "{796, 1857}";
sepNavWindowFrame = "{{15, 465}, {750, 558}}";
};
};
24A2FF9A0F90D1DD003BB5A7 /* adelaymain.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 488}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 798}";
};
};
24A2FFDB0F90D1DD003BB5A7 /* audioeffectx.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {859, 19825}}";
sepNavSelRange = "{10641, 0}";
sepNavVisRange = "{10076, 1095}";
};
};
24D8286F09A914000093AEF8 /* GainProc.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 482}}";
sepNavSelRange = "{239, 0}";
sepNavVisRange = "{0, 950}";
};
};
24D8287E09A9164A0093AEF8 /* xcode_vst_prefix.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {992, 493}}";
sepNavSelRange = "{249, 0}";
sepNavVisRange = "{0, 249}";
};
};
8D01CCC60486CAD60068D4B7 /* Gain */ = {
activeExec = 0;
};
911C2A9D1491A5F600A430AF /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1657;
vrLoc = 0;
};
915DCCBB1491A5B8008574E6 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 2407DEB6089929BA00EB68BF /* Gain.cpp */;
name = "Gain.cpp: 10";
rLen = 0;
rLoc = 247;
rType = 0;
vrLen = 1625;
vrLoc = 0;
};
91857D94148EF55400AAA11B /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
91857D95148EF55400AAA11B /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
}

View file

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1420"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "SmoothEQ"
ReferencedContainer = "container:SmoothEQ.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
</TestAction>
<LaunchAction
buildConfiguration = "Release"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "Gain.vst"
BlueprintName = "SmoothEQ"
ReferencedContainer = "container:SmoothEQ.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>SmoothEQ.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>«PROJECTNAME».xcscheme</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>8D01CCC60486CAD60068D4B7</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "8D01CCC60486CAD60068D4B7"
BuildableName = "&#171;PROJECTNAME&#187;.vst"
BlueprintName = "&#171;PROJECTNAME&#187;"
ReferencedContainer = "container:Sample.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
shouldUseLaunchSchemeArgsEnv = "YES"
buildConfiguration = "Debug">
<Testables>
</Testables>
</TestAction>
<LaunchAction
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.GDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.GDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
buildConfiguration = "Debug"
debugDocumentVersioning = "YES"
allowLocationSimulation = "YES">
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
buildConfiguration = "Release"
debugDocumentVersioning = "YES">
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>SmoothEQ</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

View file

@ -0,0 +1,17 @@
#define MAC 1
#define MACX 1
#define USE_NAMESPACE 0
#define TARGET_API_MAC_CARBON 1
#define USENAVSERVICES 1
#define __CF_USE_FRAMEWORK_INCLUDES__
#if __MWERKS__
#define __NOEXTENSIONS__
#endif
#define QUARTZ 1
#include <AvailabilityMacros.h>

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