Galactic3

This commit is contained in:
Christopher Johnson 2024-10-13 17:34:06 -04:00
parent 62dd9782e6
commit 027b95722f
245 changed files with 64565 additions and 3 deletions

View file

@ -35,7 +35,7 @@ Lo-Fi: Flutter2, DeRez3, Pockey2, CrunchyGrooveWear, GrooveWear, Pockey, Flutter
Noise: Noise, Texturize, TexturizeMS, VoiceOfTheStarship, DarkNoise, ElectroHat, Silhouette, TapeDust
Reverb: kCathedral3, CreamCoat, Galactic, kPlateD, kPlateB, kPlateA, kPlateC, CrunchCoat, kCathedral2, Verbity2, Galactic2, Verbity, Chamber2, Chamber, Infinity2, NonlinearSpace, kCathedral, Infinity, MatrixVerb, PocketVerbs, Reverb
Reverb: Galactic3, kCathedral3, CreamCoat, kPlateD, kPlateB, kPlateA, kPlateC, CrunchCoat, kCathedral2, Verbity2, Galactic, Galactic2, Verbity, Chamber2, Chamber, Infinity2, NonlinearSpace, kCathedral, Infinity, MatrixVerb, PocketVerbs, Reverb
Saturation: Creature, Huge, NCSeventeen, Tube2, Tube, Spiral2, PurestDrive, Focus, Mojo, Dyno, Spiral, UnBox, Desk4, Righteous4
@ -2227,6 +2227,20 @@ What this means is, if you put stuff in the left, it makes a sort of cloud of re
And if you put stuff in mono… you get WIDE center content. The whole texture is wider than what original Galactic can do, without use of chorusing or pitch shifting to widen it. That gives it a completely different character, which is why you've still got original Galactic to use if you want. This is a second bite of the apple. It's about trying to get even deeper into space, and I hope you enjoy it :)
############ Galactic3 is exactly Galactic again, but with better undersampling.
This is always a bit tricky: I try to revisit my biggest hits and make them better. The last time I did that with Galactic, not only was it merely different, it had a bug that Galactic doesn't have: four variables that didn't get initialized properly. Galactic2 is now fixed and presumably bugless, and is still just 'different', a variation on what Galactic does.
Galactic3 is straight up better. Because it's exactly Galactic again… but instead of the linear interpolation it used to use (like CrunchCoat) for high sample rates, it's now using my new Bezier curve technique to interpolate, like kCathedral3 and CreamCoat.
First, that means it should have better tone at high sample rates. Second, in theory it should gracefully handle even really outrageous sample rates (Galactic will eventually start scaling the verb space down in size, Galactic3 won't). But most importantly, that means you have a Derez control like CreamCoat, except on the reverb engine of Galactic. So you have exactly the sounds of Galactic, but you can further undersample them for a cool 'reduce sample rate' effect… and in doing so, increase the reverb space in size. How much? To unreasonable size: galaxy-sized.
To use the new tone with the same apparent room size, decrease Bigness until the giant space is back to what you want again.
Galactic3 takes in audio (dry/wet control available) and uses the Replace control to determine how much of the new sound coming in should replace the space thats currently there. Detune shifts the pitch for both channels (in a quadrature pitch shift arrangement that means maximum widening for each sound) and Brightness controls both the brightness going into, and coming out of, the reverb. Replace, Brightness and Detune are designed to be playable on the fly to make your ambient spaces or evolve them. Bigness is the reverb buffers, so you can still alter that but it will make crashing noises when you do (that will then become more infinite spaces). And Derez, the new addition, will snap the whole pitch of the reverb space up and down without otherwise glitching it, so in theory it's playable as well.
I think this one is really fun! As you can see it fits with my experimental-music aesthetic (didnt even have to add Srsly2 on the end of it to make it superwide… though of course I could, and so can you). If youre not quite that abstract, you can still use it on pads for more normal things. Just set Replace to a lot higher, set the Brightness and Bigness appropriately, and use Detune to chorus out your new huge enormous synth pad, or whatever else needs to have an unreasonably huge and wide stereo field. Im pretty sure this can become your go-to for epic fields of reverb, no matter whats meant to be causing them. And Derez adds darkening abilities beyond the scope of original Galactic. Honestly, I think I finally managed to make it better rather than just different. Let me know what you think :)
############ GalacticVibe is the stereo vibrato from the original Galactic reverb.
GalacticVibe is about taking the code I used to make the Galactic reverb super wide, and breaking it out into a chorus-like effect… at which it turns out to be great!

View file

@ -188,6 +188,7 @@ add_airwindows_plugin(Fracture2)
add_airwindows_plugin(FromTape)
add_airwindows_plugin(Galactic)
add_airwindows_plugin(Galactic2)
add_airwindows_plugin(Galactic3)
add_airwindows_plugin(GalacticVibe)
add_airwindows_plugin(Gatelope)
add_airwindows_plugin(GlitchShifter)
@ -247,6 +248,7 @@ add_airwindows_plugin(LRFlipTimer)
add_airwindows_plugin(Luxor)
add_airwindows_plugin(MackEQ)
add_airwindows_plugin(Mackity)
add_airwindows_plugin(Mastering)
add_airwindows_plugin(MatrixVerb)
add_airwindows_plugin(Melt)
add_airwindows_plugin(MidAmp)
@ -424,6 +426,7 @@ add_airwindows_plugin(ZHighpass2)
add_airwindows_plugin(ZLowpass)
add_airwindows_plugin(ZLowpass2)
add_airwindows_plugin(ZNotch)
add_airwindows_plugin(Zoom)
add_airwindows_plugin(ZOutputStage)
add_airwindows_plugin(ZRegion)
add_airwindows_plugin(ZRegion2)

View file

@ -0,0 +1,209 @@
/* ========================================
* Galactic3 - Galactic3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Galactic3_H
#include "Galactic3.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Galactic3(audioMaster);}
Galactic3::Galactic3(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
B = 0.5;
C = 0.5;
D = 1.0;
E = 1.0;
F = 1.0;
iirAL = 0.0; iirAR = 0.0;
iirBL = 0.0; iirBR = 0.0;
for(int count = 0; count < 6479; count++) {aIL[count] = 0.0;aIR[count] = 0.0;}
for(int count = 0; count < 3659; count++) {aJL[count] = 0.0;aJR[count] = 0.0;}
for(int count = 0; count < 1719; count++) {aKL[count] = 0.0;aKR[count] = 0.0;}
for(int count = 0; count < 679; count++) {aLL[count] = 0.0;aLR[count] = 0.0;}
for(int count = 0; count < 9699; count++) {aAL[count] = 0.0;aAR[count] = 0.0;}
for(int count = 0; count < 5999; count++) {aBL[count] = 0.0;aBR[count] = 0.0;}
for(int count = 0; count < 2319; count++) {aCL[count] = 0.0;aCR[count] = 0.0;}
for(int count = 0; count < 939; count++) {aDL[count] = 0.0;aDR[count] = 0.0;}
for(int count = 0; count < 15219; count++) {aEL[count] = 0.0;aER[count] = 0.0;}
for(int count = 0; count < 8459; count++) {aFL[count] = 0.0;aFR[count] = 0.0;}
for(int count = 0; count < 4539; count++) {aGL[count] = 0.0;aGR[count] = 0.0;}
for(int count = 0; count < 3199; count++) {aHL[count] = 0.0;aHR[count] = 0.0;}
for(int count = 0; count < 3110; count++) {aML[count] = aMR[count] = 0.0;}
feedbackAL = 0.0; feedbackAR = 0.0;
feedbackBL = 0.0; feedbackBR = 0.0;
feedbackCL = 0.0; feedbackCR = 0.0;
feedbackDL = 0.0; feedbackDR = 0.0;
countI = 1;
countJ = 1;
countK = 1;
countL = 1;
countA = 1;
countB = 1;
countC = 1;
countD = 1;
countE = 1;
countF = 1;
countG = 1;
countH = 1;
countM = 1;
//the predelay
vibM = 3.0;
oldfpd = 429496.7295;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 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
}
Galactic3::~Galactic3() {}
VstInt32 Galactic3::getVendorVersion () {return 1000;}
void Galactic3::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Galactic3::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 Galactic3::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;
/* 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 Galactic3::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]);
/* 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 Galactic3::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;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Galactic3::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;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void Galactic3::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Replace", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Brightns", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Detune", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Derez", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "Bigness", kVstMaxParamStrLen); break;
case kParamF: 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 Galactic3::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;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Galactic3::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;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Galactic3::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Galactic3::getEffectName(char* name) {
vst_strncpy(name, "Galactic3", kVstMaxProductStrLen); return true;
}
VstPlugCategory Galactic3::getPlugCategory() {return kPlugCategEffect;}
bool Galactic3::getProductString(char* text) {
vst_strncpy (text, "airwindows Galactic3", kVstMaxProductStrLen); return true;
}
bool Galactic3::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,156 @@
/* ========================================
* Galactic3 - Galactic3.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Galactic3_H
#define __Galactic3_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,
kNumParameters = 6
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'galc'; //Change this to what the AU identity is!
class Galactic3 :
public AudioEffectX
{
public:
Galactic3(audioMasterCallback audioMaster);
~Galactic3();
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;
double iirAL;
double iirBL;
double aIL[6480];
double aJL[3660];
double aKL[1720];
double aLL[680];
double aAL[9700];
double aBL[6000];
double aCL[2320];
double aDL[940];
double aEL[15220];
double aFL[8460];
double aGL[4540];
double aHL[3200];
double aML[3111];
double aMR[3111];
double vibML, vibMR, depthM, oldfpd;
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double iirAR;
double iirBR;
double aIR[6480];
double aJR[3660];
double aKR[1720];
double aLR[680];
double aAR[9700];
double aBR[6000];
double aCR[2320];
double aDR[940];
double aER[15220];
double aFR[8460];
double aGR[4540];
double aHR[3200];
double feedbackAR;
double feedbackBR;
double feedbackCR;
double feedbackDR;
int countA, delayA;
int countB, delayB;
int countC, delayC;
int countD, delayD;
int countE, delayE;
int countF, delayF;
int countG, delayG;
int countH, delayH;
int countI, delayI;
int countJ, delayJ;
int countK, delayK;
int countL, delayL;
int countM, delayM;//all these ints are shared across channels, not duplicated
double vibM;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
uint32_t fpdL;
uint32_t fpdR;
//default stuff
float A;
float B;
float C;
float D;
float E;
float F;//parameters. Always 0-1, and we scale/alter them elsewhere.
};
#endif

View file

@ -0,0 +1,438 @@
/* ========================================
* Galactic3 - Galactic3.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Galactic3_H
#include "Galactic3.h"
#endif
void Galactic3::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double regen = 0.0625+((1.0-A)*0.0625);
double attenuate = (1.0 - (regen / 0.125))*1.333;
double lowpass = pow(1.00001-(1.0-B),2.0)/sqrt(overallscale);
double drift = pow(C,3)*0.001;
double derez = D/overallscale;
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
derez = 1.0 / ((int)(1.0/derez));
//this hard-locks derez to exact subdivisions of 1.0
double size = (E*1.77)+0.1;
double wet = 1.0-(pow(1.0-F,3));
delayI = 3407.0*size;
delayJ = 1823.0*size;
delayK = 859.0*size;
delayL = 331.0*size;
delayA = 4801.0*size;
delayB = 2909.0*size;
delayC = 1153.0*size;
delayD = 461.0*size;
delayE = 7607.0*size;
delayF = 4217.0*size;
delayG = 2269.0*size;
delayH = 1597.0*size;
delayM = 256;
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;
vibM += (oldfpd*drift);
if (vibM > (3.141592653589793238*2.0)) {
vibM = 0.0;
oldfpd = 0.4294967295+(fpdL*0.0000000000618);
}
aML[countM] = inputSampleL * attenuate;
aMR[countM] = inputSampleR * attenuate;
countM++; if (countM < 0 || countM > delayM) countM = 0;
double offsetML = (sin(vibM)+1.0)*127;
double offsetMR = (sin(vibM+(3.141592653589793238/2.0))+1.0)*127;
int workingML = countM + offsetML;
int workingMR = countM + offsetMR;
double interpolML = (aML[workingML-((workingML > delayM)?delayM+1:0)] * (1-(offsetML-floor(offsetML))));
interpolML += (aML[workingML+1-((workingML+1 > delayM)?delayM+1:0)] * ((offsetML-floor(offsetML))) );
double interpolMR = (aMR[workingMR-((workingMR > delayM)?delayM+1:0)] * (1-(offsetMR-floor(offsetMR))));
interpolMR += (aMR[workingMR+1-((workingMR+1 > delayM)?delayM+1:0)] * ((offsetMR-floor(offsetMR))) );
inputSampleL = interpolML;
inputSampleR = interpolMR;
//predelay that applies vibrato
//want vibrato speed AND depth like in MatrixVerb
iirAL = (iirAL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirAL;
iirAR = (iirAR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirAR;
//initial filter
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
aIL[countI] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackAR * regen);
aJL[countJ] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackBR * regen);
aKL[countK] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackCR * regen);
aLL[countL] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackDR * regen);
bez[bez_UnInL] = bez[bez_SampL];
aIR[countI] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackAL * regen);
aJR[countJ] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackBL * regen);
aKR[countK] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackCL * regen);
aLR[countL] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackDL * regen);
bez[bez_UnInR] = bez[bez_SampR];
countI++; if (countI < 0 || countI > delayI) countI = 0;
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
countK++; if (countK < 0 || countK > delayK) countK = 0;
countL++; if (countL < 0 || countL > delayL) countL = 0;
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
//first block: now we have four outputs
aAL[countA] = (outIL - (outJL + outKL + outLL));
aBL[countB] = (outJL - (outIL + outKL + outLL));
aCL[countC] = (outKL - (outIL + outJL + outLL));
aDL[countD] = (outLL - (outIL + outJL + outKL));
aAR[countA] = (outIR - (outJR + outKR + outLR));
aBR[countB] = (outJR - (outIR + outKR + outLR));
aCR[countC] = (outKR - (outIR + outJR + outLR));
aDR[countD] = (outLR - (outIR + outJR + outKR));
countA++; if (countA < 0 || countA > delayA) countA = 0;
countB++; if (countB < 0 || countB > delayB) countB = 0;
countC++; if (countC < 0 || countC > delayC) countC = 0;
countD++; if (countD < 0 || countD > delayD) countD = 0;
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
//second block: four more outputs
aEL[countE] = (outAL - (outBL + outCL + outDL));
aFL[countF] = (outBL - (outAL + outCL + outDL));
aGL[countG] = (outCL - (outAL + outBL + outDL));
aHL[countH] = (outDL - (outAL + outBL + outCL));
aER[countE] = (outAR - (outBR + outCR + outDR));
aFR[countF] = (outBR - (outAR + outCR + outDR));
aGR[countG] = (outCR - (outAR + outBR + outDR));
aHR[countH] = (outDR - (outAR + outBR + outCR));
countE++; if (countE < 0 || countE > delayE) countE = 0;
countF++; if (countF < 0 || countF > delayF) countF = 0;
countG++; if (countG < 0 || countG > delayG) countG = 0;
countH++; if (countH < 0 || countH > delayH) countH = 0;
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
//third block: final outputs
feedbackAL = (outEL - (outFL + outGL + outHL));
feedbackBL = (outFL - (outEL + outGL + outHL));
feedbackCL = (outGL - (outEL + outFL + outHL));
feedbackDL = (outHL - (outEL + outFL + outGL));
feedbackAR = (outER - (outFR + outGR + outHR));
feedbackBR = (outFR - (outER + outGR + outHR));
feedbackCR = (outGR - (outER + outFR + outHR));
feedbackDR = (outHR - (outER + outFR + outGR));
//which we need to feed back into the input again, a bit
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
//and take the final combined sum of outputs
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 CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
//end filter
if (wet < 1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
}
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}
void Galactic3::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double overallscale = 1.0;
overallscale /= 44100.0;
overallscale *= getSampleRate();
double regen = 0.0625+((1.0-A)*0.0625);
double attenuate = (1.0 - (regen / 0.125))*1.333;
double lowpass = pow(1.00001-(1.0-B),2.0)/sqrt(overallscale);
double drift = pow(C,3)*0.001;
double derez = D/overallscale;
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
derez = 1.0 / ((int)(1.0/derez));
//this hard-locks derez to exact subdivisions of 1.0
double size = (E*1.77)+0.1;
double wet = 1.0-(pow(1.0-F,3));
delayI = 3407.0*size;
delayJ = 1823.0*size;
delayK = 859.0*size;
delayL = 331.0*size;
delayA = 4801.0*size;
delayB = 2909.0*size;
delayC = 1153.0*size;
delayD = 461.0*size;
delayE = 7607.0*size;
delayF = 4217.0*size;
delayG = 2269.0*size;
delayH = 1597.0*size;
delayM = 256;
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;
vibM += (oldfpd*drift);
if (vibM > (3.141592653589793238*2.0)) {
vibM = 0.0;
oldfpd = 0.4294967295+(fpdL*0.0000000000618);
}
aML[countM] = inputSampleL * attenuate;
aMR[countM] = inputSampleR * attenuate;
countM++; if (countM < 0 || countM > delayM) countM = 0;
double offsetML = (sin(vibM)+1.0)*127;
double offsetMR = (sin(vibM+(3.141592653589793238/2.0))+1.0)*127;
int workingML = countM + offsetML;
int workingMR = countM + offsetMR;
double interpolML = (aML[workingML-((workingML > delayM)?delayM+1:0)] * (1-(offsetML-floor(offsetML))));
interpolML += (aML[workingML+1-((workingML+1 > delayM)?delayM+1:0)] * ((offsetML-floor(offsetML))) );
double interpolMR = (aMR[workingMR-((workingMR > delayM)?delayM+1:0)] * (1-(offsetMR-floor(offsetMR))));
interpolMR += (aMR[workingMR+1-((workingMR+1 > delayM)?delayM+1:0)] * ((offsetMR-floor(offsetMR))) );
inputSampleL = interpolML;
inputSampleR = interpolMR;
//predelay that applies vibrato
//want vibrato speed AND depth like in MatrixVerb
iirAL = (iirAL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirAL;
iirAR = (iirAR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirAR;
//initial filter
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
aIL[countI] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackAR * regen);
aJL[countJ] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackBR * regen);
aKL[countK] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackCR * regen);
aLL[countL] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackDR * regen);
bez[bez_UnInL] = bez[bez_SampL];
aIR[countI] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackAL * regen);
aJR[countJ] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackBL * regen);
aKR[countK] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackCL * regen);
aLR[countL] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackDL * regen);
bez[bez_UnInR] = bez[bez_SampR];
countI++; if (countI < 0 || countI > delayI) countI = 0;
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
countK++; if (countK < 0 || countK > delayK) countK = 0;
countL++; if (countL < 0 || countL > delayL) countL = 0;
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
//first block: now we have four outputs
aAL[countA] = (outIL - (outJL + outKL + outLL));
aBL[countB] = (outJL - (outIL + outKL + outLL));
aCL[countC] = (outKL - (outIL + outJL + outLL));
aDL[countD] = (outLL - (outIL + outJL + outKL));
aAR[countA] = (outIR - (outJR + outKR + outLR));
aBR[countB] = (outJR - (outIR + outKR + outLR));
aCR[countC] = (outKR - (outIR + outJR + outLR));
aDR[countD] = (outLR - (outIR + outJR + outKR));
countA++; if (countA < 0 || countA > delayA) countA = 0;
countB++; if (countB < 0 || countB > delayB) countB = 0;
countC++; if (countC < 0 || countC > delayC) countC = 0;
countD++; if (countD < 0 || countD > delayD) countD = 0;
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
//second block: four more outputs
aEL[countE] = (outAL - (outBL + outCL + outDL));
aFL[countF] = (outBL - (outAL + outCL + outDL));
aGL[countG] = (outCL - (outAL + outBL + outDL));
aHL[countH] = (outDL - (outAL + outBL + outCL));
aER[countE] = (outAR - (outBR + outCR + outDR));
aFR[countF] = (outBR - (outAR + outCR + outDR));
aGR[countG] = (outCR - (outAR + outBR + outDR));
aHR[countH] = (outDR - (outAR + outBR + outCR));
countE++; if (countE < 0 || countE > delayE) countE = 0;
countF++; if (countF < 0 || countF > delayF) countF = 0;
countG++; if (countG < 0 || countG > delayG) countG = 0;
countH++; if (countH < 0 || countH > delayH) countH = 0;
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
//third block: final outputs
feedbackAL = (outEL - (outFL + outGL + outHL));
feedbackBL = (outFL - (outEL + outGL + outHL));
feedbackCL = (outGL - (outEL + outFL + outHL));
feedbackDL = (outHL - (outEL + outFL + outGL));
feedbackAR = (outER - (outFR + outGR + outHR));
feedbackBR = (outFR - (outER + outGR + outHR));
feedbackCR = (outGR - (outER + outFR + outHR));
feedbackDR = (outHR - (outER + outFR + outGR));
//which we need to feed back into the input again, a bit
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
//and take the final combined sum of outputs
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 CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
//end filter
if (wet < 1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
}
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

View file

@ -0,0 +1,198 @@
/* ========================================
* Mastering - Mastering.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Mastering_H
#include "Mastering.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Mastering(audioMaster);}
Mastering::Mastering(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;
I = 0.0;
for (int x = 0; x < air_total; x++) air[x] = 0.0;
for (int x = 0; x < kal_total; x++) {kalM[x] = 0.0;kalS[x] = 0.0;}
lastSinewL = 0.0;
lastSinewR = 0.0;
lastSampleL = 0.0;
wasPosClipL = false;
wasNegClipL = false;
lastSampleR = 0.0;
wasPosClipR = false;
wasNegClipR = false;
for (int x = 0; x < 16; x++) {intermediateL[x] = 0.0; intermediateR[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
}
Mastering::~Mastering() {}
VstInt32 Mastering::getVendorVersion () {return 1000;}
void Mastering::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Mastering::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 Mastering::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
chunkData[1] = B;
chunkData[2] = C;
chunkData[3] = D;
chunkData[4] = E;
chunkData[5] = F;
chunkData[6] = G;
chunkData[7] = H;
chunkData[8] = I;
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
started with. */
*data = chunkData;
return kNumParameters * sizeof(float);
}
VstInt32 Mastering::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
B = pinParameter(chunkData[1]);
C = pinParameter(chunkData[2]);
D = pinParameter(chunkData[3]);
E = pinParameter(chunkData[4]);
F = pinParameter(chunkData[5]);
G = pinParameter(chunkData[6]);
H = pinParameter(chunkData[7]);
I = pinParameter(chunkData[8]);
/* We're ignoring byteSize as we found it to be a filthy liar */
/* calculate any other fields you need here - you could copy in
code from setParameter() here. */
return 0;
}
void Mastering::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
case kParamB: B = value; break;
case kParamC: C = value; break;
case kParamD: D = value; break;
case kParamE: E = value; break;
case kParamF: F = value; break;
case kParamG: G = value; break;
case kParamH: H = value; break;
case kParamI: I = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Mastering::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; break;
case kParamB: return B; break;
case kParamC: return C; break;
case kParamD: return D; break;
case kParamE: return E; break;
case kParamF: return F; break;
case kParamG: return G; break;
case kParamH: return H; break;
case kParamI: return I; break;
default: break; // unknown parameter, shouldn't happen!
} return 0.0; //we only need to update the relevant name, this is simple to manage
}
void Mastering::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Air", kVstMaxParamStrLen); break;
case kParamB: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
case kParamC: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
case kParamD: vst_strncpy (text, "Sub", kVstMaxParamStrLen); break;
case kParamE: vst_strncpy (text, "XvM-L", kVstMaxParamStrLen); break;
case kParamF: vst_strncpy (text, "XvL-S", kVstMaxParamStrLen); break;
case kParamG: vst_strncpy (text, "Zoom", kVstMaxParamStrLen); break;
case kParamH: vst_strncpy (text, "DarkF", kVstMaxParamStrLen); break;
case kParamI: vst_strncpy (text, "Ratio", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Mastering::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;
case kParamI: float2string (I, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Mastering::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;
case kParamI: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Mastering::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Mastering::getEffectName(char* name) {
vst_strncpy(name, "Mastering", kVstMaxProductStrLen); return true;
}
VstPlugCategory Mastering::getPlugCategory() {return kPlugCategEffect;}
bool Mastering::getProductString(char* text) {
vst_strncpy (text, "airwindows Mastering", kVstMaxProductStrLen); return true;
}
bool Mastering::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

@ -0,0 +1,159 @@
/* ========================================
* Mastering - Mastering.h
* Created 8/12/11 by SPIAdmin
* Copyright (c) Airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Mastering_H
#define __Mastering_H
#ifndef __audioeffect__
#include "audioeffectx.h"
#endif
#include <set>
#include <string>
#include <math.h>
enum {
kParamA =0,
kParamB =1,
kParamC =2,
kParamD =3,
kParamE =4,
kParamF =5,
kParamG =6,
kParamH =7,
kParamI =8,
kNumParameters = 9
}; //
const int kNumPrograms = 0;
const int kNumInputs = 2;
const int kNumOutputs = 2;
const unsigned long kUniqueId = 'mast'; //Change this to what the AU identity is!
class Mastering :
public AudioEffectX
{
public:
Mastering(audioMasterCallback audioMaster);
~Mastering();
virtual bool getEffectName(char* name); // The plug-in name
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
virtual bool getVendorString(char* text); // Vendor info
virtual VstInt32 getVendorVersion(); // Version number
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
virtual void getProgramName(char *name); // read the name from the host
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
virtual VstInt32 getChunk (void** data, bool isPreset);
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
virtual VstInt32 canDo(char *text);
private:
char _programName[kVstMaxProgNameLen + 1];
std::set< std::string > _canDo;
float A;
float B;
float C;
float D;
float E;
float F;
float G;
float H;
float I;
enum {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
pvAR1,
pvSR1,
accSR1,
acc2SR1,
pvAR2,
pvSR2,
accSR2,
acc2SR2,
pvAR3,
pvSR3,
accSR3,
pvAR4,
pvSR4,
gndavgR,
outAR,
gainAR,
air_total
};
double air[air_total];
enum {
prevSampL1,
prevSlewL1,
accSlewL1,
prevSampL2,
prevSlewL2,
accSlewL2,
prevSampL3,
prevSlewL3,
accSlewL3,
kalGainL,
kalOutL,
kalAvgL,
prevSampR1,
prevSlewR1,
accSlewR1,
prevSampR2,
prevSlewR2,
accSlewR2,
prevSampR3,
prevSlewR3,
accSlewR3,
kalGainR,
kalOutR,
kalAvgR,
kal_total
};
double kalM[kal_total];
double kalS[kal_total];
long double lastSinewL;
long double lastSinewR;
//this is overkill, used to run both Zoom and Sinew stages as they are after
//the summing in StoneFire, which sums three doubles to a long double.
double lastSampleL;
double intermediateL[16];
bool wasPosClipL;
bool wasNegClipL;
double lastSampleR;
double intermediateR[16];
bool wasPosClipR;
bool wasNegClipR; //Stereo ClipOnly2
uint32_t fpdL;
uint32_t fpdR;
//default stuff
};
#endif

View file

@ -0,0 +1,572 @@
/* ========================================
* Mastering - Mastering.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Mastering_H
#include "Mastering.h"
#endif
void Mastering::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();
long double trebleGain = A+0.5;
if (trebleGain > 1.0) trebleGain = pow(trebleGain,3.0+sqrt(overallscale));
//this boost is necessary to adapt to higher sample rates
long double midGain = B+0.5;
long double bassGain = (1.0-C)+0.5;
long double subGain = D+0.5;
//simple four band to adjust
double kalMid = pow(1.0-E,3);
//crossover frequency between mid/bass
double kalSub = (1.0-(pow(F,3)));
//crossover frequency between bass/sub
double zoom = (G*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
double threshSinew = pow(H,2)/overallscale;
double depthSinew = I;
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
//begin Air3L
air[pvSL4] = air[pvAL4] - air[pvAL3]; air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1]; air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3]; air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2]; air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5; air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3]; air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1]; air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
long double midL = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
long double temp = (midL + air[gndavgL])*0.5; air[gndavgL] = midL; midL = temp;
long double trebleL = drySampleL-midL;
//end Air3L
//begin Air3R
air[pvSR4] = air[pvAR4] - air[pvAR3]; air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1]; air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3]; air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2]; air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5; air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3]; air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1]; air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
long double midR = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (midR + air[gndavgR])*0.5; air[gndavgR] = midR; midR = temp;
long double trebleR = drySampleR-midR;
//end Air3R
//begin KalmanML
temp = midL;
kalM[prevSlewL3] += kalM[prevSampL3] - kalM[prevSampL2]; kalM[prevSlewL3] *= 0.5;
kalM[prevSlewL2] += kalM[prevSampL2] - kalM[prevSampL1]; kalM[prevSlewL2] *= 0.5;
kalM[prevSlewL1] += kalM[prevSampL1] - midL; kalM[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewL2] += kalM[prevSlewL3] - kalM[prevSlewL2]; kalM[accSlewL2] *= 0.5;
kalM[accSlewL1] += kalM[prevSlewL2] - kalM[prevSlewL1]; kalM[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewL3] += (kalM[accSlewL2] - kalM[accSlewL1]); kalM[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutL] += kalM[prevSampL1] + kalM[prevSlewL2] + kalM[accSlewL3]; kalM[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainL] += fabs(temp-kalM[kalOutL])*kalMid*8.0; kalM[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainL] > kalMid*0.5) kalM[kalGainL] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutL] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampL3] = kalM[prevSampL2]; kalM[prevSampL2] = kalM[prevSampL1];
kalM[prevSampL1] = (kalM[kalGainL] * kalM[kalOutL]) + ((1.0-kalM[kalGainL])*temp);
//feed the chain of previous samples
long double bassL = (kalM[kalOutL]+kalM[kalAvgL])*0.5;
kalM[kalAvgL] = kalM[kalOutL];
midL -= bassL;
//end KalmanML
//begin KalmanMR
temp = midR;
kalM[prevSlewR3] += kalM[prevSampR3] - kalM[prevSampR2]; kalM[prevSlewR3] *= 0.5;
kalM[prevSlewR2] += kalM[prevSampR2] - kalM[prevSampR1]; kalM[prevSlewR2] *= 0.5;
kalM[prevSlewR1] += kalM[prevSampR1] - midR; kalM[prevSlewR1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewR2] += kalM[prevSlewR3] - kalM[prevSlewR2]; kalM[accSlewR2] *= 0.5;
kalM[accSlewR1] += kalM[prevSlewR2] - kalM[prevSlewR1]; kalM[accSlewR1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewR3] += (kalM[accSlewR2] - kalM[accSlewR1]); kalM[accSlewR3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutR] += kalM[prevSampR1] + kalM[prevSlewR2] + kalM[accSlewR3]; kalM[kalOutR] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainR] += fabs(temp-kalM[kalOutR])*kalMid*8.0; kalM[kalGainR] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainR] > kalMid*0.5) kalM[kalGainR] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutR] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampR3] = kalM[prevSampR2]; kalM[prevSampR2] = kalM[prevSampR1];
kalM[prevSampR1] = (kalM[kalGainR] * kalM[kalOutR]) + ((1.0-kalM[kalGainR])*temp);
//feed the chain of previous samples
long double bassR = (kalM[kalOutR]+kalM[kalAvgR])*0.5;
kalM[kalAvgR] = kalM[kalOutR];
midR -= bassR;
//end KalmanMR
//begin KalmanSL
temp = bassL;
kalS[prevSlewL3] += kalS[prevSampL3] - kalS[prevSampL2]; kalS[prevSlewL3] *= 0.5;
kalS[prevSlewL2] += kalS[prevSampL2] - kalS[prevSampL1]; kalS[prevSlewL2] *= 0.5;
kalS[prevSlewL1] += kalS[prevSampL1] - bassL; kalS[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewL2] += kalS[prevSlewL3] - kalS[prevSlewL2]; kalS[accSlewL2] *= 0.5;
kalS[accSlewL1] += kalS[prevSlewL2] - kalS[prevSlewL1]; kalS[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewL3] += (kalS[accSlewL2] - kalS[accSlewL1]); kalS[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutL] += kalS[prevSampL1] + kalS[prevSlewL2] + kalS[accSlewL3]; kalS[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainL] += fabs(temp-kalS[kalOutL])*kalSub*8.0; kalS[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainL] > kalSub*0.5) kalS[kalGainL] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutL] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampL3] = kalS[prevSampL2]; kalS[prevSampL2] = kalS[prevSampL1];
kalS[prevSampL1] = (kalS[kalGainL] * kalS[kalOutL]) + ((1.0-kalS[kalGainL])*temp);
//feed the chain of previous samples
long double subL = (kalS[kalOutL]+kalS[kalAvgL])*0.5;
kalS[kalAvgL] = kalS[kalOutL];
bassL -= subL;
//end KalmanSL
//begin KalmanSR
temp = bassR;
kalS[prevSlewR3] += kalS[prevSampR3] - kalS[prevSampR2]; kalS[prevSlewR3] *= 0.5;
kalS[prevSlewR2] += kalS[prevSampR2] - kalS[prevSampR1]; kalS[prevSlewR2] *= 0.5;
kalS[prevSlewR1] += kalS[prevSampR1] - bassR; kalS[prevSlewR1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewR2] += kalS[prevSlewR3] - kalS[prevSlewR2]; kalS[accSlewR2] *= 0.5;
kalS[accSlewR1] += kalS[prevSlewR2] - kalS[prevSlewR1]; kalS[accSlewR1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewR3] += (kalS[accSlewR2] - kalS[accSlewR1]); kalS[accSlewR3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutR] += kalS[prevSampR1] + kalS[prevSlewR2] + kalS[accSlewR3]; kalS[kalOutR] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainR] += fabs(temp-kalS[kalOutR])*kalSub*8.0; kalS[kalGainR] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainR] > kalSub*0.5) kalS[kalGainR] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutR] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampR3] = kalS[prevSampR2]; kalS[prevSampR2] = kalS[prevSampR1];
kalS[prevSampR1] = (kalS[kalGainR] * kalS[kalOutR]) + ((1.0-kalS[kalGainR])*temp);
//feed the chain of previous samples
long double subR = (kalS[kalOutR]+kalS[kalAvgR])*0.5;
kalS[kalAvgR] = kalS[kalOutR];
bassR -= subR;
//end KalmanSR
inputSampleL = (subL*subGain);
inputSampleL += (bassL*bassGain);
inputSampleL += (midL*midGain);
inputSampleL += (trebleL*trebleGain);
inputSampleR = (subR*subGain);
inputSampleR += (bassR*bassGain);
inputSampleR += (midR*midGain);
inputSampleR += (trebleR*trebleGain);
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
closer = inputSampleR * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleR = (inputSampleR*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
farther = fabs(inputSampleR) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleR > 0.0) inputSampleR = (inputSampleR*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleR < 0.0) inputSampleR = (inputSampleR*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin ClipOnly2 stereo as a little, compressed chunk that can be dropped into code
if (inputSampleL > 4.0) inputSampleL = 4.0; if (inputSampleL < -4.0) inputSampleL = -4.0;
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=0.7058208+(inputSampleL*0.2609148);
else lastSampleL = 0.2491717+(lastSampleL*0.7390851);
} wasPosClipL = false;
if (inputSampleL>0.9549925859) {wasPosClipL=true;inputSampleL=0.7058208+(lastSampleL*0.2609148);}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=-0.7058208+(inputSampleL*0.2609148);
else lastSampleL=-0.2491717+(lastSampleL*0.7390851);
} wasNegClipL = false;
if (inputSampleL<-0.9549925859) {wasNegClipL=true;inputSampleL=-0.7058208+(lastSampleL*0.2609148);}
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]; //run a little buffer to handle this
if (inputSampleR > 4.0) inputSampleR = 4.0; if (inputSampleR < -4.0) inputSampleR = -4.0;
if (wasPosClipR == true) { //current will be over
if (inputSampleR<lastSampleR) lastSampleR=0.7058208+(inputSampleR*0.2609148);
else lastSampleR = 0.2491717+(lastSampleR*0.7390851);
} wasPosClipR = false;
if (inputSampleR>0.9549925859) {wasPosClipR=true;inputSampleR=0.7058208+(lastSampleR*0.2609148);}
if (wasNegClipR == true) { //current will be -over
if (inputSampleR > lastSampleR) lastSampleR=-0.7058208+(inputSampleR*0.2609148);
else lastSampleR=-0.2491717+(lastSampleR*0.7390851);
} wasNegClipR = false;
if (inputSampleR<-0.9549925859) {wasNegClipR=true;inputSampleR=-0.7058208+(lastSampleR*0.2609148);}
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]; //run a little buffer to handle this
//end ClipOnly2 stereo as a little, compressed chunk that can be dropped into code
temp = inputSampleL;
long double sinew = threshSinew * cos(lastSinewL*lastSinewL);
if (inputSampleL - lastSinewL > sinew) temp = lastSinewL + sinew;
if (-(inputSampleL - lastSinewL) > sinew) temp = lastSinewL - sinew;
lastSinewL = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(lastSinewL*depthSinew);
temp = inputSampleR;
sinew = threshSinew * cos(lastSinewR*lastSinewR);
if (inputSampleR - lastSinewR > sinew) temp = lastSinewR + sinew;
if (-(inputSampleR - lastSinewR) > sinew) temp = lastSinewR - sinew;
lastSinewR = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(lastSinewR*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//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 Mastering::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();
long double trebleGain = A+0.5;
if (trebleGain > 1.0) trebleGain = pow(trebleGain,3.0+sqrt(overallscale));
//this boost is necessary to adapt to higher sample rates
long double midGain = B+0.5;
long double bassGain = (1.0-C)+0.5;
long double subGain = D+0.5;
//simple four band to adjust
double kalMid = pow(1.0-E,3);
//crossover frequency between mid/bass
double kalSub = (1.0-(pow(F,3)));
//crossover frequency between bass/sub
double zoom = (G*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
double threshSinew = pow(H,2)/overallscale;
double depthSinew = I;
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
while (--sampleFrames >= 0)
{
double inputSampleL = *in1;
double inputSampleR = *in2;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
double drySampleL = inputSampleL;
double drySampleR = inputSampleR;
//begin Air3L
air[pvSL4] = air[pvAL4] - air[pvAL3]; air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1]; air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3]; air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2]; air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5; air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3]; air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1]; air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
long double midL = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
long double temp = (midL + air[gndavgL])*0.5; air[gndavgL] = midL; midL = temp;
long double trebleL = drySampleL-midL;
//end Air3L
//begin Air3R
air[pvSR4] = air[pvAR4] - air[pvAR3]; air[pvSR3] = air[pvAR3] - air[pvAR2];
air[pvSR2] = air[pvAR2] - air[pvAR1]; air[pvSR1] = air[pvAR1] - inputSampleR;
air[accSR3] = air[pvSR4] - air[pvSR3]; air[accSR2] = air[pvSR3] - air[pvSR2];
air[accSR1] = air[pvSR2] - air[pvSR1];
air[acc2SR2] = air[accSR3] - air[accSR2]; air[acc2SR1] = air[accSR2] - air[accSR1];
air[outAR] = -(air[pvAR1] + air[pvSR3] + air[acc2SR2] - ((air[acc2SR2] + air[acc2SR1])*0.5));
air[gainAR] *= 0.5; air[gainAR] += fabs(drySampleR-air[outAR])*0.5;
if (air[gainAR] > 0.3*sqrt(overallscale)) air[gainAR] = 0.3*sqrt(overallscale);
air[pvAR4] = air[pvAR3]; air[pvAR3] = air[pvAR2];
air[pvAR2] = air[pvAR1]; air[pvAR1] = (air[gainAR] * air[outAR]) + drySampleR;
long double midR = drySampleR - ((air[outAR]*0.5)+(drySampleR*(0.457-(0.017*overallscale))));
temp = (midR + air[gndavgR])*0.5; air[gndavgR] = midR; midR = temp;
long double trebleR = drySampleR-midR;
//end Air3R
//begin KalmanML
temp = midL;
kalM[prevSlewL3] += kalM[prevSampL3] - kalM[prevSampL2]; kalM[prevSlewL3] *= 0.5;
kalM[prevSlewL2] += kalM[prevSampL2] - kalM[prevSampL1]; kalM[prevSlewL2] *= 0.5;
kalM[prevSlewL1] += kalM[prevSampL1] - midL; kalM[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewL2] += kalM[prevSlewL3] - kalM[prevSlewL2]; kalM[accSlewL2] *= 0.5;
kalM[accSlewL1] += kalM[prevSlewL2] - kalM[prevSlewL1]; kalM[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewL3] += (kalM[accSlewL2] - kalM[accSlewL1]); kalM[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutL] += kalM[prevSampL1] + kalM[prevSlewL2] + kalM[accSlewL3]; kalM[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainL] += fabs(temp-kalM[kalOutL])*kalMid*8.0; kalM[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainL] > kalMid*0.5) kalM[kalGainL] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutL] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampL3] = kalM[prevSampL2]; kalM[prevSampL2] = kalM[prevSampL1];
kalM[prevSampL1] = (kalM[kalGainL] * kalM[kalOutL]) + ((1.0-kalM[kalGainL])*temp);
//feed the chain of previous samples
long double bassL = (kalM[kalOutL]+kalM[kalAvgL])*0.5;
kalM[kalAvgL] = kalM[kalOutL];
midL -= bassL;
//end KalmanML
//begin KalmanMR
temp = midR;
kalM[prevSlewR3] += kalM[prevSampR3] - kalM[prevSampR2]; kalM[prevSlewR3] *= 0.5;
kalM[prevSlewR2] += kalM[prevSampR2] - kalM[prevSampR1]; kalM[prevSlewR2] *= 0.5;
kalM[prevSlewR1] += kalM[prevSampR1] - midR; kalM[prevSlewR1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewR2] += kalM[prevSlewR3] - kalM[prevSlewR2]; kalM[accSlewR2] *= 0.5;
kalM[accSlewR1] += kalM[prevSlewR2] - kalM[prevSlewR1]; kalM[accSlewR1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewR3] += (kalM[accSlewR2] - kalM[accSlewR1]); kalM[accSlewR3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutR] += kalM[prevSampR1] + kalM[prevSlewR2] + kalM[accSlewR3]; kalM[kalOutR] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainR] += fabs(temp-kalM[kalOutR])*kalMid*8.0; kalM[kalGainR] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainR] > kalMid*0.5) kalM[kalGainR] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutR] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampR3] = kalM[prevSampR2]; kalM[prevSampR2] = kalM[prevSampR1];
kalM[prevSampR1] = (kalM[kalGainR] * kalM[kalOutR]) + ((1.0-kalM[kalGainR])*temp);
//feed the chain of previous samples
long double bassR = (kalM[kalOutR]+kalM[kalAvgR])*0.5;
kalM[kalAvgR] = kalM[kalOutR];
midR -= bassR;
//end KalmanMR
//begin KalmanSL
temp = bassL;
kalS[prevSlewL3] += kalS[prevSampL3] - kalS[prevSampL2]; kalS[prevSlewL3] *= 0.5;
kalS[prevSlewL2] += kalS[prevSampL2] - kalS[prevSampL1]; kalS[prevSlewL2] *= 0.5;
kalS[prevSlewL1] += kalS[prevSampL1] - bassL; kalS[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewL2] += kalS[prevSlewL3] - kalS[prevSlewL2]; kalS[accSlewL2] *= 0.5;
kalS[accSlewL1] += kalS[prevSlewL2] - kalS[prevSlewL1]; kalS[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewL3] += (kalS[accSlewL2] - kalS[accSlewL1]); kalS[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutL] += kalS[prevSampL1] + kalS[prevSlewL2] + kalS[accSlewL3]; kalS[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainL] += fabs(temp-kalS[kalOutL])*kalSub*8.0; kalS[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainL] > kalSub*0.5) kalS[kalGainL] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutL] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampL3] = kalS[prevSampL2]; kalS[prevSampL2] = kalS[prevSampL1];
kalS[prevSampL1] = (kalS[kalGainL] * kalS[kalOutL]) + ((1.0-kalS[kalGainL])*temp);
//feed the chain of previous samples
long double subL = (kalS[kalOutL]+kalS[kalAvgL])*0.5;
kalS[kalAvgL] = kalS[kalOutL];
bassL -= subL;
//end KalmanSL
//begin KalmanSR
temp = bassR;
kalS[prevSlewR3] += kalS[prevSampR3] - kalS[prevSampR2]; kalS[prevSlewR3] *= 0.5;
kalS[prevSlewR2] += kalS[prevSampR2] - kalS[prevSampR1]; kalS[prevSlewR2] *= 0.5;
kalS[prevSlewR1] += kalS[prevSampR1] - bassR; kalS[prevSlewR1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewR2] += kalS[prevSlewR3] - kalS[prevSlewR2]; kalS[accSlewR2] *= 0.5;
kalS[accSlewR1] += kalS[prevSlewR2] - kalS[prevSlewR1]; kalS[accSlewR1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewR3] += (kalS[accSlewR2] - kalS[accSlewR1]); kalS[accSlewR3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutR] += kalS[prevSampR1] + kalS[prevSlewR2] + kalS[accSlewR3]; kalS[kalOutR] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainR] += fabs(temp-kalS[kalOutR])*kalSub*8.0; kalS[kalGainR] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainR] > kalSub*0.5) kalS[kalGainR] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutR] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampR3] = kalS[prevSampR2]; kalS[prevSampR2] = kalS[prevSampR1];
kalS[prevSampR1] = (kalS[kalGainR] * kalS[kalOutR]) + ((1.0-kalS[kalGainR])*temp);
//feed the chain of previous samples
long double subR = (kalS[kalOutR]+kalS[kalAvgR])*0.5;
kalS[kalAvgR] = kalS[kalOutR];
bassR -= subR;
//end KalmanSR
inputSampleL = (subL*subGain);
inputSampleL += (bassL*bassGain);
inputSampleL += (midL*midGain);
inputSampleL += (trebleL*trebleGain);
inputSampleR = (subR*subGain);
inputSampleR += (bassR*bassGain);
inputSampleR += (midR*midGain);
inputSampleR += (trebleR*trebleGain);
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
closer = inputSampleR * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleR = (inputSampleR*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
farther = fabs(inputSampleR) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleR > 0.0) inputSampleR = (inputSampleR*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleR < 0.0) inputSampleR = (inputSampleR*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin ClipOnly2 stereo as a little, compressed chunk that can be dropped into code
if (inputSampleL > 4.0) inputSampleL = 4.0; if (inputSampleL < -4.0) inputSampleL = -4.0;
if (wasPosClipL == true) { //current will be over
if (inputSampleL<lastSampleL) lastSampleL=0.7058208+(inputSampleL*0.2609148);
else lastSampleL = 0.2491717+(lastSampleL*0.7390851);
} wasPosClipL = false;
if (inputSampleL>0.9549925859) {wasPosClipL=true;inputSampleL=0.7058208+(lastSampleL*0.2609148);}
if (wasNegClipL == true) { //current will be -over
if (inputSampleL > lastSampleL) lastSampleL=-0.7058208+(inputSampleL*0.2609148);
else lastSampleL=-0.2491717+(lastSampleL*0.7390851);
} wasNegClipL = false;
if (inputSampleL<-0.9549925859) {wasNegClipL=true;inputSampleL=-0.7058208+(lastSampleL*0.2609148);}
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]; //run a little buffer to handle this
if (inputSampleR > 4.0) inputSampleR = 4.0; if (inputSampleR < -4.0) inputSampleR = -4.0;
if (wasPosClipR == true) { //current will be over
if (inputSampleR<lastSampleR) lastSampleR=0.7058208+(inputSampleR*0.2609148);
else lastSampleR = 0.2491717+(lastSampleR*0.7390851);
} wasPosClipR = false;
if (inputSampleR>0.9549925859) {wasPosClipR=true;inputSampleR=0.7058208+(lastSampleR*0.2609148);}
if (wasNegClipR == true) { //current will be -over
if (inputSampleR > lastSampleR) lastSampleR=-0.7058208+(inputSampleR*0.2609148);
else lastSampleR=-0.2491717+(lastSampleR*0.7390851);
} wasNegClipR = false;
if (inputSampleR<-0.9549925859) {wasNegClipR=true;inputSampleR=-0.7058208+(lastSampleR*0.2609148);}
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]; //run a little buffer to handle this
//end ClipOnly2 stereo as a little, compressed chunk that can be dropped into code
temp = inputSampleL;
long double sinew = threshSinew * cos(lastSinewL*lastSinewL);
if (inputSampleL - lastSinewL > sinew) temp = lastSinewL + sinew;
if (-(inputSampleL - lastSinewL) > sinew) temp = lastSinewL - sinew;
lastSinewL = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(lastSinewL*depthSinew);
temp = inputSampleR;
sinew = threshSinew * cos(lastSinewR*lastSinewR);
if (inputSampleR - lastSinewR > sinew) temp = lastSinewR + sinew;
if (-(inputSampleR - lastSinewR) > sinew) temp = lastSinewR - sinew;
lastSinewR = temp;
inputSampleR = (inputSampleR * (1.0-depthSinew))+(lastSinewR*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//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,120 @@
/* ========================================
* Zoom - Zoom.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Zoom_H
#include "Zoom.h"
#endif
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Zoom(audioMaster);}
Zoom::Zoom(audioMasterCallback audioMaster) :
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
{
A = 0.5;
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
}
Zoom::~Zoom() {}
VstInt32 Zoom::getVendorVersion () {return 1000;}
void Zoom::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
void Zoom::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 Zoom::getChunk (void** data, bool isPreset)
{
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
chunkData[0] = A;
/* 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 Zoom::setChunk (void* data, VstInt32 byteSize, bool isPreset)
{
float *chunkData = (float *)data;
A = pinParameter(chunkData[0]);
/* 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 Zoom::setParameter(VstInt32 index, float value) {
switch (index) {
case kParamA: A = value; break;
default: throw; // unknown parameter, shouldn't happen!
}
}
float Zoom::getParameter(VstInt32 index) {
switch (index) {
case kParamA: return A; 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 Zoom::getParameterName(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "Zoom", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this is our labels for displaying in the VST host
}
void Zoom::getParameterDisplay(VstInt32 index, char *text) {
switch (index) {
case kParamA: float2string (A, text, kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
} //this displays the values and handles 'popups' where it's discrete choices
}
void Zoom::getParameterLabel(VstInt32 index, char *text) {
switch (index) {
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
default: break; // unknown parameter, shouldn't happen!
}
}
VstInt32 Zoom::canDo(char *text)
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
bool Zoom::getEffectName(char* name) {
vst_strncpy(name, "Zoom", kVstMaxProductStrLen); return true;
}
VstPlugCategory Zoom::getPlugCategory() {return kPlugCategEffect;}
bool Zoom::getProductString(char* text) {
vst_strncpy (text, "airwindows Zoom", kVstMaxProductStrLen); return true;
}
bool Zoom::getVendorString(char* text) {
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
}

View file

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

View file

@ -0,0 +1,132 @@
/* ========================================
* Zoom - Zoom.h
* Copyright (c) airwindows, Airwindows uses the MIT license
* ======================================== */
#ifndef __Zoom_H
#include "Zoom.h"
#endif
void Zoom::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
{
float* in1 = inputs[0];
float* in2 = inputs[1];
float* out1 = outputs[0];
float* out2 = outputs[1];
double zoom = (A*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
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;
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
closer = inputSampleR * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleR = (inputSampleR*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
farther = fabs(inputSampleR) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleR > 0.0) inputSampleR = (inputSampleR*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleR < 0.0) inputSampleR = (inputSampleR*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//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 Zoom::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
{
double* in1 = inputs[0];
double* in2 = inputs[1];
double* out1 = outputs[0];
double* out2 = outputs[1];
double zoom = (A*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
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;
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
closer = inputSampleR * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleR = (inputSampleR*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
farther = fabs(inputSampleR) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleR > 0.0) inputSampleR = (inputSampleR*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleR < 0.0) inputSampleR = (inputSampleR*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin 64 bit stereo floating point dither
//int expon; frexp((double)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//frexp((double)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
//end 64 bit stereo floating point dither
*out1 = inputSampleL;
*out2 = inputSampleR;
in1++;
in2++;
out1++;
out2++;
}
}

Binary file not shown.

View file

@ -0,0 +1,491 @@
/*
* File: Galactic3.cpp
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Galactic3.cpp
=============================================================================*/
#include "Galactic3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Galactic3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::Galactic3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Galactic3::Galactic3(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 );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::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 Galactic3::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Galactic3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Galactic3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::Galactic3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
iirAL = 0.0; iirAR = 0.0;
iirBL = 0.0; iirBR = 0.0;
for(int count = 0; count < 6479; count++) {aIL[count] = 0.0;aIR[count] = 0.0;}
for(int count = 0; count < 3659; count++) {aJL[count] = 0.0;aJR[count] = 0.0;}
for(int count = 0; count < 1719; count++) {aKL[count] = 0.0;aKR[count] = 0.0;}
for(int count = 0; count < 679; count++) {aLL[count] = 0.0;aLR[count] = 0.0;}
for(int count = 0; count < 9699; count++) {aAL[count] = 0.0;aAR[count] = 0.0;}
for(int count = 0; count < 5999; count++) {aBL[count] = 0.0;aBR[count] = 0.0;}
for(int count = 0; count < 2319; count++) {aCL[count] = 0.0;aCR[count] = 0.0;}
for(int count = 0; count < 939; count++) {aDL[count] = 0.0;aDR[count] = 0.0;}
for(int count = 0; count < 15219; count++) {aEL[count] = 0.0;aER[count] = 0.0;}
for(int count = 0; count < 8459; count++) {aFL[count] = 0.0;aFR[count] = 0.0;}
for(int count = 0; count < 4539; count++) {aGL[count] = 0.0;aGR[count] = 0.0;}
for(int count = 0; count < 3199; count++) {aHL[count] = 0.0;aHR[count] = 0.0;}
for(int count = 0; count < 3110; count++) {aML[count] = aMR[count] = 0.0;}
feedbackAL = 0.0; feedbackAR = 0.0;
feedbackBL = 0.0; feedbackBR = 0.0;
feedbackCL = 0.0; feedbackCR = 0.0;
feedbackDL = 0.0; feedbackDR = 0.0;
countI = 1;
countJ = 1;
countK = 1;
countL = 1;
countA = 1;
countB = 1;
countC = 1;
countD = 1;
countE = 1;
countF = 1;
countG = 1;
countH = 1;
countM = 1;
//the predelay
vibM = 3.0;
oldfpd = 429496.7295;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus Galactic3::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();
double regen = 0.0625+((1.0-GetParameter( kParam_A ))*0.0625);
double attenuate = (1.0 - (regen / 0.125))*1.333;
double lowpass = pow(1.00001-(1.0-GetParameter( kParam_B )),2.0)/sqrt(overallscale);
double drift = pow(GetParameter( kParam_C ),3)*0.001;
double derez = GetParameter( kParam_D )/overallscale;
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
derez = 1.0 / ((int)(1.0/derez));
//this hard-locks derez to exact subdivisions of 1.0
double size = (GetParameter( kParam_E )*1.77)+0.1;
double wet = 1.0-(pow(1.0-GetParameter( kParam_F ),3));
delayI = 3407.0*size;
delayJ = 1823.0*size;
delayK = 859.0*size;
delayL = 331.0*size;
delayA = 4801.0*size;
delayB = 2909.0*size;
delayC = 1153.0*size;
delayD = 461.0*size;
delayE = 7607.0*size;
delayF = 4217.0*size;
delayG = 2269.0*size;
delayH = 1597.0*size;
delayM = 256;
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;
vibM += (oldfpd*drift);
if (vibM > (3.141592653589793238*2.0)) {
vibM = 0.0;
oldfpd = 0.4294967295+(fpdL*0.0000000000618);
}
aML[countM] = inputSampleL * attenuate;
aMR[countM] = inputSampleR * attenuate;
countM++; if (countM < 0 || countM > delayM) countM = 0;
double offsetML = (sin(vibM)+1.0)*127;
double offsetMR = (sin(vibM+(3.141592653589793238/2.0))+1.0)*127;
int workingML = countM + offsetML;
int workingMR = countM + offsetMR;
double interpolML = (aML[workingML-((workingML > delayM)?delayM+1:0)] * (1-(offsetML-floor(offsetML))));
interpolML += (aML[workingML+1-((workingML+1 > delayM)?delayM+1:0)] * ((offsetML-floor(offsetML))) );
double interpolMR = (aMR[workingMR-((workingMR > delayM)?delayM+1:0)] * (1-(offsetMR-floor(offsetMR))));
interpolMR += (aMR[workingMR+1-((workingMR+1 > delayM)?delayM+1:0)] * ((offsetMR-floor(offsetMR))) );
inputSampleL = interpolML;
inputSampleR = interpolMR;
//predelay that applies vibrato
//want vibrato speed AND depth like in MatrixVerb
iirAL = (iirAL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirAL;
iirAR = (iirAR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirAR;
//initial filter
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
aIL[countI] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackAR * regen);
aJL[countJ] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackBR * regen);
aKL[countK] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackCR * regen);
aLL[countL] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackDR * regen);
bez[bez_UnInL] = bez[bez_SampL];
aIR[countI] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackAL * regen);
aJR[countJ] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackBL * regen);
aKR[countK] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackCL * regen);
aLR[countL] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackDL * regen);
bez[bez_UnInR] = bez[bez_SampR];
countI++; if (countI < 0 || countI > delayI) countI = 0;
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
countK++; if (countK < 0 || countK > delayK) countK = 0;
countL++; if (countL < 0 || countL > delayL) countL = 0;
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
//first block: now we have four outputs
aAL[countA] = (outIL - (outJL + outKL + outLL));
aBL[countB] = (outJL - (outIL + outKL + outLL));
aCL[countC] = (outKL - (outIL + outJL + outLL));
aDL[countD] = (outLL - (outIL + outJL + outKL));
aAR[countA] = (outIR - (outJR + outKR + outLR));
aBR[countB] = (outJR - (outIR + outKR + outLR));
aCR[countC] = (outKR - (outIR + outJR + outLR));
aDR[countD] = (outLR - (outIR + outJR + outKR));
countA++; if (countA < 0 || countA > delayA) countA = 0;
countB++; if (countB < 0 || countB > delayB) countB = 0;
countC++; if (countC < 0 || countC > delayC) countC = 0;
countD++; if (countD < 0 || countD > delayD) countD = 0;
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
//second block: four more outputs
aEL[countE] = (outAL - (outBL + outCL + outDL));
aFL[countF] = (outBL - (outAL + outCL + outDL));
aGL[countG] = (outCL - (outAL + outBL + outDL));
aHL[countH] = (outDL - (outAL + outBL + outCL));
aER[countE] = (outAR - (outBR + outCR + outDR));
aFR[countF] = (outBR - (outAR + outCR + outDR));
aGR[countG] = (outCR - (outAR + outBR + outDR));
aHR[countH] = (outDR - (outAR + outBR + outCR));
countE++; if (countE < 0 || countE > delayE) countE = 0;
countF++; if (countF < 0 || countF > delayF) countF = 0;
countG++; if (countG < 0 || countG > delayG) countG = 0;
countH++; if (countH < 0 || countH > delayH) countH = 0;
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
//third block: final outputs
feedbackAL = (outEL - (outFL + outGL + outHL));
feedbackBL = (outFL - (outEL + outGL + outHL));
feedbackCL = (outGL - (outEL + outFL + outHL));
feedbackDL = (outHL - (outEL + outFL + outGL));
feedbackAR = (outER - (outFR + outGR + outHR));
feedbackBR = (outFR - (outER + outGR + outHR));
feedbackCR = (outGR - (outER + outFR + outHR));
feedbackDR = (outHR - (outER + outFR + outGR));
//which we need to feed back into the input again, a bit
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
//and take the final combined sum of outputs
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 CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
//end filter
if (wet < 1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
}
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1 @@
_Galactic3Entry

