This commit is contained in:
Christopher Johnson 2026-04-24 19:06:58 -04:00
parent 038a0648dc
commit 38f93aaaa7
359 changed files with 88863 additions and 1908 deletions

View file

@ -29,7 +29,7 @@ Dynamics: Dynamics2, Pressure6, BeziComp, Pop3, Pop2, Pressure5, StoneFireComp,
Effects: TakeCare, 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: SmoothEQ3, PearEQ, FatEQ, SmoothEQ2, BezEQ2, SmoothEQ, Parametric, Dattorro, Donut, Silken, Stonefire, AngleEQ, AngleFilter, Isolator3, BezEQ, Baxandall3, Baxandall2, Baxandall, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, PrimeFIR, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass
Filter: Suzan, SmoothEQ3, PearEQ, FatEQ, SmoothEQ2, BezEQ2, SmoothEQ, Parametric, Dattorro, Donut, Silken, Stonefire, AngleEQ, AngleFilter, Isolator3, BezEQ, Baxandall3, Baxandall2, Baxandall, Pear2, Capacitor2, Distance3, Pear, ResEQ2, SubTight, CStrip2, Weight, Isolator2, Kalman, PrimeFIR, Holt2, Holt, ToneSlant, AverMatrix, Average, MackEQ, Hull2, Hull, EQ, Capacitor, Isolator, TapeFat, ResEQ, Lowpass2, Highpass2, Distance, Distance2, Lowpass, Highpass
Lo-Fi: DeBez, HipCrush, Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter, DeRez2, BitGlitter, DeRez, TapeBias, ChromeOxide, Cojones, Vibrato, Bite, Deckwrecka, DustBunny
@ -5549,6 +5549,24 @@ The way to get SurgeTide working is to adjust the Surge Node until it squishes a
It doesnt work in any useful way on isolated tracks, particularly not staccato drum tracks: just maybe it would do helpful things with say, a lead vocal or a synth pad. Just remember that SurgeTide is for powerful, whole-mix movements rather than the usual compressor things, and that it can have effects on the extreme low bass, and build up the swing and flow of a mix. Itll work on some things and be useless on others. I hope you like it.
############ Suzan is a new type of ladder filter.
So a funny thing happened to me on the way to Dattorro…
I was talking about the very simple state variable filter I made, Dattorro, and how it was very handy, could even substitute for a biquad filter according to Andy from Cytomic who's an eager advocate of these (as opposed to, say, a biquad filter of direct form 1), and how I'd come up with a twist on it using only a sin() function to do the unexpected thing of subtracting the distorted bandpass element FROM the lowpass, and how that had a neat tone I liked. The twist was new, and I was excited about the possibilities.
Then, on a famously crotchety forum, a guy popped up to object… saying I shouldn't call it not a biquad. It's just an SVF and not direct form 1, but it's still a biquadratic filter. You could even have literal analog filters that are biquads. I had the language wrong and he apologized for the fact that this drove him up the wall.
He's Antoine Portes, and he's writing an experimental book about filters called Working Class Filter Design. Biquadratic means the transfer function's denominator is a quadratic formula, another name for second order polynomial. He's been trying to do a really good Moog ladder, which apparently is more like fourth order, and he notes that we use Q for resonance, but there's another part that goes 1/(2*Q) and this doesn't have a consistent name. He's calling it Damping, but suggests if you don't like that you can call it Suzan for all the difference it'll make to him.
Naturally, I was charmed though his math is over my foolish head :) and so, I got busy again, except it was with experimenting in code rather than figuring out the math of it. And I told him I'd name the filter, meant to be experiments on this fourth-order, Moog-flavored filter, 'Suzan' in his honor.
And this is the result. It's a small stack of SVFs. The difference is, Antoine understandably is interested in representing these things in correct math, and doing sensible things at least some of the time. Me on the other hand… my whole deal is being able to try things that don't exist yet. By all rights the AIs should be paying me to come up with novel things for them (maybe there'll come a day when that's a reality).
And so, Suzan is not two but three SVFs in series. And the SVFs are still normal, except I'm up to my Dattorro tricks but even worse. Stage A subtracts the bandpass of stage C. Stage B subtracts the bandpass of stage A… and stage C adds the bandpass of stage B. Oh, except they're all the sines of those bandpasses, and the first two are using half the amplitude of the bandpass, the final one which adds is using the full amplitude going into the sine function.
I don't claim justification for this or an analysis of why it works. Swept way up high it can have high frequency instability when hit with full blast white noise, which I hope doesn't cause issues (I got it to where it was simply a boost but didn't blow up). I find it's a nice chunky resonant peak and even gives appropriate amounts of bass restriction when resonance is turned up… and the inappropriate use of feedback across the stages does a nice job of giving a colorful texture. One I am intimately familiar with both from records, and from owning everything from a MG-1 Concertmate to a Werkstatt to a Sub Phatty. But we're not calling it that, because it isn't one of those. It's Suzan, and it's trying to bring the right kind of mojo to my filter collection. I hope you like it :)
############ Sweeten is where you can find super-clean second harmonic.
So this serves a few purposes. Sweeten is one of the super-minimal, one knob plugins. It makes second harmonic: much like SingleEndedTriode, or Inflamer. The first purpose is to exist, so if you're thinking 'I gotta sweeten this sound, now which Airwindows plugin of the three billion and twelve does that? Conflagration? No, that can't be it' then you can go 'is there one literally called Sweeten', and now there is! And it does what you'd expect, even harmonics (second harmonic, specifically). That's all it does.

View file

@ -11,8 +11,10 @@ add_airwindows_plugin(Acceleration)
add_airwindows_plugin(Acceleration2)
add_airwindows_plugin(ADClip7)
add_airwindows_plugin(ADClip8)
add_airwindows_plugin(ADClip9)
add_airwindows_plugin(ADT)
add_airwindows_plugin(Air)
add_airwindows_plugin(Air2)
add_airwindows_plugin(Air3)
add_airwindows_plugin(Air4)
add_airwindows_plugin(AngleEQ)
@ -35,6 +37,7 @@ add_airwindows_plugin(Baxandall3)
add_airwindows_plugin(Beam)
add_airwindows_plugin(BezEQ)
add_airwindows_plugin(BezEQ2)
add_airwindows_plugin(BezEQ3)
add_airwindows_plugin(BeziComp)
add_airwindows_plugin(BigAmp)
add_airwindows_plugin(Biquad)
@ -279,6 +282,7 @@ add_airwindows_plugin(kPlateA)
add_airwindows_plugin(kPlateB)
add_airwindows_plugin(kPlateC)
add_airwindows_plugin(kPlateD)
add_airwindows_plugin(kRockstar)
add_airwindows_plugin(kStation)
add_airwindows_plugin(kWoodRoom)
add_airwindows_plugin(LeadAmp)
@ -429,6 +433,7 @@ add_airwindows_plugin(SubsOnly)
add_airwindows_plugin(SubTight)
add_airwindows_plugin(Surge)
add_airwindows_plugin(SurgeTide)
add_airwindows_plugin(Suzan)
add_airwindows_plugin(Sweeten)
add_airwindows_plugin(SweetWide)
add_airwindows_plugin(Swell)
@ -505,6 +510,7 @@ add_airwindows_plugin(ZHighpass2)
add_airwindows_plugin(ZLowpass)
add_airwindows_plugin(ZLowpass2)
add_airwindows_plugin(ZNotch)
add_airwindows_plugin(ZNotch2)
add_airwindows_plugin(Zoom)
add_airwindows_plugin(ZOutputStage)
add_airwindows_plugin(ZRegion)

View file

