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

@ -29,7 +29,7 @@ Dynamics: Pop3, Pop2, Pressure5, StoneFireComp, Dynamics, Pop, DigitalBlack, Log
Effects: RingModulator, Dubly3, Dubly2, GalacticVibe, CloudCoat, Disintegrate, Fracture2, Dubly, Pafnuty2, PitchNasty, Trianglizer, ShortBuss, GuitarConditioner, Aura, TremoSquare, Tremolo, GlitchShifter, Gringer, Exciter, Energy2, Energy, Facet, Fracture, PowerSag2, PowerSag, Preponderant, Nikola
Filter: Parametric, Stonefire, AngleEQ, Isolator3, BezEQ, Baxandall2, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Baxandall, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass
Filter: SmoothEQ, Parametric, Stonefire, AngleEQ, Isolator3, BezEQ, Baxandall2, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Baxandall, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass
Lo-Fi: Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter, DeRez2, BitGlitter, DeRez, TapeBias, ChromeOxide, Cojones, Vibrato, Bite, Deckwrecka, DustBunny
@ -4455,6 +4455,24 @@ You get that, an output level, and dry/wet: with the range of possible adjustmen
As one does, these days :)
############ SmoothEQ is a sharp, accurate, transparent three-band filter.
This follows AngleEQ, so it follows an extremely weird, colorful, poorly behaved EQ with a super-clean, accurate, well-behaved EQ, just for variety. Not in the sense that you dial in exact dBs and frequencies: it's still a 'by ear' filter like the great analog EQs, and I'm probably not the person you go to for 'add exactly two and a half dB of 3026 hz shelving and that's the important part, all EQs sound the same'.
When I say accurate, I mean that unlike AngleEQ if you set SmoothEQ flat you get EXACTLY what you put into it. It uses a subtractive technique that I like, not sure if other people do this, where the sound is assembled out of sub-bands that are always 'one band is the filtered, and the other is that subtracted from dry'. It's that which I couldn't do with AngleEQ, and which has been tricky with everything short of simple biquads (for which it works excellently).
And this is the breakthrough where I worked out how to do this thing I like, which I'm not sure anyone cares about but me, with ANY degree or order of filters so long as they're biquads. Maybe even beyond that, but turns out biquad filters are very cooperative with this.
SmoothEQ uses eighth-order crossovers: steep! They isolate real well. But so powerful is the technique that I can use Bessel filters instead of Butterworth, for nicer phase behavior. There are limits: I don't think I can use this for speaker crossovers, it's strictly for setting relative volumes of EQ bands and listening to a combined output. The trick is, if I apply cascaded filter crossovers and try to subtract it from dry, I get what I got in AngleEQ, a phasey mess.
But if I reconstitute the original signal from the 'sections' between EVERY stage of filtering, I get the degree of filter steepness I wanted, AND all the sums still reconstitute to a perfect, bit-identical input if set flat.
If you wanted an Airwindows five-band, or seven-band, or 31-band EQ this is how I'd have to go about it. I don't know if it would hold up at 31 bands of EQ, or how well that would work, but mathematically I know that if you set it flat you'd have ultimate, bit-identical, perfectly transparent sonics, because that's the only way the technique CAN work. There are obvious applications in making, for instance, a Mesa Boogie 5-band guitar EQ and having it sound amazing without analog modeling: sometimes what you want is the merits of analog processing, not just to imitate everything. It'll make EQs that are perfectly accurate set flat, and then you're shelving up and down bands of frequencies with extremely clean boundaries, as steep as you like.
SmoothEQ is a simple three-band version of this. Now that I know I can do it, I can do a future ConsoleO (orchestral) and really do a good job of keeping the tone even through filtering. This is not a linear phase EQ but does not need to be, since everything is either perfect or some degree of the tone produced by extreme EQ isolations: whatever that sound, if you add only a tiny amount of filtering you automatically get only a tiny amount of that tone color. That's why I build it in that peculiar way, to get that result.
It's going to be fun running with this technique and making stuff sound better, and I hope you like SmoothEQ :)
############ SoftGate is a gate that can mute hiss and smooth sample tails.
Hi! Todays Airwindows tool is for sample makers (though you could use in in a mix if you really wanted to, or abuse it for special effects). Its called SoftGate.

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

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