View file

@ -0,0 +1,217 @@
/*
* File: Galactic3.h
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 "Galactic3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Galactic3_h__
#define __Galactic3_h__
#pragma mark ____Galactic3 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 = 1.0;
static const float kDefaultValue_ParamE = 1.0;
static const float kDefaultValue_ParamF = 1.0;
static CFStringRef kParameterAName = CFSTR("Replace");
static CFStringRef kParameterBName = CFSTR("Brightness");
static CFStringRef kParameterCName = CFSTR("Detune");
static CFStringRef kParameterDName = CFSTR("Derez");
static CFStringRef kParameterEName = CFSTR("Bigness");
static CFStringRef kParameterFName = CFSTR("Dry/Wet");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
//Add your parameters here...
kNumberOfParameters=6
};
#pragma mark ____Galactic3
class Galactic3 : public AUEffectBase
{
public:
Galactic3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Galactic3 () { 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 kGalactic3Version; }
private:
double iirAL;
double iirBL;
double aIL[6480];
double aJL[3660];
double aKL[1720];
double aLL[680];
double aAL[9700];
double aBL[6000];
double aCL[2320];
double aDL[940];
double aEL[15220];
double aFL[8460];
double aGL[4540];
double aHL[3200];
double aML[3111];
double aMR[3111];
double vibML, vibMR, depthM, oldfpd;
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double iirAR;
double iirBR;
double aIR[6480];
double aJR[3660];
double aKR[1720];
double aLR[680];
double aAR[9700];
double aBR[6000];
double aCR[2320];
double aDR[940];
double aER[15220];
double aFR[8460];
double aGR[4540];
double aHR[3200];
double feedbackAR;
double feedbackBR;
double feedbackCR;
double feedbackDR;
int countA, delayA;
int countB, delayB;
int countC, delayC;
int countD, delayD;
int countE, delayE;
int countF, delayF;
int countG, delayG;
int countH, delayH;
int countI, delayI;
int countJ, delayJ;
int countK, delayK;
int countL, delayL;
int countM, delayM; //all these ints are shared across channels, not duplicated
double vibM;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Galactic3.r
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 "Galactic3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Galactic3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Galactic3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Galactic3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Galactic3_COMP_SUBTYPE
#define COMP_MANUF Galactic3_COMP_MANF
#define VERSION kGalactic3Version
#define NAME "Airwindows: Galactic3"
#define DESCRIPTION "Galactic3 AU"
#define ENTRY_POINT "Galactic3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,170 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Galactic3 */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
PBXFileTableDataSourceColumnWidthsKey = (
200,
378,
);
PBXFileTableDataSourceColumnsKey = (
PBXFindDataSource_MessageID,
PBXFindDataSource_LocationID,
);
};
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 = 749757787;
PBXWorkspaceStateSaveDate = 749757787;
};
perUserProjectItems = {
8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */ = 8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */;
8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */ = 8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */;
8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */ = 8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */;
8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */ = 8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Galactic3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {750, 9234}}";
sepNavSelRange = "{11004, 0}";
sepNavVisRange = "{10966, 79}";
sepNavWindowFrame = "{{440, 57}, {1000, 821}}";
};
};
8BA05A690720730100365D66 /* Galactic3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{967, 2002}";
sepNavWindowFrame = "{{15, 52}, {1000, 821}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* Galactic3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 4302}}";
sepNavSelRange = "{5733, 0}";
sepNavVisRange = "{4973, 830}";
sepNavWindowFrame = "{{440, 57}, {1000, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BF6B4912CB06BF8009E73CC /* Galactic3.h */;
name = "Galactic3.h: 80";
rLen = 6;
rLoc = 2786;
rType = 0;
vrLen = 98;
vrLoc = 2718;
};
8BF6B4912CB06BF8009E73CC /* Galactic3.h */ = {
isa = PBXFileReference;
name = Galactic3.h;
path = /Users/christopherjohnson/Desktop/Galactic3/source/Galactic3.h;
sourceTree = "<absolute>";
};
8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Galactic3.h */;
name = "Galactic3.h: 193";
rLen = 0;
rLoc = 6332;
rType = 0;
vrLen = 85;
vrLoc = 5691;
};
8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "'lastRefR' was not declared in this scope";
fRef = 8BA05A660720730100365D66 /* Galactic3.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 0;
rLoc = 239;
rType = 1;
};
8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Galactic3.cpp */;
name = "Galactic3.cpp: 240";
rLen = 0;
rLoc = 11004;
rType = 0;
vrLen = 79;
vrLoc = 10966;
};
8D01CCC60486CAD60068D4B7 /* Galactic3 */ = {
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 /* Galactic3.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Galactic3.r */; };
8BA05A6B0720730100365D66 /* Galactic3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Galactic3.cpp */; };
8BA05A6E0720730100365D66 /* Galactic3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Galactic3Version.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 /* Galactic3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Galactic3.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 /* Galactic3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Galactic3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Galactic3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Galactic3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Galactic3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Galactic3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Galactic3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Galactic3Version.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 /* Galactic3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Galactic3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Galactic3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Galactic3.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 /* Galactic3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Galactic3;
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 /* Galactic3.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Galactic3.h */,
8BA05A660720730100365D66 /* Galactic3.cpp */,
8BA05A670720730100365D66 /* Galactic3.exp */,
8BA05A680720730100365D66 /* Galactic3.r */,
8BA05A690720730100365D66 /* Galactic3Version.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 /* Galactic3Version.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 /* Galactic3.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 /* Galactic3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Galactic3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Galactic3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Galactic3;
productReference = 8D01CCD20486CAD60068D4B7 /* Galactic3.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 "Galactic3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Galactic3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Galactic3 */,
);
};
/* 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 /* Galactic3.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Galactic3.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 = Galactic3.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 = Galactic3;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Galactic3.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 = Galactic3;
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 "Galactic3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Galactic3" */ = {
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: Galactic3Version.h
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 __Galactic3Version_h__
#define __Galactic3Version_h__
#ifdef DEBUG
#define kGalactic3Version 0xFFFFFFFF
#else
#define kGalactic3Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Galactic3_COMP_MANF 'Dthr'
#define Galactic3_COMP_SUBTYPE 'galc'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

View file

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

Binary file not shown.

View file

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

View file

@ -0,0 +1,406 @@
/*
* File: Mastering.cpp
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Mastering.cpp
=============================================================================*/
#include "Mastering.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Mastering)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::Mastering
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mastering::Mastering(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::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;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Mastering::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____MasteringEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::MasteringKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Mastering::MasteringKernel::Reset()
{
for (int x = 0; x < air_total; x++) air[x] = 0.0;
for (int x = 0; x < kal_total; x++) {kalM[x] = 0.0;kalS[x] = 0.0;}
lastSinewL = 0.0;
lastSample = 0.0;
wasPosClip = false;
wasNegClip = false;
for (int x = 0; x < 16; x++) {intermediate[x] = 0.0;}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::MasteringKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Mastering::MasteringKernel::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();
long double trebleGain = GetParameter( kParam_A )+0.5;
if (trebleGain > 1.0) trebleGain = pow(trebleGain,3.0+sqrt(overallscale));
//this boost is necessary to adapt to higher sample rates
long double midGain = GetParameter( kParam_B )+0.5;
long double bassGain = (1.0-GetParameter( kParam_C ))+0.5; //control inverted
long double subGain = GetParameter( kParam_D )+0.5;
//simple four band to adjust
double kalMid = pow(1.0-GetParameter( kParam_E ),3);
//crossover frequency between mid/bass
double kalSub = (1.0-(pow(GetParameter( kParam_F ),3)));
//crossover frequency between bass/sub
double zoom = (GetParameter( kParam_G )*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
double threshSinew = pow(GetParameter( kParam_H ),2)/overallscale;
double depthSinew = GetParameter( kParam_I );
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
while (nSampleFrames-- > 0) {
long double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
double drySampleL = inputSampleL;
//begin Air3L
air[pvSL4] = air[pvAL4] - air[pvAL3]; air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1]; air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3]; air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2]; air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5; air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3]; air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1]; air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
long double midL = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
long double temp = (midL + air[gndavgL])*0.5; air[gndavgL] = midL; midL = temp;
//we have a single averaging stage to smooth stuff out
long double trebleL = drySampleL-midL;
//end Air3L
//begin KalmanML
temp = midL;
kalM[prevSlewL3] += kalM[prevSampL3] - kalM[prevSampL2]; kalM[prevSlewL3] *= 0.5;
kalM[prevSlewL2] += kalM[prevSampL2] - kalM[prevSampL1]; kalM[prevSlewL2] *= 0.5;
kalM[prevSlewL1] += kalM[prevSampL1] - midL; kalM[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewL2] += kalM[prevSlewL3] - kalM[prevSlewL2]; kalM[accSlewL2] *= 0.5;
kalM[accSlewL1] += kalM[prevSlewL2] - kalM[prevSlewL1]; kalM[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewL3] += (kalM[accSlewL2] - kalM[accSlewL1]); kalM[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutL] += kalM[prevSampL1] + kalM[prevSlewL2] + kalM[accSlewL3]; kalM[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainL] += fabs(temp-kalM[kalOutL])*kalMid*8.0; kalM[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainL] > kalMid*0.5) kalM[kalGainL] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutL] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampL3] = kalM[prevSampL2]; kalM[prevSampL2] = kalM[prevSampL1];
kalM[prevSampL1] = (kalM[kalGainL] * kalM[kalOutL]) + ((1.0-kalM[kalGainL])*temp);
//feed the chain of previous samples
long double bassL = (kalM[kalOutL]+kalM[kalAvgL])*0.5;
kalM[kalAvgL] = kalM[kalOutL];
midL -= bassL;
//end KalmanML
//begin KalmanSL
temp = bassL;
kalS[prevSlewL3] += kalS[prevSampL3] - kalS[prevSampL2]; kalS[prevSlewL3] *= 0.5;
kalS[prevSlewL2] += kalS[prevSampL2] - kalS[prevSampL1]; kalS[prevSlewL2] *= 0.5;
kalS[prevSlewL1] += kalS[prevSampL1] - bassL; kalS[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewL2] += kalS[prevSlewL3] - kalS[prevSlewL2]; kalS[accSlewL2] *= 0.5;
kalS[accSlewL1] += kalS[prevSlewL2] - kalS[prevSlewL1]; kalS[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewL3] += (kalS[accSlewL2] - kalS[accSlewL1]); kalS[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutL] += kalS[prevSampL1] + kalS[prevSlewL2] + kalS[accSlewL3]; kalS[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainL] += fabs(temp-kalS[kalOutL])*kalSub*8.0; kalS[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainL] > kalSub*0.5) kalS[kalGainL] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutL] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampL3] = kalS[prevSampL2]; kalS[prevSampL2] = kalS[prevSampL1];
kalS[prevSampL1] = (kalS[kalGainL] * kalS[kalOutL]) + ((1.0-kalS[kalGainL])*temp);
//feed the chain of previous samples
long double subL = (kalS[kalOutL]+kalS[kalAvgL])*0.5;
kalS[kalAvgL] = kalS[kalOutL];
bassL -= subL;
//end KalmanSL
inputSampleL = (subL*subGain);
inputSampleL += (bassL*bassGain);
inputSampleL += (midL*midGain);
inputSampleL += (trebleL*trebleGain);
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
long double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
long double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin ClipOnly2 as a little, compressed chunk that can be dropped into code
if (inputSampleL > 4.0) inputSampleL = 4.0; if (inputSampleL < -4.0) inputSampleL = -4.0;
if (wasPosClip == true) { //current will be over
if (inputSampleL<lastSample) lastSample=0.7058208+(inputSampleL*0.2609148);
else lastSample = 0.2491717+(lastSample*0.7390851);
} wasPosClip = false;
if (inputSampleL>0.9549925859) {wasPosClip=true;inputSampleL=0.7058208+(lastSample*0.2609148);}
if (wasNegClip == true) { //current will be -over
if (inputSampleL > lastSample) lastSample=-0.7058208+(inputSampleL*0.2609148);
else lastSample=-0.2491717+(lastSample*0.7390851);
} wasNegClip = false;
if (inputSampleL<-0.9549925859) {wasNegClip=true;inputSampleL=-0.7058208+(lastSample*0.2609148);}
intermediate[spacing] = inputSampleL;
inputSampleL = lastSample; //Latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) intermediate[x-1] = intermediate[x];
lastSample = intermediate[0]; //run a little buffer to handle this
//end ClipOnly2 as a little, compressed chunk that can be dropped into code
temp = inputSampleL;
long double sinew = threshSinew * cos(lastSinewL*lastSinewL);
if (inputSampleL - lastSinewL > sinew) temp = lastSinewL + sinew;
if (-(inputSampleL - lastSinewL) > sinew) temp = lastSinewL - sinew;
lastSinewL = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(lastSinewL*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//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 @@
_MasteringEntry

View file

@ -0,0 +1,206 @@
/*
* File: Mastering.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "MasteringVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Mastering_h__
#define __Mastering_h__
#pragma mark ____Mastering 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 const float kDefaultValue_ParamI = 0.0;
static CFStringRef kParameterAName = CFSTR("Air");
static CFStringRef kParameterBName = CFSTR("Mid");
static CFStringRef kParameterCName = CFSTR("Low");
static CFStringRef kParameterDName = CFSTR("Sub");
static CFStringRef kParameterEName = CFSTR("XvM-L");
static CFStringRef kParameterFName = CFSTR("XvL-S");
static CFStringRef kParameterGName = CFSTR("Zoom");
static CFStringRef kParameterHName = CFSTR("DarkF");
static CFStringRef kParameterIName = CFSTR("Ratio");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
//Add your parameters here...
kNumberOfParameters=9
};
#pragma mark ____Mastering
class Mastering : public AUEffectBase
{
public:
Mastering(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Mastering () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new MasteringKernel(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 kMasteringVersion; }
protected:
class MasteringKernel : public AUKernelBase // most of the real work happens here
{
public:
MasteringKernel(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 {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
air_total
};
double air[air_total];
enum {
prevSampL1,
prevSlewL1,
accSlewL1,
prevSampL2,
prevSlewL2,
accSlewL2,
prevSampL3,
prevSlewL3,
accSlewL3,
kalGainL,
kalOutL,
kalAvgL,
kal_total
};
double kalM[kal_total];
double kalS[kal_total];
long double lastSinewL;
//this is overkill, used to run both Zoom and Sinew stages as they are after
//the summing in StoneFire, which sums three doubles to a long double.
double lastSample; //this doesn't touch the audio unless it's clipping
double intermediate[16];
bool wasPosClip;
bool wasNegClip;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Mastering.r
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "MasteringVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Mastering 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mastering~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Mastering
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Mastering_COMP_SUBTYPE
#define COMP_MANUF Mastering_COMP_MANF
#define VERSION kMasteringVersion
#define NAME "Airwindows: Mastering"
#define DESCRIPTION "Mastering AU"
#define ENTRY_POINT "MasteringEntry"
#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 /* Mastering */;
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 = 750255310;
PBXWorkspaceStateSaveDate = 750255310;
};
perUserProjectItems = {
8BA3DC492CB5EC1900B899C2 /* PlistBookmark */ = 8BA3DC492CB5EC1900B899C2 /* PlistBookmark */;
8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */ = 8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */;
8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */ = 8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */;
8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */ = 8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Mastering.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {822, 7380}}";
sepNavSelRange = "{17032, 0}";
sepNavVisRange = "{15387, 90}";
sepNavWindowFrame = "{{12, 53}, {1040, 821}}";
};
};
8BA05A690720730100365D66 /* MasteringVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{1069, 1900}";
sepNavWindowFrame = "{{15, 52}, {1040, 821}}";
};
};
8BA3DC492CB5EC1900B899C2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Mastering/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BC6025B073B072D006C4272 /* Mastering.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 3132}}";
sepNavSelRange = "{3665, 0}";
sepNavVisRange = "{2605, 1167}";
sepNavWindowFrame = "{{38, 57}, {1040, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Mastering.cpp */;
name = "Mastering.cpp: 347";
rLen = 0;
rLoc = 17032;
rType = 0;
vrLen = 38;
vrLoc = 15492;
};
8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Mastering.h */;
name = "Mastering.h: 65";
rLen = 0;
rLoc = 3252;
rType = 0;
vrLen = 52;
vrLoc = 3253;
};
8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Mastering.cpp */;
name = "Mastering.cpp: 347";
rLen = 0;
rLoc = 17032;
rType = 0;
vrLen = 90;
vrLoc = 15387;
};
8D01CCC60486CAD60068D4B7 /* Mastering */ = {
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 /* Mastering.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Mastering.r */; };
8BA05A6B0720730100365D66 /* Mastering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Mastering.cpp */; };
8BA05A6E0720730100365D66 /* MasteringVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* MasteringVersion.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 /* Mastering.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Mastering.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 /* Mastering.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Mastering.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Mastering.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Mastering.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Mastering.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Mastering.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* MasteringVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MasteringVersion.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 /* Mastering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Mastering.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Mastering.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Mastering.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 /* Mastering */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Mastering;
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 /* Mastering.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Mastering.h */,
8BA05A660720730100365D66 /* Mastering.cpp */,
8BA05A670720730100365D66 /* Mastering.exp */,
8BA05A680720730100365D66 /* Mastering.r */,
8BA05A690720730100365D66 /* MasteringVersion.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 /* MasteringVersion.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 /* Mastering.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 /* Mastering */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Mastering" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Mastering;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Mastering;
productReference = 8D01CCD20486CAD60068D4B7 /* Mastering.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 "Mastering" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Mastering */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Mastering */,
);
};
/* 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 /* Mastering.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Mastering.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 = Mastering.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 = Mastering;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Mastering.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 = Mastering;
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 "Mastering" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Mastering" */ = {
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: MasteringVersion.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 __MasteringVersion_h__
#define __MasteringVersion_h__
#ifdef DEBUG
#define kMasteringVersion 0xFFFFFFFF
#else
#define kMasteringVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Mastering_COMP_MANF 'Dthr'
#define Mastering_COMP_SUBTYPE 'mast'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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.

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

212
plugins/MacAU/Zoom/Zoom.cpp Executable file
View file

@ -0,0 +1,212 @@
/*
* File: Zoom.cpp
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Zoom.cpp
=============================================================================*/
#include "Zoom.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
COMPONENT_ENTRY(Zoom)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::Zoom
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zoom::Zoom(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Zoom::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ZoomEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::ZoomKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Zoom::ZoomKernel::Reset()
{
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::ZoomKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Zoom::ZoomKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double zoom = (GetParameter( kParam_A )*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSample * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSample = (inputSample*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSample) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSample > 0.0) inputSample = (inputSample*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSample < 0.0) inputSample = (inputSample*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

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

@ -0,0 +1 @@
_ZoomEntry

134
plugins/MacAU/Zoom/Zoom.h Executable file
View file

@ -0,0 +1,134 @@
/*
* File: Zoom.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "ZoomVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Zoom_h__
#define __Zoom_h__
#pragma mark ____Zoom Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static CFStringRef kParameterAName = CFSTR("Zoom");
enum {
kParam_A =0,
//Add your parameters here...
kNumberOfParameters=1
};
#pragma mark ____Zoom
class Zoom : public AUEffectBase
{
public:
Zoom(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Zoom () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ZoomKernel(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 kZoomVersion; }
protected:
class ZoomKernel : public AUKernelBase // most of the real work happens here
{
public:
ZoomKernel(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:
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

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

@ -0,0 +1,61 @@
/*
* File: Zoom.r
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "ZoomVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Zoom 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Zoom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Zoom
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Zoom_COMP_SUBTYPE
#define COMP_MANUF Zoom_COMP_MANF
#define VERSION kZoomVersion
#define NAME "Airwindows: Zoom"
#define DESCRIPTION "Zoom AU"
#define ENTRY_POINT "ZoomEntry"
#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 /* Zoom */;
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 = 750186156;
PBXWorkspaceStateSaveDate = 750186156;
};
perUserProjectItems = {
8BA3DC222CB5E98D00B899C2 /* PlistBookmark */ = 8BA3DC222CB5E98D00B899C2 /* PlistBookmark */;
8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */ = 8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */;
8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */ = 8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Zoom.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 3834}}";
sepNavSelRange = "{7923, 0}";
sepNavVisRange = "{7719, 314}";
sepNavWindowFrame = "{{618, 29}, {1040, 821}}";
};
};
8BA05A690720730100365D66 /* ZoomVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2871, 0}";
sepNavVisRange = "{857, 2077}";
sepNavWindowFrame = "{{15, 52}, {1040, 821}}";
};
};
8BA3DC222CB5E98D00B899C2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Zoom/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BC6025B073B072D006C4272 /* Zoom.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1119, 2196}}";
sepNavSelRange = "{2980, 0}";
sepNavVisRange = "{1643, 1341}";
sepNavWindowFrame = "{{400, 48}, {1040, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Zoom.cpp */;
name = "Zoom.cpp: 178";
rLen = 0;
rLoc = 7923;
rType = 0;
vrLen = 314;
vrLoc = 7719;
};
8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Zoom.cpp */;
name = "Zoom.cpp: 178";
rLen = 0;
rLoc = 7923;
rType = 0;
vrLen = 314;
vrLoc = 7719;
};
8D01CCC60486CAD60068D4B7 /* Zoom */ = {
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 /* Zoom.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Zoom.r */; };
8BA05A6B0720730100365D66 /* Zoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Zoom.cpp */; };
8BA05A6E0720730100365D66 /* ZoomVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ZoomVersion.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 /* Zoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Zoom.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 /* Zoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Zoom.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Zoom.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Zoom.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Zoom.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Zoom.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* ZoomVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ZoomVersion.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 /* Zoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Zoom.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Zoom.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Zoom.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 /* Zoom */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Zoom;
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 /* Zoom.component */,
);
name = Products;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Zoom.h */,
8BA05A660720730100365D66 /* Zoom.cpp */,
8BA05A670720730100365D66 /* Zoom.exp */,
8BA05A680720730100365D66 /* Zoom.r */,
8BA05A690720730100365D66 /* ZoomVersion.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 /* ZoomVersion.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 /* Zoom.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 /* Zoom */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Zoom" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
8D01CCCF0486CAD60068D4B7 /* Rez */,
);
buildRules = (
);
dependencies = (
);
name = Zoom;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Zoom;
productReference = 8D01CCD20486CAD60068D4B7 /* Zoom.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 "Zoom" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 089C166AFE841209C02AAC07 /* Zoom */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Zoom */,
);
};
/* 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 /* Zoom.r in Rez */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXRezBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8BA05A6B0720730100365D66 /* Zoom.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 = Zoom.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 = Zoom;
WRAPPER_EXTENSION = component;
};
name = Debug;
};
3E4BA245089833B7007656EC /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = (
ppc,
i386,
x86_64,
);
EXPORTED_SYMBOLS_FILE = Zoom.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 = Zoom;
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 "Zoom" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Zoom" */ = {
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: ZoomVersion.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 __ZoomVersion_h__
#define __ZoomVersion_h__
#ifdef DEBUG
#define kZoomVersion 0xFFFFFFFF
#else
#define kZoomVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Zoom_COMP_MANF 'Dthr'
#define Zoom_COMP_SUBTYPE 'zoom'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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,491 @@
/*
* File: Galactic3.cpp
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Galactic3.cpp
=============================================================================*/
#include "Galactic3.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Galactic3)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::Galactic3
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Galactic3::Galactic3(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 );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::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 Galactic3::SupportedNumChannels(const AUChannelInfo ** outInfo)
{
if (outInfo != NULL)
{
static AUChannelInfo info;
info.inChannels = 2;
info.outChannels = 2;
*outInfo = &info;
}
return 1;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Galactic3::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____Galactic3EffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::Galactic3Kernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Galactic3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
{
iirAL = 0.0; iirAR = 0.0;
iirBL = 0.0; iirBR = 0.0;
for(int count = 0; count < 6479; count++) {aIL[count] = 0.0;aIR[count] = 0.0;}
for(int count = 0; count < 3659; count++) {aJL[count] = 0.0;aJR[count] = 0.0;}
for(int count = 0; count < 1719; count++) {aKL[count] = 0.0;aKR[count] = 0.0;}
for(int count = 0; count < 679; count++) {aLL[count] = 0.0;aLR[count] = 0.0;}
for(int count = 0; count < 9699; count++) {aAL[count] = 0.0;aAR[count] = 0.0;}
for(int count = 0; count < 5999; count++) {aBL[count] = 0.0;aBR[count] = 0.0;}
for(int count = 0; count < 2319; count++) {aCL[count] = 0.0;aCR[count] = 0.0;}
for(int count = 0; count < 939; count++) {aDL[count] = 0.0;aDR[count] = 0.0;}
for(int count = 0; count < 15219; count++) {aEL[count] = 0.0;aER[count] = 0.0;}
for(int count = 0; count < 8459; count++) {aFL[count] = 0.0;aFR[count] = 0.0;}
for(int count = 0; count < 4539; count++) {aGL[count] = 0.0;aGR[count] = 0.0;}
for(int count = 0; count < 3199; count++) {aHL[count] = 0.0;aHR[count] = 0.0;}
for(int count = 0; count < 3110; count++) {aML[count] = aMR[count] = 0.0;}
feedbackAL = 0.0; feedbackAR = 0.0;
feedbackBL = 0.0; feedbackBR = 0.0;
feedbackCL = 0.0; feedbackCR = 0.0;
feedbackDL = 0.0; feedbackDR = 0.0;
countI = 1;
countJ = 1;
countK = 1;
countL = 1;
countA = 1;
countB = 1;
countC = 1;
countD = 1;
countE = 1;
countF = 1;
countG = 1;
countH = 1;
countM = 1;
//the predelay
vibM = 3.0;
oldfpd = 429496.7295;
for (int x = 0; x < bez_total; x++) bez[x] = 0.0;
bez[bez_cycle] = 1.0;
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
return noErr;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Galactic3::ProcessBufferLists
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
OSStatus Galactic3::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();
double regen = 0.0625+((1.0-GetParameter( kParam_A ))*0.0625);
double attenuate = (1.0 - (regen / 0.125))*1.333;
double lowpass = pow(1.00001-(1.0-GetParameter( kParam_B )),2.0)/sqrt(overallscale);
double drift = pow(GetParameter( kParam_C ),3)*0.001;
double derez = GetParameter( kParam_D )/overallscale;
if (derez < 0.0005) derez = 0.0005; if (derez > 1.0) derez = 1.0;
derez = 1.0 / ((int)(1.0/derez));
//this hard-locks derez to exact subdivisions of 1.0
double size = (GetParameter( kParam_E )*1.77)+0.1;
double wet = 1.0-(pow(1.0-GetParameter( kParam_F ),3));
delayI = 3407.0*size;
delayJ = 1823.0*size;
delayK = 859.0*size;
delayL = 331.0*size;
delayA = 4801.0*size;
delayB = 2909.0*size;
delayC = 1153.0*size;
delayD = 461.0*size;
delayE = 7607.0*size;
delayF = 4217.0*size;
delayG = 2269.0*size;
delayH = 1597.0*size;
delayM = 256;
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;
vibM += (oldfpd*drift);
if (vibM > (3.141592653589793238*2.0)) {
vibM = 0.0;
oldfpd = 0.4294967295+(fpdL*0.0000000000618);
}
aML[countM] = inputSampleL * attenuate;
aMR[countM] = inputSampleR * attenuate;
countM++; if (countM < 0 || countM > delayM) countM = 0;
double offsetML = (sin(vibM)+1.0)*127;
double offsetMR = (sin(vibM+(3.141592653589793238/2.0))+1.0)*127;
int workingML = countM + offsetML;
int workingMR = countM + offsetMR;
double interpolML = (aML[workingML-((workingML > delayM)?delayM+1:0)] * (1-(offsetML-floor(offsetML))));
interpolML += (aML[workingML+1-((workingML+1 > delayM)?delayM+1:0)] * ((offsetML-floor(offsetML))) );
double interpolMR = (aMR[workingMR-((workingMR > delayM)?delayM+1:0)] * (1-(offsetMR-floor(offsetMR))));
interpolMR += (aMR[workingMR+1-((workingMR+1 > delayM)?delayM+1:0)] * ((offsetMR-floor(offsetMR))) );
inputSampleL = interpolML;
inputSampleR = interpolMR;
//predelay that applies vibrato
//want vibrato speed AND depth like in MatrixVerb
iirAL = (iirAL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirAL;
iirAR = (iirAR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirAR;
//initial filter
bez[bez_cycle] += derez;
bez[bez_SampL] += ((inputSampleL+bez[bez_InL]) * derez);
bez[bez_SampR] += ((inputSampleR+bez[bez_InR]) * derez);
bez[bez_InL] = inputSampleL; bez[bez_InR] = inputSampleR;
if (bez[bez_cycle] > 1.0) { //hit the end point and we do a reverb sample
bez[bez_cycle] = 0.0;
aIL[countI] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackAR * regen);
aJL[countJ] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackBR * regen);
aKL[countK] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackCR * regen);
aLL[countL] = (bez[bez_SampL]+bez[bez_UnInL]) + (feedbackDR * regen);
bez[bez_UnInL] = bez[bez_SampL];
aIR[countI] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackAL * regen);
aJR[countJ] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackBL * regen);
aKR[countK] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackCL * regen);
aLR[countL] = (bez[bez_SampR]+bez[bez_UnInR]) + (feedbackDL * regen);
bez[bez_UnInR] = bez[bez_SampR];
countI++; if (countI < 0 || countI > delayI) countI = 0;
countJ++; if (countJ < 0 || countJ > delayJ) countJ = 0;
countK++; if (countK < 0 || countK > delayK) countK = 0;
countL++; if (countL < 0 || countL > delayL) countL = 0;
double outIL = aIL[countI-((countI > delayI)?delayI+1:0)];
double outJL = aJL[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKL = aKL[countK-((countK > delayK)?delayK+1:0)];
double outLL = aLL[countL-((countL > delayL)?delayL+1:0)];
double outIR = aIR[countI-((countI > delayI)?delayI+1:0)];
double outJR = aJR[countJ-((countJ > delayJ)?delayJ+1:0)];
double outKR = aKR[countK-((countK > delayK)?delayK+1:0)];
double outLR = aLR[countL-((countL > delayL)?delayL+1:0)];
//first block: now we have four outputs
aAL[countA] = (outIL - (outJL + outKL + outLL));
aBL[countB] = (outJL - (outIL + outKL + outLL));
aCL[countC] = (outKL - (outIL + outJL + outLL));
aDL[countD] = (outLL - (outIL + outJL + outKL));
aAR[countA] = (outIR - (outJR + outKR + outLR));
aBR[countB] = (outJR - (outIR + outKR + outLR));
aCR[countC] = (outKR - (outIR + outJR + outLR));
aDR[countD] = (outLR - (outIR + outJR + outKR));
countA++; if (countA < 0 || countA > delayA) countA = 0;
countB++; if (countB < 0 || countB > delayB) countB = 0;
countC++; if (countC < 0 || countC > delayC) countC = 0;
countD++; if (countD < 0 || countD > delayD) countD = 0;
double outAL = aAL[countA-((countA > delayA)?delayA+1:0)];
double outBL = aBL[countB-((countB > delayB)?delayB+1:0)];
double outCL = aCL[countC-((countC > delayC)?delayC+1:0)];
double outDL = aDL[countD-((countD > delayD)?delayD+1:0)];
double outAR = aAR[countA-((countA > delayA)?delayA+1:0)];
double outBR = aBR[countB-((countB > delayB)?delayB+1:0)];
double outCR = aCR[countC-((countC > delayC)?delayC+1:0)];
double outDR = aDR[countD-((countD > delayD)?delayD+1:0)];
//second block: four more outputs
aEL[countE] = (outAL - (outBL + outCL + outDL));
aFL[countF] = (outBL - (outAL + outCL + outDL));
aGL[countG] = (outCL - (outAL + outBL + outDL));
aHL[countH] = (outDL - (outAL + outBL + outCL));
aER[countE] = (outAR - (outBR + outCR + outDR));
aFR[countF] = (outBR - (outAR + outCR + outDR));
aGR[countG] = (outCR - (outAR + outBR + outDR));
aHR[countH] = (outDR - (outAR + outBR + outCR));
countE++; if (countE < 0 || countE > delayE) countE = 0;
countF++; if (countF < 0 || countF > delayF) countF = 0;
countG++; if (countG < 0 || countG > delayG) countG = 0;
countH++; if (countH < 0 || countH > delayH) countH = 0;
double outEL = aEL[countE-((countE > delayE)?delayE+1:0)];
double outFL = aFL[countF-((countF > delayF)?delayF+1:0)];
double outGL = aGL[countG-((countG > delayG)?delayG+1:0)];
double outHL = aHL[countH-((countH > delayH)?delayH+1:0)];
double outER = aER[countE-((countE > delayE)?delayE+1:0)];
double outFR = aFR[countF-((countF > delayF)?delayF+1:0)];
double outGR = aGR[countG-((countG > delayG)?delayG+1:0)];
double outHR = aHR[countH-((countH > delayH)?delayH+1:0)];
//third block: final outputs
feedbackAL = (outEL - (outFL + outGL + outHL));
feedbackBL = (outFL - (outEL + outGL + outHL));
feedbackCL = (outGL - (outEL + outFL + outHL));
feedbackDL = (outHL - (outEL + outFL + outGL));
feedbackAR = (outER - (outFR + outGR + outHR));
feedbackBR = (outFR - (outER + outGR + outHR));
feedbackCR = (outGR - (outER + outFR + outHR));
feedbackDR = (outHR - (outER + outFR + outGR));
//which we need to feed back into the input again, a bit
inputSampleL = (outEL + outFL + outGL + outHL)/8.0;
inputSampleR = (outER + outFR + outGR + outHR)/8.0;
//and take the final combined sum of outputs
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 CBL = (bez[bez_CL]*(1.0-bez[bez_cycle]))+(bez[bez_BL]*bez[bez_cycle]);
double CBR = (bez[bez_CR]*(1.0-bez[bez_cycle]))+(bez[bez_BR]*bez[bez_cycle]);
double BAL = (bez[bez_BL]*(1.0-bez[bez_cycle]))+(bez[bez_AL]*bez[bez_cycle]);
double BAR = (bez[bez_BR]*(1.0-bez[bez_cycle]))+(bez[bez_AR]*bez[bez_cycle]);
double CBAL = (bez[bez_BL]+(CBL*(1.0-bez[bez_cycle]))+(BAL*bez[bez_cycle]))*0.125;
double CBAR = (bez[bez_BR]+(CBR*(1.0-bez[bez_cycle]))+(BAR*bez[bez_cycle]))*0.125;
inputSampleL = CBAL;
inputSampleR = CBAR;
iirBL = (iirBL*(1.0-lowpass))+(inputSampleL*lowpass); inputSampleL = iirBL;
iirBR = (iirBR*(1.0-lowpass))+(inputSampleR*lowpass); inputSampleR = iirBR;
//end filter
if (wet < 1.0) {
inputSampleL = (inputSampleL * wet) + (drySampleL * (1.0-wet));
inputSampleR = (inputSampleR * wet) + (drySampleR * (1.0-wet));
}
//begin 32 bit stereo floating point dither
int expon; frexpf((float)inputSampleL, &expon);
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
frexpf((float)inputSampleR, &expon);
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit stereo floating point dither
*outputL = inputSampleL;
*outputR = inputSampleR;
//direct stereo out
inputL += 1;
inputR += 1;
outputL += 1;
outputR += 1;
}
return noErr;
}