@ -0,0 +1,166 @@
/* ========================================
* ADClip9 - ADClip9.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ADClip9_H
#include "ADClip9.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ADClip9(audioMaster);}
ADClip9::ADClip9(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.0;
B = 0.0;
C = 0.7;
D = 0.75;
E = 0.0;
lastSampleL = 0.0;
wasPosClipL = false;
wasNegClipL = false;
lastSampleR = 0.0;
wasPosClipR = false;
wasNegClipR = false;
for (int x = 0; x < 17; x++) {intermediateL[x] = 0.0; intermediateR[x] = 0.0;}
for (int x = 0; x < 33; x++) {slewL[x] = 0.0; slewR[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
}
ADClip9::~ADClip9() {}
VstInt32 ADClip9::getVendorVersion () {return 1000;}
void ADClip9::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void ADClip9::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 ADClip9::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 ADClip9::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 ADClip9::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 ADClip9::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 ADClip9::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Boost", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Match", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Noise", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ceiling", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Mode", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void ADClip9::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A*18.0, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: switch((VstInt32)( E * 2.999 )) {
case 0: vst_strncpy (text, "Boost", kVstMaxParamStrLen); break;
case 1: vst_strncpy (text, "Match", kVstMaxParamStrLen); break;
case 2: vst_strncpy (text, "ClipOnly", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void ADClip9::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "dB", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "dB", 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 ADClip9::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool ADClip9::getEffectName(char* name) {
vst_strncpy(name, "ADClip9", kVstMaxProductStrLen); return true;
}
VstPlugCategory ADClip9::getPlugCategory() {return kPlugCategEffect;}
bool ADClip9::getProductString(char* text) {
vst_strncpy (text, "airwindows ADClip9", kVstMaxProductStrLen); return true;
}
bool ADClip9::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,84 @@
/* ========================================
* ADClip9 - ADClip9.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ADClip9_H
#define __ADClip9_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 = 'adct'; //Change this to what the AU identity is!
class ADClip9 :
public AudioEffectX
{
public:
ADClip9(audioMasterCallback audioMaster);
~ADClip9();
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;
double lastSampleL;
double lastDryL;
double intermediateL[18];
double slewL[34];
bool wasPosClipL;
bool wasNegClipL;
double lastSampleR;
double lastDryR;
double intermediateR[18];
double slewR[34];
bool wasPosClipR;
bool wasNegClipR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,242 @@
/* ========================================
* ADClip9 - ADClip9.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __ADClip9_H
#include "ADClip9.h"
#endif
void ADClip9::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
double inputGain = pow(10.0,(A*18.0)/20.0);
double match = pow(10.0,(B*18.0)/20.0);
double noiseLevel = 1.0-pow(1.0-C,2.0);
double ceiling = 1.0-pow(1.0-D,2.0);
int mode = (int) (E*2.999)+1;
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;
switch (mode)
{
case 1: inputSampleL *= inputGain; inputSampleR *= inputGain; break; //Boost
case 2: inputSampleL *= match; inputSampleR *= match; break; //Match
case 3: inputSampleL *= inputGain; inputSampleR *= inputGain; break; //ClipOnly
}
//this is our output mode switch, showing the effects
double overshootL = lastDryL;
lastDryL = inputSampleL;
double overshootR = lastDryR;
lastDryR = inputSampleR;
//begin ClipOnly3 as a little, compressed chunk that can be dropped into code
double noise = 1.0-((double(fpdL)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=(noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = ceiling;
} wasPosClipL = false;
if (inputSampleL>noiseLevel) {wasPosClipL=true;inputSampleL=(noiseLevel*noise)+(lastSampleL*(1.0-noise));}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=(-noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = -ceiling;
} wasNegClipL = false;
if (inputSampleL<-noiseLevel) {wasNegClipL=true;inputSampleL=(-noiseLevel*noise)+(lastSampleL*(1.0-noise));}
slewL[spacing*2] = fabs(lastSampleL-inputSampleL);
for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x];
intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL;
//latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0];
if (wasPosClipL || wasNegClipL) {
for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x];
lastSampleL /= spacing;
} double finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x];
double postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip;
noise = 1.0-((double(fpdR)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipR == true) { //current will be over
if (inputSampleR<lastSampleR) lastSampleR=(noiseLevel*noise)+(inputSampleR*(1.0-noise));
else lastSampleR = ceiling;
} wasPosClipR = false;
if (inputSampleR>noiseLevel) {wasPosClipR=true;inputSampleR=(noiseLevel*noise)+(lastSampleR*(1.0-noise));}
if (wasNegClipR == true) { //current will be -over
if (inputSampleR > lastSampleR) lastSampleR=(-noiseLevel*noise)+(inputSampleR*(1.0-noise));
else lastSampleR = -ceiling;
} wasNegClipR = false;
if (inputSampleR<-noiseLevel) {wasNegClipR=true;inputSampleR=(-noiseLevel*noise)+(lastSampleR*(1.0-noise));}
slewR[spacing*2] = fabs(lastSampleR-inputSampleR);
for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x];
intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR;
//latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0];
if (wasPosClipR || wasNegClipR) {
for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x];
lastSampleR /= spacing;
} finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x];
postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip;
//end ClipOnly3 as a little, compressed chunk that can be dropped into code
switch (mode)
{
case 1: break; //Boost
case 2: inputSampleL /= match; inputSampleR /= match; break; //Match
case 3: inputSampleL = (inputSampleL-overshootL)/inputGain; inputSampleR = (inputSampleR-overshootR)/inputGain; break; //Clip Only
}
//this is our output mode switch, showing the effects
//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 ADClip9::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
double inputGain = pow(10.0,(A*18.0)/20.0);
double match = pow(10.0,(B*18.0)/20.0);
double noiseLevel = 1.0-pow(1.0-C,2.0);
double ceiling = 1.0-pow(1.0-D,2.0);
int mode = (int) (E*2.999)+1;
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;
switch (mode)
{
case 1: inputSampleL *= inputGain; inputSampleR *= inputGain; break; //Boost
case 2: inputSampleL *= match; inputSampleR *= match; break; //Match
case 3: inputSampleL *= inputGain; inputSampleR *= inputGain; break; //ClipOnly
}
//this is our output mode switch, showing the effects
double overshootL = lastDryL;
lastDryL = inputSampleL;
double overshootR = lastDryR;
lastDryR = inputSampleR;
//begin ClipOnly3 as a little, compressed chunk that can be dropped into code
double noise = 1.0-((double(fpdL)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=(noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = ceiling;
} wasPosClipL = false;
if (inputSampleL>noiseLevel) {wasPosClipL=true;inputSampleL=(noiseLevel*noise)+(lastSampleL*(1.0-noise));}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=(-noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = -ceiling;
} wasNegClipL = false;
if (inputSampleL<-noiseLevel) {wasNegClipL=true;inputSampleL=(-noiseLevel*noise)+(lastSampleL*(1.0-noise));}
slewL[spacing*2] = fabs(lastSampleL-inputSampleL);
for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x];
intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL;
//latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0];
if (wasPosClipL || wasNegClipL) {
for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x];
lastSampleL /= spacing;
} double finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x];
double postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip;
noise = 1.0-((double(fpdR)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipR == true) { //current will be over
if (inputSampleR<lastSampleR) lastSampleR=(noiseLevel*noise)+(inputSampleR*(1.0-noise));
else lastSampleR = ceiling;
} wasPosClipR = false;
if (inputSampleR>noiseLevel) {wasPosClipR=true;inputSampleR=(noiseLevel*noise)+(lastSampleR*(1.0-noise));}
if (wasNegClipR == true) { //current will be -over
if (inputSampleR > lastSampleR) lastSampleR=(-noiseLevel*noise)+(inputSampleR*(1.0-noise));
else lastSampleR = -ceiling;
} wasNegClipR = false;
if (inputSampleR<-noiseLevel) {wasNegClipR=true;inputSampleR=(-noiseLevel*noise)+(lastSampleR*(1.0-noise));}
slewR[spacing*2] = fabs(lastSampleR-inputSampleR);
for (int x = spacing*2; x > 0; x--) slewR[x-1] = slewR[x];
intermediateR[spacing] = inputSampleR; inputSampleR = lastSampleR;
//latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateR[x-1] = intermediateR[x];} lastSampleR = intermediateR[0];
if (wasPosClipR || wasNegClipR) {
for (int x = spacing; x > 0; x--) lastSampleR += intermediateR[x];
lastSampleR /= spacing;
} finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewR[x]) finalSlew = slewR[x];
postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleR > postclip) inputSampleR = postclip; if (inputSampleR < -postclip) inputSampleR = -postclip;
//end ClipOnly3 as a little, compressed chunk that can be dropped into code
switch (mode)
{
case 1: break; //Boost
case 2: inputSampleL /= match; inputSampleR /= match; break; //Match
case 3: inputSampleL = (inputSampleL-overshootL)/inputGain; inputSampleR = (inputSampleR-overshootR)/inputGain; break; //Clip Only
}
//this is our output mode switch, showing the effects
//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,178 @@
/* ========================================
* BezEQ3 - BezEQ3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __BezEQ3_H
#include "BezEQ3.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new BezEQ3(audioMaster);}
BezEQ3::BezEQ3(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.5;
D = 0.5;
E = 0.5;
F = 0.5;
G = 0.5;
H = 0.5;
for (int x = 0; x < bez_total; x++) {for (int y = 0; y < 3; y++) bezEQ[x][y] = 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
}
BezEQ3::~BezEQ3() {}
VstInt32 BezEQ3::getVendorVersion () {return 1000;}
void BezEQ3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void BezEQ3::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 BezEQ3::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
chunkData[6] = G;
chunkData[7] = H;
/* 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 BezEQ3::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
G = pinParameter(chunkData[6]);
H = pinParameter(chunkData[7]);
/* 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 BezEQ3::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
case kParamG: G = value; break;
case kParamH: H = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float BezEQ3::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
case kParamG: return G; break;
case kParamH: return H; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void BezEQ3::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "HighF", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "HMidF", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "LMidF", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "BassF", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void BezEQ3::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
case kParamB: float2string (B, text, kVstMaxParamStrLen); break;
case kParamC: float2string (C, text, kVstMaxParamStrLen); break;
case kParamD: float2string (D, text, kVstMaxParamStrLen); break;
case kParamE: float2string (E, text, kVstMaxParamStrLen); break;
case kParamF: float2string (F, text, kVstMaxParamStrLen); break;
case kParamG: float2string (G, text, kVstMaxParamStrLen); break;
case kParamH: float2string (H, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void BezEQ3::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 BezEQ3::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool BezEQ3::getEffectName(char* name) {
vst_strncpy(name, "BezEQ3", kVstMaxProductStrLen); return true;
}
VstPlugCategory BezEQ3::getPlugCategory() {return kPlugCategEffect;}
bool BezEQ3::getProductString(char* text) {
vst_strncpy (text, "airwindows BezEQ3", kVstMaxProductStrLen); return true;
}
bool BezEQ3::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,87 @@
/* ========================================
* BezEQ3 - BezEQ3.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __BezEQ3_H
#define __BezEQ3_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kParamG =6,
kParamH =7,
kNumParameters = 8
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'bzes'; //Change this to what the AU identity is!
class BezEQ3 :
public AudioEffectX
{
public:
BezEQ3(audioMasterCallback audioMaster);
~BezEQ3();
virtual bool getEffectName(char* name); // The plug-in name
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
virtual bool getVendorString(char* text); // Vendor info
virtual VstInt32 getVendorVersion(); // Version number
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
virtual void getProgramName(char *name); // read the name from the host
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
virtual VstInt32 canDo(char *text);
private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
float A;
float B;
float C;
float D;
float E;
float F;
float G;
float H;
enum {
bez_HMAL, bez_HMBL, bez_HMCL, bez_HMDL,
bez_MAL, bez_MBL, bez_MCL, bez_MDL,
bez_LMAL, bez_LMBL, bez_LMCL, bez_LMDL,
bez_HMAR, bez_HMBR, bez_HMCR, bez_HMDR, bez_HMcycle,
bez_MAR, bez_MBR, bez_MCR, bez_MDR, bez_Mcycle,
bez_LMAR, bez_LMBR, bez_LMCR, bez_LMDR, bez_LMcycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezEQ[bez_total][3];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,254 @@
/* ========================================
* BezEQ3 - BezEQ3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __BezEQ3_H
#include "BezEQ3.h"
#endif
void BezEQ3::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();
//begin BezEQ3 control setup
double highGain = (pow(A+0.5,3.0)+3.0)*0.25;
double hmidGain = (pow(B+0.5,3.0)+3.0)*0.25;
double lmidGain = (pow(C+0.5,3.0)+3.0)*0.25;
double bassGain = (pow(D+0.5,3.0)+3.0)*0.25;
double trebleRef = (1.0-pow(1.0-E,2.0))-0.5;
double highmidRef = F-0.5;
double lowmidRef = G-0.5;
double bassRef = pow(H,2.0)-0.5;
double HMderez = pow(0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125),1.618) /overallscale;
double LMderez = pow(0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125),1.618) /overallscale;
double Mderez = pow((HMderez*0.5)+(LMderez*0.5)+((highmidRef+lowmidRef)*0.125),1.618) /overallscale;
int stepped = 999999; if (HMderez > 0.000001) stepped = (int)(1.0/HMderez);
HMderez = 1.0 / stepped;
double HMtrim = 1.0-(HMderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (Mderez > 0.000001) stepped = (int)(1.0/Mderez);
Mderez = 1.0 / stepped;
double Mtrim = 1.0-(Mderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (LMderez > 0.000001) stepped = (int)(1.0/LMderez);
LMderez = 1.0 / stepped;
double LMtrim = 1.0-(LMderez*((double)stepped/(stepped+1.0)));
//end BezEQ3 control setup
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;
//begin BezEQ3
for (int p = 0; p < 3; p++) {
double highL = inputSampleL;
double highR = inputSampleR;
bezEQ[bez_HMcycle][p] += HMderez;
bezEQ[bez_HMAL][p] += (highL * HMderez);
bezEQ[bez_HMAR][p] += (highR * HMderez);
if (bezEQ[bez_HMcycle][p] > 1.0) {
bezEQ[bez_HMDL][p] = bezEQ[bez_HMCL][p]; bezEQ[bez_HMCL][p] = bezEQ[bez_HMBL][p];
bezEQ[bez_HMBL][p] = bezEQ[bez_HMAL][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAL][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
bezEQ[bez_HMDR][p] = bezEQ[bez_HMCR][p]; bezEQ[bez_HMCR][p] = bezEQ[bez_HMBR][p];
bezEQ[bez_HMBR][p] = bezEQ[bez_HMAR][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAR][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
}
double X = bezEQ[bez_HMcycle][p]*HMtrim;
double hmidL = bezEQ[bez_HMCL][p]+(bezEQ[bez_HMDL][p]*(1.0-X)*(1.0-X));
hmidL += (bezEQ[bez_HMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBL][p]*X*X);
highL -= hmidL; //final high and hmid
double hmidR = bezEQ[bez_HMCR][p]+(bezEQ[bez_HMDR][p]*(1.0-X)*(1.0-X));
hmidR += (bezEQ[bez_HMCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBR][p]*X*X);
highR -= hmidR; //final high and hmid
bezEQ[bez_Mcycle][p] += Mderez;
bezEQ[bez_MAL][p] += (hmidL * Mderez);
bezEQ[bez_MAR][p] += (hmidR * Mderez);
if (bezEQ[bez_Mcycle][p] > 1.0) {
bezEQ[bez_MDL][p] = bezEQ[bez_MCL][p]; bezEQ[bez_MCL][p] = bezEQ[bez_MBL][p];
bezEQ[bez_MBL][p] = bezEQ[bez_MAL][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAL][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
bezEQ[bez_MDR][p] = bezEQ[bez_MCR][p]; bezEQ[bez_MCR][p] = bezEQ[bez_MBR][p];
bezEQ[bez_MBR][p] = bezEQ[bez_MAR][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAR][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
}
X = bezEQ[bez_Mcycle][p]*Mtrim;
double lmidL = bezEQ[bez_MCL][p]+(bezEQ[bez_MDL][p]*(1.0-X)*(1.0-X));
lmidL += (bezEQ[bez_MCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBL][p]*X*X);
hmidL -= lmidL; //final hmid and lmid
double lmidR = bezEQ[bez_MCR][p]+(bezEQ[bez_MDR][p]*(1.0-X)*(1.0-X));
lmidR += (bezEQ[bez_MCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBR][p]*X*X);
hmidR -= lmidR; //final hmid and lmid
bezEQ[bez_LMcycle][p] += LMderez;
bezEQ[bez_LMAL][p] += (lmidL * LMderez);
bezEQ[bez_LMAR][p] += (lmidR * LMderez);
if (bezEQ[bez_LMcycle][p] > 1.0) {
bezEQ[bez_LMDL][p] = bezEQ[bez_LMCL][p]; bezEQ[bez_LMCL][p] = bezEQ[bez_LMBL][p];
bezEQ[bez_LMBL][p] = bezEQ[bez_LMAL][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAL][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
bezEQ[bez_LMDR][p] = bezEQ[bez_LMCR][p]; bezEQ[bez_LMCR][p] = bezEQ[bez_LMBR][p];
bezEQ[bez_LMBR][p] = bezEQ[bez_LMAR][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAR][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
}
X = bezEQ[bez_LMcycle][p]*LMtrim;
double bassL = bezEQ[bez_LMCL][p]+(bezEQ[bez_LMDL][p]*(1.0-X)*(1.0-X));
bassL += (bezEQ[bez_LMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBL][p]*X*X);
lmidL -= bassL; //final lmid and bass
double bassR = bezEQ[bez_LMCR][p]+(bezEQ[bez_LMDR][p]*(1.0-X)*(1.0-X));
bassR += (bezEQ[bez_LMCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBR][p]*X*X);
lmidR -= bassR; //final lmid and bass
inputSampleL = (highL*highGain)+(hmidL*hmidGain)+(lmidL*lmidGain)+(bassL*bassGain);
inputSampleR = (highR*highGain)+(hmidR*hmidGain)+(lmidR*lmidGain)+(bassR*bassGain);
}
//end BezEQ3
//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 BezEQ3::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();
//begin BezEQ3 control setup
double highGain = (pow(A+0.5,3.0)+3.0)*0.25;
double hmidGain = (pow(B+0.5,3.0)+3.0)*0.25;
double lmidGain = (pow(C+0.5,3.0)+3.0)*0.25;
double bassGain = (pow(D+0.5,3.0)+3.0)*0.25;
double trebleRef = (1.0-pow(1.0-E,2.0))-0.5;
double highmidRef = F-0.5;
double lowmidRef = G-0.5;
double bassRef = pow(H,2.0)-0.5;
double HMderez = pow(0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125),1.618) /overallscale;
double LMderez = pow(0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125),1.618) /overallscale;
double Mderez = pow((HMderez*0.5)+(LMderez*0.5)+((highmidRef+lowmidRef)*0.125),1.618) /overallscale;
int stepped = 999999; if (HMderez > 0.000001) stepped = (int)(1.0/HMderez);
HMderez = 1.0 / stepped;
double HMtrim = 1.0-(HMderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (Mderez > 0.000001) stepped = (int)(1.0/Mderez);
Mderez = 1.0 / stepped;
double Mtrim = 1.0-(Mderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (LMderez > 0.000001) stepped = (int)(1.0/LMderez);
LMderez = 1.0 / stepped;
double LMtrim = 1.0-(LMderez*((double)stepped/(stepped+1.0)));
//end BezEQ3 control setup
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;
//begin BezEQ3
for (int p = 0; p < 3; p++) {
double highL = inputSampleL;
double highR = inputSampleR;
bezEQ[bez_HMcycle][p] += HMderez;
bezEQ[bez_HMAL][p] += (highL * HMderez);
bezEQ[bez_HMAR][p] += (highR * HMderez);
if (bezEQ[bez_HMcycle][p] > 1.0) {
bezEQ[bez_HMDL][p] = bezEQ[bez_HMCL][p]; bezEQ[bez_HMCL][p] = bezEQ[bez_HMBL][p];
bezEQ[bez_HMBL][p] = bezEQ[bez_HMAL][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAL][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
bezEQ[bez_HMDR][p] = bezEQ[bez_HMCR][p]; bezEQ[bez_HMCR][p] = bezEQ[bez_HMBR][p];
bezEQ[bez_HMBR][p] = bezEQ[bez_HMAR][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAR][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
}
double X = bezEQ[bez_HMcycle][p]*HMtrim;
double hmidL = bezEQ[bez_HMCL][p]+(bezEQ[bez_HMDL][p]*(1.0-X)*(1.0-X));
hmidL += (bezEQ[bez_HMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBL][p]*X*X);
highL -= hmidL; //final high and hmid
double hmidR = bezEQ[bez_HMCR][p]+(bezEQ[bez_HMDR][p]*(1.0-X)*(1.0-X));
hmidR += (bezEQ[bez_HMCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBR][p]*X*X);
highR -= hmidR; //final high and hmid
bezEQ[bez_Mcycle][p] += Mderez;
bezEQ[bez_MAL][p] += (hmidL * Mderez);
bezEQ[bez_MAR][p] += (hmidR * Mderez);
if (bezEQ[bez_Mcycle][p] > 1.0) {
bezEQ[bez_MDL][p] = bezEQ[bez_MCL][p]; bezEQ[bez_MCL][p] = bezEQ[bez_MBL][p];
bezEQ[bez_MBL][p] = bezEQ[bez_MAL][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAL][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
bezEQ[bez_MDR][p] = bezEQ[bez_MCR][p]; bezEQ[bez_MCR][p] = bezEQ[bez_MBR][p];
bezEQ[bez_MBR][p] = bezEQ[bez_MAR][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAR][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
}
X = bezEQ[bez_Mcycle][p]*Mtrim;
double lmidL = bezEQ[bez_MCL][p]+(bezEQ[bez_MDL][p]*(1.0-X)*(1.0-X));
lmidL += (bezEQ[bez_MCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBL][p]*X*X);
hmidL -= lmidL; //final hmid and lmid
double lmidR = bezEQ[bez_MCR][p]+(bezEQ[bez_MDR][p]*(1.0-X)*(1.0-X));
lmidR += (bezEQ[bez_MCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBR][p]*X*X);
hmidR -= lmidR; //final hmid and lmid
bezEQ[bez_LMcycle][p] += LMderez;
bezEQ[bez_LMAL][p] += (lmidL * LMderez);
bezEQ[bez_LMAR][p] += (lmidR * LMderez);
if (bezEQ[bez_LMcycle][p] > 1.0) {
bezEQ[bez_LMDL][p] = bezEQ[bez_LMCL][p]; bezEQ[bez_LMCL][p] = bezEQ[bez_LMBL][p];
bezEQ[bez_LMBL][p] = bezEQ[bez_LMAL][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAL][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
bezEQ[bez_LMDR][p] = bezEQ[bez_LMCR][p]; bezEQ[bez_LMCR][p] = bezEQ[bez_LMBR][p];
bezEQ[bez_LMBR][p] = bezEQ[bez_LMAR][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAR][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
}
X = bezEQ[bez_LMcycle][p]*LMtrim;
double bassL = bezEQ[bez_LMCL][p]+(bezEQ[bez_LMDL][p]*(1.0-X)*(1.0-X));
bassL += (bezEQ[bez_LMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBL][p]*X*X);
lmidL -= bassL; //final lmid and bass
double bassR = bezEQ[bez_LMCR][p]+(bezEQ[bez_LMDR][p]*(1.0-X)*(1.0-X));
bassR += (bezEQ[bez_LMCR][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBR][p]*X*X);
lmidR -= bassR; //final lmid and bass
inputSampleL = (highL*highGain)+(hmidL*hmidGain)+(lmidL*lmidGain)+(bassL*bassGain);
inputSampleR = (highR*highGain)+(hmidR*hmidGain)+(lmidR*lmidGain)+(bassR*bassGain);
}
//end BezEQ3
//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

@ -12,15 +12,14 @@ AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new D
Dynamics3::Dynamics3(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 1.0;
B = 0.5;
C = 0.5;
D = 0.0;
A = 0.999;
B = 0.382;
C = 0.618;
D = 0.618;
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
bezGate = 2.0;
//Dynamics3
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.
@ -105,7 +104,7 @@ void Dynamics3::getParameterName(VstInt32 index, char *text) {
case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}

View file

@ -20,7 +20,7 @@ enum {
kParamB =1,
kParamC =2,
kParamD =3,
kNumParameters = 4
kNumParameters = 4
}; //
const int kNumPrograms = 0;
@ -59,19 +59,19 @@ private:
float B;
float C;
float D;
enum {
bez_A,
bez_B,
bez_C,
bez_Ctrl,
bez_cycle,
bez_min,
bez_comp,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total];
double bezMax;
double bezMin;
double bezGate;
//Dynamics3
uint32_t fpdL;
uint32_t fpdR;

View file

@ -18,51 +18,43 @@ void Dynamics3::processReplacing(float **inputs, float **outputs, VstInt32 sampl
overallscale /= 44100.0;
overallscale *= getSampleRate();
double bezThresh = pow(1.0-A, 4.0) * 8.0;
double bezRez = pow(1.0-B, 4.0) / overallscale;
double sloRez = pow(1.0-C, 4.0) / overallscale;
double gate = pow(D,4.0);
bezRez = fmin(fmax(bezRez,0.0001),1.0);
sloRez = fmin(fmax(sloRez,0.0001),1.0);
//begin Dynamics3
double bezThresh = pow(A+0.6180339887498949,2.0)*2.0;
double sqrThresh = sqrt(bezThresh);
double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001);
bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5));
double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001);
sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezRatio = 1.0-pow(1.0-D,1.6180339887498949);
if (bezThresh > 5.236) bezRatio = 1.0;
//end Dynamics3
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
if (bezThresh > 0.0) {
inputSampleL *= (bezThresh+1.0);
inputSampleR *= (bezThresh+1.0);
}
double ctrl = fmax(fabs(inputSampleL),fabs(inputSampleR));
bezMax = fmax(bezMax,ctrl);
bezMin = fmax(bezMin-sloRez,ctrl);
//begin Dynamics3
inputSampleL *= (bezComp[bez_comp]/bezThresh);
inputSampleR *= (bezComp[bez_comp]/bezThresh);
double ctrl = fmin(fmax(fabs(inputSampleL),fabs(inputSampleR)),sqrThresh*bezComp[bez_comp]*0.6180339887498949);
bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl);
bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
bezMax = 0.0;
}
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
if (bezThresh > 0.0) {
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBA*bezThresh,1.0));
}
if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;}
double X = bezComp[bez_cycle]*bezTrim;
bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X);
bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling
inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
//end Dynamics3
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
@ -93,52 +85,44 @@ void Dynamics3::processDoubleReplacing(double **inputs, double **outputs, VstInt
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double bezThresh = pow(1.0-A, 4.0) * 8.0;
double bezRez = pow(1.0-B, 4.0) / overallscale;
double sloRez = pow(1.0-C, 4.0) / overallscale;
double gate = pow(D,4.0);
bezRez = fmin(fmax(bezRez,0.0001),1.0);
sloRez = fmin(fmax(sloRez,0.0001),1.0);
//begin Dynamics3
double bezThresh = pow(A+0.6180339887498949,2.0)*2.0;
double sqrThresh = sqrt(bezThresh);
double bezRez = fmax(pow((1.0-B)*0.5,4.0)/overallscale,0.0001);
bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5));
double sloRez = fmax(pow((1.0-C)*0.5,4.0)/overallscale,0.00001);
sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezRatio = 1.0-pow(1.0-D,1.6180339887498949);
if (bezThresh > 5.236) bezRatio = 1.0;
//end Dynamics3
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
if (bezThresh > 0.0) {
inputSampleL *= (bezThresh+1.0);
inputSampleR *= (bezThresh+1.0);
}
double ctrl = fmax(fabs(inputSampleL),fabs(inputSampleR));
bezMax = fmax(bezMax,ctrl);
bezMin = fmax(bezMin-sloRez,ctrl);
//begin Dynamics3
inputSampleL *= (bezComp[bez_comp]/bezThresh);
inputSampleR *= (bezComp[bez_comp]/bezThresh);
double ctrl = fmin(fmax(fabs(inputSampleL),fabs(inputSampleR)),sqrThresh*bezComp[bez_comp]*0.6180339887498949);
bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl);
bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
bezMax = 0.0;
}
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
if (bezThresh > 0.0) {
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBA*bezThresh,1.0));
}
if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;}
double X = bezComp[bez_cycle]*bezTrim;
bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X);
bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling
inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
//end Dynamics3
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);

View file

@ -0,0 +1,142 @@
/* ========================================
* Suzan - Suzan.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Suzan_H
#include "Suzan.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Suzan(audioMaster);}
Suzan::Suzan(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 1.0;
lowAL = lowBL = lowCL = bandAL = bandBL = bandCL = 0.0;
lowAR = lowBR = lowCR = bandAR = bandBR = bandCR = 0.0;
freqA = freqB = 0.5;
resoA = resoB = 0.5;
outA = outB = 1.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
//this is reset: values being initialized only once. Startup values, whatever they are.
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
_canDo.insert("x2in2out");
setNumInputs(kNumInputs);
setNumOutputs(kNumOutputs);
setUniqueID(kUniqueId);
canProcessReplacing(); // supports output replacing
canDoubleReplacing(); // supports double precision processing
programsAreChunks(true);
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
}
Suzan::~Suzan() {}
VstInt32 Suzan::getVendorVersion () {return 1000;}
void Suzan::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Suzan::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 Suzan::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 Suzan::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 Suzan::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 Suzan::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 Suzan::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Freq", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Reso", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Output", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Suzan::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 Suzan::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 Suzan::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Suzan::getEffectName(char* name) {
vst_strncpy(name, "Suzan", kVstMaxProductStrLen); return true;
}
VstPlugCategory Suzan::getPlugCategory() {return kPlugCategEffect;}
bool Suzan::getProductString(char* text) {
vst_strncpy (text, "airwindows Suzan", kVstMaxProductStrLen); return true;
}
bool Suzan::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,74 @@
/* ========================================
* Suzan - Suzan.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Suzan_H
#define __Suzan_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kNumParameters = 3
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'suza'; //Change this to what the AU identity is!
class Suzan :
public AudioEffectX
{
public:
Suzan(audioMasterCallback audioMaster);
~Suzan();
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 lowAL, lowBL, lowCL;
double bandAL, bandBL, bandCL; //these are series poles
double lowAR, lowBR, lowCR;
double bandAR, bandBR, bandCR; //these are series poles
double freqA, freqB;
double resoA, resoB;
double outA, outB; //these are control smoothing
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,142 @@
/* ========================================
* Suzan - Suzan.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Suzan_H
#include "Suzan.h"
#endif
void Suzan::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(A,overallscale+1.0)*1.22;
resoB = pow(1.0-B,2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
outB = C/sqrt(resoB);
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
const double temp = (double)sampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
lowAL += freq*bandAL; bandAL += freq*((reso*inputSampleL)-lowAL-(reso*bandAL));
inputSampleL = (lowAL-sin(bandCL*0.5)); //alternate airwindowsizationA
lowBL += freq*bandBL; bandBL += freq*((reso*inputSampleL)-lowBL-(reso*bandBL));
inputSampleL = (lowBL-sin(bandAL*0.5)); //alternate airwindowsizationB
lowCL += freq*bandBL; bandCL += freq*((reso*inputSampleL)-lowCL-(reso*bandCL));
inputSampleL = (lowCL+sin(bandBL))*out; //alternate airwindowsizationC
lowAR += freq*bandAR; bandAR += freq*((reso*inputSampleR)-lowAR-(reso*bandAR));
inputSampleR = (lowAR-sin(bandCR*0.5)); //alternate airwindowsizationA
lowBR += freq*bandBR; bandBR += freq*((reso*inputSampleR)-lowBR-(reso*bandBR));
inputSampleR = (lowBR-sin(bandAR*0.5)); //alternate airwindowsizationB
lowCR += freq*bandBR; bandCR += freq*((reso*inputSampleR)-lowCR-(reso*bandCR));
inputSampleR = (lowCR+sin(bandBR))*out; //alternate airwindowsizationC
//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 Suzan::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(A,overallscale+1.0)*1.22;
resoB = pow(1.0-B,2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
outB = C/sqrt(resoB);
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
const double temp = (double)sampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
lowAL += freq*bandAL; bandAL += freq*((reso*inputSampleL)-lowAL-(reso*bandAL));
inputSampleL = (lowAL-sin(bandCL*0.5)); //alternate airwindowsizationA
lowBL += freq*bandBL; bandBL += freq*((reso*inputSampleL)-lowBL-(reso*bandBL));
inputSampleL = (lowBL-sin(bandAL*0.5)); //alternate airwindowsizationB
lowCL += freq*bandBL; bandCL += freq*((reso*inputSampleL)-lowCL-(reso*bandCL));
inputSampleL = (lowCL+sin(bandBL))*out; //alternate airwindowsizationC
lowAR += freq*bandAR; bandAR += freq*((reso*inputSampleR)-lowAR-(reso*bandAR));
inputSampleR = (lowAR-sin(bandCR*0.5)); //alternate airwindowsizationA
lowBR += freq*bandBR; bandBR += freq*((reso*inputSampleR)-lowBR-(reso*bandBR));
inputSampleR = (lowBR-sin(bandAR*0.5)); //alternate airwindowsizationB
lowCR += freq*bandBR; bandCR += freq*((reso*inputSampleR)-lowCR-(reso*bandCR));
inputSampleR = (lowCR+sin(bandBR))*out; //alternate airwindowsizationC
//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,227 @@
/* ========================================
* kRockstar - kRockstar.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __kRockstar_H
#include "kRockstar.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new kRockstar(audioMaster);}
kRockstar::kRockstar(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 1.0;
C = 0.5;
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
earlyZero = 0;
ld3G = early[27];
ld3H = early[28];
ld3D = early[29];
ld3A = early[30];
ld3E = early[31];
ld3I = early[32];
ld3F = early[33];
ld3B = early[34];
ld3C = early[35];
for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;}
for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;}
for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;}
for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;}
for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;}
for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;}
for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;}
for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;}
for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;}
for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;}
for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;}
for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;}
for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;}
for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;}
for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;}
for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;}
for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;}
for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;}
for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;}
for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;}
for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;}
for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;}
for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;}
for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;}
for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;}
for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;}
for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;}
for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;}
for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;}
for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;}
for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;}
for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;}
for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;}
for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;}
for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;}
for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;}
c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1;
c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1;
c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1;
c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1;
c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1;
c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1;
c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1;
c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1;
f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0;
f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0;
avg6L = avg6R = 0.0;
for (int x = 0; x < bez_total; x++) {
bez[x] = 0.0;
}
bez[bez_cycle] = 1.0;
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; post32L[x] = 0.0; avg32R[x] = 0.0; post32R[x] = 0.0;}
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; post16L[x] = 0.0; avg16R[x] = 0.0; post16R[x] = 0.0;}
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; post8L[x] = 0.0; avg8R[x] = 0.0; post8R[x] = 0.0;}
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; post4L[x] = 0.0; avg4R[x] = 0.0; post4R[x] = 0.0;}
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; post2L[x] = 0.0; avg2R[x] = 0.0; post2R[x] = 0.0;}
avgPos = 0;
lastDarkL = 0.0; lastDarkR = 0.0;
//preTapeHack
roomNoiseL = 0.0;
roomNoiseR = 0.0006;//this becomes regen, in practice
//it will chase what you set regen to, rather than chasing 0
roomTimerL = 0;
roomTimerR = 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
}
kRockstar::~kRockstar() {}
VstInt32 kRockstar::getVendorVersion () {return 1000;}
void kRockstar::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void kRockstar::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 kRockstar::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 kRockstar::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 kRockstar::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 kRockstar::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 kRockstar::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Regen", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Positin", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Dry/Wet", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void kRockstar::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 kRockstar::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 kRockstar::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool kRockstar::getEffectName(char* name) {
vst_strncpy(name, "kRockstar", kVstMaxProductStrLen); return true;
}
VstPlugCategory kRockstar::getPlugCategory() {return kPlugCategEffect;}
bool kRockstar::getProductString(char* text) {
vst_strncpy (text, "airwindows kRockstar", kVstMaxProductStrLen); return true;
}
bool kRockstar::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,223 @@
/* ========================================
* kRockstar - kRockstar.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __kRockstar_H
#define __kRockstar_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kNumParameters = 3
}; //
const int d3A = 1090; const int d3B = 1682; const int d3C = 1695;
const int d3D = 938; const int d3E = 1558; const int d3F = 1645;
const int d3G = 600; const int d3H = 800; const int d3I = 1580;
const int d6A = 17; const int d6B = 204; const int d6C = 173; const int d6D = 29; const int d6E = 151; const int d6F = 372; const int d6G = 1090; const int d6H = 132; const int d6I = 71; const int d6J = 215; const int d6K = 1558; const int d6L = 61; const int d6M = 32; const int d6N = 71; const int d6O = 938; const int d6P = 1695; const int d6Q = 129; const int d6R = 11; const int d6S = 131; const int d6T = 1682; const int d6U = 103; const int d6V = 107; const int d6W = 109; const int d6X = 113; const int d6Y = 800; const int d6ZA = 60; const int d6ZB = 40; const int d6ZC = 157; const int d6ZD = 149; const int d6ZE = 1580; const int d6ZF = 157; const int d6ZG = 1645; const int d6ZH = 28; const int d6ZI = 6; const int d6ZJ = 179; const int d6ZK = 600; //2 to 193 ms, 1137 seat hall
// C-kRockstar-1137seat17204173x6 on 2026-03-13
const int early[] = {6, 11, 17, 28, 29, 32, 40, 60, 61, 71, 71, 103, 107, 109, 113, 129, 131, 132, 149, 151, 157, 157, 173, 179, 204, 215, 372, 600, 800, 938, 1090, 1558, 1580, 1645, 1682, 1695};
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'krok'; //Change this to what the AU identity is!
class kRockstar :
public AudioEffectX
{
public:
kRockstar(audioMasterCallback audioMaster);
~kRockstar();
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 a3AL[d3A+5];
double a3BL[d3B+5];
double a3CL[d3C+5];
double a3DL[d3D+5];
double a3EL[d3E+5];
double a3FL[d3F+5];
double a3GL[d3G+5];
double a3HL[d3H+5];
double a3IL[d3I+5];
double a3AR[d3A+5];
double a3BR[d3B+5];
double a3CR[d3C+5];
double a3DR[d3D+5];
double a3ER[d3E+5];
double a3FR[d3F+5];
double a3GR[d3G+5];
double a3HR[d3H+5];
double a3IR[d3I+5];
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
int ld3A,ld3B,ld3C,ld3D,ld3E,ld3F,ld3G,ld3H,ld3I;
int earlyZero;
double a6AL[d6A+5];
double a6BL[d6B+5];
double a6CL[d6C+5];
double a6DL[d6D+5];
double a6EL[d6E+5];
double a6FL[d6F+5];
double a6GL[d6G+5];
double a6HL[d6H+5];
double a6IL[d6I+5];
double a6JL[d6J+5];
double a6KL[d6K+5];
double a6LL[d6L+5];
double a6ML[d6M+5];
double a6NL[d6N+5];
double a6OL[d6O+5];
double a6PL[d6P+5];
double a6QL[d6Q+5];
double a6RL[d6R+5];
double a6SL[d6S+5];
double a6TL[d6T+5];
double a6UL[d6U+5];
double a6VL[d6V+5];
double a6WL[d6W+5];
double a6XL[d6X+5];
double a6YL[d6Y+5];
double a6ZAL[d6ZA+5];
double a6ZBL[d6ZB+5];
double a6ZCL[d6ZC+5];
double a6ZDL[d6ZD+5];
double a6ZEL[d6ZE+5];
double a6ZFL[d6ZF+5];
double a6ZGL[d6ZG+5];
double a6ZHL[d6ZH+5];
double a6ZIL[d6ZI+5];
double a6ZJL[d6ZJ+5];
double a6ZKL[d6ZK+5];
double a6AR[d6A+5];
double a6BR[d6B+5];
double a6CR[d6C+5];
double a6DR[d6D+5];
double a6ER[d6E+5];
double a6FR[d6F+5];
double a6GR[d6G+5];
double a6HR[d6H+5];
double a6IR[d6I+5];
double a6JR[d6J+5];
double a6KR[d6K+5];
double a6LR[d6L+5];
double a6MR[d6M+5];
double a6NR[d6N+5];
double a6OR[d6O+5];
double a6PR[d6P+5];
double a6QR[d6Q+5];
double a6RR[d6R+5];
double a6SR[d6S+5];
double a6TR[d6T+5];
double a6UR[d6U+5];
double a6VR[d6V+5];
double a6WR[d6W+5];
double a6XR[d6X+5];
double a6YR[d6Y+5];
double a6ZAR[d6ZA+5];
double a6ZBR[d6ZB+5];
double a6ZCR[d6ZC+5];
double a6ZDR[d6ZD+5];
double a6ZER[d6ZE+5];
double a6ZFR[d6ZF+5];
double a6ZGR[d6ZG+5];
double a6ZHR[d6ZH+5];
double a6ZIR[d6ZI+5];
double a6ZJR[d6ZJ+5];
double a6ZKR[d6ZK+5];
int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL;
int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL;
int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL;
int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL;
int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR;
int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR;
int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR;
int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR;
double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL;
double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR;
double avg6L,avg6R;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
double avg32L[33];
double avg32R[33];
double avg16L[17];
double avg16R[17];
double avg8L[9];
double avg8R[9];
double avg4L[5];
double avg4R[5];
double avg2L[3];
double avg2R[3];
double post32L[33];
double post32R[33];
double post16L[17];
double post16R[17];
double post8L[9];
double post8R[9];
double post4L[5];
double post4R[5];
double post2L[3];
double post2R[3];
double lastDarkL;
double lastDarkR;
int avgPos;
//preTapeHack
double roomNoiseL;
double roomNoiseR;
int roomTimerL;
int roomTimerR;
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

File diff suppressed because it is too large Load diff

303
plugins/MacAU/ADClip9/ADClip9.cpp Executable file
View file

@ -0,0 +1,303 @@
/*
* File: ADClip9.cpp
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
ADClip9.cpp
=============================================================================*/
#include "ADClip9.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(ADClip9)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADClip9::ADClip9(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
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
if ((inScope == kAudioUnitScope_Global) && (inParameterID == kParam_E)) //ID must be actual name of parameter identifier, not number
{
if (outStrings == NULL) return noErr;
CFStringRef strings [] =
{
kMenuItem_Boost,
kMenuItem_Match,
kMenuItem_ClipOnly,
};
*outStrings = CFArrayCreate (
NULL,
(const void **) strings,
(sizeof (strings) / sizeof (strings [0])),
NULL
);
return noErr;
}
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::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_Decibels;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 18.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Decibels;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 18.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_Indexed;
outParameterInfo.minValue = kBoost;
outParameterInfo.maxValue = kClipOnly;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// ADClip9::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ADClip9EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ADClip9::ADClip9Kernel::Reset()
{
lastSampleL = 0.0;
wasPosClipL = false;
wasNegClipL = false;
for (int x = 0; x < 17; x++) intermediateL[x] = 0.0;
for (int x = 0; x < 33; x++) slewL[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ADClip9::ADClip9Kernel::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();
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
double inputGain = pow(10.0,(GetParameter( kParam_A ))/20.0);
double match = pow(10.0,(GetParameter( kParam_B ))/20.0);
double noiseLevel = 1.0-pow(1.0-GetParameter( kParam_C ),2.0);
double ceiling = 1.0-pow(1.0-GetParameter( kParam_D ),2.0);
int mode = (int) GetParameter( kParam_E );
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
switch (mode)
{
case 1: inputSampleL *= inputGain; break; //Boost
case 2: inputSampleL *= match; break; //Match
case 3: inputSampleL *= inputGain; break; //ClipOnly
}
//this is our output mode switch, showing the effects
double overshootL = lastDryL;
lastDryL = inputSampleL;
//begin ClipOnly3 as a little, compressed chunk that can be dropped into code
double noise = 1.0-((double(fpdL)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=(noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = ceiling;
} wasPosClipL = false;
if (inputSampleL>noiseLevel) {wasPosClipL=true;inputSampleL=(noiseLevel*noise)+(lastSampleL*(1.0-noise));}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=(-noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = -ceiling;
} wasNegClipL = false;
if (inputSampleL<-noiseLevel) {wasNegClipL=true;inputSampleL=(-noiseLevel*noise)+(lastSampleL*(1.0-noise));}
slewL[spacing*2] = fabs(lastSampleL-inputSampleL);
for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x];
intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL;
//Latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0];
if (wasPosClipL || wasNegClipL) {
for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x];
lastSampleL /= spacing;
} double finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x];
double postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip;
//end ClipOnly3 as a little, compressed chunk that can be dropped into code
switch (mode)
{
case 1: break; //Boost
case 2: inputSampleL /= match; break; //Match
case 3: inputSampleL = (inputSampleL-overshootL)/inputGain; break; //Clip Only
}
//this is our output mode switch, showing the effects
//begin 32 bit floating point dither
//int expon; frexpf((float)inputSample, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSample += ((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 @@
_ADClip9Entry

160
plugins/MacAU/ADClip9/ADClip9.h Executable file
View file

@ -0,0 +1,160 @@
/*
* File: ADClip9.h
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "ADClip9Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __ADClip9_h__
#define __ADClip9_h__
#pragma mark ____ADClip9 Parameters
// parameters
static CFStringRef kMenuItem_Boost = CFSTR ("Boost");
static CFStringRef kMenuItem_Match = CFSTR ("Match");
static CFStringRef kMenuItem_ClipOnly = CFSTR ("ClipOnly");
static const float kDefaultValue_ParamA = 0.0;
static const float kDefaultValue_ParamB = 0.0;
static const float kDefaultValue_ParamC = 0.7;
static const float kDefaultValue_ParamD = 0.75;
static CFStringRef kParameterAName = CFSTR("Boost");
static CFStringRef kParameterBName = CFSTR("Match");
static CFStringRef kParameterCName = CFSTR("Noise");
static CFStringRef kParameterDName = CFSTR("Ceiling");
static CFStringRef kParameterEName = CFSTR("Mode");
static const int kBoost = 1;
static const int kMatch = 2;
static const int kClipOnly = 3;
static const int kDefaultValue_ParamE = kBoost;
//Alter the name if desired, but using the plugin name is a start
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kNumberOfParameters=5
};
#pragma mark ____ADClip9
class ADClip9 : public AUEffectBase
{
public:
ADClip9(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~ADClip9 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ADClip9Kernel(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 kADClip9Version; }
protected:
class ADClip9Kernel : public AUKernelBase // most of the real work happens here
{
public:
ADClip9Kernel(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 lastSampleL;
double lastDryL;
double intermediateL[18];
double slewL[34];
bool wasPosClipL;
bool wasNegClipL;
uint32_t fpdL;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

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

@ -0,0 +1,61 @@
/*
* File: ADClip9.r
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "ADClip9Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_ADClip9 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ADClip9~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_ADClip9
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE ADClip9_COMP_SUBTYPE
#define COMP_MANUF ADClip9_COMP_MANF
#define VERSION kADClip9Version
#define NAME "Airwindows: ADClip9"
#define DESCRIPTION "ADClip9 AU"
#define ENTRY_POINT "ADClip9Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,148 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ADClip9 */;
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 = 798213865;
PBXWorkspaceStateSaveDate = 798213865;
};
perUserProjectItems = {
8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */ = 8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */;
8B4698082F8EB2BD00FF1967 /* PlistBookmark */ = 8B4698082F8EB2BD00FF1967 /* PlistBookmark */;
8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */ = 8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */;
8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */ = 8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip9.cpp */;
name = "ADClip9.cpp: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 199;
vrLoc = 3017;
};
8B4698082F8EB2BD00FF1967 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/ADClip9/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* ADClip9.h */;
name = "ADClip9.h: 75";
rLen = 0;
rLoc = 3582;
rType = 0;
vrLen = 257;
vrLoc = 3393;
};
8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip9.cpp */;
name = "ADClip9.cpp: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 254;
vrLoc = 3017;
};
8BA05A660720730100365D66 /* ADClip9.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 5634}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{3017, 199}";
sepNavWindowFrame = "{{161, 86}, {797, 792}}";
};
};
8BA05A690720730100365D66 /* ADClip9Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2892, 0}";
sepNavVisRange = "{860, 2095}";
sepNavWindowFrame = "{{801, 38}, {1003, 840}}";
};
};
8BC6025B073B072D006C4272 /* ADClip9.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {597, 2988}}";
sepNavSelRange = "{3582, 0}";
sepNavVisRange = "{3393, 257}";
sepNavWindowFrame = "{{768, 38}, {672, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* ADClip9 */ = {
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 /* ADClip9.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* ADClip9.r */; };
8BA05A6B0720730100365D66 /* ADClip9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ADClip9.cpp */; };
8BA05A6E0720730100365D66 /* ADClip9Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ADClip9Version.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 /* ADClip9.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ADClip9.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 /* ADClip9.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ADClip9.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* ADClip9.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ADClip9.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* ADClip9.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ADClip9.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* ADClip9Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ADClip9Version.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 /* ADClip9.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ADClip9.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* ADClip9.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ADClip9.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 /* ADClip9 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = ADClip9;
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 /* ADClip9.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* ADClip9.h */,
8BA05A660720730100365D66 /* ADClip9.cpp */,
8BA05A670720730100365D66 /* ADClip9.exp */,
8BA05A680720730100365D66 /* ADClip9.r */,
8BA05A690720730100365D66 /* ADClip9Version.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 /* ADClip9Version.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 /* ADClip9.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 /* ADClip9 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ADClip9" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = ADClip9;
productInstallPath = "$(HOME)/Library/Bundles";
productName = ADClip9;
productReference = 8D01CCD20486CAD60068D4B7 /* ADClip9.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 "ADClip9" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* ADClip9 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* ADClip9 */,
);
};
/* 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 /* ADClip9.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* ADClip9.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 = ADClip9.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 = ADClip9;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = ADClip9.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 = ADClip9;
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 "ADClip9" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ADClip9" */ = {
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: ADClip9Version.h
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __ADClip9Version_h__
#define __ADClip9Version_h__
#ifdef DEBUG
#define kADClip9Version 0xFFFFFFFF
#else
#define kADClip9Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define ADClip9_COMP_MANF 'Dthr'
#define ADClip9_COMP_SUBTYPE 'adct'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

315
plugins/MacAU/BezEQ3/BezEQ3.cpp Executable file
View file

@ -0,0 +1,315 @@
/*
* File: BezEQ3.cpp
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
BezEQ3.cpp
=============================================================================*/
#include "BezEQ3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(BezEQ3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BezEQ3::BezEQ3(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// BezEQ3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____BezEQ3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void BezEQ3::BezEQ3Kernel::Reset()
{
for (int x = 0; x < bez_total; x++) {for (int y = 0; y < 3; y++) bezEQ[x][y] = 0.0;}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void BezEQ3::BezEQ3Kernel::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();
//begin BezEQ3 control setup
double highGain = (pow(GetParameter( kParam_A )+0.5,3.0)+3.0)*0.25;
double hmidGain = (pow(GetParameter( kParam_B )+0.5,3.0)+3.0)*0.25;
double lmidGain = (pow(GetParameter( kParam_C )+0.5,3.0)+3.0)*0.25;
double bassGain = (pow(GetParameter( kParam_D )+0.5,3.0)+3.0)*0.25;
double trebleRef = (1.0-pow(1.0-GetParameter( kParam_E ),2.0))-0.5;
double highmidRef = GetParameter( kParam_F )-0.5;
double lowmidRef = GetParameter( kParam_G )-0.5;
double bassRef = pow(GetParameter( kParam_H ),2.0)-0.5;
double HMderez = pow(0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125),1.618) /overallscale;
double LMderez = pow(0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125),1.618) /overallscale;
double Mderez = pow((HMderez*0.5)+(LMderez*0.5)+((highmidRef+lowmidRef)*0.125),1.618) /overallscale;
int stepped = 999999; if (HMderez > 0.000001) stepped = (int)(1.0/HMderez);
HMderez = 1.0 / stepped;
double HMtrim = 1.0-(HMderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (Mderez > 0.000001) stepped = (int)(1.0/Mderez);
Mderez = 1.0 / stepped;
double Mtrim = 1.0-(Mderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (LMderez > 0.000001) stepped = (int)(1.0/LMderez);
LMderez = 1.0 / stepped;
double LMtrim = 1.0-(LMderez*((double)stepped/(stepped+1.0)));
//end BezEQ3 control setup
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
//begin BezEQ3
for (int p = 0; p < 3; p++) {
double high = inputSampleL;
bezEQ[bez_HMcycle][p] += HMderez;
bezEQ[bez_HMAL][p] += (high * HMderez);
if (bezEQ[bez_HMcycle][p] > 1.0) {
bezEQ[bez_HMDL][p] = bezEQ[bez_HMCL][p]; bezEQ[bez_HMCL][p] = bezEQ[bez_HMBL][p];
bezEQ[bez_HMBL][p] = bezEQ[bez_HMAL][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAL][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
}
double X = bezEQ[bez_HMcycle][p]*HMtrim;
double hmid = bezEQ[bez_HMCL][p]+(bezEQ[bez_HMDL][p]*(1.0-X)*(1.0-X));
hmid += (bezEQ[bez_HMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBL][p]*X*X);
high -= hmid; //final high and hmid
bezEQ[bez_Mcycle][p] += Mderez;
bezEQ[bez_MAL][p] += (hmid * Mderez);
if (bezEQ[bez_Mcycle][p] > 1.0) {
bezEQ[bez_MDL][p] = bezEQ[bez_MCL][p]; bezEQ[bez_MCL][p] = bezEQ[bez_MBL][p];
bezEQ[bez_MBL][p] = bezEQ[bez_MAL][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAL][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
}
X = bezEQ[bez_Mcycle][p]*Mtrim;
double lmid = bezEQ[bez_MCL][p]+(bezEQ[bez_MDL][p]*(1.0-X)*(1.0-X));
lmid += (bezEQ[bez_MCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBL][p]*X*X);
hmid -= lmid; //final hmid and lmid
bezEQ[bez_LMcycle][p] += LMderez;
bezEQ[bez_LMAL][p] += (lmid * LMderez);
if (bezEQ[bez_LMcycle][p] > 1.0) {
bezEQ[bez_LMDL][p] = bezEQ[bez_LMCL][p]; bezEQ[bez_LMCL][p] = bezEQ[bez_LMBL][p];
bezEQ[bez_LMBL][p] = bezEQ[bez_LMAL][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAL][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
}
X = bezEQ[bez_LMcycle][p]*LMtrim;
double bass = bezEQ[bez_LMCL][p]+(bezEQ[bez_LMDL][p]*(1.0-X)*(1.0-X));
bass += (bezEQ[bez_LMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBL][p]*X*X);
lmid -= bass; //final lmid and bass
inputSampleL = (high*highGain)+(hmid*hmidGain)+(lmid*lmidGain)+(bass*bassGain);
}
//end BezEQ3
//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 @@
_BezEQ3Entry

163
plugins/MacAU/BezEQ3/BezEQ3.h Executable file
View file

@ -0,0 +1,163 @@
/*
* File: BezEQ3.h
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "BezEQ3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __BezEQ3_h__
#define __BezEQ3_h__
#pragma mark ____BezEQ3 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.5;
static const float kDefaultValue_ParamE = 0.5;
static const float kDefaultValue_ParamF = 0.5;
static const float kDefaultValue_ParamG = 0.5;
static const float kDefaultValue_ParamH = 0.5;
static CFStringRef kParameterAName = CFSTR("High");
static CFStringRef kParameterBName = CFSTR("HMid");
static CFStringRef kParameterCName = CFSTR("LMid");
static CFStringRef kParameterDName = CFSTR("Bass");
static CFStringRef kParameterEName = CFSTR("HighF");
static CFStringRef kParameterFName = CFSTR("HMidF");
static CFStringRef kParameterGName = CFSTR("LMidF");
static CFStringRef kParameterHName = CFSTR("BassF");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
//Add your parameters here...
kNumberOfParameters=8
};
#pragma mark ____BezEQ3
class BezEQ3 : public AUEffectBase
{
public:
BezEQ3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~BezEQ3 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new BezEQ3Kernel(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 kBezEQ3Version; }
protected:
class BezEQ3Kernel : public AUKernelBase // most of the real work happens here
{
public:
BezEQ3Kernel(AUEffectBase *inAudioUnit )
: AUKernelBase(inAudioUnit)
{
}
// *Required* overides for the process method for this effect
// processes one channel of interleaved samples
virtual void Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence);
virtual void Reset();
private:
enum {
bez_HMAL, bez_HMBL, bez_HMCL, bez_HMDL, bez_HMcycle,
bez_MAL, bez_MBL, bez_MCL, bez_MDL, bez_Mcycle,
bez_LMAL, bez_LMBL, bez_LMCL, bez_LMDL, bez_LMcycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezEQ[bez_total][3];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

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

@ -0,0 +1,61 @@
/*
* File: BezEQ3.r
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "BezEQ3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_BezEQ3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BezEQ3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_BezEQ3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE BezEQ3_COMP_SUBTYPE
#define COMP_MANUF BezEQ3_COMP_MANF
#define VERSION kBezEQ3Version
#define NAME "Airwindows: BezEQ3"
#define DESCRIPTION "BezEQ3 AU"
#define ENTRY_POINT "BezEQ3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* BezEQ3 */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
108,
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 = 798140296;
PBXWorkspaceStateSaveDate = 798140296;
};
perUserProjectItems = {
8B1806FC2F8EABA200F8756C /* PBXTextBookmark */ = 8B1806FC2F8EABA200F8756C /* PBXTextBookmark */;
8B34AABA2F8826A7007CC294 /* PlistBookmark */ = 8B34AABA2F8826A7007CC294 /* PlistBookmark */;
8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */ = 8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B1806FC2F8EABA200F8756C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */;
name = "BezEQ3.cpp: 300";
rLen = 0;
rLoc = 14280;
rType = 0;
vrLen = 288;
vrLoc = 13225;
};
8B34AABA2F8826A7007CC294 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/BezEQ3/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */;
name = "BezEQ3.cpp: 300";
rLen = 0;
rLoc = 14280;
rType = 0;
vrLen = 260;
vrLoc = 13184;
};
8BA05A660720730100365D66 /* BezEQ3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {858, 5688}}";
sepNavSelRange = "{14280, 0}";
sepNavVisRange = "{13184, 260}";
sepNavWindowFrame = "{{437, 38}, {1003, 840}}";
};
};
8BA05A690720730100365D66 /* BezEQ3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2886, 0}";
sepNavVisRange = "{964, 1985}";
sepNavWindowFrame = "{{747, 56}, {1046, 819}}";
};
};
8BC6025B073B072D006C4272 /* BezEQ3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2934}}";
sepNavSelRange = "{5761, 291}";
sepNavVisRange = "{2655, 1063}";
sepNavWindowFrame = "{{695, 59}, {1046, 819}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* BezEQ3 */ = {
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 /* BezEQ3.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* BezEQ3.r */; };
8BA05A6B0720730100365D66 /* BezEQ3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */; };
8BA05A6E0720730100365D66 /* BezEQ3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* BezEQ3Version.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 /* BezEQ3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* BezEQ3.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 /* BezEQ3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BezEQ3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* BezEQ3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = BezEQ3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* BezEQ3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = BezEQ3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* BezEQ3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BezEQ3Version.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 /* BezEQ3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BezEQ3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* BezEQ3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BezEQ3.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 /* BezEQ3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = BezEQ3;
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 /* BezEQ3.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* BezEQ3.h */,
8BA05A660720730100365D66 /* BezEQ3.cpp */,
8BA05A670720730100365D66 /* BezEQ3.exp */,
8BA05A680720730100365D66 /* BezEQ3.r */,
8BA05A690720730100365D66 /* BezEQ3Version.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 /* BezEQ3Version.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 /* BezEQ3.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 /* BezEQ3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "BezEQ3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = BezEQ3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = BezEQ3;
productReference = 8D01CCD20486CAD60068D4B7 /* BezEQ3.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 "BezEQ3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* BezEQ3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* BezEQ3 */,
);
};
/* 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 /* BezEQ3.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* BezEQ3.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 = BezEQ3.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 = BezEQ3;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = BezEQ3.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 = BezEQ3;
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 "BezEQ3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "BezEQ3" */ = {
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: BezEQ3Version.h
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __BezEQ3Version_h__
#define __BezEQ3Version_h__
#ifdef DEBUG
#define kBezEQ3Version 0xFFFFFFFF
#else
#define kBezEQ3Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define BezEQ3_COMP_MANF 'Dthr'
#define BezEQ3_COMP_SUBTYPE 'bzes'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

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

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

View file

@ -198,8 +198,6 @@ ComponentResult Dynamics3::Initialize()
ComponentResult Dynamics3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
bezGate = 2.0;
//Dynamics3
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
@ -224,58 +222,51 @@ OSStatus Dynamics3::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFla
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double bezThresh = pow(1.0-GetParameter( kParam_A ), 4.0) * 8.0;
double bezRez = pow(1.0-GetParameter( kParam_B ), 4.0) / overallscale;
double sloRez = pow(1.0-GetParameter( kParam_C ), 4.0) / overallscale;
double gate = pow(GetParameter( kParam_D ),4.0);
bezRez = fmin(fmax(bezRez,0.0001),1.0);
sloRez = fmin(fmax(sloRez,0.0001),1.0);
//Dynamics3
//begin Dynamics3
double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*2.0;
double sqrThresh = sqrt(bezThresh);
double bezRez = fmax(pow((1.0-GetParameter( kParam_B ))*0.5,4.0)/overallscale,0.0001);
bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5));
double sloRez = fmax(pow((1.0-GetParameter( kParam_C ))*0.5,4.0)/overallscale,0.00001);
sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezRatio = 1.0-pow(1.0-GetParameter( kParam_D ),1.6180339887498949);
if (bezThresh > 5.236) bezRatio = 1.0;
//end Dynamics3
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
if (bezThresh > 0.0) {
inputSampleL *= (bezThresh+1.0);
inputSampleR *= (bezThresh+1.0);
}
double ctrl = fmax(fabs(inputSampleL),fabs(inputSampleR));
bezMax = fmax(bezMax,ctrl);
bezMin = fmax(bezMin-sloRez,ctrl);
//begin Dynamics3
inputSampleL *= (bezComp[bez_comp]/bezThresh);
inputSampleR *= (bezComp[bez_comp]/bezThresh);
double ctrl = fmin(fmax(fabs(inputSampleL),fabs(inputSampleR)),sqrThresh*bezComp[bez_comp]*0.6180339887498949);
bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl);
bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;}
double X = bezComp[bez_cycle]*bezTrim;
bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X);
bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling
inputSampleL = (drySampleL*bezRatio)+(inputSampleL*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
inputSampleR = (drySampleR*bezRatio)+(inputSampleR*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
//end Dynamics3
if (bezComp[bez_cycle] > 1.0) {
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
bezMax = 0.0;
}
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
if (bezThresh > 0.0) {
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
inputSampleR *= 1.0-(fmin(CBA*bezThresh,1.0));
}
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) {
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

View file

@ -54,15 +54,15 @@
#pragma mark ____Dynamics3 Parameters
// parameters
static const float kDefaultValue_ParamA = 1.0;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.0;
static const float kDefaultValue_ParamA = 0.999;
static const float kDefaultValue_ParamB = 0.382;
static const float kDefaultValue_ParamC = 0.618;
static const float kDefaultValue_ParamD = 0.618;
static CFStringRef kParameterAName = CFSTR("Thresh");
static CFStringRef kParameterBName = CFSTR("Attack");
static CFStringRef kParameterCName = CFSTR("Release");
static CFStringRef kParameterDName = CFSTR("Gate");
static CFStringRef kParameterDName = CFSTR("Ratio");
enum {
kParam_A =0,
@ -124,12 +124,11 @@ public:
bez_C,
bez_Ctrl,
bez_cycle,
bez_min,
bez_comp,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total];
double bezMax;
double bezMin;
double bezGate;
//Dynamics3
uint32_t fpdL;

View file

@ -49,43 +49,24 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 786918597;
PBXWorkspaceStateSaveDate = 786918597;
PBXPerProjectTemplateStateSaveDate = 798156327;
PBXWorkspaceStateSaveDate = 798156327;
};
perUserProjectItems = {
8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */ = 8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */;
8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */ = 8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */;
8BD498BE2F92E857006A3C78 /* PBXTextBookmark */ = 8BD498BE2F92E857006A3C78 /* PBXTextBookmark */;
8BD498BF2F92E857006A3C78 /* PBXTextBookmark */ = 8BD498BF2F92E857006A3C78 /* PBXTextBookmark */;
8BD498C02F92E857006A3C78 /* PBXTextBookmark */ = 8BD498C02F92E857006A3C78 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
name = "Dynamics3.cpp: 240";
rLen = 1179;
rLoc = 10661;
rType = 0;
vrLen = 241;
vrLoc = 10661;
};
8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
name = "Dynamics3.cpp: 240";
rLen = 1179;
rLoc = 10661;
rType = 0;
vrLen = 241;
vrLoc = 10661;
};
8BA05A660720730100365D66 /* Dynamics3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {975, 5508}}";
sepNavSelRange = "{10661, 1179}";
sepNavVisRange = "{10661, 241}";
sepNavWindowFrame = "{{-4, 38}, {742, 840}}";
sepNavIntBoundsRect = "{{0, 0}, {1164, 5112}}";
sepNavSelRange = "{10746, 1006}";
sepNavVisRange = "{10639, 268}";
sepNavWindowFrame = "{{614, 73}, {1029, 805}}";
};
};
8BA05A690720730100365D66 /* Dynamics3Version.h */ = {
@ -93,7 +74,7 @@
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2907, 0}";
sepNavVisRange = "{1699, 1271}";
sepNavWindowFrame = "{{15, 192}, {826, 681}}";
sepNavWindowFrame = "{{829, 108}, {826, 681}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
@ -105,10 +86,10 @@
};
8BC6025B073B072D006C4272 /* Dynamics3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2826}}";
sepNavSelRange = "{5073, 237}";
sepNavVisRange = "{4431, 1012}";
sepNavWindowFrame = "{{-5, 58}, {565, 799}}";
sepNavIntBoundsRect = "{{0, 0}, {1146, 2538}}";
sepNavSelRange = "{5082, 211}";
sepNavVisRange = "{4440, 992}";
sepNavWindowFrame = "{{765, 70}, {909, 808}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
@ -125,6 +106,36 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BD498BE2F92E857006A3C78 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* Dynamics3Version.h */;
name = "Dynamics3Version.h: 54";
rLen = 0;
rLoc = 2907;
rType = 0;
vrLen = 300;
vrLoc = 3;
};
8BD498BF2F92E857006A3C78 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
name = "Dynamics3.cpp: 240";
rLen = 1006;
rLoc = 10746;
rType = 0;
vrLen = 268;
vrLoc = 10639;
};
8BD498C02F92E857006A3C78 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
name = "Dynamics3.cpp: 240";
rLen = 1006;
rLoc = 10746;
rType = 0;
vrLen = 268;
vrLoc = 10639;
};
8D01CCC60486CAD60068D4B7 /* Dynamics3 */ = {
activeExec = 0;
};

View file

@ -225,8 +225,8 @@
<array/>
<key>PerspectiveWidths</key>
<array>
<integer>810</integer>
<integer>810</integer>
<integer>573</integer>
<integer>573</integer>
</array>
<key>Perspectives</key>
<array>
@ -324,7 +324,7 @@
<real>185</real>
</array>
<key>RubberWindowFrame</key>
<string>47 373 573 505 0 0 1440 878 </string>
<string>873 291 573 505 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@ -352,10 +352,11 @@
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8B5AB2B32EE779AB00A3F512</string>
<string>8BD498C02F92E857006A3C78</string>
<key>history</key>
<array>
<string>8B5AB2B22EE779AB00A3F512</string>
<string>8BD498BE2F92E857006A3C78</string>
<string>8BD498BF2F92E857006A3C78</string>
</array>
</dict>
<key>SplitCount</key>
@ -369,18 +370,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {366, 136}}</string>
<string>{{0, 0}, {366, 138}}</string>
<key>RubberWindowFrame</key>
<string>47 373 573 505 0 0 1440 878 </string>
<string>873 291 573 505 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>136pt</string>
<string>138pt</string>
</dict>
<dict>
<key>Proportion</key>
<string>323pt</string>
<string>321pt</string>
<key>Tabs</key>
<array>
<dict>
@ -394,9 +395,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {366, 296}}</string>
<string>{{10, 27}, {366, 294}}</string>
<key>RubberWindowFrame</key>
<string>47 373 573 505 0 0 1440 878 </string>
<string>873 291 573 505 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@ -450,7 +451,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {603, 414}}</string>
<string>{{10, 27}, {366, 359}}</string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@ -478,11 +479,11 @@
</array>
<key>TableOfContents</key>
<array>
<string>8B5AB2B42EE779AB00A3F512</string>
<string>8BD498C12F92E857006A3C78</string>
<string>1CA23ED40692098700951B8B</string>
<string>8B5AB2B52EE779AB00A3F512</string>
<string>8BD498C22F92E857006A3C78</string>
<string>8B17F9862ECF53930095B409</string>
<string>8B5AB2B62EE779AB00A3F512</string>
<string>8BD498C32F92E857006A3C78</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@ -635,7 +636,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
<real>786921899.91366303</real>
<real>798156887.73614299</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@ -652,11 +653,11 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>8B5AB2B72EE779AB00A3F512</string>
<string>8BD498C42F92E857006A3C78</string>
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Dynamics3/Dynamics3.xcodeproj</string>
</array>
<key>WindowString</key>
<string>47 373 573 505 0 0 1440 878 </string>
<string>873 291 573 505 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>

View file

@ -183,8 +183,7 @@ ComponentResult Dynamics3Mono::Initialize()
void Dynamics3Mono::Dynamics3MonoKernel::Reset()
{
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
bezGate = 2.0;
//Dynamics3
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
@ -205,44 +204,37 @@ void Dynamics3Mono::Dynamics3MonoKernel::Process( const Float32 *inSourceP,
overallscale /= 44100.0;
overallscale *= GetSampleRate();
double bezThresh = pow(1.0-GetParameter( kParam_A ), 4.0) * 8.0;
double bezRez = pow(1.0-GetParameter( kParam_B ), 4.0) / overallscale;
double sloRez = pow(1.0-GetParameter( kParam_C ), 4.0) / overallscale;
double gate = pow(GetParameter( kParam_D ),4.0);
bezRez = fmin(fmax(bezRez,0.0001),1.0);
sloRez = fmin(fmax(sloRez,0.0001),1.0);
//begin Dynamics3
double bezThresh = pow(GetParameter( kParam_A )+0.6180339887498949,2.0)*2.0;
double sqrThresh = sqrt(bezThresh);
double bezRez = fmax(pow((1.0-GetParameter( kParam_B ))*0.5,4.0)/overallscale,0.0001);
bezRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezTrim = 1.0-pow(bezRez*0.5,1.0/(bezRez*0.5));
double sloRez = fmax(pow((1.0-GetParameter( kParam_C ))*0.5,4.0)/overallscale,0.00001);
sloRez /= (2.0/pow(overallscale,0.5-((overallscale-1.0)*0.0375)));
double bezRatio = 1.0-pow(1.0-GetParameter( kParam_D ),1.6180339887498949);
if (bezThresh > 5.236) bezRatio = 1.0;
//end Dynamics3
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
double drySample = inputSample;
if (fabs(inputSample) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
else bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
if (bezThresh > 0.0) {
inputSample *= (bezThresh+1.0);
}
double ctrl = fabs(inputSample);
bezMax = fmax(bezMax,ctrl);
bezMin = fmax(bezMin-sloRez,ctrl);
//begin Dynamics3
inputSample *= (bezComp[bez_comp]/bezThresh);
double ctrl = fmin(inputSample,sqrThresh*bezComp[bez_comp]*0.6180339887498949);
bezComp[bez_min] = fmax(bezComp[bez_min]-sloRez,ctrl);
bezComp[bez_Ctrl] += (bezComp[bez_min] * bezRez);
bezComp[bez_cycle] += bezRez;
bezComp[bez_Ctrl] += (bezMin * bezRez);
if (bezComp[bez_cycle] > 1.0) {
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B];
bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl];
bezComp[bez_Ctrl] = 0.0;
bezMax = 0.0;
}
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
if (bezThresh > 0.0) inputSample *= 1.0-(fmin(CBA*bezThresh,1.0));
if (bezComp[bez_cycle] > 1.0) {bezComp[bez_cycle] -= 1.0;
bezComp[bez_C] = bezComp[bez_B]; bezComp[bez_B] = bezComp[bez_A];
bezComp[bez_A] = bezComp[bez_Ctrl]; bezComp[bez_Ctrl] = 0.0;}
double X = bezComp[bez_cycle]*bezTrim;
bezComp[bez_comp] = bezComp[bez_B]+(bezComp[bez_C]*(1.0-X)*(1.0-X))+(bezComp[bez_B]*2.0*(1.0-X)*X)+(bezComp[bez_A]*X*X);
bezComp[bez_comp] = ((1.0-(fmin(bezComp[bez_comp],1.0))));// /bezCeiling
inputSample = (drySample*bezRatio)+(inputSample*(1.0-bezRatio)*bezComp[bez_comp]*bezThresh);
//end Dynamics3
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);

View file

@ -54,15 +54,15 @@
#pragma mark ____Dynamics3Mono Parameters
// parameters
static const float kDefaultValue_ParamA = 1.0;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 0.5;
static const float kDefaultValue_ParamD = 0.0;
static const float kDefaultValue_ParamA = 0.999;
static const float kDefaultValue_ParamB = 0.382;
static const float kDefaultValue_ParamC = 0.618;
static const float kDefaultValue_ParamD = 0.618;
static CFStringRef kParameterAName = CFSTR("Thresh");
static CFStringRef kParameterBName = CFSTR("Attack");
static CFStringRef kParameterCName = CFSTR("Release");
static CFStringRef kParameterDName = CFSTR("Gate");
static CFStringRef kParameterDName = CFSTR("Ratio");
enum {
kParam_A =0,
@ -133,18 +133,19 @@ public:
virtual void Reset();
private:
enum {
bez_A,
bez_B,
bez_C,
bez_Ctrl,
bez_cycle,
bez_min,
bez_comp,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezComp[bez_total];
double bezMax;
double bezMin;
double bezGate;
//Dynamics3
uint32_t fpd;
};

View file

@ -49,18 +49,29 @@
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 786890841;
PBXWorkspaceStateSaveDate = 786890841;
PBXPerProjectTemplateStateSaveDate = 798122932;
PBXWorkspaceStateSaveDate = 798122932;
};
perUserProjectItems = {
8B4252E52F608C3E00D5A4B3 /* PBXTextBookmark */ = 8B4252E52F608C3E00D5A4B3 /* PBXTextBookmark */;
8B5AAF022EE6F6D100A3F512 /* PlistBookmark */ = 8B5AAF022EE6F6D100A3F512 /* PlistBookmark */;
8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */ = 8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */;
8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */ = 8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */;
8BE7D8412F92725100EC9563 /* PBXTextBookmark */ = 8BE7D8412F92725100EC9563 /* PBXTextBookmark */;
8BE7D8422F92725100EC9563 /* PBXTextBookmark */ = 8BE7D8422F92725100EC9563 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4252E52F608C3E00D5A4B3 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */;
name = "Dynamics3Mono.h: 146";
rLen = 0;
rLoc = 5414;
rType = 0;
vrLen = 222;
vrLoc = 3;
};
8B5AAF022EE6F6D100A3F512 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
@ -73,47 +84,27 @@
rLen = 0;
rLoc = 9223372036854775808;
};
8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */;
name = "Dynamics3Mono.h: 146";
rLen = 0;
rLoc = 5621;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */;
name = "Dynamics3Mono.h: 146";
rLen = 0;
rLoc = 5621;
rType = 0;
vrLen = 0;
vrLoc = 0;
};
8BA05A660720730100365D66 /* Dynamics3Mono.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {894, 4824}}";
sepNavSelRange = "{10055, 138}";
sepNavVisRange = "{9517, 1479}";
sepNavWindowFrame = "{{550, 45}, {890, 833}}";
sepNavIntBoundsRect = "{{0, 0}, {1164, 4590}}";
sepNavSelRange = "{11163, 0}";
sepNavVisRange = "{10225, 98}";
sepNavWindowFrame = "{{27, 89}, {1284, 789}}";
};
};
8BA05A690720730100365D66 /* Dynamics3MonoVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2935, 0}";
sepNavVisRange = "{1372, 1626}";
sepNavVisRange = "{1275, 1723}";
sepNavWindowFrame = "{{84, 39}, {828, 771}}";
};
};
8BC6025B073B072D006C4272 /* Dynamics3Mono.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {318, 2844}}";
sepNavSelRange = "{5621, 0}";
sepNavVisRange = "{0, 0}";
sepNavIntBoundsRect = "{{0, 0}, {1146, 3366}}";
sepNavSelRange = "{5637, 0}";
sepNavVisRange = "{5049, 717}";
sepNavWindowFrame = "{{612, 86}, {828, 771}}";
};
};
@ -131,6 +122,26 @@
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BE7D8412F92725100EC9563 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3Mono.cpp */;
name = "Dynamics3Mono.cpp: 238";
rLen = 0;
rLoc = 11163;
rType = 0;
vrLen = 98;
vrLoc = 10225;
};
8BE7D8422F92725100EC9563 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Dynamics3Mono.cpp */;
name = "Dynamics3Mono.cpp: 238";
rLen = 0;
rLoc = 11163;
rType = 0;
vrLen = 98;
vrLoc = 10225;
};
8D01CCC60486CAD60068D4B7 /* Dynamics3Mono */ = {
activeExec = 0;
};

View file

@ -225,8 +225,8 @@
<array/>
<key>PerspectiveWidths</key>
<array>
<integer>841</integer>
<integer>841</integer>
<integer>677</integer>
<integer>677</integer>
</array>
<key>Perspectives</key>
<array>
@ -326,7 +326,7 @@
<real>288</real>
</array>
<key>RubberWindowFrame</key>
<string>763 233 677 469 0 0 1440 878 </string>
<string>62 374 677 469 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXSmartGroupTreeModule</string>
@ -342,7 +342,7 @@
<key>PBXProjectModuleGUID</key>
<string>8BD7274A1D46E5A5000176F0</string>
<key>PBXProjectModuleLabel</key>
<string>Dynamics3Mono.h</string>
<string>Dynamics3Mono.cpp</string>
<key>PBXSplitModuleInNavigatorKey</key>
<dict>
<key>Split0</key>
@ -350,15 +350,16 @@
<key>PBXProjectModuleGUID</key>
<string>8BD7274B1D46E5A5000176F0</string>
<key>PBXProjectModuleLabel</key>
<string>Dynamics3Mono.h</string>
<string>Dynamics3Mono.cpp</string>
<key>_historyCapacity</key>
<integer>0</integer>
<key>bookmark</key>
<string>8B5AAF4A2EE700FF00A3F512</string>
<string>8BE7D8422F92725100EC9563</string>
<key>history</key>
<array>
<string>8B5AAF022EE6F6D100A3F512</string>
<string>8B5AAF2B2EE6FA8800A3F512</string>
<string>8B4252E52F608C3E00D5A4B3</string>
<string>8BE7D8412F92725100EC9563</string>
</array>
</dict>
<key>SplitCount</key>
@ -372,18 +373,18 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{0, 0}, {367, 0}}</string>
<string>{{0, 0}, {367, 64}}</string>
<key>RubberWindowFrame</key>
<string>763 233 677 469 0 0 1440 878 </string>
<string>62 374 677 469 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>PBXNavigatorGroup</string>
<key>Proportion</key>
<string>0pt</string>
<string>64pt</string>
</dict>
<dict>
<key>Proportion</key>
<string>423pt</string>
<string>359pt</string>
<key>Tabs</key>
<array>
<dict>
@ -397,9 +398,9 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {367, 396}}</string>
<string>{{10, 27}, {367, 332}}</string>
<key>RubberWindowFrame</key>
<string>763 233 677 469 0 0 1440 878 </string>
<string>62 374 677 469 0 0 1440 878 </string>
</dict>
<key>Module</key>
<string>XCDetailModule</string>
@ -453,7 +454,7 @@
<key>GeometryConfiguration</key>
<dict>
<key>Frame</key>
<string>{{10, 27}, {367, 365}}</string>
<string>{{10, 27}, {367, 284}}</string>
</dict>
<key>Module</key>
<string>PBXBuildResultsModule</string>
@ -481,11 +482,11 @@
</array>
<key>TableOfContents</key>
<array>
<string>8B5AAF4B2EE700FF00A3F512</string>
<string>8BE7D8432F92725100EC9563</string>
<string>1CA23ED40692098700951B8B</string>
<string>8B5AAF4C2EE700FF00A3F512</string>
<string>8BE7D8442F92725100EC9563</string>
<string>8BD7274A1D46E5A5000176F0</string>
<string>8B5AAF4D2EE700FF00A3F512</string>
<string>8BE7D8452F92725100EC9563</string>
<string>1CA23EDF0692099D00951B8B</string>
<string>1CA23EE00692099D00951B8B</string>
<string>1CA23EE10692099D00951B8B</string>
@ -658,7 +659,7 @@
<key>StatusbarIsVisible</key>
<true/>
<key>TimeStamp</key>
<real>786891007.99247503</real>
<real>798126673.88987398</real>
<key>ToolbarConfigUserDefaultsMinorVersion</key>
<string>2</string>
<key>ToolbarDisplayMode</key>
@ -675,11 +676,10 @@
<integer>5</integer>
<key>WindowOrderList</key>
<array>
<string>8B5AAF4E2EE700FF00A3F512</string>
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Dynamics3Mono/Dynamics3Mono.xcodeproj</string>
<string>/Users/christopherjohnson/Desktop/Dynamics3Mono/Dynamics3Mono.xcodeproj</string>
</array>
<key>WindowString</key>
<string>763 233 677 469 0 0 1440 878 </string>
<string>62 374 677 469 0 0 1440 878 </string>
<key>WindowToolsV3</key>
<array>
<dict>

Binary file not shown.

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

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

235
plugins/MacAU/Suzan/Suzan.cpp Executable file
View file

@ -0,0 +1,235 @@
/*
* File: Suzan.cpp
*
* Version: 1.0
*
* Created: 4/5/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
Suzan.cpp
=============================================================================*/
#include "Suzan.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Suzan)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::Suzan
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Suzan::Suzan(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
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Suzan::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Suzan::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;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Suzan::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Suzan::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Suzan::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Suzan::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____SuzanEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::SuzanKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Suzan::SuzanKernel::Reset()
{
lowA = lowB = lowC = bandA = bandB = bandC = 0.0;
freqA = freqB = 0.5;
resoA = resoB = 0.5;
outA = outB = 1.0;
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Suzan::SuzanKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Suzan::SuzanKernel::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();
freqA = freqB; resoA = resoB; outA = outB;
freqB = pow(GetParameter( kParam_A ),overallscale+1.0)*1.22;
resoB = pow(1.0-GetParameter( kParam_B ),2.0);
if (resoB < 0.001) resoB = 0.001; // q of 0.0 is just a tone
outB = GetParameter( kParam_C )/sqrt(resoB);
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
const double temp = (double)nSampleFrames/inFramesToProcess;
const double freq = (freqA*temp)+(freqB*(1.0-temp));
const double reso = (resoA*temp)+(resoB*(1.0-temp));
const double out = (outA*temp)+(outB*(1.0-temp)); //dezippering
lowA += freq*bandA; bandA += freq*((reso*inputSampleL)-lowA-(reso*bandA));
inputSampleL = (lowA-sin(bandC*0.5)); //alternate airwindowsizationA
lowB += freq*bandB; bandB += freq*((reso*inputSampleL)-lowB-(reso*bandB));
inputSampleL = (lowB-sin(bandA*0.5)); //alternate airwindowsizationB
lowC += freq*bandB; bandC += freq*((reso*inputSampleL)-lowC-(reso*bandC));
inputSampleL = (lowC+sin(bandB))*out; //alternate airwindowsizationC
//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;
}
}

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

@ -0,0 +1 @@
_SuzanEntry

145
plugins/MacAU/Suzan/Suzan.h Executable file
View file