View file

@ -0,0 +1,2 @@
_Galactic3Entry
_Galactic3Factory

View file

@ -0,0 +1,217 @@
/*
* File: Galactic3.h
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 "Galactic3Version.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Galactic3_h__
#define __Galactic3_h__
#pragma mark ____Galactic3 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 = 1.0;
static const float kDefaultValue_ParamE = 1.0;
static const float kDefaultValue_ParamF = 1.0;
static CFStringRef kParameterAName = CFSTR("Replace");
static CFStringRef kParameterBName = CFSTR("Brightness");
static CFStringRef kParameterCName = CFSTR("Detune");
static CFStringRef kParameterDName = CFSTR("Derez");
static CFStringRef kParameterEName = CFSTR("Bigness");
static CFStringRef kParameterFName = CFSTR("Dry/Wet");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
//Add your parameters here...
kNumberOfParameters=6
};
#pragma mark ____Galactic3
class Galactic3 : public AUEffectBase
{
public:
Galactic3(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Galactic3 () { 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 kGalactic3Version; }
private:
double iirAL;
double iirBL;
double aIL[6480];
double aJL[3660];
double aKL[1720];
double aLL[680];
double aAL[9700];
double aBL[6000];
double aCL[2320];
double aDL[940];
double aEL[15220];
double aFL[8460];
double aGL[4540];
double aHL[3200];
double aML[3111];
double aMR[3111];
double vibML, vibMR, depthM, oldfpd;
double feedbackAL;
double feedbackBL;
double feedbackCL;
double feedbackDL;
double iirAR;
double iirBR;
double aIR[6480];
double aJR[3660];
double aKR[1720];
double aLR[680];
double aAR[9700];
double aBR[6000];
double aCR[2320];
double aDR[940];
double aER[15220];
double aFR[8460];
double aGR[4540];
double aHR[3200];
double feedbackAR;
double feedbackBR;
double feedbackCR;
double feedbackDR;
int countA, delayA;
int countB, delayB;
int countC, delayC;
int countD, delayD;
int countE, delayE;
int countF, delayF;
int countG, delayG;
int countH, delayH;
int countI, delayI;
int countJ, delayJ;
int countK, delayK;
int countL, delayL;
int countM, delayM; //all these ints are shared across channels, not duplicated
double vibM;
enum {
bez_AL,
bez_AR,
bez_BL,
bez_BR,
bez_CL,
bez_CR,
bez_InL,
bez_InR,
bez_UnInL,
bez_UnInR,
bez_SampL,
bez_SampR,
bez_cycle,
bez_total
}; //the new undersampling. bez signifies the bezier curve reconstruction
double bez[bez_total];
uint32_t fpdL;
uint32_t fpdR;
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Galactic3.r
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 "Galactic3Version.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Galactic3 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Galactic3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Galactic3
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Galactic3_COMP_SUBTYPE
#define COMP_MANUF Galactic3_COMP_MANF
#define VERSION kGalactic3Version
#define NAME "Airwindows: Galactic3"
#define DESCRIPTION "Galactic3 AU"
#define ENTRY_POINT "Galactic3Entry"
#include "AUResources.r"

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,170 @@
// !$*UTF8*$!
{
089C1669FE841209C02AAC07 /* Project object */ = {
activeBuildConfigurationName = Release;
activeTarget = 8D01CCC60486CAD60068D4B7 /* Galactic3 */;
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
perUserDictionary = {
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
PBXFileTableDataSourceColumnWidthsKey = (
20,
364,
20,
48,
43,
43,
20,
);
PBXFileTableDataSourceColumnsKey = (
PBXFileDataSource_FiletypeID,
PBXFileDataSource_Filename_ColumnID,
PBXFileDataSource_Built_ColumnID,
PBXFileDataSource_ObjectSize_ColumnID,
PBXFileDataSource_Errors_ColumnID,
PBXFileDataSource_Warnings_ColumnID,
PBXFileDataSource_Target_ColumnID,
);
};
PBXConfiguration.PBXFileTableDataSource3.PBXFindDataSource = {
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
PBXFileTableDataSourceColumnSortingKey = PBXFindDataSource_LocationID;
PBXFileTableDataSourceColumnWidthsKey = (
200,
378,
);
PBXFileTableDataSourceColumnsKey = (
PBXFindDataSource_MessageID,
PBXFindDataSource_LocationID,
);
};
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 = 749757787;
PBXWorkspaceStateSaveDate = 749757787;
};
perUserProjectItems = {
8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */ = 8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */;
8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */ = 8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */;
8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */ = 8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */;
8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */ = 8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Galactic3.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {750, 9234}}";
sepNavSelRange = "{11004, 0}";
sepNavVisRange = "{10966, 79}";
sepNavWindowFrame = "{{440, 57}, {1000, 821}}";
};
};
8BA05A690720730100365D66 /* Galactic3Version.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{967, 2002}";
sepNavWindowFrame = "{{15, 52}, {1000, 821}}";
};
};
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
sepNavSelRange = "{0, 0}";
sepNavVisRange = "{0, 1336}";
};
};
8BC6025B073B072D006C4272 /* Galactic3.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1146, 4302}}";
sepNavSelRange = "{5733, 0}";
sepNavVisRange = "{4973, 830}";
sepNavWindowFrame = "{{440, 57}, {1000, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF6B4902CB06BF8009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BF6B4912CB06BF8009E73CC /* Galactic3.h */;
name = "Galactic3.h: 80";
rLen = 6;
rLoc = 2786;
rType = 0;
vrLen = 98;
vrLoc = 2718;
};
8BF6B4912CB06BF8009E73CC /* Galactic3.h */ = {
isa = PBXFileReference;
name = Galactic3.h;
path = /Users/christopherjohnson/Desktop/Galactic3/source/Galactic3.h;
sourceTree = "<absolute>";
};
8BF6B49F2CB06CAF009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Galactic3.h */;
name = "Galactic3.h: 193";
rLen = 0;
rLoc = 6332;
rType = 0;
vrLen = 85;
vrLoc = 5691;
};
8BF6B4A02CB06CAF009E73CC /* XCBuildMessageTextBookmark */ = {
isa = PBXTextBookmark;
comments = "'lastRefR' was not declared in this scope";
fRef = 8BA05A660720730100365D66 /* Galactic3.cpp */;
fallbackIsa = XCBuildMessageTextBookmark;
rLen = 0;
rLoc = 239;
rType = 1;
};
8BF6B4A12CB06CAF009E73CC /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Galactic3.cpp */;
name = "Galactic3.cpp: 240";
rLen = 0;
rLoc = 11004;
rType = 0;
vrLen = 79;
vrLoc = 10966;
};
8D01CCC60486CAD60068D4B7 /* Galactic3 */ = {
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 */
8B5A00942CB8526C00E1C37C /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A000C2CB8526C00E1C37C /* CAExtAudioFile.h */; };
8B5A00952CB8526C00E1C37C /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A000D2CB8526C00E1C37C /* CACFMachPort.h */; };
8B5A00962CB8526C00E1C37C /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A000E2CB8526C00E1C37C /* CABool.h */; };
8B5A00972CB8526C00E1C37C /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A000F2CB8526C00E1C37C /* CAComponent.cpp */; };
8B5A00982CB8526C00E1C37C /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00102CB8526C00E1C37C /* CADebugger.h */; };
8B5A00992CB8526C00E1C37C /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00112CB8526C00E1C37C /* CACFNumber.cpp */; };
8B5A009A2CB8526C00E1C37C /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00122CB8526C00E1C37C /* CAGuard.h */; };
8B5A009B2CB8526C00E1C37C /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00132CB8526C00E1C37C /* CAAtomic.h */; };
8B5A009C2CB8526C00E1C37C /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00142CB8526C00E1C37C /* CAStreamBasicDescription.h */; };
8B5A009D2CB8526C00E1C37C /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00152CB8526C00E1C37C /* CACFObject.h */; };
8B5A009E2CB8526C00E1C37C /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00162CB8526C00E1C37C /* CAStreamRangedDescription.h */; };
8B5A009F2CB8526C00E1C37C /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00172CB8526C00E1C37C /* CATokenMap.h */; };
8B5A00A02CB8526C00E1C37C /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00182CB8526C00E1C37C /* CAComponent.h */; };
8B5A00A12CB8526C00E1C37C /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00192CB8526C00E1C37C /* CAAudioBufferList.h */; };
8B5A00A22CB8526C00E1C37C /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A001A2CB8526C00E1C37C /* CAAudioUnit.h */; };
8B5A00A32CB8526C00E1C37C /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A001B2CB8526C00E1C37C /* CAAUParameter.h */; };
8B5A00A42CB8526C00E1C37C /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A001C2CB8526C00E1C37C /* CAException.h */; };
8B5A00A52CB8526C00E1C37C /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A001D2CB8526C00E1C37C /* CAAUProcessor.cpp */; };
8B5A00A62CB8526C00E1C37C /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A001E2CB8526C00E1C37C /* CAAUProcessor.h */; };
8B5A00A72CB8526C00E1C37C /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A001F2CB8526C00E1C37C /* CAProcess.h */; };
8B5A00A82CB8526C00E1C37C /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00202CB8526C00E1C37C /* CACFDictionary.h */; };
8B5A00A92CB8526C00E1C37C /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00212CB8526C00E1C37C /* CAPThread.h */; };
8B5A00AA2CB8526C00E1C37C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00222CB8526C00E1C37C /* CAAUParameter.cpp */; };
8B5A00AB2CB8526C00E1C37C /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00232CB8526C00E1C37C /* CAAudioTimeStamp.h */; };
8B5A00AC2CB8526C00E1C37C /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00242CB8526C00E1C37C /* CAFilePathUtils.cpp */; };
8B5A00AD2CB8526C00E1C37C /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00252CB8526C00E1C37C /* CAAudioValueRange.h */; };
8B5A00AE2CB8526C00E1C37C /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00262CB8526C00E1C37C /* CAVectorUnitTypes.h */; };
8B5A00AF2CB8526C00E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00272CB8526C00E1C37C /* CAAudioChannelLayoutObject.cpp */; };
8B5A00B02CB8526C00E1C37C /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00282CB8526C00E1C37C /* CAGuard.cpp */; };
8B5A00B12CB8526C00E1C37C /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00292CB8526C00E1C37C /* CACFNumber.h */; };
8B5A00B22CB8526C00E1C37C /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A002A2CB8526C00E1C37C /* CACFDistributedNotification.cpp */; };
8B5A00B32CB8526C00E1C37C /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A002B2CB8526C00E1C37C /* CACFString.h */; };
8B5A00B42CB8526C00E1C37C /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A002C2CB8526C00E1C37C /* CAAUMIDIMapManager.cpp */; };
8B5A00B52CB8526C00E1C37C /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A002D2CB8526C00E1C37C /* CAComponentDescription.cpp */; };
8B5A00B62CB8526C00E1C37C /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A002E2CB8526C00E1C37C /* CAHostTimeBase.h */; };
8B5A00B72CB8526C00E1C37C /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A002F2CB8526C00E1C37C /* CADebugMacros.cpp */; };
8B5A00B82CB8526C00E1C37C /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00302CB8526C00E1C37C /* CAAudioFileFormats.h */; };
8B5A00B92CB8526C00E1C37C /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00312CB8526C00E1C37C /* CAAUMIDIMapManager.h */; };
8B5A00BA2CB8526C00E1C37C /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00322CB8526C00E1C37C /* CACFDictionary.cpp */; };
8B5A00BB2CB8526C00E1C37C /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00332CB8526C00E1C37C /* CAMutex.h */; };
8B5A00BC2CB8526C00E1C37C /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00342CB8526C00E1C37C /* CACFString.cpp */; };
8B5A00BD2CB8526C00E1C37C /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00352CB8526C00E1C37C /* CASettingsStorage.h */; };
8B5A00BE2CB8526C00E1C37C /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00362CB8526C00E1C37C /* CADebugPrintf.h */; };
8B5A00BF2CB8526C00E1C37C /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00372CB8526C00E1C37C /* CAXException.cpp */; };
8B5A00C02CB8526C00E1C37C /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00382CB8526C00E1C37C /* CAAUMIDIMap.h */; };
8B5A00C12CB8526C00E1C37C /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00392CB8526C00E1C37C /* AUParamInfo.h */; };
8B5A00C22CB8526C00E1C37C /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A003A2CB8526C00E1C37C /* CABitOperations.h */; };
8B5A00C32CB8526C00E1C37C /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A003B2CB8526C00E1C37C /* CACFPreferences.cpp */; };
8B5A00C42CB8526C00E1C37C /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A003C2CB8526C00E1C37C /* CABundleLocker.h */; };
8B5A00C52CB8526C00E1C37C /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A003D2CB8526C00E1C37C /* CAPropertyAddress.h */; };
8B5A00C62CB8526C00E1C37C /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A003E2CB8526C00E1C37C /* CAXException.h */; };
8B5A00C72CB8526C00E1C37C /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A003F2CB8526C00E1C37C /* CAAudioChannelLayout.cpp */; };
8B5A00C82CB8526C00E1C37C /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00402CB8526C00E1C37C /* CAThreadSafeList.h */; };
8B5A00C92CB8526C00E1C37C /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00412CB8526C00E1C37C /* CAAudioUnitOutputCapturer.h */; };
8B5A00CA2CB8526C00E1C37C /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00422CB8526C00E1C37C /* AUParamInfo.cpp */; };
8B5A00CB2CB8526C00E1C37C /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00432CB8526C00E1C37C /* CASharedLibrary.cpp */; };
8B5A00CC2CB8526C00E1C37C /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00442CB8526C00E1C37C /* CAAUMIDIMap.cpp */; };
8B5A00CD2CB8526C00E1C37C /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00452CB8526C00E1C37C /* CALogMacros.h */; };
8B5A00CE2CB8526C00E1C37C /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00462CB8526C00E1C37C /* CACFMessagePort.cpp */; };
8B5A00CF2CB8526C00E1C37C /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00472CB8526C00E1C37C /* CARingBuffer.h */; };
8B5A00D02CB8526C00E1C37C /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00482CB8526C00E1C37C /* AUOutputBL.cpp */; };
8B5A00D12CB8526C00E1C37C /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00492CB8526C00E1C37C /* CABufferList.h */; };
8B5A00D22CB8526C00E1C37C /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A004A2CB8526C00E1C37C /* CASharedLibrary.h */; };
8B5A00D32CB8526C00E1C37C /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A004B2CB8526C00E1C37C /* CACFData.h */; };
8B5A00D42CB8526C00E1C37C /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A004C2CB8526C00E1C37C /* CAStreamRangedDescription.cpp */; };
8B5A00D52CB8526C00E1C37C /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A004D2CB8526C00E1C37C /* CAPThread.cpp */; };
8B5A00D62CB8526C00E1C37C /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A004E2CB8526C00E1C37C /* CAAutoDisposer.h */; };
8B5A00D72CB8526C00E1C37C /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A004F2CB8526C00E1C37C /* CACFPreferences.h */; };
8B5A00D82CB8526C00E1C37C /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00502CB8526C00E1C37C /* CAVectorUnit.cpp */; };
8B5A00D92CB8526C00E1C37C /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00512CB8526C00E1C37C /* CAComponentDescription.h */; };
8B5A00DA2CB8526C00E1C37C /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00522CB8526C00E1C37C /* CADebugMacros.h */; };
8B5A00DB2CB8526C00E1C37C /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00532CB8526C00E1C37C /* AUOutputBL.h */; };
8B5A00DC2CB8526C00E1C37C /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00542CB8526C00E1C37C /* CADebugPrintf.cpp */; };
8B5A00DD2CB8526C00E1C37C /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00552CB8526C00E1C37C /* CARingBuffer.cpp */; };
8B5A00DE2CB8526C00E1C37C /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00562CB8526C00E1C37C /* CACFPlugIn.h */; };
8B5A00DF2CB8526C00E1C37C /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00572CB8526C00E1C37C /* CASettingsStorage.cpp */; };
8B5A00E02CB8526C00E1C37C /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00582CB8526C00E1C37C /* CAMixMap.h */; };
8B5A00E12CB8526C00E1C37C /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00592CB8526C00E1C37C /* CACFDistributedNotification.h */; };
8B5A00E22CB8526C00E1C37C /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A005A2CB8526C00E1C37C /* CAFilePathUtils.h */; };
8B5A00E32CB8526C00E1C37C /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A005B2CB8526C00E1C37C /* CATink.h */; };
8B5A00E42CB8526C00E1C37C /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A005C2CB8526C00E1C37C /* CAStreamBasicDescription.cpp */; };
8B5A00E52CB8526C00E1C37C /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A005D2CB8526C00E1C37C /* CAAudioChannelLayout.h */; };
8B5A00E62CB8526C00E1C37C /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A005E2CB8526C00E1C37C /* CAProcess.cpp */; };
8B5A00E72CB8526C00E1C37C /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A005F2CB8526C00E1C37C /* CAHostTimeBase.cpp */; };
8B5A00E82CB8526C00E1C37C /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00602CB8526C00E1C37C /* CAPersistence.cpp */; };
8B5A00E92CB8526C00E1C37C /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00612CB8526C00E1C37C /* CAAudioBufferList.cpp */; };
8B5A00EA2CB8526C00E1C37C /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00622CB8526C00E1C37C /* CAAudioTimeStamp.cpp */; };
8B5A00EB2CB8526C00E1C37C /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00632CB8526C00E1C37C /* CAVectorUnit.h */; };
8B5A00EC2CB8526C00E1C37C /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00642CB8526C00E1C37C /* CAByteOrder.h */; };
8B5A00ED2CB8526C00E1C37C /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00652CB8526C00E1C37C /* CACFArray.h */; };
8B5A00EE2CB8526C00E1C37C /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00662CB8526C00E1C37C /* CAAtomicStack.h */; };
8B5A00EF2CB8526C00E1C37C /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00672CB8526C00E1C37C /* CAReferenceCounted.h */; };
8B5A00F02CB8526C00E1C37C /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00682CB8526C00E1C37C /* CACFMachPort.cpp */; };
8B5A00F12CB8526C00E1C37C /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00692CB8526C00E1C37C /* CABufferList.cpp */; };
8B5A00F22CB8526C00E1C37C /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A006A2CB8526C00E1C37C /* CAMutex.cpp */; };
8B5A00F32CB8526C00E1C37C /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A006B2CB8526C00E1C37C /* CADebugger.cpp */; };
8B5A00F42CB8526C00E1C37C /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A006C2CB8526C00E1C37C /* CABundleLocker.cpp */; };
8B5A00F52CB8526C00E1C37C /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A006D2CB8526C00E1C37C /* CAAudioFileFormats.cpp */; };
8B5A00F62CB8526C00E1C37C /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A006E2CB8526C00E1C37C /* CAMath.h */; };
8B5A00F72CB8526C00E1C37C /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A006F2CB8526C00E1C37C /* CACFArray.cpp */; };
8B5A00F82CB8526C00E1C37C /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00702CB8526C00E1C37C /* CACFMessagePort.h */; };
8B5A00F92CB8526C00E1C37C /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00712CB8526C00E1C37C /* CAAudioValueRange.cpp */; };
8B5A00FA2CB8526C00E1C37C /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00722CB8526C00E1C37C /* CAAudioUnit.cpp */; };
8B5A00FB2CB8526C00E1C37C /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00762CB8526C00E1C37C /* AUViewLocalizedStringKeys.h */; };
8B5A00FC2CB8526C00E1C37C /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00782CB8526C00E1C37C /* ComponentBase.cpp */; };
8B5A00FD2CB8526C00E1C37C /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00792CB8526C00E1C37C /* AUScopeElement.cpp */; };
8B5A00FE2CB8526C00E1C37C /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A007A2CB8526C00E1C37C /* ComponentBase.h */; };
8B5A00FF2CB8526C00E1C37C /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A007B2CB8526C00E1C37C /* AUBase.cpp */; };
8B5A01002CB8526C00E1C37C /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A007C2CB8526C00E1C37C /* AUInputElement.h */; };
8B5A01012CB8526C00E1C37C /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A007D2CB8526C00E1C37C /* AUBase.h */; };
8B5A01022CB8526C00E1C37C /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A007E2CB8526C00E1C37C /* AUPlugInDispatch.h */; };
8B5A01032CB8526C00E1C37C /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A007F2CB8526C00E1C37C /* AUDispatch.h */; };
8B5A01042CB8526C00E1C37C /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00802CB8526C00E1C37C /* AUOutputElement.cpp */; };
8B5A01062CB8526C00E1C37C /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00822CB8526C00E1C37C /* AUPlugInDispatch.cpp */; };
8B5A01072CB8526C00E1C37C /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00832CB8526C00E1C37C /* AUOutputElement.h */; };
8B5A01082CB8526C00E1C37C /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00842CB8526C00E1C37C /* AUDispatch.cpp */; };
8B5A01092CB8526C00E1C37C /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00852CB8526C00E1C37C /* AUScopeElement.h */; };
8B5A010A2CB8526C00E1C37C /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00862CB8526C00E1C37C /* AUInputElement.cpp */; };
8B5A010B2CB8526C00E1C37C /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00882CB8526C00E1C37C /* AUEffectBase.cpp */; };
8B5A010C2CB8526C00E1C37C /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00892CB8526C00E1C37C /* AUEffectBase.h */; };
8B5A010D2CB8526C00E1C37C /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A008B2CB8526C00E1C37C /* AUTimestampGenerator.h */; };
8B5A010E2CB8526C00E1C37C /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A008C2CB8526C00E1C37C /* AUBaseHelper.cpp */; };
8B5A010F2CB8526C00E1C37C /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A008D2CB8526C00E1C37C /* AUSilentTimeout.h */; };
8B5A01102CB8526C00E1C37C /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A008E2CB8526C00E1C37C /* AUInputFormatConverter.h */; };
8B5A01112CB8526C00E1C37C /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A008F2CB8526C00E1C37C /* AUTimestampGenerator.cpp */; };
8B5A01122CB8526C00E1C37C /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5A00902CB8526C00E1C37C /* AUBuffer.cpp */; };
8B5A01132CB8526C00E1C37C /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00912CB8526C00E1C37C /* AUMIDIDefs.h */; };
8B5A01142CB8526C00E1C37C /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00922CB8526C00E1C37C /* AUBuffer.h */; };
8B5A01152CB8526C00E1C37C /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5A00932CB8526C00E1C37C /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* Galactic3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Galactic3.cpp */; };
8BA05A6E0720730100365D66 /* Galactic3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Galactic3Version.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 /* Galactic3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Galactic3.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5A000C2CB8526C00E1C37C /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B5A000D2CB8526C00E1C37C /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B5A000E2CB8526C00E1C37C /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B5A000F2CB8526C00E1C37C /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B5A00102CB8526C00E1C37C /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B5A00112CB8526C00E1C37C /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B5A00122CB8526C00E1C37C /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B5A00132CB8526C00E1C37C /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B5A00142CB8526C00E1C37C /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B5A00152CB8526C00E1C37C /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B5A00162CB8526C00E1C37C /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B5A00172CB8526C00E1C37C /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B5A00182CB8526C00E1C37C /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B5A00192CB8526C00E1C37C /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B5A001A2CB8526C00E1C37C /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B5A001B2CB8526C00E1C37C /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B5A001C2CB8526C00E1C37C /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B5A001D2CB8526C00E1C37C /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B5A001E2CB8526C00E1C37C /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B5A001F2CB8526C00E1C37C /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B5A00202CB8526C00E1C37C /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B5A00212CB8526C00E1C37C /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B5A00222CB8526C00E1C37C /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B5A00232CB8526C00E1C37C /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B5A00242CB8526C00E1C37C /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B5A00252CB8526C00E1C37C /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B5A00262CB8526C00E1C37C /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B5A00272CB8526C00E1C37C /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B5A00282CB8526C00E1C37C /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B5A00292CB8526C00E1C37C /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B5A002A2CB8526C00E1C37C /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B5A002B2CB8526C00E1C37C /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B5A002C2CB8526C00E1C37C /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B5A002D2CB8526C00E1C37C /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B5A002E2CB8526C00E1C37C /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B5A002F2CB8526C00E1C37C /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B5A00302CB8526C00E1C37C /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B5A00312CB8526C00E1C37C /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B5A00322CB8526C00E1C37C /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B5A00332CB8526C00E1C37C /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B5A00342CB8526C00E1C37C /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B5A00352CB8526C00E1C37C /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B5A00362CB8526C00E1C37C /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B5A00372CB8526C00E1C37C /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B5A00382CB8526C00E1C37C /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B5A00392CB8526C00E1C37C /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B5A003A2CB8526C00E1C37C /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B5A003B2CB8526C00E1C37C /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B5A003C2CB8526C00E1C37C /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B5A003D2CB8526C00E1C37C /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B5A003E2CB8526C00E1C37C /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B5A003F2CB8526C00E1C37C /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B5A00402CB8526C00E1C37C /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B5A00412CB8526C00E1C37C /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B5A00422CB8526C00E1C37C /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B5A00432CB8526C00E1C37C /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B5A00442CB8526C00E1C37C /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B5A00452CB8526C00E1C37C /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B5A00462CB8526C00E1C37C /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B5A00472CB8526C00E1C37C /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B5A00482CB8526C00E1C37C /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B5A00492CB8526C00E1C37C /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B5A004A2CB8526C00E1C37C /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B5A004B2CB8526C00E1C37C /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B5A004C2CB8526C00E1C37C /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B5A004D2CB8526C00E1C37C /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B5A004E2CB8526C00E1C37C /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B5A004F2CB8526C00E1C37C /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B5A00502CB8526C00E1C37C /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B5A00512CB8526C00E1C37C /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B5A00522CB8526C00E1C37C /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B5A00532CB8526C00E1C37C /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B5A00542CB8526C00E1C37C /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B5A00552CB8526C00E1C37C /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B5A00562CB8526C00E1C37C /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B5A00572CB8526C00E1C37C /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B5A00582CB8526C00E1C37C /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B5A00592CB8526C00E1C37C /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B5A005A2CB8526C00E1C37C /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B5A005B2CB8526C00E1C37C /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B5A005C2CB8526C00E1C37C /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B5A005D2CB8526C00E1C37C /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B5A005E2CB8526C00E1C37C /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B5A005F2CB8526C00E1C37C /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B5A00602CB8526C00E1C37C /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B5A00612CB8526C00E1C37C /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B5A00622CB8526C00E1C37C /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B5A00632CB8526C00E1C37C /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B5A00642CB8526C00E1C37C /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B5A00652CB8526C00E1C37C /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B5A00662CB8526C00E1C37C /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B5A00672CB8526C00E1C37C /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B5A00682CB8526C00E1C37C /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B5A00692CB8526C00E1C37C /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B5A006A2CB8526C00E1C37C /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B5A006B2CB8526C00E1C37C /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B5A006C2CB8526C00E1C37C /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B5A006D2CB8526C00E1C37C /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B5A006E2CB8526C00E1C37C /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B5A006F2CB8526C00E1C37C /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B5A00702CB8526C00E1C37C /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B5A00712CB8526C00E1C37C /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B5A00722CB8526C00E1C37C /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B5A00762CB8526C00E1C37C /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B5A00782CB8526C00E1C37C /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B5A00792CB8526C00E1C37C /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B5A007A2CB8526C00E1C37C /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B5A007B2CB8526C00E1C37C /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B5A007C2CB8526C00E1C37C /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B5A007D2CB8526C00E1C37C /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B5A007E2CB8526C00E1C37C /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B5A007F2CB8526C00E1C37C /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B5A00802CB8526C00E1C37C /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B5A00812CB8526C00E1C37C /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B5A00822CB8526C00E1C37C /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B5A00832CB8526C00E1C37C /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B5A00842CB8526C00E1C37C /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B5A00852CB8526C00E1C37C /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B5A00862CB8526C00E1C37C /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B5A00882CB8526C00E1C37C /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B5A00892CB8526C00E1C37C /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B5A008B2CB8526C00E1C37C /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B5A008C2CB8526C00E1C37C /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B5A008D2CB8526C00E1C37C /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B5A008E2CB8526C00E1C37C /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B5A008F2CB8526C00E1C37C /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B5A00902CB8526C00E1C37C /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B5A00912CB8526C00E1C37C /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B5A00922CB8526C00E1C37C /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B5A00932CB8526C00E1C37C /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B5A01162CB8531100E1C37C /* 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 /* Galactic3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Galactic3.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Galactic3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Galactic3.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Galactic3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Galactic3.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* Galactic3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Galactic3Version.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 /* Galactic3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Galactic3.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Galactic3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Galactic3.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 /* Galactic3 */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Galactic3;
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 = (
8B5A000A2CB8526C00E1C37C /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Galactic3.component */,
);
name = Products;
sourceTree = "<group>";
};
8B5A000A2CB8526C00E1C37C /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B5A000B2CB8526C00E1C37C /* PublicUtility */,
8B5A00732CB8526C00E1C37C /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B5A000B2CB8526C00E1C37C /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B5A000C2CB8526C00E1C37C /* CAExtAudioFile.h */,
8B5A000D2CB8526C00E1C37C /* CACFMachPort.h */,
8B5A000E2CB8526C00E1C37C /* CABool.h */,
8B5A000F2CB8526C00E1C37C /* CAComponent.cpp */,
8B5A00102CB8526C00E1C37C /* CADebugger.h */,
8B5A00112CB8526C00E1C37C /* CACFNumber.cpp */,
8B5A00122CB8526C00E1C37C /* CAGuard.h */,
8B5A00132CB8526C00E1C37C /* CAAtomic.h */,
8B5A00142CB8526C00E1C37C /* CAStreamBasicDescription.h */,
8B5A00152CB8526C00E1C37C /* CACFObject.h */,
8B5A00162CB8526C00E1C37C /* CAStreamRangedDescription.h */,
8B5A00172CB8526C00E1C37C /* CATokenMap.h */,
8B5A00182CB8526C00E1C37C /* CAComponent.h */,
8B5A00192CB8526C00E1C37C /* CAAudioBufferList.h */,
8B5A001A2CB8526C00E1C37C /* CAAudioUnit.h */,
8B5A001B2CB8526C00E1C37C /* CAAUParameter.h */,
8B5A001C2CB8526C00E1C37C /* CAException.h */,
8B5A001D2CB8526C00E1C37C /* CAAUProcessor.cpp */,
8B5A001E2CB8526C00E1C37C /* CAAUProcessor.h */,
8B5A001F2CB8526C00E1C37C /* CAProcess.h */,
8B5A00202CB8526C00E1C37C /* CACFDictionary.h */,
8B5A00212CB8526C00E1C37C /* CAPThread.h */,
8B5A00222CB8526C00E1C37C /* CAAUParameter.cpp */,
8B5A00232CB8526C00E1C37C /* CAAudioTimeStamp.h */,
8B5A00242CB8526C00E1C37C /* CAFilePathUtils.cpp */,
8B5A00252CB8526C00E1C37C /* CAAudioValueRange.h */,
8B5A00262CB8526C00E1C37C /* CAVectorUnitTypes.h */,
8B5A00272CB8526C00E1C37C /* CAAudioChannelLayoutObject.cpp */,
8B5A00282CB8526C00E1C37C /* CAGuard.cpp */,
8B5A00292CB8526C00E1C37C /* CACFNumber.h */,
8B5A002A2CB8526C00E1C37C /* CACFDistributedNotification.cpp */,
8B5A002B2CB8526C00E1C37C /* CACFString.h */,
8B5A002C2CB8526C00E1C37C /* CAAUMIDIMapManager.cpp */,
8B5A002D2CB8526C00E1C37C /* CAComponentDescription.cpp */,
8B5A002E2CB8526C00E1C37C /* CAHostTimeBase.h */,
8B5A002F2CB8526C00E1C37C /* CADebugMacros.cpp */,
8B5A00302CB8526C00E1C37C /* CAAudioFileFormats.h */,
8B5A00312CB8526C00E1C37C /* CAAUMIDIMapManager.h */,
8B5A00322CB8526C00E1C37C /* CACFDictionary.cpp */,
8B5A00332CB8526C00E1C37C /* CAMutex.h */,
8B5A00342CB8526C00E1C37C /* CACFString.cpp */,
8B5A00352CB8526C00E1C37C /* CASettingsStorage.h */,
8B5A00362CB8526C00E1C37C /* CADebugPrintf.h */,
8B5A00372CB8526C00E1C37C /* CAXException.cpp */,
8B5A00382CB8526C00E1C37C /* CAAUMIDIMap.h */,
8B5A00392CB8526C00E1C37C /* AUParamInfo.h */,
8B5A003A2CB8526C00E1C37C /* CABitOperations.h */,
8B5A003B2CB8526C00E1C37C /* CACFPreferences.cpp */,
8B5A003C2CB8526C00E1C37C /* CABundleLocker.h */,
8B5A003D2CB8526C00E1C37C /* CAPropertyAddress.h */,
8B5A003E2CB8526C00E1C37C /* CAXException.h */,
8B5A003F2CB8526C00E1C37C /* CAAudioChannelLayout.cpp */,
8B5A00402CB8526C00E1C37C /* CAThreadSafeList.h */,
8B5A00412CB8526C00E1C37C /* CAAudioUnitOutputCapturer.h */,
8B5A00422CB8526C00E1C37C /* AUParamInfo.cpp */,
8B5A00432CB8526C00E1C37C /* CASharedLibrary.cpp */,
8B5A00442CB8526C00E1C37C /* CAAUMIDIMap.cpp */,
8B5A00452CB8526C00E1C37C /* CALogMacros.h */,
8B5A00462CB8526C00E1C37C /* CACFMessagePort.cpp */,
8B5A00472CB8526C00E1C37C /* CARingBuffer.h */,
8B5A00482CB8526C00E1C37C /* AUOutputBL.cpp */,
8B5A00492CB8526C00E1C37C /* CABufferList.h */,
8B5A004A2CB8526C00E1C37C /* CASharedLibrary.h */,
8B5A004B2CB8526C00E1C37C /* CACFData.h */,
8B5A004C2CB8526C00E1C37C /* CAStreamRangedDescription.cpp */,
8B5A004D2CB8526C00E1C37C /* CAPThread.cpp */,
8B5A004E2CB8526C00E1C37C /* CAAutoDisposer.h */,
8B5A004F2CB8526C00E1C37C /* CACFPreferences.h */,
8B5A00502CB8526C00E1C37C /* CAVectorUnit.cpp */,
8B5A00512CB8526C00E1C37C /* CAComponentDescription.h */,
8B5A00522CB8526C00E1C37C /* CADebugMacros.h */,
8B5A00532CB8526C00E1C37C /* AUOutputBL.h */,
8B5A00542CB8526C00E1C37C /* CADebugPrintf.cpp */,
8B5A00552CB8526C00E1C37C /* CARingBuffer.cpp */,
8B5A00562CB8526C00E1C37C /* CACFPlugIn.h */,
8B5A00572CB8526C00E1C37C /* CASettingsStorage.cpp */,
8B5A00582CB8526C00E1C37C /* CAMixMap.h */,
8B5A00592CB8526C00E1C37C /* CACFDistributedNotification.h */,
8B5A005A2CB8526C00E1C37C /* CAFilePathUtils.h */,
8B5A005B2CB8526C00E1C37C /* CATink.h */,
8B5A005C2CB8526C00E1C37C /* CAStreamBasicDescription.cpp */,
8B5A005D2CB8526C00E1C37C /* CAAudioChannelLayout.h */,
8B5A005E2CB8526C00E1C37C /* CAProcess.cpp */,
8B5A005F2CB8526C00E1C37C /* CAHostTimeBase.cpp */,
8B5A00602CB8526C00E1C37C /* CAPersistence.cpp */,
8B5A00612CB8526C00E1C37C /* CAAudioBufferList.cpp */,
8B5A00622CB8526C00E1C37C /* CAAudioTimeStamp.cpp */,
8B5A00632CB8526C00E1C37C /* CAVectorUnit.h */,
8B5A00642CB8526C00E1C37C /* CAByteOrder.h */,
8B5A00652CB8526C00E1C37C /* CACFArray.h */,
8B5A00662CB8526C00E1C37C /* CAAtomicStack.h */,
8B5A00672CB8526C00E1C37C /* CAReferenceCounted.h */,
8B5A00682CB8526C00E1C37C /* CACFMachPort.cpp */,
8B5A00692CB8526C00E1C37C /* CABufferList.cpp */,
8B5A006A2CB8526C00E1C37C /* CAMutex.cpp */,
8B5A006B2CB8526C00E1C37C /* CADebugger.cpp */,
8B5A006C2CB8526C00E1C37C /* CABundleLocker.cpp */,
8B5A006D2CB8526C00E1C37C /* CAAudioFileFormats.cpp */,
8B5A006E2CB8526C00E1C37C /* CAMath.h */,
8B5A006F2CB8526C00E1C37C /* CACFArray.cpp */,
8B5A00702CB8526C00E1C37C /* CACFMessagePort.h */,
8B5A00712CB8526C00E1C37C /* CAAudioValueRange.cpp */,
8B5A00722CB8526C00E1C37C /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B5A00732CB8526C00E1C37C /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B5A00742CB8526C00E1C37C /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B5A00742CB8526C00E1C37C /* AUPublic */ = {
isa = PBXGroup;
children = (
8B5A00752CB8526C00E1C37C /* AUViewBase */,
8B5A00772CB8526C00E1C37C /* AUBase */,
8B5A00872CB8526C00E1C37C /* OtherBases */,
8B5A008A2CB8526C00E1C37C /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B5A00752CB8526C00E1C37C /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B5A00762CB8526C00E1C37C /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B5A00772CB8526C00E1C37C /* AUBase */ = {
isa = PBXGroup;
children = (
8B5A00782CB8526C00E1C37C /* ComponentBase.cpp */,
8B5A00792CB8526C00E1C37C /* AUScopeElement.cpp */,
8B5A007A2CB8526C00E1C37C /* ComponentBase.h */,
8B5A007B2CB8526C00E1C37C /* AUBase.cpp */,
8B5A007C2CB8526C00E1C37C /* AUInputElement.h */,
8B5A007D2CB8526C00E1C37C /* AUBase.h */,
8B5A007E2CB8526C00E1C37C /* AUPlugInDispatch.h */,
8B5A007F2CB8526C00E1C37C /* AUDispatch.h */,
8B5A00802CB8526C00E1C37C /* AUOutputElement.cpp */,
8B5A00812CB8526C00E1C37C /* AUResources.r */,
8B5A00822CB8526C00E1C37C /* AUPlugInDispatch.cpp */,
8B5A00832CB8526C00E1C37C /* AUOutputElement.h */,
8B5A00842CB8526C00E1C37C /* AUDispatch.cpp */,
8B5A00852CB8526C00E1C37C /* AUScopeElement.h */,
8B5A00862CB8526C00E1C37C /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B5A00872CB8526C00E1C37C /* OtherBases */ = {
isa = PBXGroup;
children = (
8B5A00882CB8526C00E1C37C /* AUEffectBase.cpp */,
8B5A00892CB8526C00E1C37C /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B5A008A2CB8526C00E1C37C /* Utility */ = {
isa = PBXGroup;
children = (
8B5A008B2CB8526C00E1C37C /* AUTimestampGenerator.h */,
8B5A008C2CB8526C00E1C37C /* AUBaseHelper.cpp */,
8B5A008D2CB8526C00E1C37C /* AUSilentTimeout.h */,
8B5A008E2CB8526C00E1C37C /* AUInputFormatConverter.h */,
8B5A008F2CB8526C00E1C37C /* AUTimestampGenerator.cpp */,
8B5A00902CB8526C00E1C37C /* AUBuffer.cpp */,
8B5A00912CB8526C00E1C37C /* AUMIDIDefs.h */,
8B5A00922CB8526C00E1C37C /* AUBuffer.h */,
8B5A00932CB8526C00E1C37C /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Galactic3.h */,
8BA05A660720730100365D66 /* Galactic3.cpp */,
8BA05A670720730100365D66 /* Galactic3.exp */,
8BA05A680720730100365D66 /* Galactic3.r */,
8BA05A690720730100365D66 /* Galactic3Version.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B5A00C42CB8526C00E1C37C /* CABundleLocker.h in Headers */,
8B5A00E52CB8526C00E1C37C /* CAAudioChannelLayout.h in Headers */,
8B5A00DB2CB8526C00E1C37C /* AUOutputBL.h in Headers */,
8B5A00B62CB8526C00E1C37C /* CAHostTimeBase.h in Headers */,
8B5A00FE2CB8526C00E1C37C /* ComponentBase.h in Headers */,
8B5A00EE2CB8526C00E1C37C /* CAAtomicStack.h in Headers */,
8B5A00AB2CB8526C00E1C37C /* CAAudioTimeStamp.h in Headers */,
8B5A00C82CB8526C00E1C37C /* CAThreadSafeList.h in Headers */,
8B5A00A32CB8526C00E1C37C /* CAAUParameter.h in Headers */,
8B5A01152CB8526C00E1C37C /* AUBaseHelper.h in Headers */,
8B5A010D2CB8526C00E1C37C /* AUTimestampGenerator.h in Headers */,
8B5A00BE2CB8526C00E1C37C /* CADebugPrintf.h in Headers */,
8B5A00F82CB8526C00E1C37C /* CACFMessagePort.h in Headers */,
8B5A00A62CB8526C00E1C37C /* CAAUProcessor.h in Headers */,
8B5A00A22CB8526C00E1C37C /* CAAudioUnit.h in Headers */,
8B5A00FB2CB8526C00E1C37C /* AUViewLocalizedStringKeys.h in Headers */,
8B5A00E12CB8526C00E1C37C /* CACFDistributedNotification.h in Headers */,
8B5A00A02CB8526C00E1C37C /* CAComponent.h in Headers */,
8B5A00AE2CB8526C00E1C37C /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* Galactic3Version.h in Headers */,
8B5A00E22CB8526C00E1C37C /* CAFilePathUtils.h in Headers */,
8B5A00A42CB8526C00E1C37C /* CAException.h in Headers */,
8B5A009B2CB8526C00E1C37C /* CAAtomic.h in Headers */,
8B5A009A2CB8526C00E1C37C /* CAGuard.h in Headers */,
8B5A01002CB8526C00E1C37C /* AUInputElement.h in Headers */,
8B5A00D72CB8526C00E1C37C /* CACFPreferences.h in Headers */,
8B5A00EC2CB8526C00E1C37C /* CAByteOrder.h in Headers */,
8B5A00CF2CB8526C00E1C37C /* CARingBuffer.h in Headers */,
8B5A00962CB8526C00E1C37C /* CABool.h in Headers */,
8B5A00BB2CB8526C00E1C37C /* CAMutex.h in Headers */,
8B5A01012CB8526C00E1C37C /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* Galactic3.h in Headers */,
8B5A00B32CB8526C00E1C37C /* CACFString.h in Headers */,
8B5A00D22CB8526C00E1C37C /* CASharedLibrary.h in Headers */,
8B5A009F2CB8526C00E1C37C /* CATokenMap.h in Headers */,
8B5A00942CB8526C00E1C37C /* CAExtAudioFile.h in Headers */,
8B5A00A92CB8526C00E1C37C /* CAPThread.h in Headers */,
8B5A00C52CB8526C00E1C37C /* CAPropertyAddress.h in Headers */,
8B5A00EF2CB8526C00E1C37C /* CAReferenceCounted.h in Headers */,
8B5A01142CB8526C00E1C37C /* AUBuffer.h in Headers */,
8B5A00F62CB8526C00E1C37C /* CAMath.h in Headers */,
8B5A00D62CB8526C00E1C37C /* CAAutoDisposer.h in Headers */,
8B5A009D2CB8526C00E1C37C /* CACFObject.h in Headers */,
8B5A00BD2CB8526C00E1C37C /* CASettingsStorage.h in Headers */,
8B5A00C62CB8526C00E1C37C /* CAXException.h in Headers */,
8B5A00E32CB8526C00E1C37C /* CATink.h in Headers */,
8B5A01102CB8526C00E1C37C /* AUInputFormatConverter.h in Headers */,
8B5A00EB2CB8526C00E1C37C /* CAVectorUnit.h in Headers */,
8B5A00A72CB8526C00E1C37C /* CAProcess.h in Headers */,
8B5A00AD2CB8526C00E1C37C /* CAAudioValueRange.h in Headers */,
8B5A00C22CB8526C00E1C37C /* CABitOperations.h in Headers */,
8B5A00B82CB8526C00E1C37C /* CAAudioFileFormats.h in Headers */,
8B5A00B12CB8526C00E1C37C /* CACFNumber.h in Headers */,
8B5A00C92CB8526C00E1C37C /* CAAudioUnitOutputCapturer.h in Headers */,
8B5A00DA2CB8526C00E1C37C /* CADebugMacros.h in Headers */,
8B5A01132CB8526C00E1C37C /* AUMIDIDefs.h in Headers */,
8B5A00D32CB8526C00E1C37C /* CACFData.h in Headers */,
8B5A009C2CB8526C00E1C37C /* CAStreamBasicDescription.h in Headers */,
8B5A01022CB8526C00E1C37C /* AUPlugInDispatch.h in Headers */,
8B5A009E2CB8526C00E1C37C /* CAStreamRangedDescription.h in Headers */,
8B5A00DE2CB8526C00E1C37C /* CACFPlugIn.h in Headers */,
8B5A00A12CB8526C00E1C37C /* CAAudioBufferList.h in Headers */,
8B5A00B92CB8526C00E1C37C /* CAAUMIDIMapManager.h in Headers */,
8B5A010C2CB8526C00E1C37C /* AUEffectBase.h in Headers */,
8B5A00A82CB8526C00E1C37C /* CACFDictionary.h in Headers */,
8B5A01092CB8526C00E1C37C /* AUScopeElement.h in Headers */,
8B5A00D92CB8526C00E1C37C /* CAComponentDescription.h in Headers */,
8B5A010F2CB8526C00E1C37C /* AUSilentTimeout.h in Headers */,
8B5A00D12CB8526C00E1C37C /* CABufferList.h in Headers */,
8B5A01032CB8526C00E1C37C /* AUDispatch.h in Headers */,
8B5A01072CB8526C00E1C37C /* AUOutputElement.h in Headers */,
8B5A00CD2CB8526C00E1C37C /* CALogMacros.h in Headers */,
8B5A00C12CB8526C00E1C37C /* AUParamInfo.h in Headers */,
8B5A00E02CB8526C00E1C37C /* CAMixMap.h in Headers */,
8B5A00ED2CB8526C00E1C37C /* CACFArray.h in Headers */,
8B5A00952CB8526C00E1C37C /* CACFMachPort.h in Headers */,
8B5A00C02CB8526C00E1C37C /* CAAUMIDIMap.h in Headers */,
8B5A00982CB8526C00E1C37C /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Galactic3 */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Galactic3" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Galactic3;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Galactic3;
productReference = 8D01CCD20486CAD60068D4B7 /* Galactic3.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 "Galactic3" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
Base,
de,
fr,
en,
ja,
);
mainGroup = 089C166AFE841209C02AAC07 /* Galactic3 */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Galactic3 */,
);
};
/* 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 = (
8B5A00D02CB8526C00E1C37C /* AUOutputBL.cpp in Sources */,
8B5A00F52CB8526C00E1C37C /* CAAudioFileFormats.cpp in Sources */,
8B5A00E72CB8526C00E1C37C /* CAHostTimeBase.cpp in Sources */,
8B5A00BF2CB8526C00E1C37C /* CAXException.cpp in Sources */,
8B5A00E92CB8526C00E1C37C /* CAAudioBufferList.cpp in Sources */,
8B5A00AC2CB8526C00E1C37C /* CAFilePathUtils.cpp in Sources */,
8B5A00AA2CB8526C00E1C37C /* CAAUParameter.cpp in Sources */,
8B5A00CC2CB8526C00E1C37C /* CAAUMIDIMap.cpp in Sources */,
8B5A00F92CB8526C00E1C37C /* CAAudioValueRange.cpp in Sources */,
8B5A01082CB8526C00E1C37C /* AUDispatch.cpp in Sources */,
8B5A00C32CB8526C00E1C37C /* CACFPreferences.cpp in Sources */,
8B5A01062CB8526C00E1C37C /* AUPlugInDispatch.cpp in Sources */,
8B5A00A52CB8526C00E1C37C /* CAAUProcessor.cpp in Sources */,
8B5A00BA2CB8526C00E1C37C /* CACFDictionary.cpp in Sources */,
8B5A010E2CB8526C00E1C37C /* AUBaseHelper.cpp in Sources */,
8B5A00F32CB8526C00E1C37C /* CADebugger.cpp in Sources */,
8B5A00C72CB8526C00E1C37C /* CAAudioChannelLayout.cpp in Sources */,
8B5A00CA2CB8526C00E1C37C /* AUParamInfo.cpp in Sources */,
8B5A00E82CB8526C00E1C37C /* CAPersistence.cpp in Sources */,
8B5A00DC2CB8526C00E1C37C /* CADebugPrintf.cpp in Sources */,
8B5A01112CB8526C00E1C37C /* AUTimestampGenerator.cpp in Sources */,
8B5A00E42CB8526C00E1C37C /* CAStreamBasicDescription.cpp in Sources */,
8B5A00B42CB8526C00E1C37C /* CAAUMIDIMapManager.cpp in Sources */,
8B5A00DF2CB8526C00E1C37C /* CASettingsStorage.cpp in Sources */,
8B5A01042CB8526C00E1C37C /* AUOutputElement.cpp in Sources */,
8B5A00B02CB8526C00E1C37C /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* Galactic3.cpp in Sources */,
8B5A00F22CB8526C00E1C37C /* CAMutex.cpp in Sources */,
8B5A010B2CB8526C00E1C37C /* AUEffectBase.cpp in Sources */,
8B5A00F02CB8526C00E1C37C /* CACFMachPort.cpp in Sources */,
8B5A00FF2CB8526C00E1C37C /* AUBase.cpp in Sources */,
8B5A00CB2CB8526C00E1C37C /* CASharedLibrary.cpp in Sources */,
8B5A00B22CB8526C00E1C37C /* CACFDistributedNotification.cpp in Sources */,
8B5A00B52CB8526C00E1C37C /* CAComponentDescription.cpp in Sources */,
8B5A00BC2CB8526C00E1C37C /* CACFString.cpp in Sources */,
8B5A00FC2CB8526C00E1C37C /* ComponentBase.cpp in Sources */,
8B5A00DD2CB8526C00E1C37C /* CARingBuffer.cpp in Sources */,
8B5A00FD2CB8526C00E1C37C /* AUScopeElement.cpp in Sources */,
8B5A00FA2CB8526C00E1C37C /* CAAudioUnit.cpp in Sources */,
8B5A00F72CB8526C00E1C37C /* CACFArray.cpp in Sources */,
8B5A00F42CB8526C00E1C37C /* CABundleLocker.cpp in Sources */,
8B5A00E62CB8526C00E1C37C /* CAProcess.cpp in Sources */,
8B5A00D42CB8526C00E1C37C /* CAStreamRangedDescription.cpp in Sources */,
8B5A00D52CB8526C00E1C37C /* CAPThread.cpp in Sources */,
8B5A00972CB8526C00E1C37C /* CAComponent.cpp in Sources */,
8B5A00AF2CB8526C00E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */,
8B5A00EA2CB8526C00E1C37C /* CAAudioTimeStamp.cpp in Sources */,
8B5A00F12CB8526C00E1C37C /* CABufferList.cpp in Sources */,
8B5A00CE2CB8526C00E1C37C /* CACFMessagePort.cpp in Sources */,
8B5A00D82CB8526C00E1C37C /* CAVectorUnit.cpp in Sources */,
8B5A010A2CB8526C00E1C37C /* AUInputElement.cpp in Sources */,
8B5A01122CB8526C00E1C37C /* AUBuffer.cpp in Sources */,
8B5A00B72CB8526C00E1C37C /* CADebugMacros.cpp in Sources */,
8B5A00992CB8526C00E1C37C /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B5A01162CB8531100E1C37C /* 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 = Galactic3.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 = Galactic3;
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 = Galactic3.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 = Galactic3;
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 "Galactic3" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Galactic3" */ = {
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 = "Galactic3.component"
BlueprintName = "Galactic3"
ReferencedContainer = "container:Galactic3.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 = "Galactic3.component"
BlueprintName = "Galactic3"
ReferencedContainer = "container:Galactic3.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>Galactic3.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: Galactic3Version.h
*
* Version: 1.0
*
* Created: 10/4/24
*
* Copyright: Copyright © 2024 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 __Galactic3Version_h__
#define __Galactic3Version_h__
#ifdef DEBUG
#define kGalactic3Version 0xFFFFFFFF
#else
#define kGalactic3Version 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Galactic3_COMP_MANF 'Dthr'
#define Galactic3_COMP_SUBTYPE 'galc'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#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>galc</string>
<key>type</key>
<string>aufx</string>
<key>version</key>
<integer>65536</integer>
</dict>
</array>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PROJECTNAMEASIDENTIFIER}</string>
<key>CFBundlePackageType</key>
<string>BNDL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSignature</key>
<string>Dthr</string>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
</plist>

View file

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

Binary file not shown.

View file

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

View file

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

View file

@ -0,0 +1,406 @@
/*
* File: Mastering.cpp
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Mastering.cpp
=============================================================================*/
#include "Mastering.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Mastering)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::Mastering
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Mastering::Mastering(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
SetParameter(kParam_B, kDefaultValue_ParamB );
SetParameter(kParam_C, kDefaultValue_ParamC );
SetParameter(kParam_D, kDefaultValue_ParamD );
SetParameter(kParam_E, kDefaultValue_ParamE );
SetParameter(kParam_F, kDefaultValue_ParamF );
SetParameter(kParam_G, kDefaultValue_ParamG );
SetParameter(kParam_H, kDefaultValue_ParamH );
SetParameter(kParam_I, kDefaultValue_ParamI );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::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;
case kParam_I:
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
outParameterInfo.minValue = 0.0;
outParameterInfo.maxValue = 1.0;
outParameterInfo.defaultValue = kDefaultValue_ParamI;
break;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Mastering::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Mastering::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____MasteringEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::MasteringKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Mastering::MasteringKernel::Reset()
{
for (int x = 0; x < air_total; x++) air[x] = 0.0;
for (int x = 0; x < kal_total; x++) {kalM[x] = 0.0;kalS[x] = 0.0;}
lastSinewL = 0.0;
lastSample = 0.0;
wasPosClip = false;
wasNegClip = false;
for (int x = 0; x < 16; x++) {intermediate[x] = 0.0;}
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Mastering::MasteringKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Mastering::MasteringKernel::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();
long double trebleGain = GetParameter( kParam_A )+0.5;
if (trebleGain > 1.0) trebleGain = pow(trebleGain,3.0+sqrt(overallscale));
//this boost is necessary to adapt to higher sample rates
long double midGain = GetParameter( kParam_B )+0.5;
long double bassGain = (1.0-GetParameter( kParam_C ))+0.5; //control inverted
long double subGain = GetParameter( kParam_D )+0.5;
//simple four band to adjust
double kalMid = pow(1.0-GetParameter( kParam_E ),3);
//crossover frequency between mid/bass
double kalSub = (1.0-(pow(GetParameter( kParam_F ),3)));
//crossover frequency between bass/sub
double zoom = (GetParameter( kParam_G )*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
double threshSinew = pow(GetParameter( kParam_H ),2)/overallscale;
double depthSinew = GetParameter( kParam_I );
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
while (nSampleFrames-- > 0) {
long double inputSampleL = *sourceP;
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
double drySampleL = inputSampleL;
//begin Air3L
air[pvSL4] = air[pvAL4] - air[pvAL3]; air[pvSL3] = air[pvAL3] - air[pvAL2];
air[pvSL2] = air[pvAL2] - air[pvAL1]; air[pvSL1] = air[pvAL1] - inputSampleL;
air[accSL3] = air[pvSL4] - air[pvSL3]; air[accSL2] = air[pvSL3] - air[pvSL2];
air[accSL1] = air[pvSL2] - air[pvSL1];
air[acc2SL2] = air[accSL3] - air[accSL2]; air[acc2SL1] = air[accSL2] - air[accSL1];
air[outAL] = -(air[pvAL1] + air[pvSL3] + air[acc2SL2] - ((air[acc2SL2] + air[acc2SL1])*0.5));
air[gainAL] *= 0.5; air[gainAL] += fabs(drySampleL-air[outAL])*0.5;
if (air[gainAL] > 0.3*sqrt(overallscale)) air[gainAL] = 0.3*sqrt(overallscale);
air[pvAL4] = air[pvAL3]; air[pvAL3] = air[pvAL2];
air[pvAL2] = air[pvAL1]; air[pvAL1] = (air[gainAL] * air[outAL]) + drySampleL;
long double midL = drySampleL - ((air[outAL]*0.5)+(drySampleL*(0.457-(0.017*overallscale))));
long double temp = (midL + air[gndavgL])*0.5; air[gndavgL] = midL; midL = temp;
//we have a single averaging stage to smooth stuff out
long double trebleL = drySampleL-midL;
//end Air3L
//begin KalmanML
temp = midL;
kalM[prevSlewL3] += kalM[prevSampL3] - kalM[prevSampL2]; kalM[prevSlewL3] *= 0.5;
kalM[prevSlewL2] += kalM[prevSampL2] - kalM[prevSampL1]; kalM[prevSlewL2] *= 0.5;
kalM[prevSlewL1] += kalM[prevSampL1] - midL; kalM[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalM[accSlewL2] += kalM[prevSlewL3] - kalM[prevSlewL2]; kalM[accSlewL2] *= 0.5;
kalM[accSlewL1] += kalM[prevSlewL2] - kalM[prevSlewL1]; kalM[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalM[accSlewL3] += (kalM[accSlewL2] - kalM[accSlewL1]); kalM[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalM[kalOutL] += kalM[prevSampL1] + kalM[prevSlewL2] + kalM[accSlewL3]; kalM[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalM[kalGainL] += fabs(temp-kalM[kalOutL])*kalMid*8.0; kalM[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalM[kalGainL] > kalMid*0.5) kalM[kalGainL] = kalMid*0.5;
//attempts to avoid explosions
kalM[kalOutL] += (temp*(1.0-(0.68+(kalMid*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalM[prevSampL3] = kalM[prevSampL2]; kalM[prevSampL2] = kalM[prevSampL1];
kalM[prevSampL1] = (kalM[kalGainL] * kalM[kalOutL]) + ((1.0-kalM[kalGainL])*temp);
//feed the chain of previous samples
long double bassL = (kalM[kalOutL]+kalM[kalAvgL])*0.5;
kalM[kalAvgL] = kalM[kalOutL];
midL -= bassL;
//end KalmanML
//begin KalmanSL
temp = bassL;
kalS[prevSlewL3] += kalS[prevSampL3] - kalS[prevSampL2]; kalS[prevSlewL3] *= 0.5;
kalS[prevSlewL2] += kalS[prevSampL2] - kalS[prevSampL1]; kalS[prevSlewL2] *= 0.5;
kalS[prevSlewL1] += kalS[prevSampL1] - bassL; kalS[prevSlewL1] *= 0.5;
//make slews from each set of samples used
kalS[accSlewL2] += kalS[prevSlewL3] - kalS[prevSlewL2]; kalS[accSlewL2] *= 0.5;
kalS[accSlewL1] += kalS[prevSlewL2] - kalS[prevSlewL1]; kalS[accSlewL1] *= 0.5;
//differences between slews: rate of change of rate of change
kalS[accSlewL3] += (kalS[accSlewL2] - kalS[accSlewL1]); kalS[accSlewL3] *= 0.5;
//entering the abyss, what even is this
kalS[kalOutL] += kalS[prevSampL1] + kalS[prevSlewL2] + kalS[accSlewL3]; kalS[kalOutL] *= 0.5;
//resynthesizing predicted result (all iir smoothed)
kalS[kalGainL] += fabs(temp-kalS[kalOutL])*kalSub*8.0; kalS[kalGainL] *= 0.5;
//madness takes its toll. Kalman Gain: how much dry to retain
if (kalS[kalGainL] > kalSub*0.5) kalS[kalGainL] = kalSub*0.5;
//attempts to avoid explosions
kalS[kalOutL] += (temp*(1.0-(0.68+(kalSub*0.157))));
//this is for tuning a really complete cancellation up around Nyquist
kalS[prevSampL3] = kalS[prevSampL2]; kalS[prevSampL2] = kalS[prevSampL1];
kalS[prevSampL1] = (kalS[kalGainL] * kalS[kalOutL]) + ((1.0-kalS[kalGainL])*temp);
//feed the chain of previous samples
long double subL = (kalS[kalOutL]+kalS[kalAvgL])*0.5;
kalS[kalAvgL] = kalS[kalOutL];
bassL -= subL;
//end KalmanSL
inputSampleL = (subL*subGain);
inputSampleL += (bassL*bassGain);
inputSampleL += (midL*midGain);
inputSampleL += (trebleL*trebleGain);
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
long double closer = inputSampleL * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSampleL = (inputSampleL*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
long double farther = fabs(inputSampleL) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSampleL > 0.0) inputSampleL = (inputSampleL*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSampleL < 0.0) inputSampleL = (inputSampleL*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin ClipOnly2 as a little, compressed chunk that can be dropped into code
if (inputSampleL > 4.0) inputSampleL = 4.0; if (inputSampleL < -4.0) inputSampleL = -4.0;
if (wasPosClip == true) { //current will be over
if (inputSampleL<lastSample) lastSample=0.7058208+(inputSampleL*0.2609148);
else lastSample = 0.2491717+(lastSample*0.7390851);
} wasPosClip = false;
if (inputSampleL>0.9549925859) {wasPosClip=true;inputSampleL=0.7058208+(lastSample*0.2609148);}
if (wasNegClip == true) { //current will be -over
if (inputSampleL > lastSample) lastSample=-0.7058208+(inputSampleL*0.2609148);
else lastSample=-0.2491717+(lastSample*0.7390851);
} wasNegClip = false;
if (inputSampleL<-0.9549925859) {wasNegClip=true;inputSampleL=-0.7058208+(lastSample*0.2609148);}
intermediate[spacing] = inputSampleL;
inputSampleL = lastSample; //Latency is however many samples equals one 44.1k sample
for (int x = spacing; x > 0; x--) intermediate[x-1] = intermediate[x];
lastSample = intermediate[0]; //run a little buffer to handle this
//end ClipOnly2 as a little, compressed chunk that can be dropped into code
temp = inputSampleL;
long double sinew = threshSinew * cos(lastSinewL*lastSinewL);
if (inputSampleL - lastSinewL > sinew) temp = lastSinewL + sinew;
if (-(inputSampleL - lastSinewL) > sinew) temp = lastSinewL - sinew;
lastSinewL = temp;
inputSampleL = (inputSampleL * (1.0-depthSinew))+(lastSinewL*depthSinew);
//run Sinew to stop excess slews, but run a dry/wet to allow a range of brights
//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 @@
_MasteringEntry
_MasteringFactory

View file

@ -0,0 +1,206 @@
/*
* File: Mastering.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "MasteringVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Mastering_h__
#define __Mastering_h__
#pragma mark ____Mastering 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 const float kDefaultValue_ParamI = 0.0;
static CFStringRef kParameterAName = CFSTR("Air");
static CFStringRef kParameterBName = CFSTR("Mid");
static CFStringRef kParameterCName = CFSTR("Low");
static CFStringRef kParameterDName = CFSTR("Sub");
static CFStringRef kParameterEName = CFSTR("XvM-L");
static CFStringRef kParameterFName = CFSTR("XvL-S");
static CFStringRef kParameterGName = CFSTR("Zoom");
static CFStringRef kParameterHName = CFSTR("DarkF");
static CFStringRef kParameterIName = CFSTR("Ratio");
enum {
kParam_A =0,
kParam_B =1,
kParam_C =2,
kParam_D =3,
kParam_E =4,
kParam_F =5,
kParam_G =6,
kParam_H =7,
kParam_I =8,
//Add your parameters here...
kNumberOfParameters=9
};
#pragma mark ____Mastering
class Mastering : public AUEffectBase
{
public:
Mastering(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Mastering () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new MasteringKernel(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 kMasteringVersion; }
protected:
class MasteringKernel : public AUKernelBase // most of the real work happens here
{
public:
MasteringKernel(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 {
pvAL1,
pvSL1,
accSL1,
acc2SL1,
pvAL2,
pvSL2,
accSL2,
acc2SL2,
pvAL3,
pvSL3,
accSL3,
pvAL4,
pvSL4,
gndavgL,
outAL,
gainAL,
air_total
};
double air[air_total];
enum {
prevSampL1,
prevSlewL1,
accSlewL1,
prevSampL2,
prevSlewL2,
accSlewL2,
prevSampL3,
prevSlewL3,
accSlewL3,
kalGainL,
kalOutL,
kalAvgL,
kal_total
};
double kalM[kal_total];
double kalS[kal_total];
long double lastSinewL;
//this is overkill, used to run both Zoom and Sinew stages as they are after
//the summing in StoneFire, which sums three doubles to a long double.
double lastSample; //this doesn't touch the audio unless it's clipping
double intermediate[16];
bool wasPosClip;
bool wasNegClip;
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

View file

@ -0,0 +1,61 @@
/*
* File: Mastering.r
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "MasteringVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Mastering 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mastering~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Mastering
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Mastering_COMP_SUBTYPE
#define COMP_MANUF Mastering_COMP_MANF
#define VERSION kMasteringVersion
#define NAME "Airwindows: Mastering"
#define DESCRIPTION "Mastering AU"
#define ENTRY_POINT "MasteringEntry"
#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 /* Mastering */;
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 = 750255310;
PBXWorkspaceStateSaveDate = 750255310;
};
perUserProjectItems = {
8BA3DC492CB5EC1900B899C2 /* PlistBookmark */ = 8BA3DC492CB5EC1900B899C2 /* PlistBookmark */;
8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */ = 8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */;
8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */ = 8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */;
8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */ = 8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Mastering.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {822, 7380}}";
sepNavSelRange = "{17032, 0}";
sepNavVisRange = "{15387, 90}";
sepNavWindowFrame = "{{12, 53}, {1040, 821}}";
};
};
8BA05A690720730100365D66 /* MasteringVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2906, 0}";
sepNavVisRange = "{1069, 1900}";
sepNavWindowFrame = "{{15, 52}, {1040, 821}}";
};
};
8BA3DC492CB5EC1900B899C2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Mastering/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BC6025B073B072D006C4272 /* Mastering.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 3132}}";
sepNavSelRange = "{3665, 0}";
sepNavVisRange = "{2605, 1167}";
sepNavWindowFrame = "{{38, 57}, {1040, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF17B272CB7FB4400FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Mastering.cpp */;
name = "Mastering.cpp: 347";
rLen = 0;
rLoc = 17032;
rType = 0;
vrLen = 38;
vrLoc = 15492;
};
8BF17B702CB7FF3300FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BC6025B073B072D006C4272 /* Mastering.h */;
name = "Mastering.h: 65";
rLen = 0;
rLoc = 3252;
rType = 0;
vrLen = 52;
vrLoc = 3253;
};
8BF17B712CB7FF3300FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Mastering.cpp */;
name = "Mastering.cpp: 347";
rLen = 0;
rLoc = 17032;
rType = 0;
vrLen = 90;
vrLoc = 15387;
};
8D01CCC60486CAD60068D4B7 /* Mastering */ = {
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 */
8B5AFE7A2CB8501700E1C37C /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF22CB8501700E1C37C /* CAExtAudioFile.h */; };
8B5AFE7B2CB8501700E1C37C /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF32CB8501700E1C37C /* CACFMachPort.h */; };
8B5AFE7C2CB8501700E1C37C /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF42CB8501700E1C37C /* CABool.h */; };
8B5AFE7D2CB8501700E1C37C /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFDF52CB8501700E1C37C /* CAComponent.cpp */; };
8B5AFE7E2CB8501700E1C37C /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF62CB8501700E1C37C /* CADebugger.h */; };
8B5AFE7F2CB8501700E1C37C /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFDF72CB8501700E1C37C /* CACFNumber.cpp */; };
8B5AFE802CB8501700E1C37C /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF82CB8501700E1C37C /* CAGuard.h */; };
8B5AFE812CB8501700E1C37C /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDF92CB8501700E1C37C /* CAAtomic.h */; };
8B5AFE822CB8501700E1C37C /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFA2CB8501700E1C37C /* CAStreamBasicDescription.h */; };
8B5AFE832CB8501700E1C37C /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFB2CB8501700E1C37C /* CACFObject.h */; };
8B5AFE842CB8501700E1C37C /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFC2CB8501700E1C37C /* CAStreamRangedDescription.h */; };
8B5AFE852CB8501700E1C37C /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFD2CB8501700E1C37C /* CATokenMap.h */; };
8B5AFE862CB8501700E1C37C /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFE2CB8501700E1C37C /* CAComponent.h */; };
8B5AFE872CB8501700E1C37C /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFDFF2CB8501700E1C37C /* CAAudioBufferList.h */; };
8B5AFE882CB8501700E1C37C /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE002CB8501700E1C37C /* CAAudioUnit.h */; };
8B5AFE892CB8501700E1C37C /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE012CB8501700E1C37C /* CAAUParameter.h */; };
8B5AFE8A2CB8501700E1C37C /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE022CB8501700E1C37C /* CAException.h */; };
8B5AFE8B2CB8501700E1C37C /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE032CB8501700E1C37C /* CAAUProcessor.cpp */; };
8B5AFE8C2CB8501700E1C37C /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE042CB8501700E1C37C /* CAAUProcessor.h */; };
8B5AFE8D2CB8501700E1C37C /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE052CB8501700E1C37C /* CAProcess.h */; };
8B5AFE8E2CB8501700E1C37C /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE062CB8501700E1C37C /* CACFDictionary.h */; };
8B5AFE8F2CB8501700E1C37C /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE072CB8501700E1C37C /* CAPThread.h */; };
8B5AFE902CB8501700E1C37C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE082CB8501700E1C37C /* CAAUParameter.cpp */; };
8B5AFE912CB8501700E1C37C /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE092CB8501700E1C37C /* CAAudioTimeStamp.h */; };
8B5AFE922CB8501700E1C37C /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE0A2CB8501700E1C37C /* CAFilePathUtils.cpp */; };
8B5AFE932CB8501700E1C37C /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE0B2CB8501700E1C37C /* CAAudioValueRange.h */; };
8B5AFE942CB8501700E1C37C /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE0C2CB8501700E1C37C /* CAVectorUnitTypes.h */; };
8B5AFE952CB8501700E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE0D2CB8501700E1C37C /* CAAudioChannelLayoutObject.cpp */; };
8B5AFE962CB8501700E1C37C /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE0E2CB8501700E1C37C /* CAGuard.cpp */; };
8B5AFE972CB8501700E1C37C /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE0F2CB8501700E1C37C /* CACFNumber.h */; };
8B5AFE982CB8501700E1C37C /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE102CB8501700E1C37C /* CACFDistributedNotification.cpp */; };
8B5AFE992CB8501700E1C37C /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE112CB8501700E1C37C /* CACFString.h */; };
8B5AFE9A2CB8501700E1C37C /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE122CB8501700E1C37C /* CAAUMIDIMapManager.cpp */; };
8B5AFE9B2CB8501700E1C37C /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE132CB8501700E1C37C /* CAComponentDescription.cpp */; };
8B5AFE9C2CB8501700E1C37C /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE142CB8501700E1C37C /* CAHostTimeBase.h */; };
8B5AFE9D2CB8501700E1C37C /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE152CB8501700E1C37C /* CADebugMacros.cpp */; };
8B5AFE9E2CB8501700E1C37C /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE162CB8501700E1C37C /* CAAudioFileFormats.h */; };
8B5AFE9F2CB8501700E1C37C /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE172CB8501700E1C37C /* CAAUMIDIMapManager.h */; };
8B5AFEA02CB8501700E1C37C /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE182CB8501700E1C37C /* CACFDictionary.cpp */; };
8B5AFEA12CB8501700E1C37C /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE192CB8501700E1C37C /* CAMutex.h */; };
8B5AFEA22CB8501700E1C37C /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE1A2CB8501700E1C37C /* CACFString.cpp */; };
8B5AFEA32CB8501700E1C37C /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE1B2CB8501700E1C37C /* CASettingsStorage.h */; };
8B5AFEA42CB8501700E1C37C /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE1C2CB8501700E1C37C /* CADebugPrintf.h */; };
8B5AFEA52CB8501700E1C37C /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE1D2CB8501700E1C37C /* CAXException.cpp */; };
8B5AFEA62CB8501700E1C37C /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE1E2CB8501700E1C37C /* CAAUMIDIMap.h */; };
8B5AFEA72CB8501700E1C37C /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE1F2CB8501700E1C37C /* AUParamInfo.h */; };
8B5AFEA82CB8501700E1C37C /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE202CB8501700E1C37C /* CABitOperations.h */; };
8B5AFEA92CB8501700E1C37C /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE212CB8501700E1C37C /* CACFPreferences.cpp */; };
8B5AFEAA2CB8501700E1C37C /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE222CB8501700E1C37C /* CABundleLocker.h */; };
8B5AFEAB2CB8501700E1C37C /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE232CB8501700E1C37C /* CAPropertyAddress.h */; };
8B5AFEAC2CB8501700E1C37C /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE242CB8501700E1C37C /* CAXException.h */; };
8B5AFEAD2CB8501700E1C37C /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE252CB8501700E1C37C /* CAAudioChannelLayout.cpp */; };
8B5AFEAE2CB8501700E1C37C /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE262CB8501700E1C37C /* CAThreadSafeList.h */; };
8B5AFEAF2CB8501700E1C37C /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE272CB8501700E1C37C /* CAAudioUnitOutputCapturer.h */; };
8B5AFEB02CB8501700E1C37C /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE282CB8501700E1C37C /* AUParamInfo.cpp */; };
8B5AFEB12CB8501700E1C37C /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE292CB8501700E1C37C /* CASharedLibrary.cpp */; };
8B5AFEB22CB8501700E1C37C /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE2A2CB8501700E1C37C /* CAAUMIDIMap.cpp */; };
8B5AFEB32CB8501700E1C37C /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE2B2CB8501700E1C37C /* CALogMacros.h */; };
8B5AFEB42CB8501700E1C37C /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE2C2CB8501700E1C37C /* CACFMessagePort.cpp */; };
8B5AFEB52CB8501700E1C37C /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE2D2CB8501700E1C37C /* CARingBuffer.h */; };
8B5AFEB62CB8501700E1C37C /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE2E2CB8501700E1C37C /* AUOutputBL.cpp */; };
8B5AFEB72CB8501700E1C37C /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE2F2CB8501700E1C37C /* CABufferList.h */; };
8B5AFEB82CB8501700E1C37C /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE302CB8501700E1C37C /* CASharedLibrary.h */; };
8B5AFEB92CB8501700E1C37C /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE312CB8501700E1C37C /* CACFData.h */; };
8B5AFEBA2CB8501700E1C37C /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE322CB8501700E1C37C /* CAStreamRangedDescription.cpp */; };
8B5AFEBB2CB8501700E1C37C /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE332CB8501700E1C37C /* CAPThread.cpp */; };
8B5AFEBC2CB8501700E1C37C /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE342CB8501700E1C37C /* CAAutoDisposer.h */; };
8B5AFEBD2CB8501700E1C37C /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE352CB8501700E1C37C /* CACFPreferences.h */; };
8B5AFEBE2CB8501700E1C37C /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE362CB8501700E1C37C /* CAVectorUnit.cpp */; };
8B5AFEBF2CB8501700E1C37C /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE372CB8501700E1C37C /* CAComponentDescription.h */; };
8B5AFEC02CB8501700E1C37C /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE382CB8501700E1C37C /* CADebugMacros.h */; };
8B5AFEC12CB8501700E1C37C /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE392CB8501700E1C37C /* AUOutputBL.h */; };
8B5AFEC22CB8501700E1C37C /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE3A2CB8501700E1C37C /* CADebugPrintf.cpp */; };
8B5AFEC32CB8501700E1C37C /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE3B2CB8501700E1C37C /* CARingBuffer.cpp */; };
8B5AFEC42CB8501700E1C37C /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE3C2CB8501700E1C37C /* CACFPlugIn.h */; };
8B5AFEC52CB8501700E1C37C /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE3D2CB8501700E1C37C /* CASettingsStorage.cpp */; };
8B5AFEC62CB8501700E1C37C /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE3E2CB8501700E1C37C /* CAMixMap.h */; };
8B5AFEC72CB8501700E1C37C /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE3F2CB8501700E1C37C /* CACFDistributedNotification.h */; };
8B5AFEC82CB8501700E1C37C /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE402CB8501700E1C37C /* CAFilePathUtils.h */; };
8B5AFEC92CB8501700E1C37C /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE412CB8501700E1C37C /* CATink.h */; };
8B5AFECA2CB8501700E1C37C /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE422CB8501700E1C37C /* CAStreamBasicDescription.cpp */; };
8B5AFECB2CB8501700E1C37C /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE432CB8501700E1C37C /* CAAudioChannelLayout.h */; };
8B5AFECC2CB8501700E1C37C /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE442CB8501700E1C37C /* CAProcess.cpp */; };
8B5AFECD2CB8501700E1C37C /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE452CB8501700E1C37C /* CAHostTimeBase.cpp */; };
8B5AFECE2CB8501700E1C37C /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE462CB8501700E1C37C /* CAPersistence.cpp */; };
8B5AFECF2CB8501700E1C37C /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE472CB8501700E1C37C /* CAAudioBufferList.cpp */; };
8B5AFED02CB8501700E1C37C /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE482CB8501700E1C37C /* CAAudioTimeStamp.cpp */; };
8B5AFED12CB8501700E1C37C /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE492CB8501700E1C37C /* CAVectorUnit.h */; };
8B5AFED22CB8501700E1C37C /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE4A2CB8501700E1C37C /* CAByteOrder.h */; };
8B5AFED32CB8501700E1C37C /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE4B2CB8501700E1C37C /* CACFArray.h */; };
8B5AFED42CB8501700E1C37C /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE4C2CB8501700E1C37C /* CAAtomicStack.h */; };
8B5AFED52CB8501700E1C37C /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE4D2CB8501700E1C37C /* CAReferenceCounted.h */; };
8B5AFED62CB8501700E1C37C /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE4E2CB8501700E1C37C /* CACFMachPort.cpp */; };
8B5AFED72CB8501700E1C37C /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE4F2CB8501700E1C37C /* CABufferList.cpp */; };
8B5AFED82CB8501700E1C37C /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE502CB8501700E1C37C /* CAMutex.cpp */; };
8B5AFED92CB8501700E1C37C /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE512CB8501700E1C37C /* CADebugger.cpp */; };
8B5AFEDA2CB8501700E1C37C /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE522CB8501700E1C37C /* CABundleLocker.cpp */; };
8B5AFEDB2CB8501700E1C37C /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE532CB8501700E1C37C /* CAAudioFileFormats.cpp */; };
8B5AFEDC2CB8501700E1C37C /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE542CB8501700E1C37C /* CAMath.h */; };
8B5AFEDD2CB8501700E1C37C /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE552CB8501700E1C37C /* CACFArray.cpp */; };
8B5AFEDE2CB8501700E1C37C /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE562CB8501700E1C37C /* CACFMessagePort.h */; };
8B5AFEDF2CB8501700E1C37C /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE572CB8501700E1C37C /* CAAudioValueRange.cpp */; };
8B5AFEE02CB8501700E1C37C /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE582CB8501700E1C37C /* CAAudioUnit.cpp */; };
8B5AFEE12CB8501700E1C37C /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE5C2CB8501700E1C37C /* AUViewLocalizedStringKeys.h */; };
8B5AFEE22CB8501700E1C37C /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE5E2CB8501700E1C37C /* ComponentBase.cpp */; };
8B5AFEE32CB8501700E1C37C /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE5F2CB8501700E1C37C /* AUScopeElement.cpp */; };
8B5AFEE42CB8501700E1C37C /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE602CB8501700E1C37C /* ComponentBase.h */; };
8B5AFEE52CB8501700E1C37C /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE612CB8501700E1C37C /* AUBase.cpp */; };
8B5AFEE62CB8501700E1C37C /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE622CB8501700E1C37C /* AUInputElement.h */; };
8B5AFEE72CB8501700E1C37C /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE632CB8501700E1C37C /* AUBase.h */; };
8B5AFEE82CB8501700E1C37C /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE642CB8501700E1C37C /* AUPlugInDispatch.h */; };
8B5AFEE92CB8501700E1C37C /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE652CB8501700E1C37C /* AUDispatch.h */; };
8B5AFEEA2CB8501700E1C37C /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE662CB8501700E1C37C /* AUOutputElement.cpp */; };
8B5AFEEC2CB8501700E1C37C /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE682CB8501700E1C37C /* AUPlugInDispatch.cpp */; };
8B5AFEED2CB8501700E1C37C /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE692CB8501700E1C37C /* AUOutputElement.h */; };
8B5AFEEE2CB8501700E1C37C /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE6A2CB8501700E1C37C /* AUDispatch.cpp */; };
8B5AFEEF2CB8501700E1C37C /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE6B2CB8501700E1C37C /* AUScopeElement.h */; };
8B5AFEF02CB8501700E1C37C /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE6C2CB8501700E1C37C /* AUInputElement.cpp */; };
8B5AFEF12CB8501700E1C37C /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE6E2CB8501700E1C37C /* AUEffectBase.cpp */; };
8B5AFEF22CB8501700E1C37C /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE6F2CB8501700E1C37C /* AUEffectBase.h */; };
8B5AFEF32CB8501700E1C37C /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE712CB8501700E1C37C /* AUTimestampGenerator.h */; };
8B5AFEF42CB8501700E1C37C /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE722CB8501700E1C37C /* AUBaseHelper.cpp */; };
8B5AFEF52CB8501700E1C37C /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE732CB8501700E1C37C /* AUSilentTimeout.h */; };
8B5AFEF62CB8501700E1C37C /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE742CB8501700E1C37C /* AUInputFormatConverter.h */; };
8B5AFEF72CB8501700E1C37C /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE752CB8501700E1C37C /* AUTimestampGenerator.cpp */; };
8B5AFEF82CB8501700E1C37C /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFE762CB8501700E1C37C /* AUBuffer.cpp */; };
8B5AFEF92CB8501700E1C37C /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE772CB8501700E1C37C /* AUMIDIDefs.h */; };
8B5AFEFA2CB8501700E1C37C /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE782CB8501700E1C37C /* AUBuffer.h */; };
8B5AFEFB2CB8501700E1C37C /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFE792CB8501700E1C37C /* AUBaseHelper.h */; };
8BA05A6B0720730100365D66 /* Mastering.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Mastering.cpp */; };
8BA05A6E0720730100365D66 /* MasteringVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* MasteringVersion.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 /* Mastering.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Mastering.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5AFDF22CB8501700E1C37C /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B5AFDF32CB8501700E1C37C /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B5AFDF42CB8501700E1C37C /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B5AFDF52CB8501700E1C37C /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B5AFDF62CB8501700E1C37C /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B5AFDF72CB8501700E1C37C /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B5AFDF82CB8501700E1C37C /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B5AFDF92CB8501700E1C37C /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B5AFDFA2CB8501700E1C37C /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B5AFDFB2CB8501700E1C37C /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B5AFDFC2CB8501700E1C37C /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B5AFDFD2CB8501700E1C37C /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B5AFDFE2CB8501700E1C37C /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B5AFDFF2CB8501700E1C37C /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B5AFE002CB8501700E1C37C /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B5AFE012CB8501700E1C37C /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B5AFE022CB8501700E1C37C /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B5AFE032CB8501700E1C37C /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B5AFE042CB8501700E1C37C /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B5AFE052CB8501700E1C37C /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B5AFE062CB8501700E1C37C /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B5AFE072CB8501700E1C37C /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B5AFE082CB8501700E1C37C /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B5AFE092CB8501700E1C37C /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B5AFE0A2CB8501700E1C37C /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B5AFE0B2CB8501700E1C37C /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B5AFE0C2CB8501700E1C37C /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B5AFE0D2CB8501700E1C37C /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B5AFE0E2CB8501700E1C37C /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B5AFE0F2CB8501700E1C37C /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B5AFE102CB8501700E1C37C /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B5AFE112CB8501700E1C37C /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B5AFE122CB8501700E1C37C /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B5AFE132CB8501700E1C37C /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B5AFE142CB8501700E1C37C /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B5AFE152CB8501700E1C37C /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B5AFE162CB8501700E1C37C /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B5AFE172CB8501700E1C37C /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B5AFE182CB8501700E1C37C /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B5AFE192CB8501700E1C37C /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B5AFE1A2CB8501700E1C37C /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B5AFE1B2CB8501700E1C37C /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B5AFE1C2CB8501700E1C37C /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B5AFE1D2CB8501700E1C37C /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B5AFE1E2CB8501700E1C37C /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B5AFE1F2CB8501700E1C37C /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B5AFE202CB8501700E1C37C /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B5AFE212CB8501700E1C37C /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B5AFE222CB8501700E1C37C /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B5AFE232CB8501700E1C37C /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B5AFE242CB8501700E1C37C /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B5AFE252CB8501700E1C37C /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B5AFE262CB8501700E1C37C /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B5AFE272CB8501700E1C37C /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B5AFE282CB8501700E1C37C /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B5AFE292CB8501700E1C37C /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B5AFE2A2CB8501700E1C37C /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B5AFE2B2CB8501700E1C37C /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B5AFE2C2CB8501700E1C37C /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B5AFE2D2CB8501700E1C37C /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B5AFE2E2CB8501700E1C37C /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B5AFE2F2CB8501700E1C37C /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B5AFE302CB8501700E1C37C /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B5AFE312CB8501700E1C37C /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B5AFE322CB8501700E1C37C /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B5AFE332CB8501700E1C37C /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B5AFE342CB8501700E1C37C /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B5AFE352CB8501700E1C37C /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B5AFE362CB8501700E1C37C /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B5AFE372CB8501700E1C37C /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B5AFE382CB8501700E1C37C /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B5AFE392CB8501700E1C37C /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B5AFE3A2CB8501700E1C37C /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B5AFE3B2CB8501700E1C37C /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B5AFE3C2CB8501700E1C37C /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B5AFE3D2CB8501700E1C37C /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B5AFE3E2CB8501700E1C37C /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B5AFE3F2CB8501700E1C37C /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B5AFE402CB8501700E1C37C /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B5AFE412CB8501700E1C37C /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B5AFE422CB8501700E1C37C /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B5AFE432CB8501700E1C37C /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B5AFE442CB8501700E1C37C /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B5AFE452CB8501700E1C37C /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B5AFE462CB8501700E1C37C /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B5AFE472CB8501700E1C37C /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B5AFE482CB8501700E1C37C /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B5AFE492CB8501700E1C37C /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B5AFE4A2CB8501700E1C37C /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B5AFE4B2CB8501700E1C37C /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B5AFE4C2CB8501700E1C37C /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B5AFE4D2CB8501700E1C37C /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B5AFE4E2CB8501700E1C37C /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B5AFE4F2CB8501700E1C37C /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B5AFE502CB8501700E1C37C /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B5AFE512CB8501700E1C37C /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B5AFE522CB8501700E1C37C /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B5AFE532CB8501700E1C37C /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B5AFE542CB8501700E1C37C /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B5AFE552CB8501700E1C37C /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B5AFE562CB8501700E1C37C /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B5AFE572CB8501700E1C37C /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B5AFE582CB8501700E1C37C /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B5AFE5C2CB8501700E1C37C /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B5AFE5E2CB8501700E1C37C /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B5AFE5F2CB8501700E1C37C /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B5AFE602CB8501700E1C37C /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B5AFE612CB8501700E1C37C /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B5AFE622CB8501700E1C37C /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B5AFE632CB8501700E1C37C /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B5AFE642CB8501700E1C37C /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B5AFE652CB8501700E1C37C /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B5AFE662CB8501700E1C37C /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B5AFE672CB8501700E1C37C /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B5AFE682CB8501700E1C37C /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B5AFE692CB8501700E1C37C /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B5AFE6A2CB8501700E1C37C /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B5AFE6B2CB8501700E1C37C /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B5AFE6C2CB8501700E1C37C /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B5AFE6E2CB8501700E1C37C /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B5AFE6F2CB8501700E1C37C /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B5AFE712CB8501700E1C37C /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B5AFE722CB8501700E1C37C /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B5AFE732CB8501700E1C37C /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B5AFE742CB8501700E1C37C /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B5AFE752CB8501700E1C37C /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B5AFE762CB8501700E1C37C /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B5AFE772CB8501700E1C37C /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B5AFE782CB8501700E1C37C /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B5AFE792CB8501700E1C37C /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B5AFEFC2CB8513E00E1C37C /* 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 /* Mastering.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Mastering.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Mastering.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Mastering.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Mastering.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Mastering.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* MasteringVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MasteringVersion.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 /* Mastering.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Mastering.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Mastering.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Mastering.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 /* Mastering */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Mastering;
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 = (
8B5AFDF02CB8501700E1C37C /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Mastering.component */,
);
name = Products;
sourceTree = "<group>";
};
8B5AFDF02CB8501700E1C37C /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B5AFDF12CB8501700E1C37C /* PublicUtility */,
8B5AFE592CB8501700E1C37C /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B5AFDF12CB8501700E1C37C /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B5AFDF22CB8501700E1C37C /* CAExtAudioFile.h */,
8B5AFDF32CB8501700E1C37C /* CACFMachPort.h */,
8B5AFDF42CB8501700E1C37C /* CABool.h */,
8B5AFDF52CB8501700E1C37C /* CAComponent.cpp */,
8B5AFDF62CB8501700E1C37C /* CADebugger.h */,
8B5AFDF72CB8501700E1C37C /* CACFNumber.cpp */,
8B5AFDF82CB8501700E1C37C /* CAGuard.h */,
8B5AFDF92CB8501700E1C37C /* CAAtomic.h */,
8B5AFDFA2CB8501700E1C37C /* CAStreamBasicDescription.h */,
8B5AFDFB2CB8501700E1C37C /* CACFObject.h */,
8B5AFDFC2CB8501700E1C37C /* CAStreamRangedDescription.h */,
8B5AFDFD2CB8501700E1C37C /* CATokenMap.h */,
8B5AFDFE2CB8501700E1C37C /* CAComponent.h */,
8B5AFDFF2CB8501700E1C37C /* CAAudioBufferList.h */,
8B5AFE002CB8501700E1C37C /* CAAudioUnit.h */,
8B5AFE012CB8501700E1C37C /* CAAUParameter.h */,
8B5AFE022CB8501700E1C37C /* CAException.h */,
8B5AFE032CB8501700E1C37C /* CAAUProcessor.cpp */,
8B5AFE042CB8501700E1C37C /* CAAUProcessor.h */,
8B5AFE052CB8501700E1C37C /* CAProcess.h */,
8B5AFE062CB8501700E1C37C /* CACFDictionary.h */,
8B5AFE072CB8501700E1C37C /* CAPThread.h */,
8B5AFE082CB8501700E1C37C /* CAAUParameter.cpp */,
8B5AFE092CB8501700E1C37C /* CAAudioTimeStamp.h */,
8B5AFE0A2CB8501700E1C37C /* CAFilePathUtils.cpp */,
8B5AFE0B2CB8501700E1C37C /* CAAudioValueRange.h */,
8B5AFE0C2CB8501700E1C37C /* CAVectorUnitTypes.h */,
8B5AFE0D2CB8501700E1C37C /* CAAudioChannelLayoutObject.cpp */,
8B5AFE0E2CB8501700E1C37C /* CAGuard.cpp */,
8B5AFE0F2CB8501700E1C37C /* CACFNumber.h */,
8B5AFE102CB8501700E1C37C /* CACFDistributedNotification.cpp */,
8B5AFE112CB8501700E1C37C /* CACFString.h */,
8B5AFE122CB8501700E1C37C /* CAAUMIDIMapManager.cpp */,
8B5AFE132CB8501700E1C37C /* CAComponentDescription.cpp */,
8B5AFE142CB8501700E1C37C /* CAHostTimeBase.h */,
8B5AFE152CB8501700E1C37C /* CADebugMacros.cpp */,
8B5AFE162CB8501700E1C37C /* CAAudioFileFormats.h */,
8B5AFE172CB8501700E1C37C /* CAAUMIDIMapManager.h */,
8B5AFE182CB8501700E1C37C /* CACFDictionary.cpp */,
8B5AFE192CB8501700E1C37C /* CAMutex.h */,
8B5AFE1A2CB8501700E1C37C /* CACFString.cpp */,
8B5AFE1B2CB8501700E1C37C /* CASettingsStorage.h */,
8B5AFE1C2CB8501700E1C37C /* CADebugPrintf.h */,
8B5AFE1D2CB8501700E1C37C /* CAXException.cpp */,
8B5AFE1E2CB8501700E1C37C /* CAAUMIDIMap.h */,
8B5AFE1F2CB8501700E1C37C /* AUParamInfo.h */,
8B5AFE202CB8501700E1C37C /* CABitOperations.h */,
8B5AFE212CB8501700E1C37C /* CACFPreferences.cpp */,
8B5AFE222CB8501700E1C37C /* CABundleLocker.h */,
8B5AFE232CB8501700E1C37C /* CAPropertyAddress.h */,
8B5AFE242CB8501700E1C37C /* CAXException.h */,
8B5AFE252CB8501700E1C37C /* CAAudioChannelLayout.cpp */,
8B5AFE262CB8501700E1C37C /* CAThreadSafeList.h */,
8B5AFE272CB8501700E1C37C /* CAAudioUnitOutputCapturer.h */,
8B5AFE282CB8501700E1C37C /* AUParamInfo.cpp */,
8B5AFE292CB8501700E1C37C /* CASharedLibrary.cpp */,
8B5AFE2A2CB8501700E1C37C /* CAAUMIDIMap.cpp */,
8B5AFE2B2CB8501700E1C37C /* CALogMacros.h */,
8B5AFE2C2CB8501700E1C37C /* CACFMessagePort.cpp */,
8B5AFE2D2CB8501700E1C37C /* CARingBuffer.h */,
8B5AFE2E2CB8501700E1C37C /* AUOutputBL.cpp */,
8B5AFE2F2CB8501700E1C37C /* CABufferList.h */,
8B5AFE302CB8501700E1C37C /* CASharedLibrary.h */,
8B5AFE312CB8501700E1C37C /* CACFData.h */,
8B5AFE322CB8501700E1C37C /* CAStreamRangedDescription.cpp */,
8B5AFE332CB8501700E1C37C /* CAPThread.cpp */,
8B5AFE342CB8501700E1C37C /* CAAutoDisposer.h */,
8B5AFE352CB8501700E1C37C /* CACFPreferences.h */,
8B5AFE362CB8501700E1C37C /* CAVectorUnit.cpp */,
8B5AFE372CB8501700E1C37C /* CAComponentDescription.h */,
8B5AFE382CB8501700E1C37C /* CADebugMacros.h */,
8B5AFE392CB8501700E1C37C /* AUOutputBL.h */,
8B5AFE3A2CB8501700E1C37C /* CADebugPrintf.cpp */,
8B5AFE3B2CB8501700E1C37C /* CARingBuffer.cpp */,
8B5AFE3C2CB8501700E1C37C /* CACFPlugIn.h */,
8B5AFE3D2CB8501700E1C37C /* CASettingsStorage.cpp */,
8B5AFE3E2CB8501700E1C37C /* CAMixMap.h */,
8B5AFE3F2CB8501700E1C37C /* CACFDistributedNotification.h */,
8B5AFE402CB8501700E1C37C /* CAFilePathUtils.h */,
8B5AFE412CB8501700E1C37C /* CATink.h */,
8B5AFE422CB8501700E1C37C /* CAStreamBasicDescription.cpp */,
8B5AFE432CB8501700E1C37C /* CAAudioChannelLayout.h */,
8B5AFE442CB8501700E1C37C /* CAProcess.cpp */,
8B5AFE452CB8501700E1C37C /* CAHostTimeBase.cpp */,
8B5AFE462CB8501700E1C37C /* CAPersistence.cpp */,
8B5AFE472CB8501700E1C37C /* CAAudioBufferList.cpp */,
8B5AFE482CB8501700E1C37C /* CAAudioTimeStamp.cpp */,
8B5AFE492CB8501700E1C37C /* CAVectorUnit.h */,
8B5AFE4A2CB8501700E1C37C /* CAByteOrder.h */,
8B5AFE4B2CB8501700E1C37C /* CACFArray.h */,
8B5AFE4C2CB8501700E1C37C /* CAAtomicStack.h */,
8B5AFE4D2CB8501700E1C37C /* CAReferenceCounted.h */,
8B5AFE4E2CB8501700E1C37C /* CACFMachPort.cpp */,
8B5AFE4F2CB8501700E1C37C /* CABufferList.cpp */,
8B5AFE502CB8501700E1C37C /* CAMutex.cpp */,
8B5AFE512CB8501700E1C37C /* CADebugger.cpp */,
8B5AFE522CB8501700E1C37C /* CABundleLocker.cpp */,
8B5AFE532CB8501700E1C37C /* CAAudioFileFormats.cpp */,
8B5AFE542CB8501700E1C37C /* CAMath.h */,
8B5AFE552CB8501700E1C37C /* CACFArray.cpp */,
8B5AFE562CB8501700E1C37C /* CACFMessagePort.h */,
8B5AFE572CB8501700E1C37C /* CAAudioValueRange.cpp */,
8B5AFE582CB8501700E1C37C /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B5AFE592CB8501700E1C37C /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B5AFE5A2CB8501700E1C37C /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B5AFE5A2CB8501700E1C37C /* AUPublic */ = {
isa = PBXGroup;
children = (
8B5AFE5B2CB8501700E1C37C /* AUViewBase */,
8B5AFE5D2CB8501700E1C37C /* AUBase */,
8B5AFE6D2CB8501700E1C37C /* OtherBases */,
8B5AFE702CB8501700E1C37C /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B5AFE5B2CB8501700E1C37C /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B5AFE5C2CB8501700E1C37C /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B5AFE5D2CB8501700E1C37C /* AUBase */ = {
isa = PBXGroup;
children = (
8B5AFE5E2CB8501700E1C37C /* ComponentBase.cpp */,
8B5AFE5F2CB8501700E1C37C /* AUScopeElement.cpp */,
8B5AFE602CB8501700E1C37C /* ComponentBase.h */,
8B5AFE612CB8501700E1C37C /* AUBase.cpp */,
8B5AFE622CB8501700E1C37C /* AUInputElement.h */,
8B5AFE632CB8501700E1C37C /* AUBase.h */,
8B5AFE642CB8501700E1C37C /* AUPlugInDispatch.h */,
8B5AFE652CB8501700E1C37C /* AUDispatch.h */,
8B5AFE662CB8501700E1C37C /* AUOutputElement.cpp */,
8B5AFE672CB8501700E1C37C /* AUResources.r */,
8B5AFE682CB8501700E1C37C /* AUPlugInDispatch.cpp */,
8B5AFE692CB8501700E1C37C /* AUOutputElement.h */,
8B5AFE6A2CB8501700E1C37C /* AUDispatch.cpp */,
8B5AFE6B2CB8501700E1C37C /* AUScopeElement.h */,
8B5AFE6C2CB8501700E1C37C /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B5AFE6D2CB8501700E1C37C /* OtherBases */ = {
isa = PBXGroup;
children = (
8B5AFE6E2CB8501700E1C37C /* AUEffectBase.cpp */,
8B5AFE6F2CB8501700E1C37C /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B5AFE702CB8501700E1C37C /* Utility */ = {
isa = PBXGroup;
children = (
8B5AFE712CB8501700E1C37C /* AUTimestampGenerator.h */,
8B5AFE722CB8501700E1C37C /* AUBaseHelper.cpp */,
8B5AFE732CB8501700E1C37C /* AUSilentTimeout.h */,
8B5AFE742CB8501700E1C37C /* AUInputFormatConverter.h */,
8B5AFE752CB8501700E1C37C /* AUTimestampGenerator.cpp */,
8B5AFE762CB8501700E1C37C /* AUBuffer.cpp */,
8B5AFE772CB8501700E1C37C /* AUMIDIDefs.h */,
8B5AFE782CB8501700E1C37C /* AUBuffer.h */,
8B5AFE792CB8501700E1C37C /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Mastering.h */,
8BA05A660720730100365D66 /* Mastering.cpp */,
8BA05A670720730100365D66 /* Mastering.exp */,
8BA05A680720730100365D66 /* Mastering.r */,
8BA05A690720730100365D66 /* MasteringVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B5AFEAA2CB8501700E1C37C /* CABundleLocker.h in Headers */,
8B5AFECB2CB8501700E1C37C /* CAAudioChannelLayout.h in Headers */,
8B5AFEC12CB8501700E1C37C /* AUOutputBL.h in Headers */,
8B5AFE9C2CB8501700E1C37C /* CAHostTimeBase.h in Headers */,
8B5AFEE42CB8501700E1C37C /* ComponentBase.h in Headers */,
8B5AFED42CB8501700E1C37C /* CAAtomicStack.h in Headers */,
8B5AFE912CB8501700E1C37C /* CAAudioTimeStamp.h in Headers */,
8B5AFEAE2CB8501700E1C37C /* CAThreadSafeList.h in Headers */,
8B5AFE892CB8501700E1C37C /* CAAUParameter.h in Headers */,
8B5AFEFB2CB8501700E1C37C /* AUBaseHelper.h in Headers */,
8B5AFEF32CB8501700E1C37C /* AUTimestampGenerator.h in Headers */,
8B5AFEA42CB8501700E1C37C /* CADebugPrintf.h in Headers */,
8B5AFEDE2CB8501700E1C37C /* CACFMessagePort.h in Headers */,
8B5AFE8C2CB8501700E1C37C /* CAAUProcessor.h in Headers */,
8B5AFE882CB8501700E1C37C /* CAAudioUnit.h in Headers */,
8B5AFEE12CB8501700E1C37C /* AUViewLocalizedStringKeys.h in Headers */,
8B5AFEC72CB8501700E1C37C /* CACFDistributedNotification.h in Headers */,
8B5AFE862CB8501700E1C37C /* CAComponent.h in Headers */,
8B5AFE942CB8501700E1C37C /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* MasteringVersion.h in Headers */,
8B5AFEC82CB8501700E1C37C /* CAFilePathUtils.h in Headers */,
8B5AFE8A2CB8501700E1C37C /* CAException.h in Headers */,
8B5AFE812CB8501700E1C37C /* CAAtomic.h in Headers */,
8B5AFE802CB8501700E1C37C /* CAGuard.h in Headers */,
8B5AFEE62CB8501700E1C37C /* AUInputElement.h in Headers */,
8B5AFEBD2CB8501700E1C37C /* CACFPreferences.h in Headers */,
8B5AFED22CB8501700E1C37C /* CAByteOrder.h in Headers */,
8B5AFEB52CB8501700E1C37C /* CARingBuffer.h in Headers */,
8B5AFE7C2CB8501700E1C37C /* CABool.h in Headers */,
8B5AFEA12CB8501700E1C37C /* CAMutex.h in Headers */,
8B5AFEE72CB8501700E1C37C /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* Mastering.h in Headers */,
8B5AFE992CB8501700E1C37C /* CACFString.h in Headers */,
8B5AFEB82CB8501700E1C37C /* CASharedLibrary.h in Headers */,
8B5AFE852CB8501700E1C37C /* CATokenMap.h in Headers */,
8B5AFE7A2CB8501700E1C37C /* CAExtAudioFile.h in Headers */,
8B5AFE8F2CB8501700E1C37C /* CAPThread.h in Headers */,
8B5AFEAB2CB8501700E1C37C /* CAPropertyAddress.h in Headers */,
8B5AFED52CB8501700E1C37C /* CAReferenceCounted.h in Headers */,
8B5AFEFA2CB8501700E1C37C /* AUBuffer.h in Headers */,
8B5AFEDC2CB8501700E1C37C /* CAMath.h in Headers */,
8B5AFEBC2CB8501700E1C37C /* CAAutoDisposer.h in Headers */,
8B5AFE832CB8501700E1C37C /* CACFObject.h in Headers */,
8B5AFEA32CB8501700E1C37C /* CASettingsStorage.h in Headers */,
8B5AFEAC2CB8501700E1C37C /* CAXException.h in Headers */,
8B5AFEC92CB8501700E1C37C /* CATink.h in Headers */,
8B5AFEF62CB8501700E1C37C /* AUInputFormatConverter.h in Headers */,
8B5AFED12CB8501700E1C37C /* CAVectorUnit.h in Headers */,
8B5AFE8D2CB8501700E1C37C /* CAProcess.h in Headers */,
8B5AFE932CB8501700E1C37C /* CAAudioValueRange.h in Headers */,
8B5AFEA82CB8501700E1C37C /* CABitOperations.h in Headers */,
8B5AFE9E2CB8501700E1C37C /* CAAudioFileFormats.h in Headers */,
8B5AFE972CB8501700E1C37C /* CACFNumber.h in Headers */,
8B5AFEAF2CB8501700E1C37C /* CAAudioUnitOutputCapturer.h in Headers */,
8B5AFEC02CB8501700E1C37C /* CADebugMacros.h in Headers */,
8B5AFEF92CB8501700E1C37C /* AUMIDIDefs.h in Headers */,
8B5AFEB92CB8501700E1C37C /* CACFData.h in Headers */,
8B5AFE822CB8501700E1C37C /* CAStreamBasicDescription.h in Headers */,
8B5AFEE82CB8501700E1C37C /* AUPlugInDispatch.h in Headers */,
8B5AFE842CB8501700E1C37C /* CAStreamRangedDescription.h in Headers */,
8B5AFEC42CB8501700E1C37C /* CACFPlugIn.h in Headers */,
8B5AFE872CB8501700E1C37C /* CAAudioBufferList.h in Headers */,
8B5AFE9F2CB8501700E1C37C /* CAAUMIDIMapManager.h in Headers */,
8B5AFEF22CB8501700E1C37C /* AUEffectBase.h in Headers */,
8B5AFE8E2CB8501700E1C37C /* CACFDictionary.h in Headers */,
8B5AFEEF2CB8501700E1C37C /* AUScopeElement.h in Headers */,
8B5AFEBF2CB8501700E1C37C /* CAComponentDescription.h in Headers */,
8B5AFEF52CB8501700E1C37C /* AUSilentTimeout.h in Headers */,
8B5AFEB72CB8501700E1C37C /* CABufferList.h in Headers */,
8B5AFEE92CB8501700E1C37C /* AUDispatch.h in Headers */,
8B5AFEED2CB8501700E1C37C /* AUOutputElement.h in Headers */,
8B5AFEB32CB8501700E1C37C /* CALogMacros.h in Headers */,
8B5AFEA72CB8501700E1C37C /* AUParamInfo.h in Headers */,
8B5AFEC62CB8501700E1C37C /* CAMixMap.h in Headers */,
8B5AFED32CB8501700E1C37C /* CACFArray.h in Headers */,
8B5AFE7B2CB8501700E1C37C /* CACFMachPort.h in Headers */,
8B5AFEA62CB8501700E1C37C /* CAAUMIDIMap.h in Headers */,
8B5AFE7E2CB8501700E1C37C /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Mastering */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Mastering" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Mastering;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Mastering;
productReference = 8D01CCD20486CAD60068D4B7 /* Mastering.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 "Mastering" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
en,
ja,
Base,
fr,
de,
);
mainGroup = 089C166AFE841209C02AAC07 /* Mastering */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Mastering */,
);
};
/* 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 = (
8B5AFEB62CB8501700E1C37C /* AUOutputBL.cpp in Sources */,
8B5AFEDB2CB8501700E1C37C /* CAAudioFileFormats.cpp in Sources */,
8B5AFECD2CB8501700E1C37C /* CAHostTimeBase.cpp in Sources */,
8B5AFEA52CB8501700E1C37C /* CAXException.cpp in Sources */,
8B5AFECF2CB8501700E1C37C /* CAAudioBufferList.cpp in Sources */,
8B5AFE922CB8501700E1C37C /* CAFilePathUtils.cpp in Sources */,
8B5AFE902CB8501700E1C37C /* CAAUParameter.cpp in Sources */,
8B5AFEB22CB8501700E1C37C /* CAAUMIDIMap.cpp in Sources */,
8B5AFEDF2CB8501700E1C37C /* CAAudioValueRange.cpp in Sources */,
8B5AFEEE2CB8501700E1C37C /* AUDispatch.cpp in Sources */,
8B5AFEA92CB8501700E1C37C /* CACFPreferences.cpp in Sources */,
8B5AFEEC2CB8501700E1C37C /* AUPlugInDispatch.cpp in Sources */,
8B5AFE8B2CB8501700E1C37C /* CAAUProcessor.cpp in Sources */,
8B5AFEA02CB8501700E1C37C /* CACFDictionary.cpp in Sources */,
8B5AFEF42CB8501700E1C37C /* AUBaseHelper.cpp in Sources */,
8B5AFED92CB8501700E1C37C /* CADebugger.cpp in Sources */,
8B5AFEAD2CB8501700E1C37C /* CAAudioChannelLayout.cpp in Sources */,
8B5AFEB02CB8501700E1C37C /* AUParamInfo.cpp in Sources */,
8B5AFECE2CB8501700E1C37C /* CAPersistence.cpp in Sources */,
8B5AFEC22CB8501700E1C37C /* CADebugPrintf.cpp in Sources */,
8B5AFEF72CB8501700E1C37C /* AUTimestampGenerator.cpp in Sources */,
8B5AFECA2CB8501700E1C37C /* CAStreamBasicDescription.cpp in Sources */,
8B5AFE9A2CB8501700E1C37C /* CAAUMIDIMapManager.cpp in Sources */,
8B5AFEC52CB8501700E1C37C /* CASettingsStorage.cpp in Sources */,
8B5AFEEA2CB8501700E1C37C /* AUOutputElement.cpp in Sources */,
8B5AFE962CB8501700E1C37C /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* Mastering.cpp in Sources */,
8B5AFED82CB8501700E1C37C /* CAMutex.cpp in Sources */,
8B5AFEF12CB8501700E1C37C /* AUEffectBase.cpp in Sources */,
8B5AFED62CB8501700E1C37C /* CACFMachPort.cpp in Sources */,
8B5AFEE52CB8501700E1C37C /* AUBase.cpp in Sources */,
8B5AFEB12CB8501700E1C37C /* CASharedLibrary.cpp in Sources */,
8B5AFE982CB8501700E1C37C /* CACFDistributedNotification.cpp in Sources */,
8B5AFE9B2CB8501700E1C37C /* CAComponentDescription.cpp in Sources */,
8B5AFEA22CB8501700E1C37C /* CACFString.cpp in Sources */,
8B5AFEE22CB8501700E1C37C /* ComponentBase.cpp in Sources */,
8B5AFEC32CB8501700E1C37C /* CARingBuffer.cpp in Sources */,
8B5AFEE32CB8501700E1C37C /* AUScopeElement.cpp in Sources */,
8B5AFEE02CB8501700E1C37C /* CAAudioUnit.cpp in Sources */,
8B5AFEDD2CB8501700E1C37C /* CACFArray.cpp in Sources */,
8B5AFEDA2CB8501700E1C37C /* CABundleLocker.cpp in Sources */,
8B5AFECC2CB8501700E1C37C /* CAProcess.cpp in Sources */,
8B5AFEBA2CB8501700E1C37C /* CAStreamRangedDescription.cpp in Sources */,
8B5AFEBB2CB8501700E1C37C /* CAPThread.cpp in Sources */,
8B5AFE7D2CB8501700E1C37C /* CAComponent.cpp in Sources */,
8B5AFE952CB8501700E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */,
8B5AFED02CB8501700E1C37C /* CAAudioTimeStamp.cpp in Sources */,
8B5AFED72CB8501700E1C37C /* CABufferList.cpp in Sources */,
8B5AFEB42CB8501700E1C37C /* CACFMessagePort.cpp in Sources */,
8B5AFEBE2CB8501700E1C37C /* CAVectorUnit.cpp in Sources */,
8B5AFEF02CB8501700E1C37C /* AUInputElement.cpp in Sources */,
8B5AFEF82CB8501700E1C37C /* AUBuffer.cpp in Sources */,
8B5AFE9D2CB8501700E1C37C /* CADebugMacros.cpp in Sources */,
8B5AFE7F2CB8501700E1C37C /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B5AFEFC2CB8513E00E1C37C /* 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 = Mastering.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 = Mastering;
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 = Mastering.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 = Mastering;
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 "Mastering" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Mastering" */ = {
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 = "Mastering.component"
BlueprintName = "Mastering"
ReferencedContainer = "container:Mastering.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 = "Mastering.component"
BlueprintName = "Mastering"
ReferencedContainer = "container:Mastering.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>Mastering.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: MasteringVersion.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 __MasteringVersion_h__
#define __MasteringVersion_h__
#ifdef DEBUG
#define kMasteringVersion 0xFFFFFFFF
#else
#define kMasteringVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Mastering_COMP_MANF 'Dthr'
#define Mastering_COMP_SUBTYPE 'mast'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

View file

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

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>${PRODUCT_NAME:identifier} AU</string>
<key>factoryFunction</key>
<string>${PRODUCT_NAME:identifier}Factory</string>
<key>manufacturer</key>
<string>Dthr</string>
<key>name</key>
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
<key>subtype</key>
<string>zoom</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>

212
plugins/MacSignedAU/Zoom/Zoom.cpp Executable file
View file

@ -0,0 +1,212 @@
/*
* File: Zoom.cpp
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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.
*
*/
/*=============================================================================
Zoom.cpp
=============================================================================*/
#include "Zoom.h"
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Zoom)
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::Zoom
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Zoom::Zoom(AudioUnit component)
: AUEffectBase(component)
{
CreateElements();
Globals()->UseIndexedParameters(kNumberOfParameters);
SetParameter(kParam_A, kDefaultValue_ParamA );
#if AU_DEBUG_DISPATCHER
mDebugDispatcher = new AUDebugDispatcher (this);
#endif
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetParameterValueStrings
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetParameterValueStrings(AudioUnitScope inScope,
AudioUnitParameterID inParameterID,
CFArrayRef * outStrings)
{
return kAudioUnitErr_InvalidProperty;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetParameterInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::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;
default:
result = kAudioUnitErr_InvalidParameter;
break;
}
} else {
result = kAudioUnitErr_InvalidParameter;
}
return result;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetPropertyInfo
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetPropertyInfo (AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
UInt32 & outDataSize,
Boolean & outWritable)
{
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::GetProperty
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::GetProperty( AudioUnitPropertyID inID,
AudioUnitScope inScope,
AudioUnitElement inElement,
void * outData )
{
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
}
// Zoom::Initialize
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ComponentResult Zoom::Initialize()
{
ComponentResult result = AUEffectBase::Initialize();
if (result == noErr)
Reset(kAudioUnitScope_Global, 0);
return result;
}
#pragma mark ____ZoomEffectKernel
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::ZoomKernel::Reset()
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Zoom::ZoomKernel::Reset()
{
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Zoom::ZoomKernel::Process
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void Zoom::ZoomKernel::Process( const Float32 *inSourceP,
Float32 *inDestP,
UInt32 inFramesToProcess,
UInt32 inNumChannels,
bool &ioSilence )
{
UInt32 nSampleFrames = inFramesToProcess;
const Float32 *sourceP = inSourceP;
Float32 *destP = inDestP;
double zoom = (GetParameter( kParam_A )*2.0)-1.0;
double zoomStages = (fabs(zoom)*4.0)+1.0;
for (int count = 0; count < sqrt(zoomStages); count++) zoom *= fabs(zoom);
while (nSampleFrames-- > 0) {
double inputSample = *sourceP;
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
for (int count = 0; count < zoomStages; count++) {
if (zoom > 0.0) {
double closer = inputSample * 1.57079633;
if (closer > 1.57079633) closer = 1.57079633;
if (closer < -1.57079633) closer = -1.57079633;
inputSample = (inputSample*(1.0-zoom))+(sin(closer)*zoom);
} //zooming in will make the body of the sound louder: it's just Density
if (zoom < 0.0) {
double farther = fabs(inputSample) * 1.57079633;
if (farther > 1.57079633) farther = 1.0;
else farther = 1.0-cos(farther);
if (inputSample > 0.0) inputSample = (inputSample*(1.0+zoom))-(farther*zoom*1.57079633);
if (inputSample < 0.0) inputSample = (inputSample*(1.0+zoom))+(farther*zoom*1.57079633);
} //zooming out boosts the hottest peaks but cuts back softer stuff
}
//begin 32 bit floating point dither
int expon; frexpf((float)inputSample, &expon);
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
//end 32 bit floating point dither
*destP = inputSample;
sourceP += inNumChannels; destP += inNumChannels;
}
}

View file

@ -0,0 +1,2 @@
_ZoomEntry
_ZoomFactory

134
plugins/MacSignedAU/Zoom/Zoom.h Executable file
View file

@ -0,0 +1,134 @@
/*
* File: Zoom.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "ZoomVersion.h"
#if AU_DEBUG_DISPATCHER
#include "AUDebugDispatcher.h"
#endif
#ifndef __Zoom_h__
#define __Zoom_h__
#pragma mark ____Zoom Parameters
// parameters
static const float kDefaultValue_ParamA = 0.5;
static CFStringRef kParameterAName = CFSTR("Zoom");
enum {
kParam_A =0,
//Add your parameters here...
kNumberOfParameters=1
};
#pragma mark ____Zoom
class Zoom : public AUEffectBase
{
public:
Zoom(AudioUnit component);
#if AU_DEBUG_DISPATCHER
virtual ~Zoom () { delete mDebugDispatcher; }
#endif
virtual AUKernelBase * NewKernel() { return new ZoomKernel(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 kZoomVersion; }
protected:
class ZoomKernel : public AUKernelBase // most of the real work happens here
{
public:
ZoomKernel(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:
uint32_t fpd;
};
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#endif

61
plugins/MacSignedAU/Zoom/Zoom.r Executable file
View file

@ -0,0 +1,61 @@
/*
* File: Zoom.r
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 "ZoomVersion.h"
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
#define kAudioUnitResID_Zoom 1000
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Zoom~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define RES_ID kAudioUnitResID_Zoom
#define COMP_TYPE kAudioUnitType_Effect
#define COMP_SUBTYPE Zoom_COMP_SUBTYPE
#define COMP_MANUF Zoom_COMP_MANF
#define VERSION kZoomVersion
#define NAME "Airwindows: Zoom"
#define DESCRIPTION "Zoom AU"
#define ENTRY_POINT "ZoomEntry"
#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 /* Zoom */;
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 = 750186156;
PBXWorkspaceStateSaveDate = 750186156;
};
perUserProjectItems = {
8BA3DC222CB5E98D00B899C2 /* PlistBookmark */ = 8BA3DC222CB5E98D00B899C2 /* PlistBookmark */;
8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */ = 8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */;
8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */ = 8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */;
};
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
userBuildSettings = {
};
};
8BA05A660720730100365D66 /* Zoom.cpp */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {840, 3834}}";
sepNavSelRange = "{7923, 0}";
sepNavVisRange = "{7719, 314}";
sepNavWindowFrame = "{{618, 29}, {1040, 821}}";
};
};
8BA05A690720730100365D66 /* ZoomVersion.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
sepNavSelRange = "{2871, 0}";
sepNavVisRange = "{857, 2077}";
sepNavWindowFrame = "{{15, 52}, {1040, 821}}";
};
};
8BA3DC222CB5E98D00B899C2 /* PlistBookmark */ = {
isa = PlistBookmark;
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
fallbackIsa = PBXBookmark;
isK = 0;
kPath = (
CFBundleName,
);
name = /Users/christopherjohnson/Desktop/Zoom/Info.plist;
rLen = 0;
rLoc = 9223372036854775808;
};
8BC6025B073B072D006C4272 /* Zoom.h */ = {
uiCtxt = {
sepNavIntBoundsRect = "{{0, 0}, {1119, 2196}}";
sepNavSelRange = "{2980, 0}";
sepNavVisRange = "{1643, 1341}";
sepNavWindowFrame = "{{400, 48}, {1040, 821}}";
};
};
8BD3CCB8148830B20062E48C /* Source Control */ = {
isa = PBXSourceControlManager;
fallbackIsa = XCSourceControlManager;
isSCMEnabled = 0;
scmConfiguration = {
repositoryNamesForRoots = {
"" = "";
};
};
};
8BD3CCB9148830B20062E48C /* Code sense */ = {
isa = PBXCodeSenseManager;
indexTemplatePath = "";
};
8BF178CB2CB6F18500FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Zoom.cpp */;
name = "Zoom.cpp: 178";
rLen = 0;
rLoc = 7923;
rType = 0;
vrLen = 314;
vrLoc = 7719;
};
8BF178CC2CB6F18500FAAF3F /* PBXTextBookmark */ = {
isa = PBXTextBookmark;
fRef = 8BA05A660720730100365D66 /* Zoom.cpp */;
name = "Zoom.cpp: 178";
rLen = 0;
rLoc = 7923;
rType = 0;
vrLen = 314;
vrLoc = 7719;
};
8D01CCC60486CAD60068D4B7 /* Zoom */ = {
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 */
8B5A00002CB8517F00E1C37C /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF7E2CB8517F00E1C37C /* AUTimestampGenerator.h */; };
8B5A00012CB8517F00E1C37C /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF7F2CB8517F00E1C37C /* AUBaseHelper.cpp */; };
8B5A00022CB8517F00E1C37C /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF802CB8517F00E1C37C /* AUSilentTimeout.h */; };
8B5A00032CB8517F00E1C37C /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF812CB8517F00E1C37C /* AUInputFormatConverter.h */; };
8B5A00042CB8517F00E1C37C /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF822CB8517F00E1C37C /* AUTimestampGenerator.cpp */; };
8B5A00052CB8517F00E1C37C /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF832CB8517F00E1C37C /* AUBuffer.cpp */; };
8B5A00062CB8517F00E1C37C /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF842CB8517F00E1C37C /* AUMIDIDefs.h */; };
8B5A00072CB8517F00E1C37C /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF852CB8517F00E1C37C /* AUBuffer.h */; };
8B5A00082CB8517F00E1C37C /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF862CB8517F00E1C37C /* AUBaseHelper.h */; };
8B5AFF872CB8517F00E1C37C /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFEFF2CB8517F00E1C37C /* CAExtAudioFile.h */; };
8B5AFF882CB8517F00E1C37C /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF002CB8517F00E1C37C /* CACFMachPort.h */; };
8B5AFF892CB8517F00E1C37C /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF012CB8517F00E1C37C /* CABool.h */; };
8B5AFF8A2CB8517F00E1C37C /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF022CB8517F00E1C37C /* CAComponent.cpp */; };
8B5AFF8B2CB8517F00E1C37C /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF032CB8517F00E1C37C /* CADebugger.h */; };
8B5AFF8C2CB8517F00E1C37C /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF042CB8517F00E1C37C /* CACFNumber.cpp */; };
8B5AFF8D2CB8517F00E1C37C /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF052CB8517F00E1C37C /* CAGuard.h */; };
8B5AFF8E2CB8517F00E1C37C /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF062CB8517F00E1C37C /* CAAtomic.h */; };
8B5AFF8F2CB8517F00E1C37C /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF072CB8517F00E1C37C /* CAStreamBasicDescription.h */; };
8B5AFF902CB8517F00E1C37C /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF082CB8517F00E1C37C /* CACFObject.h */; };
8B5AFF912CB8517F00E1C37C /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF092CB8517F00E1C37C /* CAStreamRangedDescription.h */; };
8B5AFF922CB8517F00E1C37C /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0A2CB8517F00E1C37C /* CATokenMap.h */; };
8B5AFF932CB8517F00E1C37C /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0B2CB8517F00E1C37C /* CAComponent.h */; };
8B5AFF942CB8517F00E1C37C /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0C2CB8517F00E1C37C /* CAAudioBufferList.h */; };
8B5AFF952CB8517F00E1C37C /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0D2CB8517F00E1C37C /* CAAudioUnit.h */; };
8B5AFF962CB8517F00E1C37C /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0E2CB8517F00E1C37C /* CAAUParameter.h */; };
8B5AFF972CB8517F00E1C37C /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF0F2CB8517F00E1C37C /* CAException.h */; };
8B5AFF982CB8517F00E1C37C /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF102CB8517F00E1C37C /* CAAUProcessor.cpp */; };
8B5AFF992CB8517F00E1C37C /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF112CB8517F00E1C37C /* CAAUProcessor.h */; };
8B5AFF9A2CB8517F00E1C37C /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF122CB8517F00E1C37C /* CAProcess.h */; };
8B5AFF9B2CB8517F00E1C37C /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF132CB8517F00E1C37C /* CACFDictionary.h */; };
8B5AFF9C2CB8517F00E1C37C /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF142CB8517F00E1C37C /* CAPThread.h */; };
8B5AFF9D2CB8517F00E1C37C /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF152CB8517F00E1C37C /* CAAUParameter.cpp */; };
8B5AFF9E2CB8517F00E1C37C /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF162CB8517F00E1C37C /* CAAudioTimeStamp.h */; };
8B5AFF9F2CB8517F00E1C37C /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF172CB8517F00E1C37C /* CAFilePathUtils.cpp */; };
8B5AFFA02CB8517F00E1C37C /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF182CB8517F00E1C37C /* CAAudioValueRange.h */; };
8B5AFFA12CB8517F00E1C37C /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF192CB8517F00E1C37C /* CAVectorUnitTypes.h */; };
8B5AFFA22CB8517F00E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF1A2CB8517F00E1C37C /* CAAudioChannelLayoutObject.cpp */; };
8B5AFFA32CB8517F00E1C37C /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF1B2CB8517F00E1C37C /* CAGuard.cpp */; };
8B5AFFA42CB8517F00E1C37C /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF1C2CB8517F00E1C37C /* CACFNumber.h */; };
8B5AFFA52CB8517F00E1C37C /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF1D2CB8517F00E1C37C /* CACFDistributedNotification.cpp */; };
8B5AFFA62CB8517F00E1C37C /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF1E2CB8517F00E1C37C /* CACFString.h */; };
8B5AFFA72CB8517F00E1C37C /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF1F2CB8517F00E1C37C /* CAAUMIDIMapManager.cpp */; };
8B5AFFA82CB8517F00E1C37C /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF202CB8517F00E1C37C /* CAComponentDescription.cpp */; };
8B5AFFA92CB8517F00E1C37C /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF212CB8517F00E1C37C /* CAHostTimeBase.h */; };
8B5AFFAA2CB8517F00E1C37C /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF222CB8517F00E1C37C /* CADebugMacros.cpp */; };
8B5AFFAB2CB8517F00E1C37C /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF232CB8517F00E1C37C /* CAAudioFileFormats.h */; };
8B5AFFAC2CB8517F00E1C37C /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF242CB8517F00E1C37C /* CAAUMIDIMapManager.h */; };
8B5AFFAD2CB8517F00E1C37C /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF252CB8517F00E1C37C /* CACFDictionary.cpp */; };
8B5AFFAE2CB8517F00E1C37C /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF262CB8517F00E1C37C /* CAMutex.h */; };
8B5AFFAF2CB8517F00E1C37C /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF272CB8517F00E1C37C /* CACFString.cpp */; };
8B5AFFB02CB8517F00E1C37C /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF282CB8517F00E1C37C /* CASettingsStorage.h */; };
8B5AFFB12CB8517F00E1C37C /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF292CB8517F00E1C37C /* CADebugPrintf.h */; };
8B5AFFB22CB8517F00E1C37C /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF2A2CB8517F00E1C37C /* CAXException.cpp */; };
8B5AFFB32CB8517F00E1C37C /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF2B2CB8517F00E1C37C /* CAAUMIDIMap.h */; };
8B5AFFB42CB8517F00E1C37C /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF2C2CB8517F00E1C37C /* AUParamInfo.h */; };
8B5AFFB52CB8517F00E1C37C /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF2D2CB8517F00E1C37C /* CABitOperations.h */; };
8B5AFFB62CB8517F00E1C37C /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF2E2CB8517F00E1C37C /* CACFPreferences.cpp */; };
8B5AFFB72CB8517F00E1C37C /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF2F2CB8517F00E1C37C /* CABundleLocker.h */; };
8B5AFFB82CB8517F00E1C37C /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF302CB8517F00E1C37C /* CAPropertyAddress.h */; };
8B5AFFB92CB8517F00E1C37C /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF312CB8517F00E1C37C /* CAXException.h */; };
8B5AFFBA2CB8517F00E1C37C /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF322CB8517F00E1C37C /* CAAudioChannelLayout.cpp */; };
8B5AFFBB2CB8517F00E1C37C /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF332CB8517F00E1C37C /* CAThreadSafeList.h */; };
8B5AFFBC2CB8517F00E1C37C /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF342CB8517F00E1C37C /* CAAudioUnitOutputCapturer.h */; };
8B5AFFBD2CB8517F00E1C37C /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF352CB8517F00E1C37C /* AUParamInfo.cpp */; };
8B5AFFBE2CB8517F00E1C37C /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF362CB8517F00E1C37C /* CASharedLibrary.cpp */; };
8B5AFFBF2CB8517F00E1C37C /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF372CB8517F00E1C37C /* CAAUMIDIMap.cpp */; };
8B5AFFC02CB8517F00E1C37C /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF382CB8517F00E1C37C /* CALogMacros.h */; };
8B5AFFC12CB8517F00E1C37C /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF392CB8517F00E1C37C /* CACFMessagePort.cpp */; };
8B5AFFC22CB8517F00E1C37C /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF3A2CB8517F00E1C37C /* CARingBuffer.h */; };
8B5AFFC32CB8517F00E1C37C /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF3B2CB8517F00E1C37C /* AUOutputBL.cpp */; };
8B5AFFC42CB8517F00E1C37C /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF3C2CB8517F00E1C37C /* CABufferList.h */; };
8B5AFFC52CB8517F00E1C37C /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF3D2CB8517F00E1C37C /* CASharedLibrary.h */; };
8B5AFFC62CB8517F00E1C37C /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF3E2CB8517F00E1C37C /* CACFData.h */; };
8B5AFFC72CB8517F00E1C37C /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF3F2CB8517F00E1C37C /* CAStreamRangedDescription.cpp */; };
8B5AFFC82CB8517F00E1C37C /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF402CB8517F00E1C37C /* CAPThread.cpp */; };
8B5AFFC92CB8517F00E1C37C /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF412CB8517F00E1C37C /* CAAutoDisposer.h */; };
8B5AFFCA2CB8517F00E1C37C /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF422CB8517F00E1C37C /* CACFPreferences.h */; };
8B5AFFCB2CB8517F00E1C37C /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF432CB8517F00E1C37C /* CAVectorUnit.cpp */; };
8B5AFFCC2CB8517F00E1C37C /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF442CB8517F00E1C37C /* CAComponentDescription.h */; };
8B5AFFCD2CB8517F00E1C37C /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF452CB8517F00E1C37C /* CADebugMacros.h */; };
8B5AFFCE2CB8517F00E1C37C /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF462CB8517F00E1C37C /* AUOutputBL.h */; };
8B5AFFCF2CB8517F00E1C37C /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF472CB8517F00E1C37C /* CADebugPrintf.cpp */; };
8B5AFFD02CB8517F00E1C37C /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF482CB8517F00E1C37C /* CARingBuffer.cpp */; };
8B5AFFD12CB8517F00E1C37C /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF492CB8517F00E1C37C /* CACFPlugIn.h */; };
8B5AFFD22CB8517F00E1C37C /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF4A2CB8517F00E1C37C /* CASettingsStorage.cpp */; };
8B5AFFD32CB8517F00E1C37C /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF4B2CB8517F00E1C37C /* CAMixMap.h */; };
8B5AFFD42CB8517F00E1C37C /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF4C2CB8517F00E1C37C /* CACFDistributedNotification.h */; };
8B5AFFD52CB8517F00E1C37C /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF4D2CB8517F00E1C37C /* CAFilePathUtils.h */; };
8B5AFFD62CB8517F00E1C37C /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF4E2CB8517F00E1C37C /* CATink.h */; };
8B5AFFD72CB8517F00E1C37C /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF4F2CB8517F00E1C37C /* CAStreamBasicDescription.cpp */; };
8B5AFFD82CB8517F00E1C37C /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF502CB8517F00E1C37C /* CAAudioChannelLayout.h */; };
8B5AFFD92CB8517F00E1C37C /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF512CB8517F00E1C37C /* CAProcess.cpp */; };
8B5AFFDA2CB8517F00E1C37C /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF522CB8517F00E1C37C /* CAHostTimeBase.cpp */; };
8B5AFFDB2CB8517F00E1C37C /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF532CB8517F00E1C37C /* CAPersistence.cpp */; };
8B5AFFDC2CB8517F00E1C37C /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF542CB8517F00E1C37C /* CAAudioBufferList.cpp */; };
8B5AFFDD2CB8517F00E1C37C /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF552CB8517F00E1C37C /* CAAudioTimeStamp.cpp */; };
8B5AFFDE2CB8517F00E1C37C /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF562CB8517F00E1C37C /* CAVectorUnit.h */; };
8B5AFFDF2CB8517F00E1C37C /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF572CB8517F00E1C37C /* CAByteOrder.h */; };
8B5AFFE02CB8517F00E1C37C /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF582CB8517F00E1C37C /* CACFArray.h */; };
8B5AFFE12CB8517F00E1C37C /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF592CB8517F00E1C37C /* CAAtomicStack.h */; };
8B5AFFE22CB8517F00E1C37C /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF5A2CB8517F00E1C37C /* CAReferenceCounted.h */; };
8B5AFFE32CB8517F00E1C37C /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF5B2CB8517F00E1C37C /* CACFMachPort.cpp */; };
8B5AFFE42CB8517F00E1C37C /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF5C2CB8517F00E1C37C /* CABufferList.cpp */; };
8B5AFFE52CB8517F00E1C37C /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF5D2CB8517F00E1C37C /* CAMutex.cpp */; };
8B5AFFE62CB8517F00E1C37C /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF5E2CB8517F00E1C37C /* CADebugger.cpp */; };
8B5AFFE72CB8517F00E1C37C /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF5F2CB8517F00E1C37C /* CABundleLocker.cpp */; };
8B5AFFE82CB8517F00E1C37C /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF602CB8517F00E1C37C /* CAAudioFileFormats.cpp */; };
8B5AFFE92CB8517F00E1C37C /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF612CB8517F00E1C37C /* CAMath.h */; };
8B5AFFEA2CB8517F00E1C37C /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF622CB8517F00E1C37C /* CACFArray.cpp */; };
8B5AFFEB2CB8517F00E1C37C /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF632CB8517F00E1C37C /* CACFMessagePort.h */; };
8B5AFFEC2CB8517F00E1C37C /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF642CB8517F00E1C37C /* CAAudioValueRange.cpp */; };
8B5AFFED2CB8517F00E1C37C /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF652CB8517F00E1C37C /* CAAudioUnit.cpp */; };
8B5AFFEE2CB8517F00E1C37C /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF692CB8517F00E1C37C /* AUViewLocalizedStringKeys.h */; };
8B5AFFEF2CB8517F00E1C37C /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF6B2CB8517F00E1C37C /* ComponentBase.cpp */; };
8B5AFFF02CB8517F00E1C37C /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF6C2CB8517F00E1C37C /* AUScopeElement.cpp */; };
8B5AFFF12CB8517F00E1C37C /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF6D2CB8517F00E1C37C /* ComponentBase.h */; };
8B5AFFF22CB8517F00E1C37C /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF6E2CB8517F00E1C37C /* AUBase.cpp */; };
8B5AFFF32CB8517F00E1C37C /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF6F2CB8517F00E1C37C /* AUInputElement.h */; };
8B5AFFF42CB8517F00E1C37C /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF702CB8517F00E1C37C /* AUBase.h */; };
8B5AFFF52CB8517F00E1C37C /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF712CB8517F00E1C37C /* AUPlugInDispatch.h */; };
8B5AFFF62CB8517F00E1C37C /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF722CB8517F00E1C37C /* AUDispatch.h */; };
8B5AFFF72CB8517F00E1C37C /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF732CB8517F00E1C37C /* AUOutputElement.cpp */; };
8B5AFFF92CB8517F00E1C37C /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF752CB8517F00E1C37C /* AUPlugInDispatch.cpp */; };
8B5AFFFA2CB8517F00E1C37C /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF762CB8517F00E1C37C /* AUOutputElement.h */; };
8B5AFFFB2CB8517F00E1C37C /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF772CB8517F00E1C37C /* AUDispatch.cpp */; };
8B5AFFFC2CB8517F00E1C37C /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF782CB8517F00E1C37C /* AUScopeElement.h */; };
8B5AFFFD2CB8517F00E1C37C /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF792CB8517F00E1C37C /* AUInputElement.cpp */; };
8B5AFFFE2CB8517F00E1C37C /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B5AFF7B2CB8517F00E1C37C /* AUEffectBase.cpp */; };
8B5AFFFF2CB8517F00E1C37C /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B5AFF7C2CB8517F00E1C37C /* AUEffectBase.h */; };
8BA05A6B0720730100365D66 /* Zoom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Zoom.cpp */; };
8BA05A6E0720730100365D66 /* ZoomVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ZoomVersion.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 /* Zoom.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Zoom.h */; };
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
8B5A00092CB8522400E1C37C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
8B5AFEFF2CB8517F00E1C37C /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
8B5AFF002CB8517F00E1C37C /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
8B5AFF012CB8517F00E1C37C /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
8B5AFF022CB8517F00E1C37C /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
8B5AFF032CB8517F00E1C37C /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
8B5AFF042CB8517F00E1C37C /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
8B5AFF052CB8517F00E1C37C /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
8B5AFF062CB8517F00E1C37C /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
8B5AFF072CB8517F00E1C37C /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
8B5AFF082CB8517F00E1C37C /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
8B5AFF092CB8517F00E1C37C /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
8B5AFF0A2CB8517F00E1C37C /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
8B5AFF0B2CB8517F00E1C37C /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
8B5AFF0C2CB8517F00E1C37C /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
8B5AFF0D2CB8517F00E1C37C /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
8B5AFF0E2CB8517F00E1C37C /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
8B5AFF0F2CB8517F00E1C37C /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
8B5AFF102CB8517F00E1C37C /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
8B5AFF112CB8517F00E1C37C /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
8B5AFF122CB8517F00E1C37C /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
8B5AFF132CB8517F00E1C37C /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
8B5AFF142CB8517F00E1C37C /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
8B5AFF152CB8517F00E1C37C /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
8B5AFF162CB8517F00E1C37C /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
8B5AFF172CB8517F00E1C37C /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
8B5AFF182CB8517F00E1C37C /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
8B5AFF192CB8517F00E1C37C /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
8B5AFF1A2CB8517F00E1C37C /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
8B5AFF1B2CB8517F00E1C37C /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
8B5AFF1C2CB8517F00E1C37C /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
8B5AFF1D2CB8517F00E1C37C /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
8B5AFF1E2CB8517F00E1C37C /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
8B5AFF1F2CB8517F00E1C37C /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
8B5AFF202CB8517F00E1C37C /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
8B5AFF212CB8517F00E1C37C /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
8B5AFF222CB8517F00E1C37C /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
8B5AFF232CB8517F00E1C37C /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
8B5AFF242CB8517F00E1C37C /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
8B5AFF252CB8517F00E1C37C /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
8B5AFF262CB8517F00E1C37C /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
8B5AFF272CB8517F00E1C37C /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
8B5AFF282CB8517F00E1C37C /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
8B5AFF292CB8517F00E1C37C /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
8B5AFF2A2CB8517F00E1C37C /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
8B5AFF2B2CB8517F00E1C37C /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
8B5AFF2C2CB8517F00E1C37C /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
8B5AFF2D2CB8517F00E1C37C /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
8B5AFF2E2CB8517F00E1C37C /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
8B5AFF2F2CB8517F00E1C37C /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
8B5AFF302CB8517F00E1C37C /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
8B5AFF312CB8517F00E1C37C /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
8B5AFF322CB8517F00E1C37C /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
8B5AFF332CB8517F00E1C37C /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
8B5AFF342CB8517F00E1C37C /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
8B5AFF352CB8517F00E1C37C /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
8B5AFF362CB8517F00E1C37C /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
8B5AFF372CB8517F00E1C37C /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
8B5AFF382CB8517F00E1C37C /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
8B5AFF392CB8517F00E1C37C /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
8B5AFF3A2CB8517F00E1C37C /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
8B5AFF3B2CB8517F00E1C37C /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
8B5AFF3C2CB8517F00E1C37C /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
8B5AFF3D2CB8517F00E1C37C /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
8B5AFF3E2CB8517F00E1C37C /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
8B5AFF3F2CB8517F00E1C37C /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
8B5AFF402CB8517F00E1C37C /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
8B5AFF412CB8517F00E1C37C /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
8B5AFF422CB8517F00E1C37C /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
8B5AFF432CB8517F00E1C37C /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
8B5AFF442CB8517F00E1C37C /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
8B5AFF452CB8517F00E1C37C /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
8B5AFF462CB8517F00E1C37C /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
8B5AFF472CB8517F00E1C37C /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
8B5AFF482CB8517F00E1C37C /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
8B5AFF492CB8517F00E1C37C /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
8B5AFF4A2CB8517F00E1C37C /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
8B5AFF4B2CB8517F00E1C37C /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
8B5AFF4C2CB8517F00E1C37C /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
8B5AFF4D2CB8517F00E1C37C /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
8B5AFF4E2CB8517F00E1C37C /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
8B5AFF4F2CB8517F00E1C37C /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
8B5AFF502CB8517F00E1C37C /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
8B5AFF512CB8517F00E1C37C /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
8B5AFF522CB8517F00E1C37C /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
8B5AFF532CB8517F00E1C37C /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
8B5AFF542CB8517F00E1C37C /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
8B5AFF552CB8517F00E1C37C /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
8B5AFF562CB8517F00E1C37C /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
8B5AFF572CB8517F00E1C37C /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
8B5AFF582CB8517F00E1C37C /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
8B5AFF592CB8517F00E1C37C /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
8B5AFF5A2CB8517F00E1C37C /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
8B5AFF5B2CB8517F00E1C37C /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
8B5AFF5C2CB8517F00E1C37C /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
8B5AFF5D2CB8517F00E1C37C /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
8B5AFF5E2CB8517F00E1C37C /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
8B5AFF5F2CB8517F00E1C37C /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
8B5AFF602CB8517F00E1C37C /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
8B5AFF612CB8517F00E1C37C /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
8B5AFF622CB8517F00E1C37C /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
8B5AFF632CB8517F00E1C37C /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
8B5AFF642CB8517F00E1C37C /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
8B5AFF652CB8517F00E1C37C /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
8B5AFF692CB8517F00E1C37C /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
8B5AFF6B2CB8517F00E1C37C /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
8B5AFF6C2CB8517F00E1C37C /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
8B5AFF6D2CB8517F00E1C37C /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
8B5AFF6E2CB8517F00E1C37C /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
8B5AFF6F2CB8517F00E1C37C /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
8B5AFF702CB8517F00E1C37C /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
8B5AFF712CB8517F00E1C37C /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
8B5AFF722CB8517F00E1C37C /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
8B5AFF732CB8517F00E1C37C /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
8B5AFF742CB8517F00E1C37C /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
8B5AFF752CB8517F00E1C37C /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
8B5AFF762CB8517F00E1C37C /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
8B5AFF772CB8517F00E1C37C /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
8B5AFF782CB8517F00E1C37C /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
8B5AFF792CB8517F00E1C37C /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
8B5AFF7B2CB8517F00E1C37C /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
8B5AFF7C2CB8517F00E1C37C /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
8B5AFF7E2CB8517F00E1C37C /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
8B5AFF7F2CB8517F00E1C37C /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
8B5AFF802CB8517F00E1C37C /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
8B5AFF812CB8517F00E1C37C /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
8B5AFF822CB8517F00E1C37C /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
8B5AFF832CB8517F00E1C37C /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
8B5AFF842CB8517F00E1C37C /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
8B5AFF852CB8517F00E1C37C /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
8B5AFF862CB8517F00E1C37C /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
8BA05A660720730100365D66 /* Zoom.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Zoom.cpp; sourceTree = "<group>"; };
8BA05A670720730100365D66 /* Zoom.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Zoom.exp; sourceTree = "<group>"; };
8BA05A680720730100365D66 /* Zoom.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Zoom.r; sourceTree = "<group>"; };
8BA05A690720730100365D66 /* ZoomVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ZoomVersion.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 /* Zoom.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Zoom.h; sourceTree = "<group>"; };
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
8D01CCD20486CAD60068D4B7 /* Zoom.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Zoom.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 /* Zoom */ = {
isa = PBXGroup;
children = (
08FB77ADFE841716C02AAC07 /* Source */,
089C167CFE841241C02AAC07 /* Resources */,
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
19C28FB4FE9D528D11CA2CBB /* Products */,
);
name = Zoom;
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 = (
8B5AFEFD2CB8517F00E1C37C /* CA_SDK */,
8BA05A56072072A900365D66 /* AU Source */,
);
name = Source;
sourceTree = "<group>";
};
19C28FB4FE9D528D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D01CCD20486CAD60068D4B7 /* Zoom.component */,
);
name = Products;
sourceTree = "<group>";
};
8B5AFEFD2CB8517F00E1C37C /* CA_SDK */ = {
isa = PBXGroup;
children = (
8B5AFEFE2CB8517F00E1C37C /* PublicUtility */,
8B5AFF662CB8517F00E1C37C /* AudioUnits */,
);
name = CA_SDK;
path = ../../../../CA_SDK;
sourceTree = "<group>";
};
8B5AFEFE2CB8517F00E1C37C /* PublicUtility */ = {
isa = PBXGroup;
children = (
8B5AFEFF2CB8517F00E1C37C /* CAExtAudioFile.h */,
8B5AFF002CB8517F00E1C37C /* CACFMachPort.h */,
8B5AFF012CB8517F00E1C37C /* CABool.h */,
8B5AFF022CB8517F00E1C37C /* CAComponent.cpp */,
8B5AFF032CB8517F00E1C37C /* CADebugger.h */,
8B5AFF042CB8517F00E1C37C /* CACFNumber.cpp */,
8B5AFF052CB8517F00E1C37C /* CAGuard.h */,
8B5AFF062CB8517F00E1C37C /* CAAtomic.h */,
8B5AFF072CB8517F00E1C37C /* CAStreamBasicDescription.h */,
8B5AFF082CB8517F00E1C37C /* CACFObject.h */,
8B5AFF092CB8517F00E1C37C /* CAStreamRangedDescription.h */,
8B5AFF0A2CB8517F00E1C37C /* CATokenMap.h */,
8B5AFF0B2CB8517F00E1C37C /* CAComponent.h */,
8B5AFF0C2CB8517F00E1C37C /* CAAudioBufferList.h */,
8B5AFF0D2CB8517F00E1C37C /* CAAudioUnit.h */,
8B5AFF0E2CB8517F00E1C37C /* CAAUParameter.h */,
8B5AFF0F2CB8517F00E1C37C /* CAException.h */,
8B5AFF102CB8517F00E1C37C /* CAAUProcessor.cpp */,
8B5AFF112CB8517F00E1C37C /* CAAUProcessor.h */,
8B5AFF122CB8517F00E1C37C /* CAProcess.h */,
8B5AFF132CB8517F00E1C37C /* CACFDictionary.h */,
8B5AFF142CB8517F00E1C37C /* CAPThread.h */,
8B5AFF152CB8517F00E1C37C /* CAAUParameter.cpp */,
8B5AFF162CB8517F00E1C37C /* CAAudioTimeStamp.h */,
8B5AFF172CB8517F00E1C37C /* CAFilePathUtils.cpp */,
8B5AFF182CB8517F00E1C37C /* CAAudioValueRange.h */,
8B5AFF192CB8517F00E1C37C /* CAVectorUnitTypes.h */,
8B5AFF1A2CB8517F00E1C37C /* CAAudioChannelLayoutObject.cpp */,
8B5AFF1B2CB8517F00E1C37C /* CAGuard.cpp */,
8B5AFF1C2CB8517F00E1C37C /* CACFNumber.h */,
8B5AFF1D2CB8517F00E1C37C /* CACFDistributedNotification.cpp */,
8B5AFF1E2CB8517F00E1C37C /* CACFString.h */,
8B5AFF1F2CB8517F00E1C37C /* CAAUMIDIMapManager.cpp */,
8B5AFF202CB8517F00E1C37C /* CAComponentDescription.cpp */,
8B5AFF212CB8517F00E1C37C /* CAHostTimeBase.h */,
8B5AFF222CB8517F00E1C37C /* CADebugMacros.cpp */,
8B5AFF232CB8517F00E1C37C /* CAAudioFileFormats.h */,
8B5AFF242CB8517F00E1C37C /* CAAUMIDIMapManager.h */,
8B5AFF252CB8517F00E1C37C /* CACFDictionary.cpp */,
8B5AFF262CB8517F00E1C37C /* CAMutex.h */,
8B5AFF272CB8517F00E1C37C /* CACFString.cpp */,
8B5AFF282CB8517F00E1C37C /* CASettingsStorage.h */,
8B5AFF292CB8517F00E1C37C /* CADebugPrintf.h */,
8B5AFF2A2CB8517F00E1C37C /* CAXException.cpp */,
8B5AFF2B2CB8517F00E1C37C /* CAAUMIDIMap.h */,
8B5AFF2C2CB8517F00E1C37C /* AUParamInfo.h */,
8B5AFF2D2CB8517F00E1C37C /* CABitOperations.h */,
8B5AFF2E2CB8517F00E1C37C /* CACFPreferences.cpp */,
8B5AFF2F2CB8517F00E1C37C /* CABundleLocker.h */,
8B5AFF302CB8517F00E1C37C /* CAPropertyAddress.h */,
8B5AFF312CB8517F00E1C37C /* CAXException.h */,
8B5AFF322CB8517F00E1C37C /* CAAudioChannelLayout.cpp */,
8B5AFF332CB8517F00E1C37C /* CAThreadSafeList.h */,
8B5AFF342CB8517F00E1C37C /* CAAudioUnitOutputCapturer.h */,
8B5AFF352CB8517F00E1C37C /* AUParamInfo.cpp */,
8B5AFF362CB8517F00E1C37C /* CASharedLibrary.cpp */,
8B5AFF372CB8517F00E1C37C /* CAAUMIDIMap.cpp */,
8B5AFF382CB8517F00E1C37C /* CALogMacros.h */,
8B5AFF392CB8517F00E1C37C /* CACFMessagePort.cpp */,
8B5AFF3A2CB8517F00E1C37C /* CARingBuffer.h */,
8B5AFF3B2CB8517F00E1C37C /* AUOutputBL.cpp */,
8B5AFF3C2CB8517F00E1C37C /* CABufferList.h */,
8B5AFF3D2CB8517F00E1C37C /* CASharedLibrary.h */,
8B5AFF3E2CB8517F00E1C37C /* CACFData.h */,
8B5AFF3F2CB8517F00E1C37C /* CAStreamRangedDescription.cpp */,
8B5AFF402CB8517F00E1C37C /* CAPThread.cpp */,
8B5AFF412CB8517F00E1C37C /* CAAutoDisposer.h */,
8B5AFF422CB8517F00E1C37C /* CACFPreferences.h */,
8B5AFF432CB8517F00E1C37C /* CAVectorUnit.cpp */,
8B5AFF442CB8517F00E1C37C /* CAComponentDescription.h */,
8B5AFF452CB8517F00E1C37C /* CADebugMacros.h */,
8B5AFF462CB8517F00E1C37C /* AUOutputBL.h */,
8B5AFF472CB8517F00E1C37C /* CADebugPrintf.cpp */,
8B5AFF482CB8517F00E1C37C /* CARingBuffer.cpp */,
8B5AFF492CB8517F00E1C37C /* CACFPlugIn.h */,
8B5AFF4A2CB8517F00E1C37C /* CASettingsStorage.cpp */,
8B5AFF4B2CB8517F00E1C37C /* CAMixMap.h */,
8B5AFF4C2CB8517F00E1C37C /* CACFDistributedNotification.h */,
8B5AFF4D2CB8517F00E1C37C /* CAFilePathUtils.h */,
8B5AFF4E2CB8517F00E1C37C /* CATink.h */,
8B5AFF4F2CB8517F00E1C37C /* CAStreamBasicDescription.cpp */,
8B5AFF502CB8517F00E1C37C /* CAAudioChannelLayout.h */,
8B5AFF512CB8517F00E1C37C /* CAProcess.cpp */,
8B5AFF522CB8517F00E1C37C /* CAHostTimeBase.cpp */,
8B5AFF532CB8517F00E1C37C /* CAPersistence.cpp */,
8B5AFF542CB8517F00E1C37C /* CAAudioBufferList.cpp */,
8B5AFF552CB8517F00E1C37C /* CAAudioTimeStamp.cpp */,
8B5AFF562CB8517F00E1C37C /* CAVectorUnit.h */,
8B5AFF572CB8517F00E1C37C /* CAByteOrder.h */,
8B5AFF582CB8517F00E1C37C /* CACFArray.h */,
8B5AFF592CB8517F00E1C37C /* CAAtomicStack.h */,
8B5AFF5A2CB8517F00E1C37C /* CAReferenceCounted.h */,
8B5AFF5B2CB8517F00E1C37C /* CACFMachPort.cpp */,
8B5AFF5C2CB8517F00E1C37C /* CABufferList.cpp */,
8B5AFF5D2CB8517F00E1C37C /* CAMutex.cpp */,
8B5AFF5E2CB8517F00E1C37C /* CADebugger.cpp */,
8B5AFF5F2CB8517F00E1C37C /* CABundleLocker.cpp */,
8B5AFF602CB8517F00E1C37C /* CAAudioFileFormats.cpp */,
8B5AFF612CB8517F00E1C37C /* CAMath.h */,
8B5AFF622CB8517F00E1C37C /* CACFArray.cpp */,
8B5AFF632CB8517F00E1C37C /* CACFMessagePort.h */,
8B5AFF642CB8517F00E1C37C /* CAAudioValueRange.cpp */,
8B5AFF652CB8517F00E1C37C /* CAAudioUnit.cpp */,
);
path = PublicUtility;
sourceTree = "<group>";
};
8B5AFF662CB8517F00E1C37C /* AudioUnits */ = {
isa = PBXGroup;
children = (
8B5AFF672CB8517F00E1C37C /* AUPublic */,
);
path = AudioUnits;
sourceTree = "<group>";
};
8B5AFF672CB8517F00E1C37C /* AUPublic */ = {
isa = PBXGroup;
children = (
8B5AFF682CB8517F00E1C37C /* AUViewBase */,
8B5AFF6A2CB8517F00E1C37C /* AUBase */,
8B5AFF7A2CB8517F00E1C37C /* OtherBases */,
8B5AFF7D2CB8517F00E1C37C /* Utility */,
);
path = AUPublic;
sourceTree = "<group>";
};
8B5AFF682CB8517F00E1C37C /* AUViewBase */ = {
isa = PBXGroup;
children = (
8B5AFF692CB8517F00E1C37C /* AUViewLocalizedStringKeys.h */,
);
path = AUViewBase;
sourceTree = "<group>";
};
8B5AFF6A2CB8517F00E1C37C /* AUBase */ = {
isa = PBXGroup;
children = (
8B5AFF6B2CB8517F00E1C37C /* ComponentBase.cpp */,
8B5AFF6C2CB8517F00E1C37C /* AUScopeElement.cpp */,
8B5AFF6D2CB8517F00E1C37C /* ComponentBase.h */,
8B5AFF6E2CB8517F00E1C37C /* AUBase.cpp */,
8B5AFF6F2CB8517F00E1C37C /* AUInputElement.h */,
8B5AFF702CB8517F00E1C37C /* AUBase.h */,
8B5AFF712CB8517F00E1C37C /* AUPlugInDispatch.h */,
8B5AFF722CB8517F00E1C37C /* AUDispatch.h */,
8B5AFF732CB8517F00E1C37C /* AUOutputElement.cpp */,
8B5AFF742CB8517F00E1C37C /* AUResources.r */,
8B5AFF752CB8517F00E1C37C /* AUPlugInDispatch.cpp */,
8B5AFF762CB8517F00E1C37C /* AUOutputElement.h */,
8B5AFF772CB8517F00E1C37C /* AUDispatch.cpp */,
8B5AFF782CB8517F00E1C37C /* AUScopeElement.h */,
8B5AFF792CB8517F00E1C37C /* AUInputElement.cpp */,
);
path = AUBase;
sourceTree = "<group>";
};
8B5AFF7A2CB8517F00E1C37C /* OtherBases */ = {
isa = PBXGroup;
children = (
8B5AFF7B2CB8517F00E1C37C /* AUEffectBase.cpp */,
8B5AFF7C2CB8517F00E1C37C /* AUEffectBase.h */,
);
path = OtherBases;
sourceTree = "<group>";
};
8B5AFF7D2CB8517F00E1C37C /* Utility */ = {
isa = PBXGroup;
children = (
8B5AFF7E2CB8517F00E1C37C /* AUTimestampGenerator.h */,
8B5AFF7F2CB8517F00E1C37C /* AUBaseHelper.cpp */,
8B5AFF802CB8517F00E1C37C /* AUSilentTimeout.h */,
8B5AFF812CB8517F00E1C37C /* AUInputFormatConverter.h */,
8B5AFF822CB8517F00E1C37C /* AUTimestampGenerator.cpp */,
8B5AFF832CB8517F00E1C37C /* AUBuffer.cpp */,
8B5AFF842CB8517F00E1C37C /* AUMIDIDefs.h */,
8B5AFF852CB8517F00E1C37C /* AUBuffer.h */,
8B5AFF862CB8517F00E1C37C /* AUBaseHelper.h */,
);
path = Utility;
sourceTree = "<group>";
};
8BA05A56072072A900365D66 /* AU Source */ = {
isa = PBXGroup;
children = (
8BC6025B073B072D006C4272 /* Zoom.h */,
8BA05A660720730100365D66 /* Zoom.cpp */,
8BA05A670720730100365D66 /* Zoom.exp */,
8BA05A680720730100365D66 /* Zoom.r */,
8BA05A690720730100365D66 /* ZoomVersion.h */,
);
name = "AU Source";
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXHeadersBuildPhase section */
8D01CCC70486CAD60068D4B7 /* Headers */ = {
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
8B5AFFB72CB8517F00E1C37C /* CABundleLocker.h in Headers */,
8B5AFFD82CB8517F00E1C37C /* CAAudioChannelLayout.h in Headers */,
8B5AFFCE2CB8517F00E1C37C /* AUOutputBL.h in Headers */,
8B5AFFA92CB8517F00E1C37C /* CAHostTimeBase.h in Headers */,
8B5AFFF12CB8517F00E1C37C /* ComponentBase.h in Headers */,
8B5AFFE12CB8517F00E1C37C /* CAAtomicStack.h in Headers */,
8B5AFF9E2CB8517F00E1C37C /* CAAudioTimeStamp.h in Headers */,
8B5AFFBB2CB8517F00E1C37C /* CAThreadSafeList.h in Headers */,
8B5AFF962CB8517F00E1C37C /* CAAUParameter.h in Headers */,
8B5A00082CB8517F00E1C37C /* AUBaseHelper.h in Headers */,
8B5A00002CB8517F00E1C37C /* AUTimestampGenerator.h in Headers */,
8B5AFFB12CB8517F00E1C37C /* CADebugPrintf.h in Headers */,
8B5AFFEB2CB8517F00E1C37C /* CACFMessagePort.h in Headers */,
8B5AFF992CB8517F00E1C37C /* CAAUProcessor.h in Headers */,
8B5AFF952CB8517F00E1C37C /* CAAudioUnit.h in Headers */,
8B5AFFEE2CB8517F00E1C37C /* AUViewLocalizedStringKeys.h in Headers */,
8B5AFFD42CB8517F00E1C37C /* CACFDistributedNotification.h in Headers */,
8B5AFF932CB8517F00E1C37C /* CAComponent.h in Headers */,
8B5AFFA12CB8517F00E1C37C /* CAVectorUnitTypes.h in Headers */,
8BA05A6E0720730100365D66 /* ZoomVersion.h in Headers */,
8B5AFFD52CB8517F00E1C37C /* CAFilePathUtils.h in Headers */,
8B5AFF972CB8517F00E1C37C /* CAException.h in Headers */,
8B5AFF8E2CB8517F00E1C37C /* CAAtomic.h in Headers */,
8B5AFF8D2CB8517F00E1C37C /* CAGuard.h in Headers */,
8B5AFFF32CB8517F00E1C37C /* AUInputElement.h in Headers */,
8B5AFFCA2CB8517F00E1C37C /* CACFPreferences.h in Headers */,
8B5AFFDF2CB8517F00E1C37C /* CAByteOrder.h in Headers */,
8B5AFFC22CB8517F00E1C37C /* CARingBuffer.h in Headers */,
8B5AFF892CB8517F00E1C37C /* CABool.h in Headers */,
8B5AFFAE2CB8517F00E1C37C /* CAMutex.h in Headers */,
8B5AFFF42CB8517F00E1C37C /* AUBase.h in Headers */,
8BC6025C073B072D006C4272 /* Zoom.h in Headers */,
8B5AFFA62CB8517F00E1C37C /* CACFString.h in Headers */,
8B5AFFC52CB8517F00E1C37C /* CASharedLibrary.h in Headers */,
8B5AFF922CB8517F00E1C37C /* CATokenMap.h in Headers */,
8B5AFF872CB8517F00E1C37C /* CAExtAudioFile.h in Headers */,
8B5AFF9C2CB8517F00E1C37C /* CAPThread.h in Headers */,
8B5AFFB82CB8517F00E1C37C /* CAPropertyAddress.h in Headers */,
8B5AFFE22CB8517F00E1C37C /* CAReferenceCounted.h in Headers */,
8B5A00072CB8517F00E1C37C /* AUBuffer.h in Headers */,
8B5AFFE92CB8517F00E1C37C /* CAMath.h in Headers */,
8B5AFFC92CB8517F00E1C37C /* CAAutoDisposer.h in Headers */,
8B5AFF902CB8517F00E1C37C /* CACFObject.h in Headers */,
8B5AFFB02CB8517F00E1C37C /* CASettingsStorage.h in Headers */,
8B5AFFB92CB8517F00E1C37C /* CAXException.h in Headers */,
8B5AFFD62CB8517F00E1C37C /* CATink.h in Headers */,
8B5A00032CB8517F00E1C37C /* AUInputFormatConverter.h in Headers */,
8B5AFFDE2CB8517F00E1C37C /* CAVectorUnit.h in Headers */,
8B5AFF9A2CB8517F00E1C37C /* CAProcess.h in Headers */,
8B5AFFA02CB8517F00E1C37C /* CAAudioValueRange.h in Headers */,
8B5AFFB52CB8517F00E1C37C /* CABitOperations.h in Headers */,
8B5AFFAB2CB8517F00E1C37C /* CAAudioFileFormats.h in Headers */,
8B5AFFA42CB8517F00E1C37C /* CACFNumber.h in Headers */,
8B5AFFBC2CB8517F00E1C37C /* CAAudioUnitOutputCapturer.h in Headers */,
8B5AFFCD2CB8517F00E1C37C /* CADebugMacros.h in Headers */,
8B5A00062CB8517F00E1C37C /* AUMIDIDefs.h in Headers */,
8B5AFFC62CB8517F00E1C37C /* CACFData.h in Headers */,
8B5AFF8F2CB8517F00E1C37C /* CAStreamBasicDescription.h in Headers */,
8B5AFFF52CB8517F00E1C37C /* AUPlugInDispatch.h in Headers */,
8B5AFF912CB8517F00E1C37C /* CAStreamRangedDescription.h in Headers */,
8B5AFFD12CB8517F00E1C37C /* CACFPlugIn.h in Headers */,
8B5AFF942CB8517F00E1C37C /* CAAudioBufferList.h in Headers */,
8B5AFFAC2CB8517F00E1C37C /* CAAUMIDIMapManager.h in Headers */,
8B5AFFFF2CB8517F00E1C37C /* AUEffectBase.h in Headers */,
8B5AFF9B2CB8517F00E1C37C /* CACFDictionary.h in Headers */,
8B5AFFFC2CB8517F00E1C37C /* AUScopeElement.h in Headers */,
8B5AFFCC2CB8517F00E1C37C /* CAComponentDescription.h in Headers */,
8B5A00022CB8517F00E1C37C /* AUSilentTimeout.h in Headers */,
8B5AFFC42CB8517F00E1C37C /* CABufferList.h in Headers */,
8B5AFFF62CB8517F00E1C37C /* AUDispatch.h in Headers */,
8B5AFFFA2CB8517F00E1C37C /* AUOutputElement.h in Headers */,
8B5AFFC02CB8517F00E1C37C /* CALogMacros.h in Headers */,
8B5AFFB42CB8517F00E1C37C /* AUParamInfo.h in Headers */,
8B5AFFD32CB8517F00E1C37C /* CAMixMap.h in Headers */,
8B5AFFE02CB8517F00E1C37C /* CACFArray.h in Headers */,
8B5AFF882CB8517F00E1C37C /* CACFMachPort.h in Headers */,
8B5AFFB32CB8517F00E1C37C /* CAAUMIDIMap.h in Headers */,
8B5AFF8B2CB8517F00E1C37C /* CADebugger.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXHeadersBuildPhase section */
/* Begin PBXNativeTarget section */
8D01CCC60486CAD60068D4B7 /* Zoom */ = {
isa = PBXNativeTarget;
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Zoom" */;
buildPhases = (
8D01CCC70486CAD60068D4B7 /* Headers */,
8D01CCC90486CAD60068D4B7 /* Resources */,
8D01CCCB0486CAD60068D4B7 /* Sources */,
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = Zoom;
productInstallPath = "$(HOME)/Library/Bundles";
productName = Zoom;
productReference = 8D01CCD20486CAD60068D4B7 /* Zoom.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 "Zoom" */;
compatibilityVersion = "Xcode 3.1";
developmentRegion = en;
hasScannedForEncodings = 1;
knownRegions = (
fr,
de,
ja,
en,
Base,
);
mainGroup = 089C166AFE841209C02AAC07 /* Zoom */;
projectDirPath = "";
projectRoot = "";
targets = (
8D01CCC60486CAD60068D4B7 /* Zoom */,
);
};
/* 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 = (
8B5AFFC32CB8517F00E1C37C /* AUOutputBL.cpp in Sources */,
8B5AFFE82CB8517F00E1C37C /* CAAudioFileFormats.cpp in Sources */,
8B5AFFDA2CB8517F00E1C37C /* CAHostTimeBase.cpp in Sources */,
8B5AFFB22CB8517F00E1C37C /* CAXException.cpp in Sources */,
8B5AFFDC2CB8517F00E1C37C /* CAAudioBufferList.cpp in Sources */,
8B5AFF9F2CB8517F00E1C37C /* CAFilePathUtils.cpp in Sources */,
8B5AFF9D2CB8517F00E1C37C /* CAAUParameter.cpp in Sources */,
8B5AFFBF2CB8517F00E1C37C /* CAAUMIDIMap.cpp in Sources */,
8B5AFFEC2CB8517F00E1C37C /* CAAudioValueRange.cpp in Sources */,
8B5AFFFB2CB8517F00E1C37C /* AUDispatch.cpp in Sources */,
8B5AFFB62CB8517F00E1C37C /* CACFPreferences.cpp in Sources */,
8B5AFFF92CB8517F00E1C37C /* AUPlugInDispatch.cpp in Sources */,
8B5AFF982CB8517F00E1C37C /* CAAUProcessor.cpp in Sources */,
8B5AFFAD2CB8517F00E1C37C /* CACFDictionary.cpp in Sources */,
8B5A00012CB8517F00E1C37C /* AUBaseHelper.cpp in Sources */,
8B5AFFE62CB8517F00E1C37C /* CADebugger.cpp in Sources */,
8B5AFFBA2CB8517F00E1C37C /* CAAudioChannelLayout.cpp in Sources */,
8B5AFFBD2CB8517F00E1C37C /* AUParamInfo.cpp in Sources */,
8B5AFFDB2CB8517F00E1C37C /* CAPersistence.cpp in Sources */,
8B5AFFCF2CB8517F00E1C37C /* CADebugPrintf.cpp in Sources */,
8B5A00042CB8517F00E1C37C /* AUTimestampGenerator.cpp in Sources */,
8B5AFFD72CB8517F00E1C37C /* CAStreamBasicDescription.cpp in Sources */,
8B5AFFA72CB8517F00E1C37C /* CAAUMIDIMapManager.cpp in Sources */,
8B5AFFD22CB8517F00E1C37C /* CASettingsStorage.cpp in Sources */,
8B5AFFF72CB8517F00E1C37C /* AUOutputElement.cpp in Sources */,
8B5AFFA32CB8517F00E1C37C /* CAGuard.cpp in Sources */,
8BA05A6B0720730100365D66 /* Zoom.cpp in Sources */,
8B5AFFE52CB8517F00E1C37C /* CAMutex.cpp in Sources */,
8B5AFFFE2CB8517F00E1C37C /* AUEffectBase.cpp in Sources */,
8B5AFFE32CB8517F00E1C37C /* CACFMachPort.cpp in Sources */,
8B5AFFF22CB8517F00E1C37C /* AUBase.cpp in Sources */,
8B5AFFBE2CB8517F00E1C37C /* CASharedLibrary.cpp in Sources */,
8B5AFFA52CB8517F00E1C37C /* CACFDistributedNotification.cpp in Sources */,
8B5AFFA82CB8517F00E1C37C /* CAComponentDescription.cpp in Sources */,
8B5AFFAF2CB8517F00E1C37C /* CACFString.cpp in Sources */,
8B5AFFEF2CB8517F00E1C37C /* ComponentBase.cpp in Sources */,
8B5AFFD02CB8517F00E1C37C /* CARingBuffer.cpp in Sources */,
8B5AFFF02CB8517F00E1C37C /* AUScopeElement.cpp in Sources */,
8B5AFFED2CB8517F00E1C37C /* CAAudioUnit.cpp in Sources */,
8B5AFFEA2CB8517F00E1C37C /* CACFArray.cpp in Sources */,
8B5AFFE72CB8517F00E1C37C /* CABundleLocker.cpp in Sources */,
8B5AFFD92CB8517F00E1C37C /* CAProcess.cpp in Sources */,
8B5AFFC72CB8517F00E1C37C /* CAStreamRangedDescription.cpp in Sources */,
8B5AFFC82CB8517F00E1C37C /* CAPThread.cpp in Sources */,
8B5AFF8A2CB8517F00E1C37C /* CAComponent.cpp in Sources */,
8B5AFFA22CB8517F00E1C37C /* CAAudioChannelLayoutObject.cpp in Sources */,
8B5AFFDD2CB8517F00E1C37C /* CAAudioTimeStamp.cpp in Sources */,
8B5AFFE42CB8517F00E1C37C /* CABufferList.cpp in Sources */,
8B5AFFC12CB8517F00E1C37C /* CACFMessagePort.cpp in Sources */,
8B5AFFCB2CB8517F00E1C37C /* CAVectorUnit.cpp in Sources */,
8B5AFFFD2CB8517F00E1C37C /* AUInputElement.cpp in Sources */,
8B5A00052CB8517F00E1C37C /* AUBuffer.cpp in Sources */,
8B5AFFAA2CB8517F00E1C37C /* CADebugMacros.cpp in Sources */,
8B5AFF8C2CB8517F00E1C37C /* CACFNumber.cpp in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
isa = PBXVariantGroup;
children = (
8B5A00092CB8522400E1C37C /* 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 = Zoom.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 = Zoom;
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 = Zoom.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 = Zoom;
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 "Zoom" */ = {
isa = XCConfigurationList;
buildConfigurations = (
3E4BA244089833B7007656EC /* Debug */,
3E4BA245089833B7007656EC /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Debug;
};
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Zoom" */ = {
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 = "Zoom.component"
BlueprintName = "Zoom"
ReferencedContainer = "container:Zoom.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 = "Zoom.component"
BlueprintName = "Zoom"
ReferencedContainer = "container:Zoom.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>Zoom.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: ZoomVersion.h
*
* Version: 1.0
*
* Created: 10/8/24
*
* Copyright: Copyright © 2024 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 __ZoomVersion_h__
#define __ZoomVersion_h__
#ifdef DEBUG
#define kZoomVersion 0xFFFFFFFF
#else
#define kZoomVersion 0x00010000
#endif
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
#define Zoom_COMP_MANF 'Dthr'
#define Zoom_COMP_SUBTYPE 'zoom'
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
#endif

Binary file not shown.

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