@ -0,0 +1,145 @@
/*
* File: Suzan.h
*
* Version: 1.0
*
* Created: 4/5/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "SuzanVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Suzan_h__
#define __Suzan_h__
#pragma mark ____Suzan Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 0.5;
static const float kDefaultValue_ParamC = 1.0;
static CFStringRef kParameterAName = CFSTR("Freq");
static CFStringRef kParameterBName = CFSTR("Reso");
static CFStringRef kParameterCName = CFSTR("Output");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
#pragma mark ____Suzan
class Suzan : public AUEffectBase
{
public:
Suzan(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Suzan () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new SuzanKernel(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 kSuzanVersion; }
protected:
class SuzanKernel : public AUKernelBase // most of the real work happens here
{
public:
SuzanKernel(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 lowA, lowB, lowC;
double bandA, bandB, bandC; //these are series poles
double freqA, freqB;
double resoA, resoB;
double outA, outB; //these are control smoothing
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

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

@ -0,0 +1,61 @@
/*
* File: Suzan.r
*
* Version: 1.0
*
* Created: 4/5/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "SuzanVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Suzan 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Suzan~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Suzan
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Suzan_COMP_SUBTYPE
#define COMP_MANUF Suzan_COMP_MANF
#define VERSION kSuzanVersion
#define NAME "Airwindows: Suzan"
#define DESCRIPTION "Suzan AU"
#define ENTRY_POINT "SuzanEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Suzan */;
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 = 798138982;
PBXWorkspaceStateSaveDate = 798138982;
};
perUserProjectItems = {
8B4E18FB2F92A5CC00DAA5EC /* PBXTextBookmark */ = 8B4E18FB2F92A5CC00DAA5EC /* PBXTextBookmark */;
8B68DF632F8D8E330064D978 /* PBXTextBookmark */ = 8B68DF632F8D8E330064D978 /* PBXTextBookmark */;
8BEEE1E92F830ED20075B4F3 /* PlistBookmark */ = 8BEEE1E92F830ED20075B4F3 /* PlistBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4E18FB2F92A5CC00DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* SuzanVersion.h */;
name = "SuzanVersion.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 147;
vrLoc = 0;
};
8B68DF632F8D8E330064D978 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A690720730100365D66 /* SuzanVersion.h */;
name = "SuzanVersion.h: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 250;
vrLoc = 0;
};
8BA05A660720730100365D66 /* Suzan.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {954, 4392}}";
sepNavSelRange = "{9561, 0}";
sepNavVisRange = "{8723, 1586}";
sepNavWindowFrame = "{{642, 66}, {1001, 812}}";
};
};
8BA05A690720730100365D66 /* SuzanVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 1134}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 147}";
sepNavWindowFrame = "{{15, 61}, {1001, 812}}";
};
};
8BC6025B073B072D006C4272 /* Suzan.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 2412}}";
sepNavSelRange = "{2809, 141}";
sepNavVisRange = "{2652, 742}";
sepNavWindowFrame = "{{755, 66}, {1001, 812}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BEEE1E92F830ED20075B4F3 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Suzan/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8D01CCC60486CAD60068D4B7 /* Suzan */ = {
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 /* Suzan.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Suzan.r */; };
8BA05A6B0720730100365D66 /* Suzan.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Suzan.cpp */; };
8BA05A6E0720730100365D66 /* SuzanVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* SuzanVersion.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 /* Suzan.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Suzan.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 /* Suzan.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Suzan.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Suzan.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Suzan.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Suzan.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Suzan.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* SuzanVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = SuzanVersion.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 /* Suzan.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Suzan.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Suzan.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Suzan.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 /* Suzan */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Suzan;
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 /* Suzan.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Suzan.h */,
8BA05A660720730100365D66 /* Suzan.cpp */,
8BA05A670720730100365D66 /* Suzan.exp */,
8BA05A680720730100365D66 /* Suzan.r */,
8BA05A690720730100365D66 /* SuzanVersion.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 /* SuzanVersion.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 /* Suzan.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 /* Suzan */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Suzan" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Suzan;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Suzan;
productReference = 8D01CCD20486CAD60068D4B7 /* Suzan.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 "Suzan" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Suzan */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Suzan */,
);
};
/* 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 /* Suzan.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Suzan.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 = Suzan.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 = Suzan;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Suzan.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 = Suzan;
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 "Suzan" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Suzan" */ = {
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: SuzanVersion.h
*
* Version: 1.0
*
* Created: 4/5/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __SuzanVersion_h__
#define __SuzanVersion_h__
#ifdef DEBUG
#define kSuzanVersion 0xFFFFFFFF
#else
#define kSuzanVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Suzan_COMP_MANF 'Dthr'
#define Suzan_COMP_SUBTYPE 'suza'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

View file

@ -0,0 +1,854 @@
/*
* File: kRockstar.cpp
*
* Version: 1.0
*
* Created: 3/24/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
kRockstar.cpp
=============================================================================*/
#include "kRockstar.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(kRockstar)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::kRockstar
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kRockstar::kRockstar(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
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::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;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// state that plugin supports only stereo-in/stereo-out processing
UInt32 kRockstar::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// kRockstar::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____kRockstarEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::kRockstarKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult kRockstar::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
c3AL = c3BL = c3CL = c3DL = c3EL = c3FL = c3GL = c3HL = c3IL = 1;
c3AR = c3BR = c3CR = c3DR = c3ER = c3FR = c3GR = c3HR = c3IR = 1;
earlyZero = 0;
ld3G = early[27];
ld3H = early[28];
ld3D = early[29];
ld3A = early[30];
ld3E = early[31];
ld3I = early[32];
ld3F = early[33];
ld3B = early[34];
ld3C = early[35];
for(int x = 0; x < d6A+2; x++) {a6AL[x] = 0.0; a6AR[x] = 0.0;}
for(int x = 0; x < d6B+2; x++) {a6BL[x] = 0.0; a6BR[x] = 0.0;}
for(int x = 0; x < d6C+2; x++) {a6CL[x] = 0.0; a6CR[x] = 0.0;}
for(int x = 0; x < d6D+2; x++) {a6DL[x] = 0.0; a6DR[x] = 0.0;}
for(int x = 0; x < d6E+2; x++) {a6EL[x] = 0.0; a6ER[x] = 0.0;}
for(int x = 0; x < d6F+2; x++) {a6FL[x] = 0.0; a6FR[x] = 0.0;}
for(int x = 0; x < d6G+2; x++) {a6GL[x] = 0.0; a6GR[x] = 0.0;}
for(int x = 0; x < d6H+2; x++) {a6HL[x] = 0.0; a6HR[x] = 0.0;}
for(int x = 0; x < d6I+2; x++) {a6IL[x] = 0.0; a6IR[x] = 0.0;}
for(int x = 0; x < d6J+2; x++) {a6JL[x] = 0.0; a6JR[x] = 0.0;}
for(int x = 0; x < d6K+2; x++) {a6KL[x] = 0.0; a6KR[x] = 0.0;}
for(int x = 0; x < d6L+2; x++) {a6LL[x] = 0.0; a6LR[x] = 0.0;}
for(int x = 0; x < d6M+2; x++) {a6ML[x] = 0.0; a6MR[x] = 0.0;}
for(int x = 0; x < d6N+2; x++) {a6NL[x] = 0.0; a6NR[x] = 0.0;}
for(int x = 0; x < d6O+2; x++) {a6OL[x] = 0.0; a6OR[x] = 0.0;}
for(int x = 0; x < d6P+2; x++) {a6PL[x] = 0.0; a6PR[x] = 0.0;}
for(int x = 0; x < d6Q+2; x++) {a6QL[x] = 0.0; a6QR[x] = 0.0;}
for(int x = 0; x < d6R+2; x++) {a6RL[x] = 0.0; a6RR[x] = 0.0;}
for(int x = 0; x < d6S+2; x++) {a6SL[x] = 0.0; a6SR[x] = 0.0;}
for(int x = 0; x < d6T+2; x++) {a6TL[x] = 0.0; a6TR[x] = 0.0;}
for(int x = 0; x < d6U+2; x++) {a6UL[x] = 0.0; a6UR[x] = 0.0;}
for(int x = 0; x < d6V+2; x++) {a6VL[x] = 0.0; a6VR[x] = 0.0;}
for(int x = 0; x < d6W+2; x++) {a6WL[x] = 0.0; a6WR[x] = 0.0;}
for(int x = 0; x < d6X+2; x++) {a6XL[x] = 0.0; a6XR[x] = 0.0;}
for(int x = 0; x < d6Y+2; x++) {a6YL[x] = 0.0; a6YR[x] = 0.0;}
for(int x = 0; x < d6ZA+2; x++) {a6ZAL[x] = 0.0; a6ZAR[x] = 0.0;}
for(int x = 0; x < d6ZB+2; x++) {a6ZBL[x] = 0.0; a6ZBR[x] = 0.0;}
for(int x = 0; x < d6ZC+2; x++) {a6ZCL[x] = 0.0; a6ZCR[x] = 0.0;}
for(int x = 0; x < d6ZD+2; x++) {a6ZDL[x] = 0.0; a6ZDR[x] = 0.0;}
for(int x = 0; x < d6ZE+2; x++) {a6ZEL[x] = 0.0; a6ZER[x] = 0.0;}
for(int x = 0; x < d6ZF+2; x++) {a6ZFL[x] = 0.0; a6ZFR[x] = 0.0;}
for(int x = 0; x < d6ZG+2; x++) {a6ZGL[x] = 0.0; a6ZGR[x] = 0.0;}
for(int x = 0; x < d6ZH+2; x++) {a6ZHL[x] = 0.0; a6ZHR[x] = 0.0;}
for(int x = 0; x < d6ZI+2; x++) {a6ZIL[x] = 0.0; a6ZIR[x] = 0.0;}
for(int x = 0; x < d6ZJ+2; x++) {a6ZJL[x] = 0.0; a6ZJR[x] = 0.0;}
for(int x = 0; x < d6ZK+2; x++) {a6ZKL[x] = 0.0; a6ZKR[x] = 0.0;}
c6AL = c6BL = c6CL = c6DL = c6EL = c6FL = c6GL = c6HL = c6IL = 1;
c6JL = c6KL = c6LL = c6ML = c6NL = c6OL = c6PL = c6QL = c6RL = 1;
c6SL = c6TL = c6UL = c6VL = c6WL = c6XL = c6YL = c6ZAL = c6ZBL = 1;
c6ZCL = c6ZDL = c6ZEL = c6ZFL = c6ZGL = c6ZHL = c6ZIL = c6ZJL = c6ZKL = 1;
c6AR = c6BR = c6CR = c6DR = c6ER = c6FR = c6GR = c6HR = c6IR = 1;
c6JR = c6KR = c6LR = c6MR = c6NR = c6OR = c6PR = c6QR = c6RR = 1;
c6SR = c6TR = c6UR = c6VR = c6WR = c6XR = c6YR = c6ZAR = c6ZBR = 1;
c6ZCR = c6ZDR = c6ZER = c6ZFR = c6ZGR = c6ZHR = c6ZIR = c6ZJR = c6ZKR = 1;
f6AL = f6BL = f6CL = f6DL = f6EL = f6FL = 0.0;
f6FR = f6LR = f6RR = f6XR = f6ZER = f6ZKR = 0.0;
avg6L = avg6R = 0.0;
for (int x = 0; x < bez_total; x++) {
bez[x] = 0.0;
}
bez[bez_cycle] = 1.0;
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; post32L[x] = 0.0; avg32R[x] = 0.0; post32R[x] = 0.0;}
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; post16L[x] = 0.0; avg16R[x] = 0.0; post16R[x] = 0.0;}
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; post8L[x] = 0.0; avg8R[x] = 0.0; post8R[x] = 0.0;}
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; post4L[x] = 0.0; avg4R[x] = 0.0; post4R[x] = 0.0;}
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; post2L[x] = 0.0; avg2R[x] = 0.0; post2R[x] = 0.0;}
avgPos = 0;
lastDarkL = 0.0; lastDarkR = 0.0;
//preTapeHack
roomNoiseL = 0.0;
roomNoiseR = 0.0006;//this becomes regen, in practice
//it will chase what you set regen to, rather than chasing 0
roomTimerL = 0;
roomTimerR = 0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// kRockstar::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus kRockstar::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer,
AudioBufferList & outBuffer,
UInt32 inFramesToProcess)
{
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
UInt32 nSampleFrames = inFramesToProcess;
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= GetSampleRate();
int slewsing = floor(overallscale*2.0);
if (slewsing < 2) slewsing = 2; if (slewsing > 32) slewsing = 32;
double reg6n = (1.0-pow(1.0-GetParameter( kParam_A ),2.0))*0.0013425;
double regenMax = 0.0013425;
double derez = 1.0;
derez = fmin(fmax(derez/overallscale,0.0005),1.0);
int bezFraction = (int)(1.0/derez);
double bezTrim = (double)bezFraction/(bezFraction+1.0);
derez = 1.0 / bezFraction;
bezTrim = 1.0-(derez*bezTrim);
int start = (int)(GetParameter( kParam_B ) * 27.0);
double wet = GetParameter( kParam_C );
while (nSampleFrames-- > 0) {
double inputSampleL = *inputL;
double inputSampleR = *inputR;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
bez[bez_cycle] += derez;
bez[bez_SampL] += (inputSampleL * derez);
bez[bez_SampR] += (inputSampleR * derez);
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
double earlyFloor = fabs(inputSampleL) + fabs(inputSampleR);
switch(earlyZero){
case 0:
earlyFloor = earlyFloor + fabs(a3AL[c3AL]) + fabs(a3AR[c3AR]);
if (ld3A != early[start+3] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3A+2; x++) {a3AL[x] = 0.0; a3AR[x] = 0.0;}
ld3A = early[start+3];
} break;
case 1:
earlyFloor = earlyFloor + fabs(a3BL[c3BL]) + fabs(a3BR[c3BR]);
if (ld3B != early[start+7] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3B+2; x++) {a3BL[x] = 0.0; a3BR[x] = 0.0;}
ld3B = early[start+7];
} break;
case 2:
earlyFloor = earlyFloor + fabs(a3CL[c3CL]) + fabs(a3CR[c3CR]);
if (ld3C != early[start+8] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3C+2; x++) {a3CL[x] = 0.0; a3CR[x] = 0.0;}
ld3C = early[start+8];
} break;
case 3:
earlyFloor = earlyFloor + fabs(a3DL[c3DL]) + fabs(a3DR[c3DR]);
if (ld3D != early[start+2] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3D+2; x++) {a3DL[x] = 0.0; a3DR[x] = 0.0;}
ld3D = early[start+2];
} break;
case 4:
earlyFloor = earlyFloor + fabs(a3EL[c3EL]) + fabs(a3ER[c3ER]);
if (ld3E != early[start+4] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3E+2; x++) {a3EL[x] = 0.0; a3ER[x] = 0.0;}
ld3E = early[start+4];
} break;
case 5:
earlyFloor = earlyFloor + fabs(a3FL[c3FL]) + fabs(a3FR[c3FR]);
if (ld3F != early[start+6] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3F+2; x++) {a3FL[x] = 0.0; a3FR[x] = 0.0;}
ld3F = early[start+6];
} break;
case 6:
earlyFloor = earlyFloor + fabs(a3GL[c3GL]) + fabs(a3GR[c3GR]);
if (ld3G != early[start] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3G+2; x++) {a3GL[x] = 0.0; a3GR[x] = 0.0;}
ld3G = early[start];
} break;
case 7:
earlyFloor = earlyFloor + fabs(a3HL[c3HL]) + fabs(a3HR[c3HR]);
if (ld3H != early[start+1] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3H+2; x++) {a3HL[x] = 0.0; a3HR[x] = 0.0;}
ld3H = early[start+1];
} break;
case 8:
earlyFloor = earlyFloor + fabs(a3IL[c3IL]) + fabs(a3IR[c3IR]);
if (ld3I != early[start+5] && earlyFloor < 0.06125)
{
for(int x = 0; x < d3I+2; x++) {a3IL[x] = 0.0; a3IR[x] = 0.0;}
ld3I = early[start+5];
} break;
}
earlyZero++; if (earlyZero > 8) earlyZero = 0;
inputSampleL = (bez[bez_SampL]);
inputSampleR = (bez[bez_SampR]);
a3AL[c3AL] = inputSampleL;
a3BL[c3BL] = inputSampleL;
a3CL[c3CL] = inputSampleL;
a3CR[c3CR] = inputSampleR;
a3FR[c3FR] = inputSampleR;
a3IR[c3IR] = inputSampleR;
c3AL++; if (c3AL > ld3A) c3AL = 0;
c3BL++; if (c3BL > ld3B) c3BL = 0;
c3CL++; if (c3CL > ld3C) c3CL = 0;
c3CR++; if (c3CR > ld3C) c3CR = 0;
c3FR++; if (c3FR > ld3F) c3FR = 0;
c3IR++; if (c3IR > ld3I) c3IR = 0;
double hA = a3AL[c3AL-((c3AL > ld3A)?c3AL+1:0)];
double hB = a3BL[c3BL-((c3BL > ld3B)?c3BL+1:0)];
double hC = a3CL[c3CL-((c3CL > ld3C)?c3CL+1:0)];
double hD = a3CR[c3CR-((c3CR > ld3C)?c3CR+1:0)];
double hE = a3FR[c3FR-((c3FR > ld3F)?c3FR+1:0)];
double hF = a3IR[c3IR-((c3IR > ld3I)?c3IR+1:0)];
a3DL[c3DL] = (((hB + hC) * -2.0) + hA);
a3EL[c3EL] = (((hA + hC) * -2.0) + hB);
a3FL[c3FL] = (((hA + hB) * -2.0) + hC);
a3BR[c3BR] = (((hE + hF) * -2.0) + hD);
a3ER[c3ER] = (((hD + hF) * -2.0) + hE);
a3HR[c3HR] = (((hD + hE) * -2.0) + hF);
c3DL++; if (c3DL > ld3D) c3DL = 0;
c3EL++; if (c3EL > ld3E) c3EL = 0;
c3FL++; if (c3FL > ld3F) c3FL = 0;
c3BR++; if (c3BR > ld3B) c3BR = 0;
c3ER++; if (c3ER > ld3E) c3ER = 0;
c3HR++; if (c3HR > ld3H) c3HR = 0;
hA = a3DL[c3DL-((c3DL > ld3D)?c3DL+1:0)];
hB = a3EL[c3EL-((c3EL > ld3E)?c3EL+1:0)];
hC = a3FL[c3FL-((c3FL > ld3F)?c3FL+1:0)];
hD = a3BR[c3BR-((c3BR > ld3B)?c3BR+1:0)];
hE = a3ER[c3ER-((c3ER > ld3E)?c3ER+1:0)];
hF = a3HR[c3HR-((c3HR > ld3H)?c3HR+1:0)];
a3GL[c3GL] = (((hB + hC) * -2.0) + hA);
a3HL[c3HL] = (((hA + hC) * -2.0) + hB);
a3IL[c3IL] = (((hA + hB) * -2.0) + hC);
a3AR[c3AR] = (((hE + hF) * -2.0) + hD);
a3DR[c3DR] = (((hD + hF) * -2.0) + hE);
a3GR[c3GR] = (((hD + hE) * -2.0) + hF);
c3GL++; if (c3GL > ld3G) c3GL = 0;
c3HL++; if (c3HL > ld3H) c3HL = 0;
c3IL++; if (c3IL > ld3I) c3IL = 0;
c3AR++; if (c3AR > ld3A) c3AR = 0;
c3DR++; if (c3DR > ld3D) c3DR = 0;
c3GR++; if (c3GR > ld3G) c3GR = 0;
hA = a3GL[c3GL-((c3GL > ld3G)?c3GL+1:0)];
hB = a3HL[c3HL-((c3HL > ld3H)?c3HL+1:0)];
hC = a3IL[c3IL-((c3IL > ld3I)?c3IL+1:0)];
hD = a3AR[c3AR-((c3AR > ld3A)?c3AR+1:0)];
hE = a3DR[c3DR-((c3DR > ld3D)?c3DR+1:0)];
hF = a3GR[c3GR-((c3GR > ld3G)?c3GR+1:0)];
double earlyReflectionL = (((hB + hC) * -2.0) + hA)*-0.0625;
double earlyReflectionR = (((hE + hF) * -2.0) + hD)*-0.0625;
double applyNonlin = 1.0-fmin(fmax(fabs(inputSampleL),fabs(inputSampleR)),1.0);
applyNonlin = 1.0-(applyNonlin*applyNonlin);
inputSampleL -= earlyReflectionL;
inputSampleR -= earlyReflectionR;
roomTimerL++;
if (roomTimerL > 13) {
roomTimerL = 0;
if (roomNoiseL > 0.0) roomNoiseL -= fabs((fpdL / (double)UINT32_MAX)-0.5)*0.125;
else roomNoiseL += fabs((fpdL / (double)UINT32_MAX)-0.5)*0.125;
} else roomNoiseL += ((fpdL / (double)UINT32_MAX)-0.5)*0.125;
//roomNoiseL governs the added 'room tone' noise. 0.125 gives you not an overwhelming
//volume of it, less will be quieter. The 13 is part of VoiceOfTheStarship, and
//larger allows more subs into the noise: it'll determine the apparent room scale,
//with subs content implying a HUGE space, no lows implying a small space.
roomTimerR++;
if (roomTimerR > 4) {
roomTimerR = 0;
if (roomNoiseR > fmin(reg6n+(applyNonlin*0.0002),regenMax)) roomNoiseR -= fabs((fpdR / (double)UINT32_MAX)-0.5)*0.000007629394531;
else roomNoiseR += fabs((fpdR / (double)UINT32_MAX)-0.5)*0.000007629394531;
} else roomNoiseR += ((fpdR / (double)UINT32_MAX)-0.5)*0.000007629394531;
//roomNoiseR governs the activity of the air in this space. Consider it in terms of
//winds at MPH: the RoomTimer number is (int)sqrt(wind MPH) which governs the intensity
//of gusts and fluctuations (avoid hurricane force inside realistic rooms)
//and the scaling of roomNoiseR (as added to reg6n) is sqrt(wind MPH)*0.00002
a6AL[c6AL] = inputSampleL + ((f6BL+roomNoiseL) * roomNoiseR);
a6BL[c6BL] = inputSampleL + (f6CL * roomNoiseR);
a6CL[c6CL] = inputSampleL + (f6DL * roomNoiseR);
a6DL[c6DL] = inputSampleL + (f6EL * roomNoiseR);
a6EL[c6EL] = inputSampleL + (f6FL * roomNoiseR);
a6FL[c6FL] = inputSampleL + (f6AL * roomNoiseR);
a6FR[c6FR] = inputSampleR + ((f6LR+roomNoiseL) * roomNoiseR);
a6LR[c6LR] = inputSampleR + (f6RR * roomNoiseR);
a6RR[c6RR] = inputSampleR + (f6XR * roomNoiseR);
a6XR[c6XR] = inputSampleR + (f6ZER * roomNoiseR);
a6ZER[c6ZER] = inputSampleR + (f6ZKR * roomNoiseR);
a6ZKR[c6ZKR] = inputSampleR + (f6FR * roomNoiseR);
//left verb
c6AL++; if (c6AL > d6A) c6AL = 0;
c6BL++; if (c6BL > d6B) c6BL = 0;
c6CL++; if (c6CL > d6C) c6CL = 0;
c6DL++; if (c6DL > d6D) c6DL = 0;
c6EL++; if (c6EL > d6E) c6EL = 0;
c6FL++; if (c6FL > d6F) c6FL = 0;
hA = a6AL[c6AL-((c6AL > d6A)?d6A+1:0)];
hB = a6BL[c6BL-((c6BL > d6B)?d6B+1:0)];
hC = a6CL[c6CL-((c6CL > d6C)?d6C+1:0)];
hD = a6DL[c6DL-((c6DL > d6D)?d6D+1:0)];
hE = a6EL[c6EL-((c6EL > d6E)?d6E+1:0)];
hF = a6FL[c6FL-((c6FL > d6F)?d6F+1:0)];
a6GL[c6GL] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6HL[c6HL] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6IL[c6IL] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6JL[c6JL] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6KL[c6KL] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6LL[c6LL] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6GL++; if (c6GL > d6G) c6GL = 0;
c6HL++; if (c6HL > d6H) c6HL = 0;
c6IL++; if (c6IL > d6I) c6IL = 0;
c6JL++; if (c6JL > d6J) c6JL = 0;
c6KL++; if (c6KL > d6K) c6KL = 0;
c6LL++; if (c6LL > d6L) c6LL = 0;
hA = a6GL[c6GL-((c6GL > d6G)?d6G+1:0)];
hB = a6HL[c6HL-((c6HL > d6H)?d6H+1:0)];
hC = a6IL[c6IL-((c6IL > d6I)?d6I+1:0)];
hD = a6JL[c6JL-((c6JL > d6J)?d6J+1:0)];
hE = a6KL[c6KL-((c6KL > d6K)?d6K+1:0)];
hF = a6LL[c6LL-((c6LL > d6L)?d6L+1:0)];
a6ML[c6ML] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6NL[c6NL] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6OL[c6OL] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6PL[c6PL] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6QL[c6QL] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6RL[c6RL] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6ML++; if (c6ML > d6M) c6ML = 0;
c6NL++; if (c6NL > d6N) c6NL = 0;
c6OL++; if (c6OL > d6O) c6OL = 0;
c6PL++; if (c6PL > d6P) c6PL = 0;
c6QL++; if (c6QL > d6Q) c6QL = 0;
c6RL++; if (c6RL > d6R) c6RL = 0;
hA = a6ML[c6ML-((c6ML > d6M)?d6M+1:0)];
hB = a6NL[c6NL-((c6NL > d6N)?d6N+1:0)];
hC = a6OL[c6OL-((c6OL > d6O)?d6O+1:0)];
hD = a6PL[c6PL-((c6PL > d6P)?d6P+1:0)];
hE = a6QL[c6QL-((c6QL > d6Q)?d6Q+1:0)];
hF = a6RL[c6RL-((c6RL > d6R)?d6R+1:0)];
a6SL[c6SL] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6TL[c6TL] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6UL[c6UL] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6VL[c6VL] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6WL[c6WL] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6XL[c6XL] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6SL++; if (c6SL > d6S) c6SL = 0;
c6TL++; if (c6TL > d6T) c6TL = 0;
c6UL++; if (c6UL > d6U) c6UL = 0;
c6VL++; if (c6VL > d6V) c6VL = 0;
c6WL++; if (c6WL > d6W) c6WL = 0;
c6XL++; if (c6XL > d6X) c6XL = 0;
hA = a6SL[c6SL-((c6SL > d6S)?d6S+1:0)];
hB = a6TL[c6TL-((c6TL > d6T)?d6T+1:0)];
hC = a6UL[c6UL-((c6UL > d6U)?d6U+1:0)];
hD = a6VL[c6VL-((c6VL > d6V)?d6V+1:0)];
hE = a6WL[c6WL-((c6WL > d6W)?d6W+1:0)];
hF = a6XL[c6XL-((c6XL > d6X)?d6X+1:0)];
a6YL[c6YL] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6ZAL[c6ZAL] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6ZBL[c6ZBL] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6ZCL[c6ZCL] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZDL[c6ZDL] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZEL[c6ZEL] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6YL++; if (c6YL > d6Y) c6YL = 0;
c6ZAL++; if (c6ZAL > d6ZA) c6ZAL = 0;
c6ZBL++; if (c6ZBL > d6ZB) c6ZBL = 0;
c6ZCL++; if (c6ZCL > d6ZC) c6ZCL = 0;
c6ZDL++; if (c6ZDL > d6ZD) c6ZDL = 0;
c6ZEL++; if (c6ZEL > d6ZE) c6ZEL = 0;
hA = a6YL[c6YL-((c6YL > d6Y)?d6Y+1:0)];
hB = a6ZAL[c6ZAL-((c6ZAL > d6ZA)?d6ZA+1:0)];
hC = a6ZBL[c6ZBL-((c6ZBL > d6ZB)?d6ZB+1:0)];
hD = a6ZCL[c6ZCL-((c6ZCL > d6ZC)?d6ZC+1:0)];
hE = a6ZDL[c6ZDL-((c6ZDL > d6ZD)?d6ZD+1:0)];
hF = a6ZEL[c6ZEL-((c6ZEL > d6ZE)?d6ZE+1:0)];
a6ZFL[c6ZFL] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6ZGL[c6ZGL] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6ZHL[c6ZHL] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6ZIL[c6ZIL] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZJL[c6ZJL] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZKL[c6ZKL] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6ZFL++; if (c6ZFL > d6ZF) c6ZFL = 0;
c6ZGL++; if (c6ZGL > d6ZG) c6ZGL = 0;
c6ZHL++; if (c6ZHL > d6ZH) c6ZHL = 0;
c6ZIL++; if (c6ZIL > d6ZI) c6ZIL = 0;
c6ZJL++; if (c6ZJL > d6ZJ) c6ZJL = 0;
c6ZKL++; if (c6ZKL > d6ZK) c6ZKL = 0;
hA = a6ZFL[c6ZFL-((c6ZFL > d6ZF)?d6ZF+1:0)];
hB = a6ZGL[c6ZGL-((c6ZGL > d6ZG)?d6ZG+1:0)];
hC = a6ZHL[c6ZHL-((c6ZHL > d6ZH)?d6ZH+1:0)];
hD = a6ZIL[c6ZIL-((c6ZIL > d6ZI)?d6ZI+1:0)];
hE = a6ZJL[c6ZJL-((c6ZJL > d6ZJ)?d6ZJ+1:0)];
hF = a6ZKL[c6ZKL-((c6ZKL > d6ZK)?d6ZK+1:0)];
f6FR = (((hA*2.0) - (hB + hC + hD + hE + hF))+avg6R)*0.5;
avg6R = ((hA*2.0) - (hB + hC + hD + hE + hF));
f6LR = ((hB*2.0) - (hA + hC + hD + hE + hF));
f6RR = ((hC*2.0) - (hA + hB + hD + hE + hF));
f6XR = ((hD*2.0) - (hA + hB + hC + hE + hF));
f6ZER = ((hE*2.0) - (hA + hB + hC + hD + hF));
f6ZKR = ((hF*2.0) - (hA + hB + hC + hD + hE));
inputSampleL = ((hA*2.0) - (hB + hC + hD + hE + hF))*0.001953125;
//right verb
c6FR++; if (c6FR > d6F) c6FR = 0;
c6LR++; if (c6LR > d6L) c6LR = 0;
c6RR++; if (c6RR > d6R) c6RR = 0;
c6XR++; if (c6XR > d6X) c6XR = 0;
c6ZER++; if (c6ZER > d6ZE) c6ZER = 0;
c6ZKR++; if (c6ZKR > d6ZK) c6ZKR = 0;
hA = a6FR[c6FR-((c6FR > d6F)?d6F+1:0)];
hB = a6LR[c6LR-((c6LR > d6L)?d6L+1:0)];
hC = a6RR[c6RR-((c6RR > d6R)?d6R+1:0)];
hD = a6XR[c6XR-((c6XR > d6X)?d6X+1:0)];
hE = a6ZER[c6ZER-((c6ZER > d6ZE)?d6ZE+1:0)];
hF = a6ZKR[c6ZKR-((c6ZKR > d6ZK)?d6ZK+1:0)];
a6ER[c6ER] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6KR[c6KR] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6QR[c6QR] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6WR[c6WR] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZDR[c6ZDR] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZJR[c6ZJR] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6ER++; if (c6ER > d6E) c6ER = 0;
c6KR++; if (c6KR > d6K) c6KR = 0;
c6QR++; if (c6QR > d6Q) c6QR = 0;
c6WR++; if (c6WR > d6W) c6WR = 0;
c6ZDR++; if (c6ZDR > d6ZD) c6ZDR = 0;
c6ZJR++; if (c6ZJR > d6ZJ) c6ZJR = 0;
hA = a6ER[c6ER-((c6ER > d6E)?d6E+1:0)];
hB = a6KR[c6KR-((c6KR > d6K)?d6K+1:0)];
hC = a6QR[c6QR-((c6QR > d6Q)?d6Q+1:0)];
hD = a6WR[c6WR-((c6WR > d6W)?d6W+1:0)];
hE = a6ZDR[c6ZDR-((c6ZDR > d6ZD)?d6ZD+1:0)];
hF = a6ZJR[c6ZJR-((c6ZJR > d6ZJ)?d6ZJ+1:0)];
a6DR[c6DR] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6JR[c6JR] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6PR[c6PR] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6VR[c6VR] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZCR[c6ZCR] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZIR[c6ZIR] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6DR++; if (c6DR > d6D) c6DR = 0;
c6JR++; if (c6JR > d6J) c6JR = 0;
c6PR++; if (c6PR > d6P) c6PR = 0;
c6VR++; if (c6VR > d6V) c6VR = 0;
c6ZCR++; if (c6ZCR > d6ZC) c6ZCR = 0;
c6ZIR++; if (c6ZIR > d6ZI) c6ZIR = 0;
hA = a6DR[c6DR-((c6DR > d6D)?d6D+1:0)];
hB = a6JR[c6JR-((c6JR > d6J)?d6J+1:0)];
hC = a6PR[c6PR-((c6PR > d6P)?d6P+1:0)];
hD = a6VR[c6VR-((c6VR > d6V)?d6V+1:0)];
hE = a6ZCR[c6ZCR-((c6ZCR > d6ZC)?d6ZC+1:0)];
hF = a6ZIR[c6ZIR-((c6ZIR > d6ZI)?d6ZI+1:0)];
a6CR[c6CR] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6IR[c6IR] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6OR[c6OR] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6UR[c6UR] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZBR[c6ZBR] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZHR[c6ZHR] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6CR++; if (c6CR > d6C) c6CR = 0;
c6IR++; if (c6IR > d6I) c6IR = 0;
c6OR++; if (c6OR > d6O) c6OR = 0;
c6UR++; if (c6UR > d6U) c6UR = 0;
c6ZBR++; if (c6ZBR > d6ZB) c6ZBR = 0;
c6ZHR++; if (c6ZHR > d6ZH) c6ZHR = 0;
hA = a6CR[c6CR-((c6CR > d6C)?d6C+1:0)];
hB = a6IR[c6IR-((c6IR > d6I)?d6I+1:0)];
hC = a6OR[c6OR-((c6OR > d6O)?d6O+1:0)];
hD = a6UR[c6UR-((c6UR > d6U)?d6U+1:0)];
hE = a6ZBR[c6ZBR-((c6ZBR > d6ZB)?d6ZB+1:0)];
hF = a6ZHR[c6ZHR-((c6ZHR > d6ZH)?d6ZH+1:0)];
a6BR[c6BR] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6HR[c6HR] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6NR[c6NR] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6TR[c6TR] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6ZAR[c6ZAR] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZGR[c6ZGR] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6BR++; if (c6BR > d6B) c6BR = 0;
c6HR++; if (c6HR > d6H) c6HR = 0;
c6NR++; if (c6NR > d6N) c6NR = 0;
c6TR++; if (c6TR > d6T) c6TR = 0;
c6ZBR++; if (c6ZBR > d6ZB) c6ZBR = 0;
c6ZGR++; if (c6ZGR > d6ZG) c6ZGR = 0;
hA = a6BR[c6BR-((c6BR > d6B)?d6B+1:0)];
hB = a6HR[c6HR-((c6HR > d6H)?d6H+1:0)];
hC = a6NR[c6NR-((c6NR > d6N)?d6N+1:0)];
hD = a6TR[c6TR-((c6TR > d6T)?d6T+1:0)];
hE = a6ZAR[c6ZAR-((c6ZAR > d6ZA)?d6ZA+1:0)];
hF = a6ZGR[c6ZGR-((c6ZGR > d6ZG)?d6ZG+1:0)];
a6AR[c6AR] = ((hA*2.0) - (hB + hC + hD + hE + hF));
a6GR[c6GR] = ((hB*2.0) - (hA + hC + hD + hE + hF));
a6MR[c6MR] = ((hC*2.0) - (hA + hB + hD + hE + hF));
a6SR[c6SR] = ((hD*2.0) - (hA + hB + hC + hE + hF));
a6YR[c6YR] = ((hE*2.0) - (hA + hB + hC + hD + hF));
a6ZFR[c6ZFR] = ((hF*2.0) - (hA + hB + hC + hD + hE));
c6AR++; if (c6AR > d6A) c6AR = 0;
c6GR++; if (c6GR > d6G) c6GR = 0;
c6MR++; if (c6MR > d6M) c6MR = 0;
c6SR++; if (c6SR > d6S) c6SR = 0;
c6YR++; if (c6YR > d6Y) c6YR = 0;
c6ZFR++; if (c6ZFR > d6ZF) c6ZFR = 0;
hA = a6AR[c6AR-((c6AR > d6A)?d6A+1:0)];
hB = a6GR[c6GR-((c6GR > d6G)?d6G+1:0)];
hC = a6MR[c6MR-((c6MR > d6M)?d6M+1:0)];
hD = a6SR[c6SR-((c6SR > d6S)?d6S+1:0)];
hE = a6YR[c6YR-((c6YR > d6Y)?d6Y+1:0)];
hF = a6ZFR[c6ZFR-((c6ZFR > d6ZF)?d6ZF+1:0)];
f6AL = (((hA*2.0) - (hB + hC + hD + hE + hF))+avg6L)*0.5;
avg6L = ((hA*2.0) - (hB + hC + hD + hE + hF));
f6BL = ((hB*2.0) - (hA + hC + hD + hE + hF));
f6CL = ((hC*2.0) - (hA + hB + hD + hE + hF));
f6DL = ((hD*2.0) - (hA + hB + hC + hE + hF));
f6EL = ((hE*2.0) - (hA + hB + hC + hD + hF));
f6FL = ((hF*2.0) - (hA + hB + hC + hD + hE));
inputSampleR = ((hA*2.0) - (hB + hC + hD + hE + hF))*0.001953125;
inputSampleL += earlyReflectionL;
inputSampleR += earlyReflectionR;
bez[bez_CL] = bez[bez_BL];
bez[bez_BL] = bez[bez_AL];
bez[bez_AL] = inputSampleL;
bez[bez_SampL] = 0.0;
bez[bez_CR] = bez[bez_BR];
bez[bez_BR] = bez[bez_AR];
bez[bez_AR] = inputSampleR;
bez[bez_SampR] = 0.0;
}
double X = bez[bez_cycle]*bezTrim;
inputSampleL = (bez[bez_BL]+(bez[bez_CL]*(1.0-X)*(1.0-X))+(bez[bez_BL]*2.0*(1.0-X)*X)+(bez[bez_AL]*X*X))*-0.0625;
inputSampleR = (bez[bez_BR]+(bez[bez_CR]*(1.0-X)*(1.0-X))+(bez[bez_BR]*2.0*(1.0-X)*X)+(bez[bez_AR]*X*X))*-0.0625;
//begin TapeHack2
double darkSampleL = inputSampleL;
double darkSampleR = inputSampleR;
if (avgPos > 31) avgPos = 0;
if (slewsing > 31) {
avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR;
darkSampleL = 0.0; darkSampleR = 0.0;
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];}
darkSampleL /= 32.0; darkSampleR /= 32.0;
} if (slewsing > 15) {
avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR;
darkSampleL = 0.0; darkSampleR = 0.0;
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];}
darkSampleL /= 16.0; darkSampleR /= 16.0;
} if (slewsing > 7) {
avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR;
darkSampleL = 0.0; darkSampleR = 0.0;
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];}
darkSampleL /= 8.0; darkSampleR /= 8.0;
} if (slewsing > 3) {
avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR;
darkSampleL = 0.0; darkSampleR = 0.0;
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];}
darkSampleL /= 4.0; darkSampleR /= 4.0;
} if (slewsing > 1) {
avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR;
darkSampleL = 0.0; darkSampleR = 0.0;
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];}
darkSampleL /= 2.0; darkSampleR /= 2.0;
} //only update avgPos after the post-distortion filter stage
double avgSlewL = fmin(fabs(lastDarkL-inputSampleL)*0.096*overallscale,1.0);
avgSlewL = 1.0-(1.0-avgSlewL*1.0-avgSlewL);
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
lastDarkL = darkSampleL;
double avgSlewR = fmin(fabs(lastDarkR-inputSampleR)*0.096*overallscale,1.0);
avgSlewR = 1.0-(1.0-avgSlewR*1.0-avgSlewR);
inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR);
lastDarkR = darkSampleR;
inputSampleL = (inputSampleL * wet)+(drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet)+(drySampleR * (1.0-wet));
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
if (fpdL-fpdR < 1073741824 || fpdR-fpdL < 1073741824) {
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;}
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1 @@
_kRockstarEntry

View file

@ -0,0 +1,281 @@
/*
* File: kRockstar.h
*
* Version: 1.0
*
* Created: 3/24/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "kRockstarVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __kRockstar_h__
#define __kRockstar_h__
#pragma mark ____kRockstar Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static const float kDefaultValue_ParamB = 1.0;
static const float kDefaultValue_ParamC = 0.5;
static CFStringRef kParameterAName = CFSTR("Regen");
static CFStringRef kParameterBName = CFSTR("Positin");
static CFStringRef kParameterCName = CFSTR("Dry/Wet");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
//Add your parameters here...
kNumberOfParameters=3
};
const int d3A = 1090; const int d3B = 1682; const int d3C = 1695;
const int d3D = 938; const int d3E = 1558; const int d3F = 1645;
const int d3G = 600; const int d3H = 800; const int d3I = 1580;
const int d6A = 17; const int d6B = 204; const int d6C = 173; const int d6D = 29; const int d6E = 151; const int d6F = 372; const int d6G = 1090; const int d6H = 132; const int d6I = 71; const int d6J = 215; const int d6K = 1558; const int d6L = 61; const int d6M = 32; const int d6N = 71; const int d6O = 938; const int d6P = 1695; const int d6Q = 129; const int d6R = 11; const int d6S = 131; const int d6T = 1682; const int d6U = 103; const int d6V = 107; const int d6W = 109; const int d6X = 113; const int d6Y = 800; const int d6ZA = 60; const int d6ZB = 40; const int d6ZC = 157; const int d6ZD = 149; const int d6ZE = 1580; const int d6ZF = 157; const int d6ZG = 1645; const int d6ZH = 28; const int d6ZI = 6; const int d6ZJ = 179; const int d6ZK = 600; //2 to 193 ms, 1137 seat hall
// C-kRockstar-1137seat17204173x6 on 2026-03-13
const int early[] = {6, 11, 17, 28, 29, 32, 40, 60, 61, 71, 71, 103, 107, 109, 113, 129, 131, 132, 149, 151, 157, 157, 173, 179, 204, 215, 372, 600, 800, 938, 1090, 1558, 1580, 1645, 1682, 1695};
#pragma mark ____kRockstar
class kRockstar : public AUEffectBase
{
public:
kRockstar(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~kRockstar () { delete mDebugDispatcher; }
#endif
virtual ComponentResult Reset(AudioUnitScope inScope, AudioUnitElement inElement);
virtual OSStatus ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
const AudioBufferList & inBuffer, AudioBufferList & outBuffer,
UInt32 inFramesToProcess);
virtual UInt32 SupportedNumChannels(const AUChannelInfo ** outInfo);
virtual ComponentResult GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings);
virtual ComponentResult GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo);
virtual ComponentResult GetPropertyInfo(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable );
virtual ComponentResult GetProperty(AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData);
virtual ComponentResult Initialize();
virtual bool SupportsTail () { return true; }
virtual Float64 GetTailTime() {return (1.0/GetSampleRate())*0.0;} //in SECONDS! gsr * a number = in samples
virtual Float64 GetLatency() {return (1.0/GetSampleRate())*0.0;} // in SECONDS! gsr * a number = in samples
/*! @method Version */
virtual ComponentResult Version() { return kkRockstarVersion; }
private:
double a3AL[d3A+5];
double a3BL[d3B+5];
double a3CL[d3C+5];
double a3DL[d3D+5];
double a3EL[d3E+5];
double a3FL[d3F+5];
double a3GL[d3G+5];
double a3HL[d3H+5];
double a3IL[d3I+5];
double a3AR[d3A+5];
double a3BR[d3B+5];
double a3CR[d3C+5];
double a3DR[d3D+5];
double a3ER[d3E+5];
double a3FR[d3F+5];
double a3GR[d3G+5];
double a3HR[d3H+5];
double a3IR[d3I+5];
int c3AL,c3AR,c3BL,c3BR,c3CL,c3CR,c3DL,c3DR,c3EL,c3ER;
int c3FL,c3FR,c3GL,c3GR,c3HL,c3HR,c3IL,c3IR;
int ld3A,ld3B,ld3C,ld3D,ld3E,ld3F,ld3G,ld3H,ld3I;
int earlyZero;
double a6AL[d6A+5];
double a6BL[d6B+5];
double a6CL[d6C+5];
double a6DL[d6D+5];
double a6EL[d6E+5];
double a6FL[d6F+5];
double a6GL[d6G+5];
double a6HL[d6H+5];
double a6IL[d6I+5];
double a6JL[d6J+5];
double a6KL[d6K+5];
double a6LL[d6L+5];
double a6ML[d6M+5];
double a6NL[d6N+5];
double a6OL[d6O+5];
double a6PL[d6P+5];
double a6QL[d6Q+5];
double a6RL[d6R+5];
double a6SL[d6S+5];
double a6TL[d6T+5];
double a6UL[d6U+5];
double a6VL[d6V+5];
double a6WL[d6W+5];
double a6XL[d6X+5];
double a6YL[d6Y+5];
double a6ZAL[d6ZA+5];
double a6ZBL[d6ZB+5];
double a6ZCL[d6ZC+5];
double a6ZDL[d6ZD+5];
double a6ZEL[d6ZE+5];
double a6ZFL[d6ZF+5];
double a6ZGL[d6ZG+5];
double a6ZHL[d6ZH+5];
double a6ZIL[d6ZI+5];
double a6ZJL[d6ZJ+5];
double a6ZKL[d6ZK+5];
double a6AR[d6A+5];
double a6BR[d6B+5];
double a6CR[d6C+5];
double a6DR[d6D+5];
double a6ER[d6E+5];
double a6FR[d6F+5];
double a6GR[d6G+5];
double a6HR[d6H+5];
double a6IR[d6I+5];
double a6JR[d6J+5];
double a6KR[d6K+5];
double a6LR[d6L+5];
double a6MR[d6M+5];
double a6NR[d6N+5];
double a6OR[d6O+5];
double a6PR[d6P+5];
double a6QR[d6Q+5];
double a6RR[d6R+5];
double a6SR[d6S+5];
double a6TR[d6T+5];
double a6UR[d6U+5];
double a6VR[d6V+5];
double a6WR[d6W+5];
double a6XR[d6X+5];
double a6YR[d6Y+5];
double a6ZAR[d6ZA+5];
double a6ZBR[d6ZB+5];
double a6ZCR[d6ZC+5];
double a6ZDR[d6ZD+5];
double a6ZER[d6ZE+5];
double a6ZFR[d6ZF+5];
double a6ZGR[d6ZG+5];
double a6ZHR[d6ZH+5];
double a6ZIR[d6ZI+5];
double a6ZJR[d6ZJ+5];
double a6ZKR[d6ZK+5];
int c6AL,c6BL,c6CL,c6DL,c6EL,c6FL,c6GL,c6HL,c6IL;
int c6JL,c6KL,c6LL,c6ML,c6NL,c6OL,c6PL,c6QL,c6RL;
int c6SL,c6TL,c6UL,c6VL,c6WL,c6XL,c6YL,c6ZAL,c6ZBL;
int c6ZCL,c6ZDL,c6ZEL,c6ZFL,c6ZGL,c6ZHL,c6ZIL,c6ZJL,c6ZKL;
int c6AR,c6BR,c6CR,c6DR,c6ER,c6FR,c6GR,c6HR,c6IR;
int c6JR,c6KR,c6LR,c6MR,c6NR,c6OR,c6PR,c6QR,c6RR;
int c6SR,c6TR,c6UR,c6VR,c6WR,c6XR,c6YR,c6ZAR,c6ZBR;
int c6ZCR,c6ZDR,c6ZER,c6ZFR,c6ZGR,c6ZHR,c6ZIR,c6ZJR,c6ZKR;
double f6AL,f6BL,f6CL,f6DL,f6EL,f6FL;
double f6FR,f6LR,f6RR,f6XR,f6ZER,f6ZKR;
double avg6L,avg6R;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
double avg32L[33];
double avg32R[33];
double avg16L[17];
double avg16R[17];
double avg8L[9];
double avg8R[9];
double avg4L[5];
double avg4R[5];
double avg2L[3];
double avg2R[3];
double post32L[33];
double post32R[33];
double post16L[17];
double post16R[17];
double post8L[9];
double post8R[9];
double post4L[5];
double post4R[5];
double post2L[3];
double post2R[3];
double lastDarkL;
double lastDarkR;
int avgPos;
//preTapeHack
double roomNoiseL;
double roomNoiseR;
int roomTimerL;
int roomTimerR;
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: kRockstar.r
*
* Version: 1.0
*
* Created: 3/24/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "kRockstarVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_kRockstar 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ kRockstar~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_kRockstar
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE kRockstar_COMP_SUBTYPE
#define COMP_MANUF kRockstar_COMP_MANF
#define VERSION kkRockstarVersion
#define NAME "Airwindows: kRockstar"
#define DESCRIPTION "kRockstar AU"
#define ENTRY_POINT "kRockstarEntry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,142 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* kRockstar */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
155,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
188,
60,
20,
48,
43,
43,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXTargetDataSource_PrimaryAttribute,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
);
};
PBXPerProjectTemplateStateSaveDate = 798137758;
PBXWorkspaceStateSaveDate = 798137758;
};
perUserProjectItems = {
8B4E18202F92769100DAA5EC /* PBXTextBookmark */ = 8B4E18202F92769100DAA5EC /* PBXTextBookmark */;
8B4E18C62F92A1FD00DAA5EC /* PBXTextBookmark */ = 8B4E18C62F92A1FD00DAA5EC /* PBXTextBookmark */;
8B91FCDD2F8137D400319842 /* PBXTextBookmark */ = 8B91FCDD2F8137D400319842 /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B4E18202F92769100DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* kRockstar.cpp */;
name = "kRockstar.cpp: 492";
rLen = 0;
rLoc = 21413;
rType = 0;
vrLen = 118;
vrLoc = 26;
};
8B4E18C62F92A1FD00DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* kRockstar.cpp */;
name = "kRockstar.cpp: 492";
rLen = 0;
rLoc = 21413;
rType = 0;
vrLen = 115;
vrLoc = 29;
};
8B91FCDD2F8137D400319842 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* kRockstar.h */;
name = "kRockstar.h: 271";
rLen = 0;
rLoc = 9581;
rType = 0;
vrLen = 181;
vrLoc = 67;
};
8BA05A660720730100365D66 /* kRockstar.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1029, 15570}}";
sepNavSelRange = "{21413, 0}";
sepNavVisRange = "{29, 115}";
sepNavWindowFrame = "{{401, 59}, {1046, 819}}";
};
};
8BA05A690720730100365D66 /* kRockstarVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2674, 0}";
sepNavVisRange = "{1459, 1509}";
sepNavWindowFrame = "{{15, 163}, {1045, 710}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* kRockstar.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {7140, 5058}}";
sepNavSelRange = "{2922, 0}";
sepNavVisRange = "{6086, 759}";
sepNavWindowFrame = "{{395, 143}, {1045, 710}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* kRockstar */ = {
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 /* kRockstar.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* kRockstar.r */; };
8BA05A6B0720730100365D66 /* kRockstar.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* kRockstar.cpp */; };
8BA05A6E0720730100365D66 /* kRockstarVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* kRockstarVersion.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 /* kRockstar.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* kRockstar.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 /* kRockstar.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = kRockstar.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* kRockstar.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = kRockstar.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* kRockstar.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = kRockstar.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* kRockstarVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kRockstarVersion.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 /* kRockstar.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = kRockstar.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* kRockstar.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = kRockstar.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 /* kRockstar */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = kRockstar;
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 /* kRockstar.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* kRockstar.h */,
8BA05A660720730100365D66 /* kRockstar.cpp */,
8BA05A670720730100365D66 /* kRockstar.exp */,
8BA05A680720730100365D66 /* kRockstar.r */,
8BA05A690720730100365D66 /* kRockstarVersion.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 /* kRockstarVersion.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 /* kRockstar.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 /* kRockstar */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "kRockstar" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = kRockstar;
productInstallPath = "$(HOME)/Library/Bundles";
productName = kRockstar;
productReference = 8D01CCD20486CAD60068D4B7 /* kRockstar.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 "kRockstar" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* kRockstar */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* kRockstar */,
);
};
/* 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 /* kRockstar.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* kRockstar.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 = kRockstar.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 = kRockstar;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = kRockstar.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 = kRockstar;
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 "kRockstar" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "kRockstar" */ = {
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: kRockstarVersion.h
*
* Version: 1.0
*
* Created: 3/24/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __kRockstarVersion_h__
#define __kRockstarVersion_h__
#ifdef DEBUG
#define kkRockstarVersion 0xFFFFFFFF
#else
#define kkRockstarVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define kRockstar_COMP_MANF 'Dthr'
#define kRockstar_COMP_SUBTYPE 'krok'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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,303 @@
/*
* File: ADClip9.cpp
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
ADClip9.cpp
=============================================================================*/
#include "ADClip9.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ADClip9)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ADClip9::ADClip9(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
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
if ((inScope == kAudioUnitScope_Global) && (inParameterID == kParam_E)) //ID must be actual name of parameter identifier, not number
{
if (outStrings == NULL) return noErr;
CFStringRef strings [] =
{
kMenuItem_Boost,
kMenuItem_Match,
kMenuItem_ClipOnly,
};
*outStrings = CFArrayCreate (
NULL,
(const void **) strings,
(sizeof (strings) / sizeof (strings [0])),
NULL
);
return noErr;
}
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::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_Decibels;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 18.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Decibels;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 18.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_Indexed;
outParameterInfo.minValue = kBoost;
outParameterInfo.maxValue = kClipOnly;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// ADClip9::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult ADClip9::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ADClip9EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ADClip9::ADClip9Kernel::Reset()
{
lastSampleL = 0.0;
wasPosClipL = false;
wasNegClipL = false;
for (int x = 0; x < 17; x++) intermediateL[x] = 0.0;
for (int x = 0; x < 33; x++) slewL[x] = 0.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// ADClip9::ADClip9Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void ADClip9::ADClip9Kernel::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();
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
double inputGain = pow(10.0,(GetParameter( kParam_A ))/20.0);
double match = pow(10.0,(GetParameter( kParam_B ))/20.0);
double noiseLevel = 1.0-pow(1.0-GetParameter( kParam_C ),2.0);
double ceiling = 1.0-pow(1.0-GetParameter( kParam_D ),2.0);
int mode = (int) GetParameter( kParam_E );
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
switch (mode)
{
case 1: inputSampleL *= inputGain; break; //Boost
case 2: inputSampleL *= match; break; //Match
case 3: inputSampleL *= inputGain; break; //ClipOnly
}
//this is our output mode switch, showing the effects
double overshootL = lastDryL;
lastDryL = inputSampleL;
//begin ClipOnly3 as a little, compressed chunk that can be dropped into code
double noise = 1.0-((double(fpdL)/UINT32_MAX)*(1.0-noiseLevel));//0.076
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=(noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = ceiling;
} wasPosClipL = false;
if (inputSampleL>noiseLevel) {wasPosClipL=true;inputSampleL=(noiseLevel*noise)+(lastSampleL*(1.0-noise));}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=(-noiseLevel*noise)+(inputSampleL*(1.0-noise));
else lastSampleL = -ceiling;
} wasNegClipL = false;
if (inputSampleL<-noiseLevel) {wasNegClipL=true;inputSampleL=(-noiseLevel*noise)+(lastSampleL*(1.0-noise));}
slewL[spacing*2] = fabs(lastSampleL-inputSampleL);
for (int x = spacing*2; x > 0; x--) slewL[x-1] = slewL[x];
intermediateL[spacing] = inputSampleL; inputSampleL = lastSampleL;
//Latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) {intermediateL[x-1] = intermediateL[x];} lastSampleL = intermediateL[0];
if (wasPosClipL || wasNegClipL) {
for (int x = spacing; x > 0; x--) lastSampleL += intermediateL[x];
lastSampleL /= spacing;
} double finalSlew = 0.0;
for (int x = spacing*2; x >= 0; x--) if (finalSlew < slewL[x]) finalSlew = slewL[x];
double postclip = ceiling / (1.0+(finalSlew*1.3986013));
if (inputSampleL > postclip) inputSampleL = postclip; if (inputSampleL < -postclip) inputSampleL = -postclip;
//end ClipOnly3 as a little, compressed chunk that can be dropped into code
switch (mode)
{
case 1: break; //Boost
case 2: inputSampleL /= match; break; //Match
case 3: inputSampleL = (inputSampleL-overshootL)/inputGain; break; //Clip Only
}
//this is our output mode switch, showing the effects
//begin 32 bit floating point dither
//int expon; frexpf((float)inputSample, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSample += ((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 @@
_ADClip9Entry
_ADClip9Factory

View file

@ -0,0 +1,160 @@
/*
* File: ADClip9.h
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "ADClip9Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __ADClip9_h__
#define __ADClip9_h__
#pragma mark ____ADClip9 Parameters
// parameters
static CFStringRef kMenuItem_Boost = CFSTR ("Boost");
static CFStringRef kMenuItem_Match = CFSTR ("Match");
static CFStringRef kMenuItem_ClipOnly = CFSTR ("ClipOnly");
static const float kDefaultValue_ParamA = 0.0;
static const float kDefaultValue_ParamB = 0.0;
static const float kDefaultValue_ParamC = 0.7;
static const float kDefaultValue_ParamD = 0.75;
static CFStringRef kParameterAName = CFSTR("Boost");
static CFStringRef kParameterBName = CFSTR("Match");
static CFStringRef kParameterCName = CFSTR("Noise");
static CFStringRef kParameterDName = CFSTR("Ceiling");
static CFStringRef kParameterEName = CFSTR("Mode");
static const int kBoost = 1;
static const int kMatch = 2;
static const int kClipOnly = 3;
static const int kDefaultValue_ParamE = kBoost;
//Alter the name if desired, but using the plugin name is a start
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kNumberOfParameters=5
};
#pragma mark ____ADClip9
class ADClip9 : public AUEffectBase
{
public:
ADClip9(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~ADClip9 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ADClip9Kernel(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 kADClip9Version; }
protected:
class ADClip9Kernel : public AUKernelBase // most of the real work happens here
{
public:
ADClip9Kernel(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 lastSampleL;
double lastDryL;
double intermediateL[18];
double slewL[34];
bool wasPosClipL;
bool wasNegClipL;
uint32_t fpdL;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: ADClip9.r
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "ADClip9Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_ADClip9 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ADClip9~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_ADClip9
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE ADClip9_COMP_SUBTYPE
#define COMP_MANUF ADClip9_COMP_MANF
#define VERSION kADClip9Version
#define NAME "Airwindows: ADClip9"
#define DESCRIPTION "ADClip9 AU"
#define ENTRY_POINT "ADClip9Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,148 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* ADClip9 */;
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 = 798213865;
PBXWorkspaceStateSaveDate = 798213865;
};
perUserProjectItems = {
8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */ = 8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */;
8B4698082F8EB2BD00FF1967 /* PlistBookmark */ = 8B4698082F8EB2BD00FF1967 /* PlistBookmark */;
8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */ = 8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */;
8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */ = 8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B15A3F32F93C8E300C3BB79 /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip9.cpp */;
name = "ADClip9.cpp: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 199;
vrLoc = 3017;
};
8B4698082F8EB2BD00FF1967 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/ADClip9/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B4E19E12F92E23900DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* ADClip9.h */;
name = "ADClip9.h: 75";
rLen = 0;
rLoc = 3582;
rType = 0;
vrLen = 257;
vrLoc = 3393;
};
8B4E19E22F92E23900DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* ADClip9.cpp */;
name = "ADClip9.cpp: 1";
rLen = 0;
rLoc = 0;
rType = 0;
vrLen = 254;
vrLoc = 3017;
};
8BA05A660720730100365D66 /* ADClip9.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 5634}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{3017, 199}";
sepNavWindowFrame = "{{161, 86}, {797, 792}}";
};
};
8BA05A690720730100365D66 /* ADClip9Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2892, 0}";
sepNavVisRange = "{860, 2095}";
sepNavWindowFrame = "{{801, 38}, {1003, 840}}";
};
};
8BC6025B073B072D006C4272 /* ADClip9.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {597, 2988}}";
sepNavSelRange = "{3582, 0}";
sepNavVisRange = "{3393, 257}";
sepNavWindowFrame = "{{768, 38}, {672, 840}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* ADClip9 */ = {
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 */
8B2BBC062F96C239008BF82F /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB7E2F96C238008BF82F /* CAExtAudioFile.h */; };
8B2BBC072F96C239008BF82F /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB7F2F96C238008BF82F /* CACFMachPort.h */; };
8B2BBC082F96C239008BF82F /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB802F96C238008BF82F /* CABool.h */; };
8B2BBC092F96C239008BF82F /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB812F96C238008BF82F /* CAComponent.cpp */; };
8B2BBC0A2F96C239008BF82F /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB822F96C238008BF82F /* CADebugger.h */; };
8B2BBC0B2F96C239008BF82F /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB832F96C238008BF82F /* CACFNumber.cpp */; };
8B2BBC0C2F96C239008BF82F /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB842F96C238008BF82F /* CAGuard.h */; };
8B2BBC0D2F96C239008BF82F /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB852F96C239008BF82F /* CAAtomic.h */; };
8B2BBC0E2F96C239008BF82F /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB862F96C239008BF82F /* CAStreamBasicDescription.h */; };
8B2BBC0F2F96C239008BF82F /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB872F96C239008BF82F /* CACFObject.h */; };
8B2BBC102F96C239008BF82F /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB882F96C239008BF82F /* CAStreamRangedDescription.h */; };
8B2BBC112F96C239008BF82F /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB892F96C239008BF82F /* CATokenMap.h */; };
8B2BBC122F96C239008BF82F /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB8A2F96C239008BF82F /* CAComponent.h */; };
8B2BBC132F96C239008BF82F /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB8B2F96C239008BF82F /* CAAudioBufferList.h */; };
8B2BBC142F96C239008BF82F /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB8C2F96C239008BF82F /* CAAudioUnit.h */; };
8B2BBC152F96C239008BF82F /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB8D2F96C239008BF82F /* CAAUParameter.h */; };
8B2BBC162F96C239008BF82F /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB8E2F96C239008BF82F /* CAException.h */; };
8B2BBC172F96C239008BF82F /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB8F2F96C239008BF82F /* CAAUProcessor.cpp */; };
8B2BBC182F96C239008BF82F /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB902F96C239008BF82F /* CAAUProcessor.h */; };
8B2BBC192F96C239008BF82F /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB912F96C239008BF82F /* CAProcess.h */; };
8B2BBC1A2F96C239008BF82F /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB922F96C239008BF82F /* CACFDictionary.h */; };
8B2BBC1B2F96C239008BF82F /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB932F96C239008BF82F /* CAPThread.h */; };
8B2BBC1C2F96C239008BF82F /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB942F96C239008BF82F /* CAAUParameter.cpp */; };
8B2BBC1D2F96C239008BF82F /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB952F96C239008BF82F /* CAAudioTimeStamp.h */; };
8B2BBC1E2F96C239008BF82F /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB962F96C239008BF82F /* CAFilePathUtils.cpp */; };
8B2BBC1F2F96C239008BF82F /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB972F96C239008BF82F /* CAAudioValueRange.h */; };
8B2BBC202F96C239008BF82F /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB982F96C239008BF82F /* CAVectorUnitTypes.h */; };
8B2BBC212F96C239008BF82F /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB992F96C239008BF82F /* CAAudioChannelLayoutObject.cpp */; };
8B2BBC222F96C239008BF82F /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB9A2F96C239008BF82F /* CAGuard.cpp */; };
8B2BBC232F96C239008BF82F /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB9B2F96C239008BF82F /* CACFNumber.h */; };
8B2BBC242F96C239008BF82F /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB9C2F96C239008BF82F /* CACFDistributedNotification.cpp */; };
8B2BBC252F96C239008BF82F /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBB9D2F96C239008BF82F /* CACFString.h */; };
8B2BBC262F96C239008BF82F /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB9E2F96C239008BF82F /* CAAUMIDIMapManager.cpp */; };
8B2BBC272F96C239008BF82F /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBB9F2F96C239008BF82F /* CAComponentDescription.cpp */; };
8B2BBC282F96C239008BF82F /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA02F96C239008BF82F /* CAHostTimeBase.h */; };
8B2BBC292F96C239008BF82F /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBA12F96C239008BF82F /* CADebugMacros.cpp */; };
8B2BBC2A2F96C239008BF82F /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA22F96C239008BF82F /* CAAudioFileFormats.h */; };
8B2BBC2B2F96C239008BF82F /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA32F96C239008BF82F /* CAAUMIDIMapManager.h */; };
8B2BBC2C2F96C239008BF82F /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBA42F96C239008BF82F /* CACFDictionary.cpp */; };
8B2BBC2D2F96C239008BF82F /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA52F96C239008BF82F /* CAMutex.h */; };
8B2BBC2E2F96C239008BF82F /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBA62F96C239008BF82F /* CACFString.cpp */; };
8B2BBC2F2F96C239008BF82F /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA72F96C239008BF82F /* CASettingsStorage.h */; };
8B2BBC302F96C239008BF82F /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBA82F96C239008BF82F /* CADebugPrintf.h */; };
8B2BBC312F96C239008BF82F /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBA92F96C239008BF82F /* CAXException.cpp */; };
8B2BBC322F96C239008BF82F /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBAA2F96C239008BF82F /* CAAUMIDIMap.h */; };
8B2BBC332F96C239008BF82F /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBAB2F96C239008BF82F /* AUParamInfo.h */; };
8B2BBC342F96C239008BF82F /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBAC2F96C239008BF82F /* CABitOperations.h */; };
8B2BBC352F96C239008BF82F /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBAD2F96C239008BF82F /* CACFPreferences.cpp */; };
8B2BBC362F96C239008BF82F /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBAE2F96C239008BF82F /* CABundleLocker.h */; };
8B2BBC372F96C239008BF82F /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBAF2F96C239008BF82F /* CAPropertyAddress.h */; };
8B2BBC382F96C239008BF82F /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBB02F96C239008BF82F /* CAXException.h */; };
8B2BBC392F96C239008BF82F /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBB12F96C239008BF82F /* CAAudioChannelLayout.cpp */; };
8B2BBC3A2F96C239008BF82F /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBB22F96C239008BF82F /* CAThreadSafeList.h */; };
8B2BBC3B2F96C239008BF82F /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBB32F96C239008BF82F /* CAAudioUnitOutputCapturer.h */; };
8B2BBC3C2F96C239008BF82F /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBB42F96C239008BF82F /* AUParamInfo.cpp */; };
8B2BBC3D2F96C239008BF82F /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBB52F96C239008BF82F /* CASharedLibrary.cpp */; };
8B2BBC3E2F96C239008BF82F /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBB62F96C239008BF82F /* CAAUMIDIMap.cpp */; };
8B2BBC3F2F96C239008BF82F /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBB72F96C239008BF82F /* CALogMacros.h */; };
8B2BBC402F96C239008BF82F /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBB82F96C239008BF82F /* CACFMessagePort.cpp */; };
8B2BBC412F96C239008BF82F /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBB92F96C239008BF82F /* CARingBuffer.h */; };
8B2BBC422F96C239008BF82F /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBBA2F96C239008BF82F /* AUOutputBL.cpp */; };
8B2BBC432F96C239008BF82F /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBBB2F96C239008BF82F /* CABufferList.h */; };
8B2BBC442F96C239008BF82F /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBBC2F96C239008BF82F /* CASharedLibrary.h */; };
8B2BBC452F96C239008BF82F /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBBD2F96C239008BF82F /* CACFData.h */; };
8B2BBC462F96C239008BF82F /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBBE2F96C239008BF82F /* CAStreamRangedDescription.cpp */; };
8B2BBC472F96C239008BF82F /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBBF2F96C239008BF82F /* CAPThread.cpp */; };
8B2BBC482F96C239008BF82F /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC02F96C239008BF82F /* CAAutoDisposer.h */; };
8B2BBC492F96C239008BF82F /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC12F96C239008BF82F /* CACFPreferences.h */; };
8B2BBC4A2F96C239008BF82F /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBC22F96C239008BF82F /* CAVectorUnit.cpp */; };
8B2BBC4B2F96C239008BF82F /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC32F96C239008BF82F /* CAComponentDescription.h */; };
8B2BBC4C2F96C239008BF82F /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC42F96C239008BF82F /* CADebugMacros.h */; };
8B2BBC4D2F96C239008BF82F /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC52F96C239008BF82F /* AUOutputBL.h */; };
8B2BBC4E2F96C239008BF82F /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBC62F96C239008BF82F /* CADebugPrintf.cpp */; };
8B2BBC4F2F96C239008BF82F /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBC72F96C239008BF82F /* CARingBuffer.cpp */; };
8B2BBC502F96C239008BF82F /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBC82F96C239008BF82F /* CACFPlugIn.h */; };
8B2BBC512F96C239008BF82F /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBC92F96C239008BF82F /* CASettingsStorage.cpp */; };
8B2BBC522F96C239008BF82F /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBCA2F96C239008BF82F /* CAMixMap.h */; };
8B2BBC532F96C239008BF82F /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBCB2F96C239008BF82F /* CACFDistributedNotification.h */; };
8B2BBC542F96C239008BF82F /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBCC2F96C239008BF82F /* CAFilePathUtils.h */; };
8B2BBC552F96C239008BF82F /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBCD2F96C239008BF82F /* CATink.h */; };
8B2BBC562F96C239008BF82F /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBCE2F96C239008BF82F /* CAStreamBasicDescription.cpp */; };
8B2BBC572F96C239008BF82F /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBCF2F96C239008BF82F /* CAAudioChannelLayout.h */; };
8B2BBC582F96C239008BF82F /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBD02F96C239008BF82F /* CAProcess.cpp */; };
8B2BBC592F96C239008BF82F /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBD12F96C239008BF82F /* CAHostTimeBase.cpp */; };
8B2BBC5A2F96C239008BF82F /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBD22F96C239008BF82F /* CAPersistence.cpp */; };
8B2BBC5B2F96C239008BF82F /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBD32F96C239008BF82F /* CAAudioBufferList.cpp */; };
8B2BBC5C2F96C239008BF82F /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBD42F96C239008BF82F /* CAAudioTimeStamp.cpp */; };
8B2BBC5D2F96C239008BF82F /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBD52F96C239008BF82F /* CAVectorUnit.h */; };
8B2BBC5E2F96C239008BF82F /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBD62F96C239008BF82F /* CAByteOrder.h */; };
8B2BBC5F2F96C239008BF82F /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBD72F96C239008BF82F /* CACFArray.h */; };
8B2BBC602F96C239008BF82F /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBD82F96C239008BF82F /* CAAtomicStack.h */; };
8B2BBC612F96C239008BF82F /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBD92F96C239008BF82F /* CAReferenceCounted.h */; };
8B2BBC622F96C239008BF82F /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDA2F96C239008BF82F /* CACFMachPort.cpp */; };
8B2BBC632F96C239008BF82F /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDB2F96C239008BF82F /* CABufferList.cpp */; };
8B2BBC642F96C239008BF82F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDC2F96C239008BF82F /* CAMutex.cpp */; };
8B2BBC652F96C239008BF82F /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDD2F96C239008BF82F /* CADebugger.cpp */; };
8B2BBC662F96C239008BF82F /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDE2F96C239008BF82F /* CABundleLocker.cpp */; };
8B2BBC672F96C239008BF82F /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBDF2F96C239008BF82F /* CAAudioFileFormats.cpp */; };
8B2BBC682F96C239008BF82F /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBE02F96C239008BF82F /* CAMath.h */; };
8B2BBC692F96C239008BF82F /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBE12F96C239008BF82F /* CACFArray.cpp */; };
8B2BBC6A2F96C239008BF82F /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBE22F96C239008BF82F /* CACFMessagePort.h */; };
8B2BBC6B2F96C239008BF82F /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBE32F96C239008BF82F /* CAAudioValueRange.cpp */; };
8B2BBC6C2F96C239008BF82F /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBE42F96C239008BF82F /* CAAudioUnit.cpp */; };
8B2BBC6D2F96C239008BF82F /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBE82F96C239008BF82F /* AUViewLocalizedStringKeys.h */; };
8B2BBC6E2F96C239008BF82F /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBEA2F96C239008BF82F /* ComponentBase.cpp */; };
8B2BBC6F2F96C239008BF82F /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBEB2F96C239008BF82F /* AUScopeElement.cpp */; };
8B2BBC702F96C239008BF82F /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBEC2F96C239008BF82F /* ComponentBase.h */; };
8B2BBC712F96C239008BF82F /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBED2F96C239008BF82F /* AUBase.cpp */; };
8B2BBC722F96C239008BF82F /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBEE2F96C239008BF82F /* AUInputElement.h */; };
8B2BBC732F96C239008BF82F /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBEF2F96C239008BF82F /* AUBase.h */; };
8B2BBC742F96C239008BF82F /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBF02F96C239008BF82F /* AUPlugInDispatch.h */; };
8B2BBC752F96C239008BF82F /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBF12F96C239008BF82F /* AUDispatch.h */; };
8B2BBC762F96C239008BF82F /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBF22F96C239008BF82F /* AUOutputElement.cpp */; };
8B2BBC782F96C239008BF82F /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBF42F96C239008BF82F /* AUPlugInDispatch.cpp */; };
8B2BBC792F96C239008BF82F /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBF52F96C239008BF82F /* AUOutputElement.h */; };
8B2BBC7A2F96C239008BF82F /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBF62F96C239008BF82F /* AUDispatch.cpp */; };
8B2BBC7B2F96C239008BF82F /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBF72F96C239008BF82F /* AUScopeElement.h */; };
8B2BBC7C2F96C239008BF82F /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBF82F96C239008BF82F /* AUInputElement.cpp */; };
8B2BBC7D2F96C239008BF82F /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBFA2F96C239008BF82F /* AUEffectBase.cpp */; };
8B2BBC7E2F96C239008BF82F /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBFB2F96C239008BF82F /* AUEffectBase.h */; };
8B2BBC7F2F96C239008BF82F /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBFD2F96C239008BF82F /* AUTimestampGenerator.h */; };
8B2BBC802F96C239008BF82F /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBBFE2F96C239008BF82F /* AUBaseHelper.cpp */; };
8B2BBC812F96C239008BF82F /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBBFF2F96C239008BF82F /* AUSilentTimeout.h */; };
8B2BBC822F96C239008BF82F /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBC002F96C239008BF82F /* AUInputFormatConverter.h */; };
8B2BBC832F96C239008BF82F /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBC012F96C239008BF82F /* AUTimestampGenerator.cpp */; };
8B2BBC842F96C239008BF82F /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBC022F96C239008BF82F /* AUBuffer.cpp */; };
8B2BBC852F96C239008BF82F /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBC032F96C239008BF82F /* AUMIDIDefs.h */; };
8B2BBC862F96C239008BF82F /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBC042F96C239008BF82F /* AUBuffer.h */; };
8B2BBC872F96C239008BF82F /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBC052F96C239008BF82F /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* ADClip9.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ADClip9.cpp */; };
8BA05A6E0720730100365D66 /* ADClip9Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ADClip9Version.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 /* ADClip9.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ADClip9.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B2BBB7E2F96C238008BF82F /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B2BBB7F2F96C238008BF82F /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B2BBB802F96C238008BF82F /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B2BBB812F96C238008BF82F /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B2BBB822F96C238008BF82F /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B2BBB832F96C238008BF82F /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B2BBB842F96C238008BF82F /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B2BBB852F96C239008BF82F /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B2BBB862F96C239008BF82F /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B2BBB872F96C239008BF82F /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B2BBB882F96C239008BF82F /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B2BBB892F96C239008BF82F /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B2BBB8A2F96C239008BF82F /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B2BBB8B2F96C239008BF82F /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B2BBB8C2F96C239008BF82F /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B2BBB8D2F96C239008BF82F /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B2BBB8E2F96C239008BF82F /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B2BBB8F2F96C239008BF82F /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B2BBB902F96C239008BF82F /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B2BBB912F96C239008BF82F /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B2BBB922F96C239008BF82F /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B2BBB932F96C239008BF82F /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B2BBB942F96C239008BF82F /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B2BBB952F96C239008BF82F /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B2BBB962F96C239008BF82F /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B2BBB972F96C239008BF82F /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B2BBB982F96C239008BF82F /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B2BBB992F96C239008BF82F /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B2BBB9A2F96C239008BF82F /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B2BBB9B2F96C239008BF82F /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B2BBB9C2F96C239008BF82F /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B2BBB9D2F96C239008BF82F /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B2BBB9E2F96C239008BF82F /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B2BBB9F2F96C239008BF82F /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B2BBBA02F96C239008BF82F /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B2BBBA12F96C239008BF82F /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B2BBBA22F96C239008BF82F /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B2BBBA32F96C239008BF82F /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B2BBBA42F96C239008BF82F /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B2BBBA52F96C239008BF82F /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B2BBBA62F96C239008BF82F /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B2BBBA72F96C239008BF82F /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B2BBBA82F96C239008BF82F /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B2BBBA92F96C239008BF82F /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B2BBBAA2F96C239008BF82F /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B2BBBAB2F96C239008BF82F /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B2BBBAC2F96C239008BF82F /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B2BBBAD2F96C239008BF82F /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B2BBBAE2F96C239008BF82F /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B2BBBAF2F96C239008BF82F /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B2BBBB02F96C239008BF82F /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B2BBBB12F96C239008BF82F /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B2BBBB22F96C239008BF82F /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B2BBBB32F96C239008BF82F /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B2BBBB42F96C239008BF82F /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B2BBBB52F96C239008BF82F /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B2BBBB62F96C239008BF82F /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B2BBBB72F96C239008BF82F /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B2BBBB82F96C239008BF82F /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B2BBBB92F96C239008BF82F /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B2BBBBA2F96C239008BF82F /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B2BBBBB2F96C239008BF82F /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B2BBBBC2F96C239008BF82F /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B2BBBBD2F96C239008BF82F /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B2BBBBE2F96C239008BF82F /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B2BBBBF2F96C239008BF82F /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B2BBBC02F96C239008BF82F /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B2BBBC12F96C239008BF82F /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B2BBBC22F96C239008BF82F /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B2BBBC32F96C239008BF82F /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B2BBBC42F96C239008BF82F /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B2BBBC52F96C239008BF82F /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B2BBBC62F96C239008BF82F /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B2BBBC72F96C239008BF82F /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B2BBBC82F96C239008BF82F /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B2BBBC92F96C239008BF82F /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B2BBBCA2F96C239008BF82F /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B2BBBCB2F96C239008BF82F /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B2BBBCC2F96C239008BF82F /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B2BBBCD2F96C239008BF82F /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B2BBBCE2F96C239008BF82F /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B2BBBCF2F96C239008BF82F /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B2BBBD02F96C239008BF82F /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B2BBBD12F96C239008BF82F /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B2BBBD22F96C239008BF82F /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B2BBBD32F96C239008BF82F /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B2BBBD42F96C239008BF82F /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B2BBBD52F96C239008BF82F /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B2BBBD62F96C239008BF82F /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B2BBBD72F96C239008BF82F /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B2BBBD82F96C239008BF82F /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B2BBBD92F96C239008BF82F /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B2BBBDA2F96C239008BF82F /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B2BBBDB2F96C239008BF82F /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B2BBBDC2F96C239008BF82F /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B2BBBDD2F96C239008BF82F /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B2BBBDE2F96C239008BF82F /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B2BBBDF2F96C239008BF82F /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B2BBBE02F96C239008BF82F /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B2BBBE12F96C239008BF82F /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B2BBBE22F96C239008BF82F /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B2BBBE32F96C239008BF82F /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B2BBBE42F96C239008BF82F /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B2BBBE82F96C239008BF82F /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B2BBBEA2F96C239008BF82F /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B2BBBEB2F96C239008BF82F /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B2BBBEC2F96C239008BF82F /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B2BBBED2F96C239008BF82F /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B2BBBEE2F96C239008BF82F /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B2BBBEF2F96C239008BF82F /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B2BBBF02F96C239008BF82F /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B2BBBF12F96C239008BF82F /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B2BBBF22F96C239008BF82F /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B2BBBF32F96C239008BF82F /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B2BBBF42F96C239008BF82F /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B2BBBF52F96C239008BF82F /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B2BBBF62F96C239008BF82F /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B2BBBF72F96C239008BF82F /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B2BBBF82F96C239008BF82F /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B2BBBFA2F96C239008BF82F /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B2BBBFB2F96C239008BF82F /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B2BBBFD2F96C239008BF82F /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B2BBBFE2F96C239008BF82F /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B2BBBFF2F96C239008BF82F /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B2BBC002F96C239008BF82F /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B2BBC012F96C239008BF82F /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B2BBC022F96C239008BF82F /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B2BBC032F96C239008BF82F /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B2BBC042F96C239008BF82F /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B2BBC052F96C239008BF82F /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B2BBC882F96C3A8008BF82F /* 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 /* ADClip9.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ADClip9.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* ADClip9.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ADClip9.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* ADClip9.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ADClip9.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* ADClip9Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ADClip9Version.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 /* ADClip9.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ADClip9.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* ADClip9.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ADClip9.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 /* ADClip9 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = ADClip9;
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 = (
8B2BBB7C2F96C238008BF82F /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* ADClip9.component */,
);
name = Products;
sourceTree = "<group>";
};
8B2BBB7C2F96C238008BF82F /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B2BBB7D2F96C238008BF82F /* PublicUtility */,
8B2BBBE52F96C239008BF82F /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B2BBB7D2F96C238008BF82F /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B2BBB7E2F96C238008BF82F /* CAExtAudioFile.h */,
8B2BBB7F2F96C238008BF82F /* CACFMachPort.h */,
8B2BBB802F96C238008BF82F /* CABool.h */,
8B2BBB812F96C238008BF82F /* CAComponent.cpp */,
8B2BBB822F96C238008BF82F /* CADebugger.h */,
8B2BBB832F96C238008BF82F /* CACFNumber.cpp */,
8B2BBB842F96C238008BF82F /* CAGuard.h */,
8B2BBB852F96C239008BF82F /* CAAtomic.h */,
8B2BBB862F96C239008BF82F /* CAStreamBasicDescription.h */,
8B2BBB872F96C239008BF82F /* CACFObject.h */,
8B2BBB882F96C239008BF82F /* CAStreamRangedDescription.h */,
8B2BBB892F96C239008BF82F /* CATokenMap.h */,
8B2BBB8A2F96C239008BF82F /* CAComponent.h */,
8B2BBB8B2F96C239008BF82F /* CAAudioBufferList.h */,
8B2BBB8C2F96C239008BF82F /* CAAudioUnit.h */,
8B2BBB8D2F96C239008BF82F /* CAAUParameter.h */,
8B2BBB8E2F96C239008BF82F /* CAException.h */,
8B2BBB8F2F96C239008BF82F /* CAAUProcessor.cpp */,
8B2BBB902F96C239008BF82F /* CAAUProcessor.h */,
8B2BBB912F96C239008BF82F /* CAProcess.h */,
8B2BBB922F96C239008BF82F /* CACFDictionary.h */,
8B2BBB932F96C239008BF82F /* CAPThread.h */,
8B2BBB942F96C239008BF82F /* CAAUParameter.cpp */,
8B2BBB952F96C239008BF82F /* CAAudioTimeStamp.h */,
8B2BBB962F96C239008BF82F /* CAFilePathUtils.cpp */,
8B2BBB972F96C239008BF82F /* CAAudioValueRange.h */,
8B2BBB982F96C239008BF82F /* CAVectorUnitTypes.h */,
8B2BBB992F96C239008BF82F /* CAAudioChannelLayoutObject.cpp */,
8B2BBB9A2F96C239008BF82F /* CAGuard.cpp */,
8B2BBB9B2F96C239008BF82F /* CACFNumber.h */,
8B2BBB9C2F96C239008BF82F /* CACFDistributedNotification.cpp */,
8B2BBB9D2F96C239008BF82F /* CACFString.h */,
8B2BBB9E2F96C239008BF82F /* CAAUMIDIMapManager.cpp */,
8B2BBB9F2F96C239008BF82F /* CAComponentDescription.cpp */,
8B2BBBA02F96C239008BF82F /* CAHostTimeBase.h */,
8B2BBBA12F96C239008BF82F /* CADebugMacros.cpp */,
8B2BBBA22F96C239008BF82F /* CAAudioFileFormats.h */,
8B2BBBA32F96C239008BF82F /* CAAUMIDIMapManager.h */,
8B2BBBA42F96C239008BF82F /* CACFDictionary.cpp */,
8B2BBBA52F96C239008BF82F /* CAMutex.h */,
8B2BBBA62F96C239008BF82F /* CACFString.cpp */,
8B2BBBA72F96C239008BF82F /* CASettingsStorage.h */,
8B2BBBA82F96C239008BF82F /* CADebugPrintf.h */,
8B2BBBA92F96C239008BF82F /* CAXException.cpp */,
8B2BBBAA2F96C239008BF82F /* CAAUMIDIMap.h */,
8B2BBBAB2F96C239008BF82F /* AUParamInfo.h */,
8B2BBBAC2F96C239008BF82F /* CABitOperations.h */,
8B2BBBAD2F96C239008BF82F /* CACFPreferences.cpp */,
8B2BBBAE2F96C239008BF82F /* CABundleLocker.h */,
8B2BBBAF2F96C239008BF82F /* CAPropertyAddress.h */,
8B2BBBB02F96C239008BF82F /* CAXException.h */,
8B2BBBB12F96C239008BF82F /* CAAudioChannelLayout.cpp */,
8B2BBBB22F96C239008BF82F /* CAThreadSafeList.h */,
8B2BBBB32F96C239008BF82F /* CAAudioUnitOutputCapturer.h */,
8B2BBBB42F96C239008BF82F /* AUParamInfo.cpp */,
8B2BBBB52F96C239008BF82F /* CASharedLibrary.cpp */,
8B2BBBB62F96C239008BF82F /* CAAUMIDIMap.cpp */,
8B2BBBB72F96C239008BF82F /* CALogMacros.h */,
8B2BBBB82F96C239008BF82F /* CACFMessagePort.cpp */,
8B2BBBB92F96C239008BF82F /* CARingBuffer.h */,
8B2BBBBA2F96C239008BF82F /* AUOutputBL.cpp */,
8B2BBBBB2F96C239008BF82F /* CABufferList.h */,
8B2BBBBC2F96C239008BF82F /* CASharedLibrary.h */,
8B2BBBBD2F96C239008BF82F /* CACFData.h */,
8B2BBBBE2F96C239008BF82F /* CAStreamRangedDescription.cpp */,
8B2BBBBF2F96C239008BF82F /* CAPThread.cpp */,
8B2BBBC02F96C239008BF82F /* CAAutoDisposer.h */,
8B2BBBC12F96C239008BF82F /* CACFPreferences.h */,
8B2BBBC22F96C239008BF82F /* CAVectorUnit.cpp */,
8B2BBBC32F96C239008BF82F /* CAComponentDescription.h */,
8B2BBBC42F96C239008BF82F /* CADebugMacros.h */,
8B2BBBC52F96C239008BF82F /* AUOutputBL.h */,
8B2BBBC62F96C239008BF82F /* CADebugPrintf.cpp */,
8B2BBBC72F96C239008BF82F /* CARingBuffer.cpp */,
8B2BBBC82F96C239008BF82F /* CACFPlugIn.h */,
8B2BBBC92F96C239008BF82F /* CASettingsStorage.cpp */,
8B2BBBCA2F96C239008BF82F /* CAMixMap.h */,
8B2BBBCB2F96C239008BF82F /* CACFDistributedNotification.h */,
8B2BBBCC2F96C239008BF82F /* CAFilePathUtils.h */,
8B2BBBCD2F96C239008BF82F /* CATink.h */,
8B2BBBCE2F96C239008BF82F /* CAStreamBasicDescription.cpp */,
8B2BBBCF2F96C239008BF82F /* CAAudioChannelLayout.h */,
8B2BBBD02F96C239008BF82F /* CAProcess.cpp */,
8B2BBBD12F96C239008BF82F /* CAHostTimeBase.cpp */,
8B2BBBD22F96C239008BF82F /* CAPersistence.cpp */,
8B2BBBD32F96C239008BF82F /* CAAudioBufferList.cpp */,
8B2BBBD42F96C239008BF82F /* CAAudioTimeStamp.cpp */,
8B2BBBD52F96C239008BF82F /* CAVectorUnit.h */,
8B2BBBD62F96C239008BF82F /* CAByteOrder.h */,
8B2BBBD72F96C239008BF82F /* CACFArray.h */,
8B2BBBD82F96C239008BF82F /* CAAtomicStack.h */,
8B2BBBD92F96C239008BF82F /* CAReferenceCounted.h */,
8B2BBBDA2F96C239008BF82F /* CACFMachPort.cpp */,
8B2BBBDB2F96C239008BF82F /* CABufferList.cpp */,
8B2BBBDC2F96C239008BF82F /* CAMutex.cpp */,
8B2BBBDD2F96C239008BF82F /* CADebugger.cpp */,
8B2BBBDE2F96C239008BF82F /* CABundleLocker.cpp */,
8B2BBBDF2F96C239008BF82F /* CAAudioFileFormats.cpp */,
8B2BBBE02F96C239008BF82F /* CAMath.h */,
8B2BBBE12F96C239008BF82F /* CACFArray.cpp */,
8B2BBBE22F96C239008BF82F /* CACFMessagePort.h */,
8B2BBBE32F96C239008BF82F /* CAAudioValueRange.cpp */,
8B2BBBE42F96C239008BF82F /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B2BBBE52F96C239008BF82F /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B2BBBE62F96C239008BF82F /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B2BBBE62F96C239008BF82F /* AUPublic */ = {
isa = PBXGroup;
children = (
8B2BBBE72F96C239008BF82F /* AUViewBase */,
8B2BBBE92F96C239008BF82F /* AUBase */,
8B2BBBF92F96C239008BF82F /* OtherBases */,
8B2BBBFC2F96C239008BF82F /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B2BBBE72F96C239008BF82F /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B2BBBE82F96C239008BF82F /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B2BBBE92F96C239008BF82F /* AUBase */ = {
isa = PBXGroup;
children = (
8B2BBBEA2F96C239008BF82F /* ComponentBase.cpp */,
8B2BBBEB2F96C239008BF82F /* AUScopeElement.cpp */,
8B2BBBEC2F96C239008BF82F /* ComponentBase.h */,
8B2BBBED2F96C239008BF82F /* AUBase.cpp */,
8B2BBBEE2F96C239008BF82F /* AUInputElement.h */,
8B2BBBEF2F96C239008BF82F /* AUBase.h */,
8B2BBBF02F96C239008BF82F /* AUPlugInDispatch.h */,
8B2BBBF12F96C239008BF82F /* AUDispatch.h */,
8B2BBBF22F96C239008BF82F /* AUOutputElement.cpp */,
8B2BBBF32F96C239008BF82F /* AUResources.r */,
8B2BBBF42F96C239008BF82F /* AUPlugInDispatch.cpp */,
8B2BBBF52F96C239008BF82F /* AUOutputElement.h */,
8B2BBBF62F96C239008BF82F /* AUDispatch.cpp */,
8B2BBBF72F96C239008BF82F /* AUScopeElement.h */,
8B2BBBF82F96C239008BF82F /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B2BBBF92F96C239008BF82F /* OtherBases */ = {
isa = PBXGroup;
children = (
8B2BBBFA2F96C239008BF82F /* AUEffectBase.cpp */,
8B2BBBFB2F96C239008BF82F /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B2BBBFC2F96C239008BF82F /* Utility */ = {
isa = PBXGroup;
children = (
8B2BBBFD2F96C239008BF82F /* AUTimestampGenerator.h */,
8B2BBBFE2F96C239008BF82F /* AUBaseHelper.cpp */,
8B2BBBFF2F96C239008BF82F /* AUSilentTimeout.h */,
8B2BBC002F96C239008BF82F /* AUInputFormatConverter.h */,
8B2BBC012F96C239008BF82F /* AUTimestampGenerator.cpp */,
8B2BBC022F96C239008BF82F /* AUBuffer.cpp */,
8B2BBC032F96C239008BF82F /* AUMIDIDefs.h */,
8B2BBC042F96C239008BF82F /* AUBuffer.h */,
8B2BBC052F96C239008BF82F /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* ADClip9.h */,
8BA05A660720730100365D66 /* ADClip9.cpp */,
8BA05A670720730100365D66 /* ADClip9.exp */,
8BA05A680720730100365D66 /* ADClip9.r */,
8BA05A690720730100365D66 /* ADClip9Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B2BBC362F96C239008BF82F /* CABundleLocker.h in Headers */,
8B2BBC572F96C239008BF82F /* CAAudioChannelLayout.h in Headers */,
8B2BBC4D2F96C239008BF82F /* AUOutputBL.h in Headers */,
8B2BBC282F96C239008BF82F /* CAHostTimeBase.h in Headers */,
8B2BBC702F96C239008BF82F /* ComponentBase.h in Headers */,
8B2BBC602F96C239008BF82F /* CAAtomicStack.h in Headers */,
8B2BBC1D2F96C239008BF82F /* CAAudioTimeStamp.h in Headers */,
8B2BBC3A2F96C239008BF82F /* CAThreadSafeList.h in Headers */,
8B2BBC152F96C239008BF82F /* CAAUParameter.h in Headers */,
8B2BBC872F96C239008BF82F /* AUBaseHelper.h in Headers */,
8B2BBC7F2F96C239008BF82F /* AUTimestampGenerator.h in Headers */,
8B2BBC302F96C239008BF82F /* CADebugPrintf.h in Headers */,
8B2BBC6A2F96C239008BF82F /* CACFMessagePort.h in Headers */,
8B2BBC182F96C239008BF82F /* CAAUProcessor.h in Headers */,
8B2BBC142F96C239008BF82F /* CAAudioUnit.h in Headers */,
8B2BBC6D2F96C239008BF82F /* AUViewLocalizedStringKeys.h in Headers */,
8B2BBC532F96C239008BF82F /* CACFDistributedNotification.h in Headers */,
8B2BBC122F96C239008BF82F /* CAComponent.h in Headers */,
8B2BBC202F96C239008BF82F /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* ADClip9Version.h in Headers */,
8B2BBC542F96C239008BF82F /* CAFilePathUtils.h in Headers */,
8B2BBC162F96C239008BF82F /* CAException.h in Headers */,
8B2BBC0D2F96C239008BF82F /* CAAtomic.h in Headers */,
8B2BBC0C2F96C239008BF82F /* CAGuard.h in Headers */,
8B2BBC722F96C239008BF82F /* AUInputElement.h in Headers */,
8B2BBC492F96C239008BF82F /* CACFPreferences.h in Headers */,
8B2BBC5E2F96C239008BF82F /* CAByteOrder.h in Headers */,
8B2BBC412F96C239008BF82F /* CARingBuffer.h in Headers */,
8B2BBC082F96C239008BF82F /* CABool.h in Headers */,
8B2BBC2D2F96C239008BF82F /* CAMutex.h in Headers */,
8B2BBC732F96C239008BF82F /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* ADClip9.h in Headers */,
8B2BBC252F96C239008BF82F /* CACFString.h in Headers */,
8B2BBC442F96C239008BF82F /* CASharedLibrary.h in Headers */,
8B2BBC112F96C239008BF82F /* CATokenMap.h in Headers */,
8B2BBC062F96C239008BF82F /* CAExtAudioFile.h in Headers */,
8B2BBC1B2F96C239008BF82F /* CAPThread.h in Headers */,
8B2BBC372F96C239008BF82F /* CAPropertyAddress.h in Headers */,
8B2BBC612F96C239008BF82F /* CAReferenceCounted.h in Headers */,
8B2BBC862F96C239008BF82F /* AUBuffer.h in Headers */,
8B2BBC682F96C239008BF82F /* CAMath.h in Headers */,
8B2BBC482F96C239008BF82F /* CAAutoDisposer.h in Headers */,
8B2BBC0F2F96C239008BF82F /* CACFObject.h in Headers */,
8B2BBC2F2F96C239008BF82F /* CASettingsStorage.h in Headers */,
8B2BBC382F96C239008BF82F /* CAXException.h in Headers */,
8B2BBC552F96C239008BF82F /* CATink.h in Headers */,
8B2BBC822F96C239008BF82F /* AUInputFormatConverter.h in Headers */,
8B2BBC5D2F96C239008BF82F /* CAVectorUnit.h in Headers */,
8B2BBC192F96C239008BF82F /* CAProcess.h in Headers */,
8B2BBC1F2F96C239008BF82F /* CAAudioValueRange.h in Headers */,
8B2BBC342F96C239008BF82F /* CABitOperations.h in Headers */,
8B2BBC2A2F96C239008BF82F /* CAAudioFileFormats.h in Headers */,
8B2BBC232F96C239008BF82F /* CACFNumber.h in Headers */,
8B2BBC3B2F96C239008BF82F /* CAAudioUnitOutputCapturer.h in Headers */,
8B2BBC4C2F96C239008BF82F /* CADebugMacros.h in Headers */,
8B2BBC852F96C239008BF82F /* AUMIDIDefs.h in Headers */,
8B2BBC452F96C239008BF82F /* CACFData.h in Headers */,
8B2BBC0E2F96C239008BF82F /* CAStreamBasicDescription.h in Headers */,
8B2BBC742F96C239008BF82F /* AUPlugInDispatch.h in Headers */,
8B2BBC102F96C239008BF82F /* CAStreamRangedDescription.h in Headers */,
8B2BBC502F96C239008BF82F /* CACFPlugIn.h in Headers */,
8B2BBC132F96C239008BF82F /* CAAudioBufferList.h in Headers */,
8B2BBC2B2F96C239008BF82F /* CAAUMIDIMapManager.h in Headers */,
8B2BBC7E2F96C239008BF82F /* AUEffectBase.h in Headers */,
8B2BBC1A2F96C239008BF82F /* CACFDictionary.h in Headers */,
8B2BBC7B2F96C239008BF82F /* AUScopeElement.h in Headers */,
8B2BBC4B2F96C239008BF82F /* CAComponentDescription.h in Headers */,
8B2BBC812F96C239008BF82F /* AUSilentTimeout.h in Headers */,
8B2BBC432F96C239008BF82F /* CABufferList.h in Headers */,
8B2BBC752F96C239008BF82F /* AUDispatch.h in Headers */,
8B2BBC792F96C239008BF82F /* AUOutputElement.h in Headers */,
8B2BBC3F2F96C239008BF82F /* CALogMacros.h in Headers */,
8B2BBC332F96C239008BF82F /* AUParamInfo.h in Headers */,
8B2BBC522F96C239008BF82F /* CAMixMap.h in Headers */,
8B2BBC5F2F96C239008BF82F /* CACFArray.h in Headers */,
8B2BBC072F96C239008BF82F /* CACFMachPort.h in Headers */,
8B2BBC322F96C239008BF82F /* CAAUMIDIMap.h in Headers */,
8B2BBC0A2F96C239008BF82F /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* ADClip9 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ADClip9" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = ADClip9;
productInstallPath = "$(HOME)/Library/Bundles";
productName = ADClip9;
productReference = 8D01CCD20486CAD60068D4B7 /* ADClip9.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 "ADClip9" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
en,
fr,
ja,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* ADClip9 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* ADClip9 */,
);
};
/* 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 = (
8B2BBC422F96C239008BF82F /* AUOutputBL.cpp in Sources */,
8B2BBC672F96C239008BF82F /* CAAudioFileFormats.cpp in Sources */,
8B2BBC592F96C239008BF82F /* CAHostTimeBase.cpp in Sources */,
8B2BBC312F96C239008BF82F /* CAXException.cpp in Sources */,
8B2BBC5B2F96C239008BF82F /* CAAudioBufferList.cpp in Sources */,
8B2BBC1E2F96C239008BF82F /* CAFilePathUtils.cpp in Sources */,
8B2BBC1C2F96C239008BF82F /* CAAUParameter.cpp in Sources */,
8B2BBC3E2F96C239008BF82F /* CAAUMIDIMap.cpp in Sources */,
8B2BBC6B2F96C239008BF82F /* CAAudioValueRange.cpp in Sources */,
8B2BBC7A2F96C239008BF82F /* AUDispatch.cpp in Sources */,
8B2BBC352F96C239008BF82F /* CACFPreferences.cpp in Sources */,
8B2BBC782F96C239008BF82F /* AUPlugInDispatch.cpp in Sources */,
8B2BBC172F96C239008BF82F /* CAAUProcessor.cpp in Sources */,
8B2BBC2C2F96C239008BF82F /* CACFDictionary.cpp in Sources */,
8B2BBC802F96C239008BF82F /* AUBaseHelper.cpp in Sources */,
8B2BBC652F96C239008BF82F /* CADebugger.cpp in Sources */,
8B2BBC392F96C239008BF82F /* CAAudioChannelLayout.cpp in Sources */,
8B2BBC3C2F96C239008BF82F /* AUParamInfo.cpp in Sources */,
8B2BBC5A2F96C239008BF82F /* CAPersistence.cpp in Sources */,
8B2BBC4E2F96C239008BF82F /* CADebugPrintf.cpp in Sources */,
8B2BBC832F96C239008BF82F /* AUTimestampGenerator.cpp in Sources */,
8B2BBC562F96C239008BF82F /* CAStreamBasicDescription.cpp in Sources */,
8B2BBC262F96C239008BF82F /* CAAUMIDIMapManager.cpp in Sources */,
8B2BBC512F96C239008BF82F /* CASettingsStorage.cpp in Sources */,
8B2BBC762F96C239008BF82F /* AUOutputElement.cpp in Sources */,
8B2BBC222F96C239008BF82F /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* ADClip9.cpp in Sources */,
8B2BBC642F96C239008BF82F /* CAMutex.cpp in Sources */,
8B2BBC7D2F96C239008BF82F /* AUEffectBase.cpp in Sources */,
8B2BBC622F96C239008BF82F /* CACFMachPort.cpp in Sources */,
8B2BBC712F96C239008BF82F /* AUBase.cpp in Sources */,
8B2BBC3D2F96C239008BF82F /* CASharedLibrary.cpp in Sources */,
8B2BBC242F96C239008BF82F /* CACFDistributedNotification.cpp in Sources */,
8B2BBC272F96C239008BF82F /* CAComponentDescription.cpp in Sources */,
8B2BBC2E2F96C239008BF82F /* CACFString.cpp in Sources */,
8B2BBC6E2F96C239008BF82F /* ComponentBase.cpp in Sources */,
8B2BBC4F2F96C239008BF82F /* CARingBuffer.cpp in Sources */,
8B2BBC6F2F96C239008BF82F /* AUScopeElement.cpp in Sources */,
8B2BBC6C2F96C239008BF82F /* CAAudioUnit.cpp in Sources */,
8B2BBC692F96C239008BF82F /* CACFArray.cpp in Sources */,
8B2BBC662F96C239008BF82F /* CABundleLocker.cpp in Sources */,
8B2BBC582F96C239008BF82F /* CAProcess.cpp in Sources */,
8B2BBC462F96C239008BF82F /* CAStreamRangedDescription.cpp in Sources */,
8B2BBC472F96C239008BF82F /* CAPThread.cpp in Sources */,
8B2BBC092F96C239008BF82F /* CAComponent.cpp in Sources */,
8B2BBC212F96C239008BF82F /* CAAudioChannelLayoutObject.cpp in Sources */,
8B2BBC5C2F96C239008BF82F /* CAAudioTimeStamp.cpp in Sources */,
8B2BBC632F96C239008BF82F /* CABufferList.cpp in Sources */,
8B2BBC402F96C239008BF82F /* CACFMessagePort.cpp in Sources */,
8B2BBC4A2F96C239008BF82F /* CAVectorUnit.cpp in Sources */,
8B2BBC7C2F96C239008BF82F /* AUInputElement.cpp in Sources */,
8B2BBC842F96C239008BF82F /* AUBuffer.cpp in Sources */,
8B2BBC292F96C239008BF82F /* CADebugMacros.cpp in Sources */,
8B2BBC0B2F96C239008BF82F /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B2BBC882F96C3A8008BF82F /* 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 = ADClip9.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 = ADClip9;
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 = ADClip9.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 = ADClip9;
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 "ADClip9" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ADClip9" */ = {
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 = "ADClip9.component"
BlueprintName = "ADClip9"
ReferencedContainer = "container:ADClip9.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 = "ADClip9.component"
BlueprintName = "ADClip9"
ReferencedContainer = "container:ADClip9.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>ADClip9.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: ADClip9Version.h
*
* Version: 1.0
*
* Created: 4/14/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef __ADClip9Version_h__
#define __ADClip9Version_h__
#ifdef DEBUG
#define kADClip9Version 0xFFFFFFFF
#else
#define kADClip9Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define ADClip9_COMP_MANF 'Dthr'
#define ADClip9_COMP_SUBTYPE 'adct'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>${PRODUCT_NAME:identifier} AU</string>
<key>factoryFunction</key>
<string>${PRODUCT_NAME:identifier}Factory</string>
<key>manufacturer</key>
<string>Dthr</string>
<key>name</key>
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
<key>subtype</key>
<string>adct</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>DthX</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

Binary file not shown.

View file

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

View file

@ -0,0 +1,315 @@
/*
* File: BezEQ3.cpp
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
/*=============================================================================
BezEQ3.cpp
=============================================================================*/
#include "BezEQ3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, BezEQ3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
BezEQ3::BezEQ3(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetParameterInfo(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
AudioUnitParameterInfo &outParameterInfo )
{
ComponentResult result = noErr;
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
| kAudioUnitParameterFlag_IsReadable;
if (inScope == kAudioUnitScope_Global) {
switch(inParameterID)
{
case kParam_A:
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamA;
break;
case kParam_B:
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamB;
break;
case kParam_C:
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamC;
break;
case kParam_D:
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamD;
break;
case kParam_E:
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamE;
break;
case kParam_F:
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamF;
break;
case kParam_G:
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamG;
break;
case kParam_H:
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamH;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// BezEQ3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult BezEQ3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____BezEQ3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void BezEQ3::BezEQ3Kernel::Reset()
{
for (int x = 0; x < bez_total; x++) {for (int y = 0; y < 3; y++) bezEQ[x][y] = 0.0;}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// BezEQ3::BezEQ3Kernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void BezEQ3::BezEQ3Kernel::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();
//begin BezEQ3 control setup
double highGain = (pow(GetParameter( kParam_A )+0.5,3.0)+3.0)*0.25;
double hmidGain = (pow(GetParameter( kParam_B )+0.5,3.0)+3.0)*0.25;
double lmidGain = (pow(GetParameter( kParam_C )+0.5,3.0)+3.0)*0.25;
double bassGain = (pow(GetParameter( kParam_D )+0.5,3.0)+3.0)*0.25;
double trebleRef = (1.0-pow(1.0-GetParameter( kParam_E ),2.0))-0.5;
double highmidRef = GetParameter( kParam_F )-0.5;
double lowmidRef = GetParameter( kParam_G )-0.5;
double bassRef = pow(GetParameter( kParam_H ),2.0)-0.5;
double HMderez = pow(0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125),1.618) /overallscale;
double LMderez = pow(0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125),1.618) /overallscale;
double Mderez = pow((HMderez*0.5)+(LMderez*0.5)+((highmidRef+lowmidRef)*0.125),1.618) /overallscale;
int stepped = 999999; if (HMderez > 0.000001) stepped = (int)(1.0/HMderez);
HMderez = 1.0 / stepped;
double HMtrim = 1.0-(HMderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (Mderez > 0.000001) stepped = (int)(1.0/Mderez);
Mderez = 1.0 / stepped;
double Mtrim = 1.0-(Mderez*((double)stepped/(stepped+1.0)));
stepped = 999999; if (LMderez > 0.000001) stepped = (int)(1.0/LMderez);
LMderez = 1.0 / stepped;
double LMtrim = 1.0-(LMderez*((double)stepped/(stepped+1.0)));
//end BezEQ3 control setup
while (nSampleFrames-- > 0) {
double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
//begin BezEQ3
for (int p = 0; p < 3; p++) {
double high = inputSampleL;
bezEQ[bez_HMcycle][p] += HMderez;
bezEQ[bez_HMAL][p] += (high * HMderez);
if (bezEQ[bez_HMcycle][p] > 1.0) {
bezEQ[bez_HMDL][p] = bezEQ[bez_HMCL][p]; bezEQ[bez_HMCL][p] = bezEQ[bez_HMBL][p];
bezEQ[bez_HMBL][p] = bezEQ[bez_HMAL][p]*(0.5-(HMderez*0.082));
bezEQ[bez_HMAL][p] = 0.0; bezEQ[bez_HMcycle][p] = 0.0;
}
double X = bezEQ[bez_HMcycle][p]*HMtrim;
double hmid = bezEQ[bez_HMCL][p]+(bezEQ[bez_HMDL][p]*(1.0-X)*(1.0-X));
hmid += (bezEQ[bez_HMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_HMBL][p]*X*X);
high -= hmid; //final high and hmid
bezEQ[bez_Mcycle][p] += Mderez;
bezEQ[bez_MAL][p] += (hmid * Mderez);
if (bezEQ[bez_Mcycle][p] > 1.0) {
bezEQ[bez_MDL][p] = bezEQ[bez_MCL][p]; bezEQ[bez_MCL][p] = bezEQ[bez_MBL][p];
bezEQ[bez_MBL][p] = bezEQ[bez_MAL][p]*(0.5-(Mderez*0.082));
bezEQ[bez_MAL][p] = 0.0; bezEQ[bez_Mcycle][p] = 0.0;
}
X = bezEQ[bez_Mcycle][p]*Mtrim;
double lmid = bezEQ[bez_MCL][p]+(bezEQ[bez_MDL][p]*(1.0-X)*(1.0-X));
lmid += (bezEQ[bez_MCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_MBL][p]*X*X);
hmid -= lmid; //final hmid and lmid
bezEQ[bez_LMcycle][p] += LMderez;
bezEQ[bez_LMAL][p] += (lmid * LMderez);
if (bezEQ[bez_LMcycle][p] > 1.0) {
bezEQ[bez_LMDL][p] = bezEQ[bez_LMCL][p]; bezEQ[bez_LMCL][p] = bezEQ[bez_LMBL][p];
bezEQ[bez_LMBL][p] = bezEQ[bez_LMAL][p]*(0.5-(LMderez*0.082));
bezEQ[bez_LMAL][p] = 0.0; bezEQ[bez_LMcycle][p] = 0.0;
}
X = bezEQ[bez_LMcycle][p]*LMtrim;
double bass = bezEQ[bez_LMCL][p]+(bezEQ[bez_LMDL][p]*(1.0-X)*(1.0-X));
bass += (bezEQ[bez_LMCL][p]*2.0*(1.0-X)*X)+(bezEQ[bez_LMBL][p]*X*X);
lmid -= bass; //final lmid and bass
inputSampleL = (high*highGain)+(hmid*hmidGain)+(lmid*lmidGain)+(bass*bassGain);
}
//end BezEQ3
//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 @@
_BezEQ3Entry
_BezEQ3Factory

View file

@ -0,0 +1,163 @@
/*
* File: BezEQ3.h
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "AUEffectBase.h"
#include "BezEQ3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __BezEQ3_h__
#define __BezEQ3_h__
#pragma mark ____BezEQ3 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.5;
static const float kDefaultValue_ParamE = 0.5;
static const float kDefaultValue_ParamF = 0.5;
static const float kDefaultValue_ParamG = 0.5;
static const float kDefaultValue_ParamH = 0.5;
static CFStringRef kParameterAName = CFSTR("High");
static CFStringRef kParameterBName = CFSTR("HMid");
static CFStringRef kParameterCName = CFSTR("LMid");
static CFStringRef kParameterDName = CFSTR("Bass");
static CFStringRef kParameterEName = CFSTR("HighF");
static CFStringRef kParameterFName = CFSTR("HMidF");
static CFStringRef kParameterGName = CFSTR("LMidF");
static CFStringRef kParameterHName = CFSTR("BassF");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
//Add your parameters here...
kNumberOfParameters=8
};
#pragma mark ____BezEQ3
class BezEQ3 : public AUEffectBase
{
public:
BezEQ3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~BezEQ3 () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new BezEQ3Kernel(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 kBezEQ3Version; }
protected:
class BezEQ3Kernel : public AUKernelBase // most of the real work happens here
{
public:
BezEQ3Kernel(AUEffectBase *inAudioUnit )
: AUKernelBase(inAudioUnit)
{
}
// *Required* overides for the process method for this effect
// processes one channel of interleaved samples
virtual void Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence);
virtual void Reset();
private:
enum {
bez_HMAL, bez_HMBL, bez_HMCL, bez_HMDL, bez_HMcycle,
bez_MAL, bez_MBL, bez_MCL, bez_MDL, bez_Mcycle,
bez_LMAL, bez_LMBL, bez_LMCL, bez_LMDL, bez_LMcycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bezEQ[bez_total][3];
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: BezEQ3.r
*
* Version: 1.0
*
* Created: 3/30/26
*
* Copyright: Copyright © 2026 Airwindows, Airwindows uses the MIT license
*
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
* consideration of your agreement to the following terms, and your use, installation, modification
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
* not agree with these terms, please do not use, install, modify or redistribute this Apple
* software.
*
* In consideration of your agreement to abide by the following terms, and subject to these terms,
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
* redistribute the Apple Software in its entirety and without modifications, you must retain this
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
* endorse or promote products derived from the Apple Software without specific prior written
* permission from Apple. Except as expressly stated in this notice, no other rights or
* licenses, express or implied, are granted by Apple herein, including but not limited to any
* patent rights that may be infringed by your derivative works or by other works in which the
* Apple Software may be incorporated.
*
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
* OR IN COMBINATION WITH YOUR PRODUCTS.
*
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <AudioUnit/AudioUnit.r>
#include "BezEQ3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_BezEQ3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ BezEQ3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_BezEQ3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE BezEQ3_COMP_SUBTYPE
#define COMP_MANUF BezEQ3_COMP_MANF
#define VERSION kBezEQ3Version
#define NAME "Airwindows: BezEQ3"
#define DESCRIPTION "BezEQ3 AU"
#define ENTRY_POINT "BezEQ3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,137 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* BezEQ3 */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
108,
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 = 798140296;
PBXWorkspaceStateSaveDate = 798140296;
};
perUserProjectItems = {
8B1806FC2F8EABA200F8756C /* PBXTextBookmark */ = 8B1806FC2F8EABA200F8756C /* PBXTextBookmark */;
8B34AABA2F8826A7007CC294 /* PlistBookmark */ = 8B34AABA2F8826A7007CC294 /* PlistBookmark */;
8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */ = 8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8B1806FC2F8EABA200F8756C /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */;
name = "BezEQ3.cpp: 300";
rLen = 0;
rLoc = 14280;
rType = 0;
vrLen = 288;
vrLoc = 13225;
};
8B34AABA2F8826A7007CC294 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/BezEQ3/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8B4E19352F92AD6B00DAA5EC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */;
name = "BezEQ3.cpp: 300";
rLen = 0;
rLoc = 14280;
rType = 0;
vrLen = 260;
vrLoc = 13184;
};
8BA05A660720730100365D66 /* BezEQ3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {858, 5688}}";
sepNavSelRange = "{14280, 0}";
sepNavVisRange = "{13184, 260}";
sepNavWindowFrame = "{{437, 38}, {1003, 840}}";
};
};
8BA05A690720730100365D66 /* BezEQ3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2886, 0}";
sepNavVisRange = "{964, 1985}";
sepNavWindowFrame = "{{747, 56}, {1046, 819}}";
};
};
8BC6025B073B072D006C4272 /* BezEQ3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 2934}}";
sepNavSelRange = "{5761, 291}";
sepNavVisRange = "{2655, 1063}";
sepNavWindowFrame = "{{695, 59}, {1046, 819}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8D01CCC60486CAD60068D4B7 /* BezEQ3 */ = {
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 */
8B2BBAF92F96BD4C008BF82F /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA712F96BD4C008BF82F /* CAExtAudioFile.h */; };
8B2BBAFA2F96BD4C008BF82F /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA722F96BD4C008BF82F /* CACFMachPort.h */; };
8B2BBAFB2F96BD4C008BF82F /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA732F96BD4C008BF82F /* CABool.h */; };
8B2BBAFC2F96BD4C008BF82F /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA742F96BD4C008BF82F /* CAComponent.cpp */; };
8B2BBAFD2F96BD4C008BF82F /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA752F96BD4C008BF82F /* CADebugger.h */; };
8B2BBAFE2F96BD4C008BF82F /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA762F96BD4C008BF82F /* CACFNumber.cpp */; };
8B2BBAFF2F96BD4C008BF82F /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA772F96BD4C008BF82F /* CAGuard.h */; };
8B2BBB002F96BD4C008BF82F /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA782F96BD4C008BF82F /* CAAtomic.h */; };
8B2BBB012F96BD4C008BF82F /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA792F96BD4C008BF82F /* CAStreamBasicDescription.h */; };
8B2BBB022F96BD4C008BF82F /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7A2F96BD4C008BF82F /* CACFObject.h */; };
8B2BBB032F96BD4C008BF82F /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7B2F96BD4C008BF82F /* CAStreamRangedDescription.h */; };
8B2BBB042F96BD4C008BF82F /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7C2F96BD4C008BF82F /* CATokenMap.h */; };
8B2BBB052F96BD4C008BF82F /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7D2F96BD4C008BF82F /* CAComponent.h */; };
8B2BBB062F96BD4C008BF82F /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7E2F96BD4C008BF82F /* CAAudioBufferList.h */; };
8B2BBB072F96BD4C008BF82F /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA7F2F96BD4C008BF82F /* CAAudioUnit.h */; };
8B2BBB082F96BD4C008BF82F /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA802F96BD4C008BF82F /* CAAUParameter.h */; };
8B2BBB092F96BD4C008BF82F /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA812F96BD4C008BF82F /* CAException.h */; };
8B2BBB0A2F96BD4C008BF82F /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA822F96BD4C008BF82F /* CAAUProcessor.cpp */; };
8B2BBB0B2F96BD4C008BF82F /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA832F96BD4C008BF82F /* CAAUProcessor.h */; };
8B2BBB0C2F96BD4C008BF82F /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA842F96BD4C008BF82F /* CAProcess.h */; };
8B2BBB0D2F96BD4C008BF82F /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA852F96BD4C008BF82F /* CACFDictionary.h */; };
8B2BBB0E2F96BD4C008BF82F /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA862F96BD4C008BF82F /* CAPThread.h */; };
8B2BBB0F2F96BD4C008BF82F /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA872F96BD4C008BF82F /* CAAUParameter.cpp */; };
8B2BBB102F96BD4C008BF82F /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA882F96BD4C008BF82F /* CAAudioTimeStamp.h */; };
8B2BBB112F96BD4C008BF82F /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA892F96BD4C008BF82F /* CAFilePathUtils.cpp */; };
8B2BBB122F96BD4C008BF82F /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA8A2F96BD4C008BF82F /* CAAudioValueRange.h */; };
8B2BBB132F96BD4C008BF82F /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA8B2F96BD4C008BF82F /* CAVectorUnitTypes.h */; };
8B2BBB142F96BD4C008BF82F /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA8C2F96BD4C008BF82F /* CAAudioChannelLayoutObject.cpp */; };
8B2BBB152F96BD4C008BF82F /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA8D2F96BD4C008BF82F /* CAGuard.cpp */; };
8B2BBB162F96BD4C008BF82F /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA8E2F96BD4C008BF82F /* CACFNumber.h */; };
8B2BBB172F96BD4C008BF82F /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA8F2F96BD4C008BF82F /* CACFDistributedNotification.cpp */; };
8B2BBB182F96BD4C008BF82F /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA902F96BD4C008BF82F /* CACFString.h */; };
8B2BBB192F96BD4C008BF82F /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA912F96BD4C008BF82F /* CAAUMIDIMapManager.cpp */; };
8B2BBB1A2F96BD4C008BF82F /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA922F96BD4C008BF82F /* CAComponentDescription.cpp */; };
8B2BBB1B2F96BD4C008BF82F /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA932F96BD4C008BF82F /* CAHostTimeBase.h */; };
8B2BBB1C2F96BD4C008BF82F /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA942F96BD4C008BF82F /* CADebugMacros.cpp */; };
8B2BBB1D2F96BD4C008BF82F /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA952F96BD4C008BF82F /* CAAudioFileFormats.h */; };
8B2BBB1E2F96BD4C008BF82F /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA962F96BD4C008BF82F /* CAAUMIDIMapManager.h */; };
8B2BBB1F2F96BD4C008BF82F /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA972F96BD4C008BF82F /* CACFDictionary.cpp */; };
8B2BBB202F96BD4C008BF82F /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA982F96BD4C008BF82F /* CAMutex.h */; };
8B2BBB212F96BD4C008BF82F /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA992F96BD4C008BF82F /* CACFString.cpp */; };
8B2BBB222F96BD4C008BF82F /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA9A2F96BD4C008BF82F /* CASettingsStorage.h */; };
8B2BBB232F96BD4C008BF82F /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA9B2F96BD4C008BF82F /* CADebugPrintf.h */; };
8B2BBB242F96BD4C008BF82F /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBA9C2F96BD4C008BF82F /* CAXException.cpp */; };
8B2BBB252F96BD4C008BF82F /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA9D2F96BD4C008BF82F /* CAAUMIDIMap.h */; };
8B2BBB262F96BD4C008BF82F /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA9E2F96BD4C008BF82F /* AUParamInfo.h */; };
8B2BBB272F96BD4C008BF82F /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBA9F2F96BD4C008BF82F /* CABitOperations.h */; };
8B2BBB282F96BD4C008BF82F /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAA02F96BD4C008BF82F /* CACFPreferences.cpp */; };
8B2BBB292F96BD4C008BF82F /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAA12F96BD4C008BF82F /* CABundleLocker.h */; };
8B2BBB2A2F96BD4C008BF82F /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAA22F96BD4C008BF82F /* CAPropertyAddress.h */; };
8B2BBB2B2F96BD4C008BF82F /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAA32F96BD4C008BF82F /* CAXException.h */; };
8B2BBB2C2F96BD4C008BF82F /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAA42F96BD4C008BF82F /* CAAudioChannelLayout.cpp */; };
8B2BBB2D2F96BD4C008BF82F /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAA52F96BD4C008BF82F /* CAThreadSafeList.h */; };
8B2BBB2E2F96BD4C008BF82F /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAA62F96BD4C008BF82F /* CAAudioUnitOutputCapturer.h */; };
8B2BBB2F2F96BD4C008BF82F /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAA72F96BD4C008BF82F /* AUParamInfo.cpp */; };
8B2BBB302F96BD4C008BF82F /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAA82F96BD4C008BF82F /* CASharedLibrary.cpp */; };
8B2BBB312F96BD4C008BF82F /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAA92F96BD4C008BF82F /* CAAUMIDIMap.cpp */; };
8B2BBB322F96BD4C008BF82F /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAAA2F96BD4C008BF82F /* CALogMacros.h */; };
8B2BBB332F96BD4C008BF82F /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAAB2F96BD4C008BF82F /* CACFMessagePort.cpp */; };
8B2BBB342F96BD4C008BF82F /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAAC2F96BD4C008BF82F /* CARingBuffer.h */; };
8B2BBB352F96BD4C008BF82F /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAAD2F96BD4C008BF82F /* AUOutputBL.cpp */; };
8B2BBB362F96BD4C008BF82F /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAAE2F96BD4C008BF82F /* CABufferList.h */; };
8B2BBB372F96BD4C008BF82F /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAAF2F96BD4C008BF82F /* CASharedLibrary.h */; };
8B2BBB382F96BD4C008BF82F /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB02F96BD4C008BF82F /* CACFData.h */; };
8B2BBB392F96BD4C008BF82F /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAB12F96BD4C008BF82F /* CAStreamRangedDescription.cpp */; };
8B2BBB3A2F96BD4C008BF82F /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAB22F96BD4C008BF82F /* CAPThread.cpp */; };
8B2BBB3B2F96BD4C008BF82F /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB32F96BD4C008BF82F /* CAAutoDisposer.h */; };
8B2BBB3C2F96BD4C008BF82F /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB42F96BD4C008BF82F /* CACFPreferences.h */; };
8B2BBB3D2F96BD4C008BF82F /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAB52F96BD4C008BF82F /* CAVectorUnit.cpp */; };
8B2BBB3E2F96BD4C008BF82F /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB62F96BD4C008BF82F /* CAComponentDescription.h */; };
8B2BBB3F2F96BD4C008BF82F /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB72F96BD4C008BF82F /* CADebugMacros.h */; };
8B2BBB402F96BD4C008BF82F /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAB82F96BD4C008BF82F /* AUOutputBL.h */; };
8B2BBB412F96BD4C008BF82F /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAB92F96BD4C008BF82F /* CADebugPrintf.cpp */; };
8B2BBB422F96BD4C008BF82F /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBABA2F96BD4C008BF82F /* CARingBuffer.cpp */; };
8B2BBB432F96BD4C008BF82F /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBABB2F96BD4C008BF82F /* CACFPlugIn.h */; };
8B2BBB442F96BD4C008BF82F /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBABC2F96BD4C008BF82F /* CASettingsStorage.cpp */; };
8B2BBB452F96BD4C008BF82F /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBABD2F96BD4C008BF82F /* CAMixMap.h */; };
8B2BBB462F96BD4C008BF82F /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBABE2F96BD4C008BF82F /* CACFDistributedNotification.h */; };
8B2BBB472F96BD4C008BF82F /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBABF2F96BD4C008BF82F /* CAFilePathUtils.h */; };
8B2BBB482F96BD4C008BF82F /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAC02F96BD4C008BF82F /* CATink.h */; };
8B2BBB492F96BD4C008BF82F /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC12F96BD4C008BF82F /* CAStreamBasicDescription.cpp */; };
8B2BBB4A2F96BD4C008BF82F /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAC22F96BD4C008BF82F /* CAAudioChannelLayout.h */; };
8B2BBB4B2F96BD4C008BF82F /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC32F96BD4C008BF82F /* CAProcess.cpp */; };
8B2BBB4C2F96BD4C008BF82F /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC42F96BD4C008BF82F /* CAHostTimeBase.cpp */; };
8B2BBB4D2F96BD4C008BF82F /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC52F96BD4C008BF82F /* CAPersistence.cpp */; };
8B2BBB4E2F96BD4C008BF82F /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC62F96BD4C008BF82F /* CAAudioBufferList.cpp */; };
8B2BBB4F2F96BD4C008BF82F /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAC72F96BD4C008BF82F /* CAAudioTimeStamp.cpp */; };
8B2BBB502F96BD4C008BF82F /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAC82F96BD4C008BF82F /* CAVectorUnit.h */; };
8B2BBB512F96BD4C008BF82F /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAC92F96BD4C008BF82F /* CAByteOrder.h */; };
8B2BBB522F96BD4C008BF82F /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBACA2F96BD4C008BF82F /* CACFArray.h */; };
8B2BBB532F96BD4C008BF82F /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBACB2F96BD4C008BF82F /* CAAtomicStack.h */; };
8B2BBB542F96BD4C008BF82F /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBACC2F96BD4C008BF82F /* CAReferenceCounted.h */; };
8B2BBB552F96BD4C008BF82F /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBACD2F96BD4C008BF82F /* CACFMachPort.cpp */; };
8B2BBB562F96BD4C008BF82F /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBACE2F96BD4C008BF82F /* CABufferList.cpp */; };
8B2BBB572F96BD4C008BF82F /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBACF2F96BD4C008BF82F /* CAMutex.cpp */; };
8B2BBB582F96BD4C008BF82F /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD02F96BD4C008BF82F /* CADebugger.cpp */; };
8B2BBB592F96BD4C008BF82F /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD12F96BD4C008BF82F /* CABundleLocker.cpp */; };
8B2BBB5A2F96BD4C008BF82F /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD22F96BD4C008BF82F /* CAAudioFileFormats.cpp */; };
8B2BBB5B2F96BD4C008BF82F /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAD32F96BD4C008BF82F /* CAMath.h */; };
8B2BBB5C2F96BD4C008BF82F /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD42F96BD4C008BF82F /* CACFArray.cpp */; };
8B2BBB5D2F96BD4C008BF82F /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAD52F96BD4C008BF82F /* CACFMessagePort.h */; };
8B2BBB5E2F96BD4C008BF82F /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD62F96BD4C008BF82F /* CAAudioValueRange.cpp */; };
8B2BBB5F2F96BD4C008BF82F /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAD72F96BD4C008BF82F /* CAAudioUnit.cpp */; };
8B2BBB602F96BD4C008BF82F /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBADB2F96BD4C008BF82F /* AUViewLocalizedStringKeys.h */; };
8B2BBB612F96BD4C008BF82F /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBADD2F96BD4C008BF82F /* ComponentBase.cpp */; };
8B2BBB622F96BD4C008BF82F /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBADE2F96BD4C008BF82F /* AUScopeElement.cpp */; };
8B2BBB632F96BD4C008BF82F /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBADF2F96BD4C008BF82F /* ComponentBase.h */; };
8B2BBB642F96BD4C008BF82F /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAE02F96BD4C008BF82F /* AUBase.cpp */; };
8B2BBB652F96BD4C008BF82F /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAE12F96BD4C008BF82F /* AUInputElement.h */; };
8B2BBB662F96BD4C008BF82F /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAE22F96BD4C008BF82F /* AUBase.h */; };
8B2BBB672F96BD4C008BF82F /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAE32F96BD4C008BF82F /* AUPlugInDispatch.h */; };
8B2BBB682F96BD4C008BF82F /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAE42F96BD4C008BF82F /* AUDispatch.h */; };
8B2BBB692F96BD4C008BF82F /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAE52F96BD4C008BF82F /* AUOutputElement.cpp */; };
8B2BBB6B2F96BD4C008BF82F /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAE72F96BD4C008BF82F /* AUPlugInDispatch.cpp */; };
8B2BBB6C2F96BD4C008BF82F /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAE82F96BD4C008BF82F /* AUOutputElement.h */; };
8B2BBB6D2F96BD4C008BF82F /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAE92F96BD4C008BF82F /* AUDispatch.cpp */; };
8B2BBB6E2F96BD4C008BF82F /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAEA2F96BD4C008BF82F /* AUScopeElement.h */; };
8B2BBB6F2F96BD4C008BF82F /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAEB2F96BD4C008BF82F /* AUInputElement.cpp */; };
8B2BBB702F96BD4C008BF82F /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAED2F96BD4C008BF82F /* AUEffectBase.cpp */; };
8B2BBB712F96BD4C008BF82F /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAEE2F96BD4C008BF82F /* AUEffectBase.h */; };
8B2BBB722F96BD4C008BF82F /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF02F96BD4C008BF82F /* AUTimestampGenerator.h */; };
8B2BBB732F96BD4C008BF82F /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAF12F96BD4C008BF82F /* AUBaseHelper.cpp */; };
8B2BBB742F96BD4C008BF82F /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF22F96BD4C008BF82F /* AUSilentTimeout.h */; };
8B2BBB752F96BD4C008BF82F /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF32F96BD4C008BF82F /* AUInputFormatConverter.h */; };
8B2BBB762F96BD4C008BF82F /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAF42F96BD4C008BF82F /* AUTimestampGenerator.cpp */; };
8B2BBB772F96BD4C008BF82F /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B2BBAF52F96BD4C008BF82F /* AUBuffer.cpp */; };
8B2BBB782F96BD4C008BF82F /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF62F96BD4C008BF82F /* AUMIDIDefs.h */; };
8B2BBB792F96BD4C008BF82F /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF72F96BD4C008BF82F /* AUBuffer.h */; };
8B2BBB7A2F96BD4C008BF82F /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B2BBAF82F96BD4C008BF82F /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* BezEQ3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* BezEQ3.cpp */; };
8BA05A6E0720730100365D66 /* BezEQ3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* BezEQ3Version.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 /* BezEQ3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* BezEQ3.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B2BBA712F96BD4C008BF82F /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B2BBA722F96BD4C008BF82F /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B2BBA732F96BD4C008BF82F /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B2BBA742F96BD4C008BF82F /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B2BBA752F96BD4C008BF82F /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B2BBA762F96BD4C008BF82F /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B2BBA772F96BD4C008BF82F /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B2BBA782F96BD4C008BF82F /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B2BBA792F96BD4C008BF82F /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B2BBA7A2F96BD4C008BF82F /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B2BBA7B2F96BD4C008BF82F /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B2BBA7C2F96BD4C008BF82F /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B2BBA7D2F96BD4C008BF82F /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B2BBA7E2F96BD4C008BF82F /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B2BBA7F2F96BD4C008BF82F /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B2BBA802F96BD4C008BF82F /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B2BBA812F96BD4C008BF82F /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B2BBA822F96BD4C008BF82F /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B2BBA832F96BD4C008BF82F /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B2BBA842F96BD4C008BF82F /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B2BBA852F96BD4C008BF82F /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B2BBA862F96BD4C008BF82F /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B2BBA872F96BD4C008BF82F /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B2BBA882F96BD4C008BF82F /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B2BBA892F96BD4C008BF82F /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B2BBA8A2F96BD4C008BF82F /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B2BBA8B2F96BD4C008BF82F /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B2BBA8C2F96BD4C008BF82F /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B2BBA8D2F96BD4C008BF82F /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B2BBA8E2F96BD4C008BF82F /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B2BBA8F2F96BD4C008BF82F /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B2BBA902F96BD4C008BF82F /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B2BBA912F96BD4C008BF82F /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B2BBA922F96BD4C008BF82F /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B2BBA932F96BD4C008BF82F /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B2BBA942F96BD4C008BF82F /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B2BBA952F96BD4C008BF82F /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B2BBA962F96BD4C008BF82F /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B2BBA972F96BD4C008BF82F /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B2BBA982F96BD4C008BF82F /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B2BBA992F96BD4C008BF82F /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B2BBA9A2F96BD4C008BF82F /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B2BBA9B2F96BD4C008BF82F /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B2BBA9C2F96BD4C008BF82F /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B2BBA9D2F96BD4C008BF82F /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B2BBA9E2F96BD4C008BF82F /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B2BBA9F2F96BD4C008BF82F /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B2BBAA02F96BD4C008BF82F /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B2BBAA12F96BD4C008BF82F /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B2BBAA22F96BD4C008BF82F /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B2BBAA32F96BD4C008BF82F /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B2BBAA42F96BD4C008BF82F /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B2BBAA52F96BD4C008BF82F /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B2BBAA62F96BD4C008BF82F /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B2BBAA72F96BD4C008BF82F /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B2BBAA82F96BD4C008BF82F /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B2BBAA92F96BD4C008BF82F /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B2BBAAA2F96BD4C008BF82F /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B2BBAAB2F96BD4C008BF82F /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B2BBAAC2F96BD4C008BF82F /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B2BBAAD2F96BD4C008BF82F /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B2BBAAE2F96BD4C008BF82F /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B2BBAAF2F96BD4C008BF82F /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B2BBAB02F96BD4C008BF82F /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B2BBAB12F96BD4C008BF82F /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B2BBAB22F96BD4C008BF82F /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B2BBAB32F96BD4C008BF82F /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B2BBAB42F96BD4C008BF82F /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B2BBAB52F96BD4C008BF82F /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B2BBAB62F96BD4C008BF82F /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B2BBAB72F96BD4C008BF82F /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B2BBAB82F96BD4C008BF82F /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B2BBAB92F96BD4C008BF82F /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B2BBABA2F96BD4C008BF82F /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B2BBABB2F96BD4C008BF82F /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B2BBABC2F96BD4C008BF82F /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B2BBABD2F96BD4C008BF82F /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B2BBABE2F96BD4C008BF82F /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B2BBABF2F96BD4C008BF82F /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B2BBAC02F96BD4C008BF82F /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B2BBAC12F96BD4C008BF82F /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B2BBAC22F96BD4C008BF82F /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B2BBAC32F96BD4C008BF82F /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B2BBAC42F96BD4C008BF82F /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B2BBAC52F96BD4C008BF82F /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B2BBAC62F96BD4C008BF82F /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B2BBAC72F96BD4C008BF82F /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B2BBAC82F96BD4C008BF82F /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B2BBAC92F96BD4C008BF82F /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B2BBACA2F96BD4C008BF82F /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B2BBACB2F96BD4C008BF82F /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B2BBACC2F96BD4C008BF82F /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B2BBACD2F96BD4C008BF82F /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B2BBACE2F96BD4C008BF82F /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B2BBACF2F96BD4C008BF82F /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B2BBAD02F96BD4C008BF82F /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B2BBAD12F96BD4C008BF82F /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B2BBAD22F96BD4C008BF82F /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B2BBAD32F96BD4C008BF82F /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B2BBAD42F96BD4C008BF82F /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B2BBAD52F96BD4C008BF82F /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B2BBAD62F96BD4C008BF82F /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B2BBAD72F96BD4C008BF82F /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B2BBADB2F96BD4C008BF82F /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B2BBADD2F96BD4C008BF82F /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B2BBADE2F96BD4C008BF82F /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B2BBADF2F96BD4C008BF82F /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B2BBAE02F96BD4C008BF82F /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B2BBAE12F96BD4C008BF82F /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B2BBAE22F96BD4C008BF82F /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B2BBAE32F96BD4C008BF82F /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B2BBAE42F96BD4C008BF82F /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B2BBAE52F96BD4C008BF82F /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B2BBAE62F96BD4C008BF82F /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B2BBAE72F96BD4C008BF82F /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B2BBAE82F96BD4C008BF82F /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B2BBAE92F96BD4C008BF82F /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B2BBAEA2F96BD4C008BF82F /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B2BBAEB2F96BD4C008BF82F /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B2BBAED2F96BD4C008BF82F /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B2BBAEE2F96BD4C008BF82F /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B2BBAF02F96BD4C008BF82F /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B2BBAF12F96BD4C008BF82F /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B2BBAF22F96BD4C008BF82F /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B2BBAF32F96BD4C008BF82F /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B2BBAF42F96BD4C008BF82F /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B2BBAF52F96BD4C008BF82F /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B2BBAF62F96BD4C008BF82F /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B2BBAF72F96BD4C008BF82F /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B2BBAF82F96BD4C008BF82F /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B2BBB7B2F96C188008BF82F /* 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 /* BezEQ3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = BezEQ3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* BezEQ3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = BezEQ3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* BezEQ3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = BezEQ3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* BezEQ3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BezEQ3Version.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 /* BezEQ3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = BezEQ3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* BezEQ3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BezEQ3.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 /* BezEQ3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = BezEQ3;
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 = (
8B2BBA6F2F96BD4C008BF82F /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* BezEQ3.component */,
);
name = Products;
sourceTree = "<group>";
};
8B2BBA6F2F96BD4C008BF82F /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B2BBA702F96BD4C008BF82F /* PublicUtility */,
8B2BBAD82F96BD4C008BF82F /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B2BBA702F96BD4C008BF82F /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B2BBA712F96BD4C008BF82F /* CAExtAudioFile.h */,
8B2BBA722F96BD4C008BF82F /* CACFMachPort.h */,
8B2BBA732F96BD4C008BF82F /* CABool.h */,
8B2BBA742F96BD4C008BF82F /* CAComponent.cpp */,
8B2BBA752F96BD4C008BF82F /* CADebugger.h */,
8B2BBA762F96BD4C008BF82F /* CACFNumber.cpp */,
8B2BBA772F96BD4C008BF82F /* CAGuard.h */,
8B2BBA782F96BD4C008BF82F /* CAAtomic.h */,
8B2BBA792F96BD4C008BF82F /* CAStreamBasicDescription.h */,
8B2BBA7A2F96BD4C008BF82F /* CACFObject.h */,
8B2BBA7B2F96BD4C008BF82F /* CAStreamRangedDescription.h */,
8B2BBA7C2F96BD4C008BF82F /* CATokenMap.h */,
8B2BBA7D2F96BD4C008BF82F /* CAComponent.h */,
8B2BBA7E2F96BD4C008BF82F /* CAAudioBufferList.h */,
8B2BBA7F2F96BD4C008BF82F /* CAAudioUnit.h */,
8B2BBA802F96BD4C008BF82F /* CAAUParameter.h */,
8B2BBA812F96BD4C008BF82F /* CAException.h */,
8B2BBA822F96BD4C008BF82F /* CAAUProcessor.cpp */,
8B2BBA832F96BD4C008BF82F /* CAAUProcessor.h */,
8B2BBA842F96BD4C008BF82F /* CAProcess.h */,
8B2BBA852F96BD4C008BF82F /* CACFDictionary.h */,
8B2BBA862F96BD4C008BF82F /* CAPThread.h */,
8B2BBA872F96BD4C008BF82F /* CAAUParameter.cpp */,
8B2BBA882F96BD4C008BF82F /* CAAudioTimeStamp.h */,
8B2BBA892F96BD4C008BF82F /* CAFilePathUtils.cpp */,
8B2BBA8A2F96BD4C008BF82F /* CAAudioValueRange.h */,
8B2BBA8B2F96BD4C008BF82F /* CAVectorUnitTypes.h */,
8B2BBA8C2F96BD4C008BF82F /* CAAudioChannelLayoutObject.cpp */,
8B2BBA8D2F96BD4C008BF82F /* CAGuard.cpp */,
8B2BBA8E2F96BD4C008BF82F /* CACFNumber.h */,
8B2BBA8F2F96BD4C008BF82F /* CACFDistributedNotification.cpp */,
8B2BBA902F96BD4C008BF82F /* CACFString.h */,
8B2BBA912F96BD4C008BF82F /* CAAUMIDIMapManager.cpp */,
8B2BBA922F96BD4C008BF82F /* CAComponentDescription.cpp */,
8B2BBA932F96BD4C008BF82F /* CAHostTimeBase.h */,
8B2BBA942F96BD4C008BF82F /* CADebugMacros.cpp */,
8B2BBA952F96BD4C008BF82F /* CAAudioFileFormats.h */,
8B2BBA962F96BD4C008BF82F /* CAAUMIDIMapManager.h */,
8B2BBA972F96BD4C008BF82F /* CACFDictionary.cpp */,
8B2BBA982F96BD4C008BF82F /* CAMutex.h */,
8B2BBA992F96BD4C008BF82F /* CACFString.cpp */,
8B2BBA9A2F96BD4C008BF82F /* CASettingsStorage.h */,
8B2BBA9B2F96BD4C008BF82F /* CADebugPrintf.h */,
8B2BBA9C2F96BD4C008BF82F /* CAXException.cpp */,
8B2BBA9D2F96BD4C008BF82F /* CAAUMIDIMap.h */,
8B2BBA9E2F96BD4C008BF82F /* AUParamInfo.h */,
8B2BBA9F2F96BD4C008BF82F /* CABitOperations.h */,
8B2BBAA02F96BD4C008BF82F /* CACFPreferences.cpp */,
8B2BBAA12F96BD4C008BF82F /* CABundleLocker.h */,
8B2BBAA22F96BD4C008BF82F /* CAPropertyAddress.h */,
8B2BBAA32F96BD4C008BF82F /* CAXException.h */,
8B2BBAA42F96BD4C008BF82F /* CAAudioChannelLayout.cpp */,
8B2BBAA52F96BD4C008BF82F /* CAThreadSafeList.h */,
8B2BBAA62F96BD4C008BF82F /* CAAudioUnitOutputCapturer.h */,
8B2BBAA72F96BD4C008BF82F /* AUParamInfo.cpp */,
8B2BBAA82F96BD4C008BF82F /* CASharedLibrary.cpp */,
8B2BBAA92F96BD4C008BF82F /* CAAUMIDIMap.cpp */,
8B2BBAAA2F96BD4C008BF82F /* CALogMacros.h */,
8B2BBAAB2F96BD4C008BF82F /* CACFMessagePort.cpp */,
8B2BBAAC2F96BD4C008BF82F /* CARingBuffer.h */,
8B2BBAAD2F96BD4C008BF82F /* AUOutputBL.cpp */,
8B2BBAAE2F96BD4C008BF82F /* CABufferList.h */,
8B2BBAAF2F96BD4C008BF82F /* CASharedLibrary.h */,
8B2BBAB02F96BD4C008BF82F /* CACFData.h */,
8B2BBAB12F96BD4C008BF82F /* CAStreamRangedDescription.cpp */,
8B2BBAB22F96BD4C008BF82F /* CAPThread.cpp */,
8B2BBAB32F96BD4C008BF82F /* CAAutoDisposer.h */,
8B2BBAB42F96BD4C008BF82F /* CACFPreferences.h */,
8B2BBAB52F96BD4C008BF82F /* CAVectorUnit.cpp */,
8B2BBAB62F96BD4C008BF82F /* CAComponentDescription.h */,
8B2BBAB72F96BD4C008BF82F /* CADebugMacros.h */,
8B2BBAB82F96BD4C008BF82F /* AUOutputBL.h */,
8B2BBAB92F96BD4C008BF82F /* CADebugPrintf.cpp */,
8B2BBABA2F96BD4C008BF82F /* CARingBuffer.cpp */,
8B2BBABB2F96BD4C008BF82F /* CACFPlugIn.h */,
8B2BBABC2F96BD4C008BF82F /* CASettingsStorage.cpp */,
8B2BBABD2F96BD4C008BF82F /* CAMixMap.h */,
8B2BBABE2F96BD4C008BF82F /* CACFDistributedNotification.h */,
8B2BBABF2F96BD4C008BF82F /* CAFilePathUtils.h */,
8B2BBAC02F96BD4C008BF82F /* CATink.h */,
8B2BBAC12F96BD4C008BF82F /* CAStreamBasicDescription.cpp */,
8B2BBAC22F96BD4C008BF82F /* CAAudioChannelLayout.h */,
8B2BBAC32F96BD4C008BF82F /* CAProcess.cpp */,
8B2BBAC42F96BD4C008BF82F /* CAHostTimeBase.cpp */,
8B2BBAC52F96BD4C008BF82F /* CAPersistence.cpp */,
8B2BBAC62F96BD4C008BF82F /* CAAudioBufferList.cpp */,
8B2BBAC72F96BD4C008BF82F /* CAAudioTimeStamp.cpp */,
8B2BBAC82F96BD4C008BF82F /* CAVectorUnit.h */,
8B2BBAC92F96BD4C008BF82F /* CAByteOrder.h */,
8B2BBACA2F96BD4C008BF82F /* CACFArray.h */,
8B2BBACB2F96BD4C008BF82F /* CAAtomicStack.h */,
8B2BBACC2F96BD4C008BF82F /* CAReferenceCounted.h */,
8B2BBACD2F96BD4C008BF82F /* CACFMachPort.cpp */,
8B2BBACE2F96BD4C008BF82F /* CABufferList.cpp */,
8B2BBACF2F96BD4C008BF82F /* CAMutex.cpp */,
8B2BBAD02F96BD4C008BF82F /* CADebugger.cpp */,
8B2BBAD12F96BD4C008BF82F /* CABundleLocker.cpp */,
8B2BBAD22F96BD4C008BF82F /* CAAudioFileFormats.cpp */,
8B2BBAD32F96BD4C008BF82F /* CAMath.h */,
8B2BBAD42F96BD4C008BF82F /* CACFArray.cpp */,
8B2BBAD52F96BD4C008BF82F /* CACFMessagePort.h */,
8B2BBAD62F96BD4C008BF82F /* CAAudioValueRange.cpp */,
8B2BBAD72F96BD4C008BF82F /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B2BBAD82F96BD4C008BF82F /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B2BBAD92F96BD4C008BF82F /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B2BBAD92F96BD4C008BF82F /* AUPublic */ = {
isa = PBXGroup;
children = (
8B2BBADA2F96BD4C008BF82F /* AUViewBase */,
8B2BBADC2F96BD4C008BF82F /* AUBase */,
8B2BBAEC2F96BD4C008BF82F /* OtherBases */,
8B2BBAEF2F96BD4C008BF82F /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B2BBADA2F96BD4C008BF82F /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B2BBADB2F96BD4C008BF82F /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B2BBADC2F96BD4C008BF82F /* AUBase */ = {
isa = PBXGroup;
children = (
8B2BBADD2F96BD4C008BF82F /* ComponentBase.cpp */,
8B2BBADE2F96BD4C008BF82F /* AUScopeElement.cpp */,
8B2BBADF2F96BD4C008BF82F /* ComponentBase.h */,
8B2BBAE02F96BD4C008BF82F /* AUBase.cpp */,
8B2BBAE12F96BD4C008BF82F /* AUInputElement.h */,
8B2BBAE22F96BD4C008BF82F /* AUBase.h */,
8B2BBAE32F96BD4C008BF82F /* AUPlugInDispatch.h */,
8B2BBAE42F96BD4C008BF82F /* AUDispatch.h */,
8B2BBAE52F96BD4C008BF82F /* AUOutputElement.cpp */,
8B2BBAE62F96BD4C008BF82F /* AUResources.r */,
8B2BBAE72F96BD4C008BF82F /* AUPlugInDispatch.cpp */,
8B2BBAE82F96BD4C008BF82F /* AUOutputElement.h */,
8B2BBAE92F96BD4C008BF82F /* AUDispatch.cpp */,
8B2BBAEA2F96BD4C008BF82F /* AUScopeElement.h */,
8B2BBAEB2F96BD4C008BF82F /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B2BBAEC2F96BD4C008BF82F /* OtherBases */ = {
isa = PBXGroup;
children = (
8B2BBAED2F96BD4C008BF82F /* AUEffectBase.cpp */,
8B2BBAEE2F96BD4C008BF82F /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B2BBAEF2F96BD4C008BF82F /* Utility */ = {
isa = PBXGroup;
children = (
8B2BBAF02F96BD4C008BF82F /* AUTimestampGenerator.h */,
8B2BBAF12F96BD4C008BF82F /* AUBaseHelper.cpp */,
8B2BBAF22F96BD4C008BF82F /* AUSilentTimeout.h */,
8B2BBAF32F96BD4C008BF82F /* AUInputFormatConverter.h */,
8B2BBAF42F96BD4C008BF82F /* AUTimestampGenerator.cpp */,
8B2BBAF52F96BD4C008BF82F /* AUBuffer.cpp */,
8B2BBAF62F96BD4C008BF82F /* AUMIDIDefs.h */,
8B2BBAF72F96BD4C008BF82F /* AUBuffer.h */,
8B2BBAF82F96BD4C008BF82F /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* BezEQ3.h */,
8BA05A660720730100365D66 /* BezEQ3.cpp */,
8BA05A670720730100365D66 /* BezEQ3.exp */,
8BA05A680720730100365D66 /* BezEQ3.r */,
8BA05A690720730100365D66 /* BezEQ3Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B2BBB292F96BD4C008BF82F /* CABundleLocker.h in Headers */,
8B2BBB4A2F96BD4C008BF82F /* CAAudioChannelLayout.h in Headers */,
8B2BBB402F96BD4C008BF82F /* AUOutputBL.h in Headers */,
8B2BBB1B2F96BD4C008BF82F /* CAHostTimeBase.h in Headers */,
8B2BBB632F96BD4C008BF82F /* ComponentBase.h in Headers */,
8B2BBB532F96BD4C008BF82F /* CAAtomicStack.h in Headers */,
8B2BBB102F96BD4C008BF82F /* CAAudioTimeStamp.h in Headers */,
8B2BBB2D2F96BD4C008BF82F /* CAThreadSafeList.h in Headers */,
8B2BBB082F96BD4C008BF82F /* CAAUParameter.h in Headers */,
8B2BBB7A2F96BD4C008BF82F /* AUBaseHelper.h in Headers */,
8B2BBB722F96BD4C008BF82F /* AUTimestampGenerator.h in Headers */,
8B2BBB232F96BD4C008BF82F /* CADebugPrintf.h in Headers */,
8B2BBB5D2F96BD4C008BF82F /* CACFMessagePort.h in Headers */,
8B2BBB0B2F96BD4C008BF82F /* CAAUProcessor.h in Headers */,
8B2BBB072F96BD4C008BF82F /* CAAudioUnit.h in Headers */,
8B2BBB602F96BD4C008BF82F /* AUViewLocalizedStringKeys.h in Headers */,
8B2BBB462F96BD4C008BF82F /* CACFDistributedNotification.h in Headers */,
8B2BBB052F96BD4C008BF82F /* CAComponent.h in Headers */,
8B2BBB132F96BD4C008BF82F /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* BezEQ3Version.h in Headers */,
8B2BBB472F96BD4C008BF82F /* CAFilePathUtils.h in Headers */,
8B2BBB092F96BD4C008BF82F /* CAException.h in Headers */,
8B2BBB002F96BD4C008BF82F /* CAAtomic.h in Headers */,
8B2BBAFF2F96BD4C008BF82F /* CAGuard.h in Headers */,
8B2BBB652F96BD4C008BF82F /* AUInputElement.h in Headers */,
8B2BBB3C2F96BD4C008BF82F /* CACFPreferences.h in Headers */,
8B2BBB512F96BD4C008BF82F /* CAByteOrder.h in Headers */,
8B2BBB342F96BD4C008BF82F /* CARingBuffer.h in Headers */,
8B2BBAFB2F96BD4C008BF82F /* CABool.h in Headers */,
8B2BBB202F96BD4C008BF82F /* CAMutex.h in Headers */,
8B2BBB662F96BD4C008BF82F /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* BezEQ3.h in Headers */,
8B2BBB182F96BD4C008BF82F /* CACFString.h in Headers */,
8B2BBB372F96BD4C008BF82F /* CASharedLibrary.h in Headers */,
8B2BBB042F96BD4C008BF82F /* CATokenMap.h in Headers */,
8B2BBAF92F96BD4C008BF82F /* CAExtAudioFile.h in Headers */,
8B2BBB0E2F96BD4C008BF82F /* CAPThread.h in Headers */,
8B2BBB2A2F96BD4C008BF82F /* CAPropertyAddress.h in Headers */,
8B2BBB542F96BD4C008BF82F /* CAReferenceCounted.h in Headers */,
8B2BBB792F96BD4C008BF82F /* AUBuffer.h in Headers */,
8B2BBB5B2F96BD4C008BF82F /* CAMath.h in Headers */,
8B2BBB3B2F96BD4C008BF82F /* CAAutoDisposer.h in Headers */,
8B2BBB022F96BD4C008BF82F /* CACFObject.h in Headers */,
8B2BBB222F96BD4C008BF82F /* CASettingsStorage.h in Headers */,
8B2BBB2B2F96BD4C008BF82F /* CAXException.h in Headers */,
8B2BBB482F96BD4C008BF82F /* CATink.h in Headers */,
8B2BBB752F96BD4C008BF82F /* AUInputFormatConverter.h in Headers */,
8B2BBB502F96BD4C008BF82F /* CAVectorUnit.h in Headers */,
8B2BBB0C2F96BD4C008BF82F /* CAProcess.h in Headers */,
8B2BBB122F96BD4C008BF82F /* CAAudioValueRange.h in Headers */,
8B2BBB272F96BD4C008BF82F /* CABitOperations.h in Headers */,
8B2BBB1D2F96BD4C008BF82F /* CAAudioFileFormats.h in Headers */,
8B2BBB162F96BD4C008BF82F /* CACFNumber.h in Headers */,
8B2BBB2E2F96BD4C008BF82F /* CAAudioUnitOutputCapturer.h in Headers */,
8B2BBB3F2F96BD4C008BF82F /* CADebugMacros.h in Headers */,
8B2BBB782F96BD4C008BF82F /* AUMIDIDefs.h in Headers */,
8B2BBB382F96BD4C008BF82F /* CACFData.h in Headers */,
8B2BBB012F96BD4C008BF82F /* CAStreamBasicDescription.h in Headers */,
8B2BBB672F96BD4C008BF82F /* AUPlugInDispatch.h in Headers */,
8B2BBB032F96BD4C008BF82F /* CAStreamRangedDescription.h in Headers */,
8B2BBB432F96BD4C008BF82F /* CACFPlugIn.h in Headers */,
8B2BBB062F96BD4C008BF82F /* CAAudioBufferList.h in Headers */,
8B2BBB1E2F96BD4C008BF82F /* CAAUMIDIMapManager.h in Headers */,
8B2BBB712F96BD4C008BF82F /* AUEffectBase.h in Headers */,
8B2BBB0D2F96BD4C008BF82F /* CACFDictionary.h in Headers */,
8B2BBB6E2F96BD4C008BF82F /* AUScopeElement.h in Headers */,
8B2BBB3E2F96BD4C008BF82F /* CAComponentDescription.h in Headers */,
8B2BBB742F96BD4C008BF82F /* AUSilentTimeout.h in Headers */,
8B2BBB362F96BD4C008BF82F /* CABufferList.h in Headers */,
8B2BBB682F96BD4C008BF82F /* AUDispatch.h in Headers */,
8B2BBB6C2F96BD4C008BF82F /* AUOutputElement.h in Headers */,
8B2BBB322F96BD4C008BF82F /* CALogMacros.h in Headers */,
8B2BBB262F96BD4C008BF82F /* AUParamInfo.h in Headers */,
8B2BBB452F96BD4C008BF82F /* CAMixMap.h in Headers */,
8B2BBB522F96BD4C008BF82F /* CACFArray.h in Headers */,
8B2BBAFA2F96BD4C008BF82F /* CACFMachPort.h in Headers */,
8B2BBB252F96BD4C008BF82F /* CAAUMIDIMap.h in Headers */,
8B2BBAFD2F96BD4C008BF82F /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* BezEQ3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "BezEQ3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = BezEQ3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = BezEQ3;
productReference = 8D01CCD20486CAD60068D4B7 /* BezEQ3.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 "BezEQ3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
Base,
ja,
fr,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* BezEQ3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* BezEQ3 */,
);
};
/* 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 = (
8B2BBB352F96BD4C008BF82F /* AUOutputBL.cpp in Sources */,
8B2BBB5A2F96BD4C008BF82F /* CAAudioFileFormats.cpp in Sources */,
8B2BBB4C2F96BD4C008BF82F /* CAHostTimeBase.cpp in Sources */,
8B2BBB242F96BD4C008BF82F /* CAXException.cpp in Sources */,
8B2BBB4E2F96BD4C008BF82F /* CAAudioBufferList.cpp in Sources */,
8B2BBB112F96BD4C008BF82F /* CAFilePathUtils.cpp in Sources */,
8B2BBB0F2F96BD4C008BF82F /* CAAUParameter.cpp in Sources */,
8B2BBB312F96BD4C008BF82F /* CAAUMIDIMap.cpp in Sources */,
8B2BBB5E2F96BD4C008BF82F /* CAAudioValueRange.cpp in Sources */,
8B2BBB6D2F96BD4C008BF82F /* AUDispatch.cpp in Sources */,
8B2BBB282F96BD4C008BF82F /* CACFPreferences.cpp in Sources */,
8B2BBB6B2F96BD4C008BF82F /* AUPlugInDispatch.cpp in Sources */,
8B2BBB0A2F96BD4C008BF82F /* CAAUProcessor.cpp in Sources */,
8B2BBB1F2F96BD4C008BF82F /* CACFDictionary.cpp in Sources */,
8B2BBB732F96BD4C008BF82F /* AUBaseHelper.cpp in Sources */,
8B2BBB582F96BD4C008BF82F /* CADebugger.cpp in Sources */,
8B2BBB2C2F96BD4C008BF82F /* CAAudioChannelLayout.cpp in Sources */,
8B2BBB2F2F96BD4C008BF82F /* AUParamInfo.cpp in Sources */,
8B2BBB4D2F96BD4C008BF82F /* CAPersistence.cpp in Sources */,
8B2BBB412F96BD4C008BF82F /* CADebugPrintf.cpp in Sources */,
8B2BBB762F96BD4C008BF82F /* AUTimestampGenerator.cpp in Sources */,
8B2BBB492F96BD4C008BF82F /* CAStreamBasicDescription.cpp in Sources */,
8B2BBB192F96BD4C008BF82F /* CAAUMIDIMapManager.cpp in Sources */,
8B2BBB442F96BD4C008BF82F /* CASettingsStorage.cpp in Sources */,
8B2BBB692F96BD4C008BF82F /* AUOutputElement.cpp in Sources */,
8B2BBB152F96BD4C008BF82F /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* BezEQ3.cpp in Sources */,
8B2BBB572F96BD4C008BF82F /* CAMutex.cpp in Sources */,
8B2BBB702F96BD4C008BF82F /* AUEffectBase.cpp in Sources */,
8B2BBB552F96BD4C008BF82F /* CACFMachPort.cpp in Sources */,
8B2BBB642F96BD4C008BF82F /* AUBase.cpp in Sources */,
8B2BBB302F96BD4C008BF82F /* CASharedLibrary.cpp in Sources */,
8B2BBB172F96BD4C008BF82F /* CACFDistributedNotification.cpp in Sources */,
8B2BBB1A2F96BD4C008BF82F /* CAComponentDescription.cpp in Sources */,
8B2BBB212F96BD4C008BF82F /* CACFString.cpp in Sources */,
8B2BBB612F96BD4C008BF82F /* ComponentBase.cpp in Sources */,
8B2BBB422F96BD4C008BF82F /* CARingBuffer.cpp in Sources */,
8B2BBB622F96BD4C008BF82F /* AUScopeElement.cpp in Sources */,
8B2BBB5F2F96BD4C008BF82F /* CAAudioUnit.cpp in Sources */,
8B2BBB5C2F96BD4C008BF82F /* CACFArray.cpp in Sources */,
8B2BBB592F96BD4C008BF82F /* CABundleLocker.cpp in Sources */,
8B2BBB4B2F96BD4C008BF82F /* CAProcess.cpp in Sources */,
8B2BBB392F96BD4C008BF82F /* CAStreamRangedDescription.cpp in Sources */,
8B2BBB3A2F96BD4C008BF82F /* CAPThread.cpp in Sources */,
8B2BBAFC2F96BD4C008BF82F /* CAComponent.cpp in Sources */,
8B2BBB142F96BD4C008BF82F /* CAAudioChannelLayoutObject.cpp in Sources */,
8B2BBB4F2F96BD4C008BF82F /* CAAudioTimeStamp.cpp in Sources */,
8B2BBB562F96BD4C008BF82F /* CABufferList.cpp in Sources */,
8B2BBB332F96BD4C008BF82F /* CACFMessagePort.cpp in Sources */,
8B2BBB3D2F96BD4C008BF82F /* CAVectorUnit.cpp in Sources */,
8B2BBB6F2F96BD4C008BF82F /* AUInputElement.cpp in Sources */,
8B2BBB772F96BD4C008BF82F /* AUBuffer.cpp in Sources */,
8B2BBB1C2F96BD4C008BF82F /* CADebugMacros.cpp in Sources */,
8B2BBAFE2F96BD4C008BF82F /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B2BBB7B2F96C188008BF82F /* 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 = BezEQ3.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 = BezEQ3;
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 = BezEQ3.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 = BezEQ3;
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 "BezEQ3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "BezEQ3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA248089833B7007656EC /* Debug */,
3E4BA249089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
/* End XCConfigurationList section */
};
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
}

View file

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

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