mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
PearEQ
This commit is contained in:
parent
507302734a
commit
55a9a9549c
379 changed files with 102059 additions and 0 deletions
|
|
@ -3928,6 +3928,20 @@ So if you liked weirdness like the Y series filters, this is your new toy. Back
|
|||
|
||||
Yeah, let's just call it 'more' ;)
|
||||
|
||||
############ PearEQ is a six-band Pear-based graphic EQ.
|
||||
|
||||
Turns out Pear wasn't done, even though it's been around for years. Pear, Pear2 for more nonlinearity, ConsoleMC and MD, ConsoleLA… all based on my filter derived from the Holt filter. I've done it by itself, I've stacked it up in the traditional way for making a steep multipole filter, I've taken those and made multi-band units nineteen Pear filters deep.
|
||||
|
||||
And all of that was before I started fooling with AngleEQ, which is incapable of doing what Pear or a biquad filter can do. Angle screws up the phase so thoroughly that if you generate a a rolled-off filtered crossover, and subtract the filtered part from dry, the result still has just as much bass as before.
|
||||
|
||||
So, the trick was reconstructing the original sound out of however many bands you have, EACH pole of the filter. Seemingly a pointless endeavor, but when you do that… suddenly the weird filter is able to filter both ways. So what happens if you do that to a biquad filter that was already able to do both things?
|
||||
|
||||
You get SmoothEQ2. That's what I did to make the hyper-flexible filter with tilty shelves. And that's great, and Pear was just sitting there, waiting for me to try it.
|
||||
|
||||
PearEQ combines an intensely natural, analog-sounding character around the sharpness of the filter edges, with a steepness otherwise unavailable to that kind of sound. It's a completely different sound from any other way you'd get that Q factor. You can take any biquad filter (for instance, any DAW standard filter) and crank up the steepness, and you'll get that sharp of a crossover… with obvious resonance, and it'll sound totally different. You can construct an isolator filter out of biquads and it'll still act different: Pear produces an increasingly steep drop-off into the stopband, and biquads won't. It's just different, and PearEQ lets you use that differentness either for great subtlety and natural tone… or to rip and boost frequencies WAY more than you should.
|
||||
|
||||
Go right ahead, and I'll keep working on more out of all this, as it comes together and shows its usefulness :)
|
||||
|
||||
############ PhaseNudge is a phase rotator/allpass filter.
|
||||
|
||||
Here’s a simple little utility plugin, Airwindows-ized. Except, it seems like this isn’t part of typical DAWs and plugin collections. Can’t see why, it’s a pretty basic tool.
|
||||
|
|
|
|||
|
|
@ -178,6 +178,7 @@ add_airwindows_plugin(DubSub)
|
|||
add_airwindows_plugin(DubSub2)
|
||||
add_airwindows_plugin(DustBunny)
|
||||
add_airwindows_plugin(Dynamics)
|
||||
add_airwindows_plugin(Dynamics2)
|
||||
add_airwindows_plugin(Dyno)
|
||||
add_airwindows_plugin(EQ)
|
||||
add_airwindows_plugin(Edge)
|
||||
|
|
@ -312,6 +313,8 @@ add_airwindows_plugin(PaulWide)
|
|||
add_airwindows_plugin(PeaksOnly)
|
||||
add_airwindows_plugin(Pear)
|
||||
add_airwindows_plugin(Pear2)
|
||||
add_airwindows_plugin(PearEQ)
|
||||
add_airwindows_plugin(PearLiteEQ)
|
||||
add_airwindows_plugin(PDBuss)
|
||||
add_airwindows_plugin(PDChannel)
|
||||
add_airwindows_plugin(PhaseNudge)
|
||||
|
|
@ -376,6 +379,7 @@ add_airwindows_plugin(SingleEndedTriode)
|
|||
add_airwindows_plugin(Slew)
|
||||
add_airwindows_plugin(Slew2)
|
||||
add_airwindows_plugin(Slew3)
|
||||
add_airwindows_plugin(Slew4)
|
||||
add_airwindows_plugin(SlewOnly)
|
||||
add_airwindows_plugin(SlewSonic)
|
||||
add_airwindows_plugin(Smooth)
|
||||
|
|
|
|||
148
plugins/LinuxVST/src/Dynamics2/Dynamics2.cpp
Executable file
148
plugins/LinuxVST/src/Dynamics2/Dynamics2.cpp
Executable file
|
|
@ -0,0 +1,148 @@
|
|||
/* ========================================
|
||||
* Dynamics2 - Dynamics2.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Dynamics2_H
|
||||
#include "Dynamics2.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Dynamics2(audioMaster);}
|
||||
|
||||
Dynamics2::Dynamics2(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 1.0;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.0;
|
||||
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompS[bez_cycle] = 1.0; bezGate = 2.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
|
||||
}
|
||||
|
||||
Dynamics2::~Dynamics2() {}
|
||||
VstInt32 Dynamics2::getVendorVersion () {return 1000;}
|
||||
void Dynamics2::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Dynamics2::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 Dynamics2::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 Dynamics2::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void Dynamics2::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Dynamics2::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void Dynamics2::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Release", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Dynamics2::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;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void Dynamics2::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Dynamics2::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Dynamics2::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Dynamics2", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Dynamics2::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Dynamics2::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Dynamics2", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Dynamics2::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
89
plugins/LinuxVST/src/Dynamics2/Dynamics2.h
Executable file
89
plugins/LinuxVST/src/Dynamics2/Dynamics2.h
Executable file
|
|
@ -0,0 +1,89 @@
|
|||
/* ========================================
|
||||
* Dynamics2 - Dynamics2.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Dynamics2_H
|
||||
#define __Dynamics2_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kNumParameters = 4
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'dyn2'; //Change this to what the AU identity is!
|
||||
|
||||
class Dynamics2 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Dynamics2(audioMasterCallback audioMaster);
|
||||
~Dynamics2();
|
||||
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;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AR,
|
||||
bez_BR,
|
||||
bez_CR,
|
||||
bez_InR,
|
||||
bez_UnInR,
|
||||
bez_SampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
240
plugins/LinuxVST/src/Dynamics2/Dynamics2Proc.cpp
Executable file
240
plugins/LinuxVST/src/Dynamics2/Dynamics2Proc.cpp
Executable file
|
|
@ -0,0 +1,240 @@
|
|||
/* ========================================
|
||||
* Dynamics2 - Dynamics2.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Dynamics2_H
|
||||
#include "Dynamics2.h"
|
||||
#endif
|
||||
|
||||
void Dynamics2::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 bezCThresh = pow(1.0-A, 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-B, 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-C,12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(D,4.0),sqrt(bezCThresh+1.0));
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
inputSampleR *= ((bezCThresh*0.5)+1.0);
|
||||
}
|
||||
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez);
|
||||
bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez);
|
||||
bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR)));
|
||||
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage,
|
||||
if (bezCompF[bez_SampL]<gate) bezCompF[bez_SampL] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampR] = bezMaxF/gate; //note: SampR is a control voltage,
|
||||
if (bezCompF[bez_SampR]<gate) bezCompF[bez_SampR] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CR] = bezCompF[bez_BR];
|
||||
bezCompF[bez_BR] = bezCompF[bez_AR];
|
||||
bezCompF[bez_AR] = bezCompF[bez_SampR];
|
||||
bezCompF[bez_SampR] = 0.0;
|
||||
|
||||
bezMaxF = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage
|
||||
bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezCompS[bez_SampL]<gate) bezCompS[bez_SampL] = 0.0;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 0.0;
|
||||
|
||||
if (bezCompS[bez_SampR]<gate) bezCompS[bez_SampR] = 0.0;
|
||||
bezCompS[bez_CR] = bezCompS[bez_BR];
|
||||
bezCompS[bez_BR] = bezCompS[bez_AR];
|
||||
bezCompS[bez_AR] = bezCompS[bez_SampR];
|
||||
bezCompS[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]);
|
||||
double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]);
|
||||
double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]);
|
||||
double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]);
|
||||
double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]);
|
||||
double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]);
|
||||
double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]);
|
||||
double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]);
|
||||
double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5;
|
||||
CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;}
|
||||
|
||||
//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 Dynamics2::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 bezCThresh = pow(1.0-A, 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-B, 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-C,12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(D,4.0),sqrt(bezCThresh+1.0));
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
inputSampleR *= ((bezCThresh*0.5)+1.0);
|
||||
}
|
||||
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez);
|
||||
bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez);
|
||||
bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR)));
|
||||
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage,
|
||||
if (bezCompF[bez_SampL]<gate) bezCompF[bez_SampL] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampR] = bezMaxF/gate; //note: SampR is a control voltage,
|
||||
if (bezCompF[bez_SampR]<gate) bezCompF[bez_SampR] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CR] = bezCompF[bez_BR];
|
||||
bezCompF[bez_BR] = bezCompF[bez_AR];
|
||||
bezCompF[bez_AR] = bezCompF[bez_SampR];
|
||||
bezCompF[bez_SampR] = 0.0;
|
||||
|
||||
bezMaxF = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage
|
||||
bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezCompS[bez_SampL]<gate) bezCompS[bez_SampL] = 0.0;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 0.0;
|
||||
|
||||
if (bezCompS[bez_SampR]<gate) bezCompS[bez_SampR] = 0.0;
|
||||
bezCompS[bez_CR] = bezCompS[bez_BR];
|
||||
bezCompS[bez_BR] = bezCompS[bez_AR];
|
||||
bezCompS[bez_AR] = bezCompS[bez_SampR];
|
||||
bezCompS[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]);
|
||||
double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]);
|
||||
double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]);
|
||||
double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]);
|
||||
double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]);
|
||||
double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]);
|
||||
double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]);
|
||||
double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]);
|
||||
double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5;
|
||||
CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;}
|
||||
|
||||
//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++;
|
||||
}
|
||||
}
|
||||
168
plugins/LinuxVST/src/PearEQ/PearEQ.cpp
Executable file
168
plugins/LinuxVST/src/PearEQ/PearEQ.cpp
Executable file
|
|
@ -0,0 +1,168 @@
|
|||
/* ========================================
|
||||
* PearEQ - PearEQ.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearEQ_H
|
||||
#include "PearEQ.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new PearEQ(audioMaster);}
|
||||
|
||||
PearEQ::PearEQ(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.5;
|
||||
E = 0.5;
|
||||
F = 0.5;
|
||||
|
||||
for (int x = 0; x < pear_total; x++) {
|
||||
pearA[x] = 0.0;
|
||||
pearB[x] = 0.0;
|
||||
pearC[x] = 0.0;
|
||||
pearD[x] = 0.0;
|
||||
pearE[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
|
||||
}
|
||||
|
||||
PearEQ::~PearEQ() {}
|
||||
VstInt32 PearEQ::getVendorVersion () {return 1000;}
|
||||
void PearEQ::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void PearEQ::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 PearEQ::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 PearEQ::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 PearEQ::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 PearEQ::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 PearEQ::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break;
|
||||
case kParamE: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break;
|
||||
case kParamF: vst_strncpy (text, "Sub", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void PearEQ::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 PearEQ::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 PearEQ::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool PearEQ::getEffectName(char* name) {
|
||||
vst_strncpy(name, "PearEQ", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory PearEQ::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool PearEQ::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows PearEQ", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool PearEQ::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
126
plugins/LinuxVST/src/PearEQ/PearEQ.h
Executable file
126
plugins/LinuxVST/src/PearEQ/PearEQ.h
Executable file
|
|
@ -0,0 +1,126 @@
|
|||
/* ========================================
|
||||
* PearEQ - PearEQ.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearEQ_H
|
||||
#define __PearEQ_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 = 'peaq'; //Change this to what the AU identity is!
|
||||
|
||||
class PearEQ :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
PearEQ(audioMasterCallback audioMaster);
|
||||
~PearEQ();
|
||||
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;
|
||||
|
||||
enum {
|
||||
prevSampL1,
|
||||
prevSlewL1,
|
||||
prevSampR1,
|
||||
prevSlewR1,
|
||||
prevSampL2,
|
||||
prevSlewL2,
|
||||
prevSampR2,
|
||||
prevSlewR2,
|
||||
prevSampL3,
|
||||
prevSlewL3,
|
||||
prevSampR3,
|
||||
prevSlewR3,
|
||||
prevSampL4,
|
||||
prevSlewL4,
|
||||
prevSampR4,
|
||||
prevSlewR4,
|
||||
prevSampL5,
|
||||
prevSlewL5,
|
||||
prevSampR5,
|
||||
prevSlewR5,
|
||||
prevSampL6,
|
||||
prevSlewL6,
|
||||
prevSampR6,
|
||||
prevSlewR6,
|
||||
prevSampL7,
|
||||
prevSlewL7,
|
||||
prevSampR7,
|
||||
prevSlewR7,
|
||||
prevSampL8,
|
||||
prevSlewL8,
|
||||
prevSampR8,
|
||||
prevSlewR8,
|
||||
prevSampL9,
|
||||
prevSlewL9,
|
||||
prevSampR9,
|
||||
prevSlewR9,
|
||||
pear_max,
|
||||
figL,
|
||||
figR,
|
||||
gndL,
|
||||
gndR,
|
||||
slew,
|
||||
freq,
|
||||
levl,
|
||||
pear_total
|
||||
}; //new pear filter
|
||||
|
||||
double pearA[pear_total];
|
||||
double pearB[pear_total];
|
||||
double pearC[pear_total];
|
||||
double pearD[pear_total];
|
||||
double pearE[pear_total];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
220
plugins/LinuxVST/src/PearEQ/PearEQProc.cpp
Executable file
220
plugins/LinuxVST/src/PearEQ/PearEQProc.cpp
Executable file
|
|
@ -0,0 +1,220 @@
|
|||
/* ========================================
|
||||
* PearEQ - PearEQ.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearEQ_H
|
||||
#include "PearEQ.h"
|
||||
#endif
|
||||
|
||||
void PearEQ::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 topLevl = sqrt(A+0.5);
|
||||
pearA[levl] = sqrt(B+0.5);
|
||||
pearB[levl] = sqrt(C+0.5);
|
||||
pearC[levl] = sqrt(D+0.5);
|
||||
pearD[levl] = sqrt(E+0.5);
|
||||
pearE[levl] = sqrt(F+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+1.9);
|
||||
pearC[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearD[freq] = pow(0.564,freqFactor+6.2);
|
||||
pearE[freq] = pow(0.564,freqFactor+7.7);
|
||||
|
||||
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 x = 0; x < pear_max; x += 4) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL; pearA[figR] = inputSampleR;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
pearA[slew] = ((pearA[figR]-pearA[x+2])+pearA[x+3])*pearA[freq]*0.5;
|
||||
pearA[x+2] = pearA[figR] = (pearA[freq]*pearA[figR])+((1.0-pearA[freq])*(pearA[x+2]+pearA[x+3]));
|
||||
pearA[x+3] = pearA[slew];
|
||||
inputSampleL -= pearA[figL]; inputSampleR -= pearA[figR];
|
||||
|
||||
pearB[figL] = pearA[figL]; pearB[figR] = pearA[figR];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearB[slew] = ((pearB[figR]-pearB[x+2])+pearB[x+3])*pearB[freq]*0.5;
|
||||
pearB[x+2] = pearB[figR] = (pearB[freq]*pearA[figR])+((1.0-pearB[freq])*(pearB[x+2]+pearB[x+3]));
|
||||
pearB[x+3] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL]; pearA[figR] -= pearB[figR];
|
||||
|
||||
pearC[figL] = pearB[figL]; pearC[figR] = pearB[figR];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearC[slew] = ((pearC[figR]-pearC[x+2])+pearC[x+3])*pearC[freq]*0.5;
|
||||
pearC[x+2] = pearC[figR] = (pearC[freq]*pearB[figR])+((1.0-pearC[freq])*(pearC[x+2]+pearC[x+3]));
|
||||
pearC[x+3] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL]; pearB[figR] -= pearC[figR];
|
||||
|
||||
pearD[figL] = pearC[figL]; pearD[figR] = pearC[figR];
|
||||
pearD[slew] = ((pearD[figL]-pearD[x])+pearD[x+1])*pearD[freq]*0.5;
|
||||
pearD[x] = pearD[figL] = (pearD[freq]*pearC[figL])+((1.0-pearD[freq])*(pearD[x]+pearD[x+1]));
|
||||
pearD[x+1] = pearD[slew];
|
||||
pearD[slew] = ((pearD[figR]-pearD[x+2])+pearD[x+3])*pearD[freq]*0.5;
|
||||
pearD[x+2] = pearD[figR] = (pearD[freq]*pearC[figR])+((1.0-pearD[freq])*(pearD[x+2]+pearD[x+3]));
|
||||
pearD[x+3] = pearD[slew];
|
||||
pearC[figL] -= pearD[figL]; pearC[figR] -= pearD[figR];
|
||||
|
||||
pearE[figL] = pearD[figL]; pearE[figR] = pearD[figR];
|
||||
pearE[slew] = ((pearE[figL]-pearE[x])+pearE[x+1])*pearE[freq]*0.5;
|
||||
pearE[x] = pearE[figL] = (pearE[freq]*pearD[figL])+((1.0-pearE[freq])*(pearE[x]+pearE[x+1]));
|
||||
pearE[x+1] = pearE[slew];
|
||||
pearE[slew] = ((pearE[figR]-pearE[x+2])+pearE[x+3])*pearE[freq]*0.5;
|
||||
pearE[x+2] = pearE[figR] = (pearE[freq]*pearD[figR])+((1.0-pearE[freq])*(pearE[x+2]+pearE[x+3]));
|
||||
pearE[x+3] = pearE[slew];
|
||||
pearD[figL] -= pearE[figL]; pearD[figR] -= pearE[figR];
|
||||
|
||||
inputSampleL *= topLevl; inputSampleR *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]); inputSampleR += (pearA[figR]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]); inputSampleR += (pearB[figR]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]); inputSampleR += (pearC[figR]*pearC[levl]);
|
||||
inputSampleL += (pearD[figL]*pearD[levl]); inputSampleR += (pearD[figR]*pearD[levl]);
|
||||
inputSampleL += (pearE[figL]*pearE[levl]); inputSampleR += (pearE[figR]*pearE[levl]);
|
||||
}
|
||||
|
||||
//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 PearEQ::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 topLevl = sqrt(A+0.5);
|
||||
pearA[levl] = sqrt(B+0.5);
|
||||
pearB[levl] = sqrt(C+0.5);
|
||||
pearC[levl] = sqrt(D+0.5);
|
||||
pearD[levl] = sqrt(E+0.5);
|
||||
pearE[levl] = sqrt(F+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+1.9);
|
||||
pearC[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearD[freq] = pow(0.564,freqFactor+6.2);
|
||||
pearE[freq] = pow(0.564,freqFactor+7.7);
|
||||
|
||||
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 x = 0; x < pear_max; x += 4) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL; pearA[figR] = inputSampleR;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
pearA[slew] = ((pearA[figR]-pearA[x+2])+pearA[x+3])*pearA[freq]*0.5;
|
||||
pearA[x+2] = pearA[figR] = (pearA[freq]*pearA[figR])+((1.0-pearA[freq])*(pearA[x+2]+pearA[x+3]));
|
||||
pearA[x+3] = pearA[slew];
|
||||
inputSampleL -= pearA[figL]; inputSampleR -= pearA[figR];
|
||||
|
||||
pearB[figL] = pearA[figL]; pearB[figR] = pearA[figR];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearB[slew] = ((pearB[figR]-pearB[x+2])+pearB[x+3])*pearB[freq]*0.5;
|
||||
pearB[x+2] = pearB[figR] = (pearB[freq]*pearA[figR])+((1.0-pearB[freq])*(pearB[x+2]+pearB[x+3]));
|
||||
pearB[x+3] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL]; pearA[figR] -= pearB[figR];
|
||||
|
||||
pearC[figL] = pearB[figL]; pearC[figR] = pearB[figR];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearC[slew] = ((pearC[figR]-pearC[x+2])+pearC[x+3])*pearC[freq]*0.5;
|
||||
pearC[x+2] = pearC[figR] = (pearC[freq]*pearB[figR])+((1.0-pearC[freq])*(pearC[x+2]+pearC[x+3]));
|
||||
pearC[x+3] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL]; pearB[figR] -= pearC[figR];
|
||||
|
||||
pearD[figL] = pearC[figL]; pearD[figR] = pearC[figR];
|
||||
pearD[slew] = ((pearD[figL]-pearD[x])+pearD[x+1])*pearD[freq]*0.5;
|
||||
pearD[x] = pearD[figL] = (pearD[freq]*pearC[figL])+((1.0-pearD[freq])*(pearD[x]+pearD[x+1]));
|
||||
pearD[x+1] = pearD[slew];
|
||||
pearD[slew] = ((pearD[figR]-pearD[x+2])+pearD[x+3])*pearD[freq]*0.5;
|
||||
pearD[x+2] = pearD[figR] = (pearD[freq]*pearC[figR])+((1.0-pearD[freq])*(pearD[x+2]+pearD[x+3]));
|
||||
pearD[x+3] = pearD[slew];
|
||||
pearC[figL] -= pearD[figL]; pearC[figR] -= pearD[figR];
|
||||
|
||||
pearE[figL] = pearD[figL]; pearE[figR] = pearD[figR];
|
||||
pearE[slew] = ((pearE[figL]-pearE[x])+pearE[x+1])*pearE[freq]*0.5;
|
||||
pearE[x] = pearE[figL] = (pearE[freq]*pearD[figL])+((1.0-pearE[freq])*(pearE[x]+pearE[x+1]));
|
||||
pearE[x+1] = pearE[slew];
|
||||
pearE[slew] = ((pearE[figR]-pearE[x+2])+pearE[x+3])*pearE[freq]*0.5;
|
||||
pearE[x+2] = pearE[figR] = (pearE[freq]*pearD[figR])+((1.0-pearE[freq])*(pearE[x+2]+pearE[x+3]));
|
||||
pearE[x+3] = pearE[slew];
|
||||
pearD[figL] -= pearE[figL]; pearD[figR] -= pearE[figR];
|
||||
|
||||
inputSampleL *= topLevl; inputSampleR *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]); inputSampleR += (pearA[figR]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]); inputSampleR += (pearB[figR]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]); inputSampleR += (pearC[figR]*pearC[levl]);
|
||||
inputSampleL += (pearD[figL]*pearD[levl]); inputSampleR += (pearD[figR]*pearD[levl]);
|
||||
inputSampleL += (pearE[figL]*pearE[levl]); inputSampleR += (pearE[figR]*pearE[levl]);
|
||||
}
|
||||
|
||||
//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++;
|
||||
}
|
||||
}
|
||||
150
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQ.cpp
Executable file
150
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQ.cpp
Executable file
|
|
@ -0,0 +1,150 @@
|
|||
/* ========================================
|
||||
* PearLiteEQ - PearLiteEQ.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearLiteEQ_H
|
||||
#include "PearLiteEQ.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new PearLiteEQ(audioMaster);}
|
||||
|
||||
PearLiteEQ::PearLiteEQ(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
B = 0.5;
|
||||
C = 0.5;
|
||||
D = 0.5;
|
||||
|
||||
for (int x = 0; x < pear_total; x++) {
|
||||
pearA[x] = 0.0;
|
||||
pearB[x] = 0.0;
|
||||
pearC[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
|
||||
}
|
||||
|
||||
PearLiteEQ::~PearLiteEQ() {}
|
||||
VstInt32 PearLiteEQ::getVendorVersion () {return 1000;}
|
||||
void PearLiteEQ::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void PearLiteEQ::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 PearLiteEQ::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = A;
|
||||
chunkData[1] = B;
|
||||
chunkData[2] = C;
|
||||
chunkData[3] = D;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 PearLiteEQ::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
A = pinParameter(chunkData[0]);
|
||||
B = pinParameter(chunkData[1]);
|
||||
C = pinParameter(chunkData[2]);
|
||||
D = pinParameter(chunkData[3]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void PearLiteEQ::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
case kParamB: B = value; break;
|
||||
case kParamC: C = value; break;
|
||||
case kParamD: D = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float PearLiteEQ::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParamA: return A; break;
|
||||
case kParamB: return B; break;
|
||||
case kParamC: return C; break;
|
||||
case kParamD: return D; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void PearLiteEQ::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "HMid", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "LMid", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void PearLiteEQ::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;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void PearLiteEQ::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamC: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParamD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 PearLiteEQ::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool PearLiteEQ::getEffectName(char* name) {
|
||||
vst_strncpy(name, "PearLiteEQ", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory PearLiteEQ::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool PearLiteEQ::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows PearLiteEQ", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool PearLiteEQ::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
116
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQ.h
Executable file
116
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQ.h
Executable file
|
|
@ -0,0 +1,116 @@
|
|||
/* ========================================
|
||||
* PearLiteEQ - PearLiteEQ.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearLiteEQ_H
|
||||
#define __PearLiteEQ_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParamA =0,
|
||||
kParamB =1,
|
||||
kParamC =2,
|
||||
kParamD =3,
|
||||
kNumParameters = 4
|
||||
}; //
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'peap'; //Change this to what the AU identity is!
|
||||
|
||||
class PearLiteEQ :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
PearLiteEQ(audioMasterCallback audioMaster);
|
||||
~PearLiteEQ();
|
||||
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;
|
||||
|
||||
enum {
|
||||
prevSampL1,
|
||||
prevSlewL1,
|
||||
prevSampR1,
|
||||
prevSlewR1,
|
||||
prevSampL2,
|
||||
prevSlewL2,
|
||||
prevSampR2,
|
||||
prevSlewR2,
|
||||
prevSampL3,
|
||||
prevSlewL3,
|
||||
prevSampR3,
|
||||
prevSlewR3,
|
||||
prevSampL4,
|
||||
prevSlewL4,
|
||||
prevSampR4,
|
||||
prevSlewR4,
|
||||
prevSampL5,
|
||||
prevSlewL5,
|
||||
prevSampR5,
|
||||
prevSlewR5,
|
||||
prevSampL6,
|
||||
prevSlewL6,
|
||||
prevSampR6,
|
||||
prevSlewR6,
|
||||
prevSampL7,
|
||||
prevSlewL7,
|
||||
prevSampR7,
|
||||
prevSlewR7,
|
||||
prevSampL8,
|
||||
prevSlewL8,
|
||||
prevSampR8,
|
||||
prevSlewR8,
|
||||
pear_max,
|
||||
figL,
|
||||
figR,
|
||||
gndL,
|
||||
gndR,
|
||||
slew,
|
||||
freq,
|
||||
levl,
|
||||
pear_total
|
||||
}; //new pear filter
|
||||
|
||||
double pearA[pear_total];
|
||||
double pearB[pear_total];
|
||||
double pearC[pear_total];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
172
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQProc.cpp
Executable file
172
plugins/LinuxVST/src/PearLiteEQ/PearLiteEQProc.cpp
Executable file
|
|
@ -0,0 +1,172 @@
|
|||
/* ========================================
|
||||
* PearLiteEQ - PearLiteEQ.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __PearLiteEQ_H
|
||||
#include "PearLiteEQ.h"
|
||||
#endif
|
||||
|
||||
void PearLiteEQ::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 topLevl = sqrt(A+0.5);
|
||||
pearA[levl] = sqrt(B+0.5);
|
||||
pearB[levl] = sqrt(C+0.5);
|
||||
pearC[levl] = sqrt(D+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearC[freq] = pow(0.564,freqFactor+7.1);
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < pear_max; x += 4) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL; pearA[figR] = inputSampleR;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
pearA[slew] = ((pearA[figR]-pearA[x+2])+pearA[x+3])*pearA[freq]*0.5;
|
||||
pearA[x+2] = pearA[figR] = (pearA[freq]*pearA[figR])+((1.0-pearA[freq])*(pearA[x+2]+pearA[x+3]));
|
||||
pearA[x+3] = pearA[slew];
|
||||
inputSampleL -= pearA[figL]; inputSampleR -= pearA[figR];
|
||||
|
||||
pearB[figL] = pearA[figL]; pearB[figR] = pearA[figR];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearB[slew] = ((pearB[figR]-pearB[x+2])+pearB[x+3])*pearB[freq]*0.5;
|
||||
pearB[x+2] = pearB[figR] = (pearB[freq]*pearA[figR])+((1.0-pearB[freq])*(pearB[x+2]+pearB[x+3]));
|
||||
pearB[x+3] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL]; pearA[figR] -= pearB[figR];
|
||||
|
||||
pearC[figL] = pearB[figL]; pearC[figR] = pearB[figR];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearC[slew] = ((pearC[figR]-pearC[x+2])+pearC[x+3])*pearC[freq]*0.5;
|
||||
pearC[x+2] = pearC[figR] = (pearC[freq]*pearB[figR])+((1.0-pearC[freq])*(pearC[x+2]+pearC[x+3]));
|
||||
pearC[x+3] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL]; pearB[figR] -= pearC[figR];
|
||||
|
||||
inputSampleL *= topLevl; inputSampleR *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]); inputSampleR += (pearA[figR]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]); inputSampleR += (pearB[figR]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]); inputSampleR += (pearC[figR]*pearC[levl]);
|
||||
}
|
||||
|
||||
//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 PearLiteEQ::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 topLevl = sqrt(A+0.5);
|
||||
pearA[levl] = sqrt(B+0.5);
|
||||
pearB[levl] = sqrt(C+0.5);
|
||||
pearC[levl] = sqrt(D+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearC[freq] = pow(0.564,freqFactor+7.1);
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < pear_max; x += 4) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL; pearA[figR] = inputSampleR;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
pearA[slew] = ((pearA[figR]-pearA[x+2])+pearA[x+3])*pearA[freq]*0.5;
|
||||
pearA[x+2] = pearA[figR] = (pearA[freq]*pearA[figR])+((1.0-pearA[freq])*(pearA[x+2]+pearA[x+3]));
|
||||
pearA[x+3] = pearA[slew];
|
||||
inputSampleL -= pearA[figL]; inputSampleR -= pearA[figR];
|
||||
|
||||
pearB[figL] = pearA[figL]; pearB[figR] = pearA[figR];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearB[slew] = ((pearB[figR]-pearB[x+2])+pearB[x+3])*pearB[freq]*0.5;
|
||||
pearB[x+2] = pearB[figR] = (pearB[freq]*pearA[figR])+((1.0-pearB[freq])*(pearB[x+2]+pearB[x+3]));
|
||||
pearB[x+3] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL]; pearA[figR] -= pearB[figR];
|
||||
|
||||
pearC[figL] = pearB[figL]; pearC[figR] = pearB[figR];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearC[slew] = ((pearC[figR]-pearC[x+2])+pearC[x+3])*pearC[freq]*0.5;
|
||||
pearC[x+2] = pearC[figR] = (pearC[freq]*pearB[figR])+((1.0-pearC[freq])*(pearC[x+2]+pearC[x+3]));
|
||||
pearC[x+3] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL]; pearB[figR] -= pearC[figR];
|
||||
|
||||
inputSampleL *= topLevl; inputSampleR *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]); inputSampleR += (pearA[figR]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]); inputSampleR += (pearB[figR]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]); inputSampleR += (pearC[figR]*pearC[levl]);
|
||||
}
|
||||
|
||||
//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++;
|
||||
}
|
||||
}
|
||||
133
plugins/LinuxVST/src/Slew4/Slew4.cpp
Executable file
133
plugins/LinuxVST/src/Slew4/Slew4.cpp
Executable file
|
|
@ -0,0 +1,133 @@
|
|||
/* ========================================
|
||||
* Slew4 - Slew4.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Slew4_H
|
||||
#include "Slew4.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new Slew4(audioMaster);}
|
||||
|
||||
Slew4::Slew4(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
A = 0.5;
|
||||
|
||||
for(int x = 0; x < 23; x++) {
|
||||
for (int y = 0; y < 11; y++) {slewL[x][y] = 0.0;slewR[x][y] = 0.0;}
|
||||
}
|
||||
sustainSlewL = 0.0;
|
||||
secondSampleL = 0.0;
|
||||
thirdSampleL = 0.0;
|
||||
|
||||
sustainSlewR = 0.0;
|
||||
secondSampleR = 0.0;
|
||||
thirdSampleR = 0.0;
|
||||
|
||||
slewCount = 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
|
||||
}
|
||||
|
||||
Slew4::~Slew4() {}
|
||||
VstInt32 Slew4::getVendorVersion () {return 1000;}
|
||||
void Slew4::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void Slew4::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 Slew4::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 Slew4::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 Slew4::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParamA: A = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float Slew4::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 Slew4::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "Compres", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void Slew4::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 Slew4::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParamA: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 Slew4::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool Slew4::getEffectName(char* name) {
|
||||
vst_strncpy(name, "Slew4", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory Slew4::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool Slew4::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows Slew4", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool Slew4::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
74
plugins/LinuxVST/src/Slew4/Slew4.h
Executable file
74
plugins/LinuxVST/src/Slew4/Slew4.h
Executable file
|
|
@ -0,0 +1,74 @@
|
|||
/* ========================================
|
||||
* Slew4 - Slew4.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Slew4_H
|
||||
#define __Slew4_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 = 'slw4'; //Change this to what the AU identity is!
|
||||
|
||||
class Slew4 :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Slew4(audioMasterCallback audioMaster);
|
||||
~Slew4();
|
||||
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;
|
||||
|
||||
double slewL[24][12];
|
||||
double sustainSlewL;
|
||||
double secondSampleL;
|
||||
double thirdSampleL;
|
||||
|
||||
double slewR[24][12];
|
||||
double sustainSlewR;
|
||||
double secondSampleR;
|
||||
double thirdSampleR;
|
||||
|
||||
int slewCount;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
722
plugins/LinuxVST/src/Slew4/Slew4Proc.cpp
Executable file
722
plugins/LinuxVST/src/Slew4/Slew4Proc.cpp
Executable file
|
|
@ -0,0 +1,722 @@
|
|||
/* ========================================
|
||||
* Slew4 - Slew4.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __Slew4_H
|
||||
#include "Slew4.h"
|
||||
#endif
|
||||
|
||||
void Slew4::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 compresity = pow(A*0.95,2.0)*8.0*overallscale;
|
||||
|
||||
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 L
|
||||
sustainSlewL += fabs((inputSampleL-secondSampleL)-(secondSampleL-thirdSampleL));
|
||||
sustainSlewL *= 0.9; inputSampleL = thirdSampleL; //two sample lookahead
|
||||
double depthAmt = fmin(sin(fmin(sustainSlewL,M_PI_2))*compresity,9.0);
|
||||
int z = floor(depthAmt);
|
||||
double depthTrim = depthAmt - (double)z;
|
||||
|
||||
for (int y = 0; y < z; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewL[slewCount%2][y] = inputSampleL;
|
||||
inputSampleL = (slewL[0][y] + slewL[1][y]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewL[slewCount%4][y] = inputSampleL;
|
||||
inputSampleL = (slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewL[slewCount%6][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y];
|
||||
inputSampleL += slewL[3][y]+slewL[4][y]+slewL[5][y];
|
||||
inputSampleL *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewL[slewCount%8][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y];
|
||||
inputSampleL += slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y];
|
||||
inputSampleL *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewL[slewCount%10][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y];
|
||||
inputSampleL += slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y];
|
||||
inputSampleL *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewL[slewCount%12][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y];
|
||||
inputSampleL += slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y];
|
||||
inputSampleL *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewL[slewCount%14][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y];
|
||||
inputSampleL += slewL[7][y]+slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y];
|
||||
inputSampleL *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewL[slewCount%16][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y];
|
||||
inputSampleL += slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y];
|
||||
inputSampleL *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewL[slewCount%18][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y];
|
||||
inputSampleL += slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y]+slewL[16][y]+slewL[17][y];
|
||||
inputSampleL *= 0.05555555;
|
||||
break;
|
||||
case 9:
|
||||
slewL[slewCount%20][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y];
|
||||
inputSampleL += slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y]+slewL[16][y]+slewL[17][y]+slewL[18][y]+slewL[19][y];
|
||||
inputSampleL *= 0.05;
|
||||
break;
|
||||
} //generate sets of rectangular window averages to layer
|
||||
} //all of which have a 'node' (silence) at Nyquist to combine
|
||||
|
||||
double remainderSampleL = 0.0;
|
||||
switch (z) {
|
||||
case 0:
|
||||
slewL[slewCount%2][z] = inputSampleL;
|
||||
remainderSampleL = (slewL[0][z] + slewL[1][z]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewL[slewCount%4][z] = inputSampleL;
|
||||
remainderSampleL = (slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewL[slewCount%6][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z];
|
||||
remainderSampleL += slewL[3][z]+slewL[4][z]+slewL[5][z];
|
||||
remainderSampleL *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewL[slewCount%8][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z];
|
||||
remainderSampleL += slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z];
|
||||
remainderSampleL *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewL[slewCount%10][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z];
|
||||
remainderSampleL += slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z];
|
||||
remainderSampleL *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewL[slewCount%12][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z];
|
||||
remainderSampleL += slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z];
|
||||
remainderSampleL *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewL[slewCount%14][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z];
|
||||
remainderSampleL += slewL[7][z]+slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z];
|
||||
remainderSampleL *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewL[slewCount%16][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z];
|
||||
remainderSampleL += slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z];
|
||||
remainderSampleL *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewL[slewCount%18][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z];
|
||||
remainderSampleL += slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z]+slewL[16][z]+slewL[17][z];
|
||||
remainderSampleL *= 0.0555555;
|
||||
break;
|
||||
case 9:
|
||||
slewL[slewCount%20][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z];
|
||||
remainderSampleL += slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z]+slewL[16][z]+slewL[17][z]+slewL[18][z]+slewL[19][z];
|
||||
remainderSampleL *= 0.05;
|
||||
break;
|
||||
} //generate the final fractional amount
|
||||
|
||||
for (int y = z+1; y < 9; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewL[slewCount%2][y] = inputSampleL; break;
|
||||
case 1:
|
||||
slewL[slewCount%4][y] = inputSampleL; break;
|
||||
case 2:
|
||||
slewL[slewCount%6][y] = inputSampleL; break;
|
||||
case 3:
|
||||
slewL[slewCount%8][y] = inputSampleL; break;
|
||||
case 4:
|
||||
slewL[slewCount%10][y] = inputSampleL; break;
|
||||
case 5:
|
||||
slewL[slewCount%12][y] = inputSampleL; break;
|
||||
case 6:
|
||||
slewL[slewCount%14][y] = inputSampleL; break;
|
||||
case 7:
|
||||
slewL[slewCount%16][y] = inputSampleL; break;
|
||||
case 8:
|
||||
slewL[slewCount%18][y] = inputSampleL; break;
|
||||
case 9:
|
||||
slewL[slewCount%20][y] = inputSampleL; break;
|
||||
}
|
||||
} //clean up the little buffers when not being actively used
|
||||
//end L
|
||||
|
||||
//begin R
|
||||
sustainSlewR += fabs((inputSampleR-secondSampleR)-(secondSampleR-thirdSampleR));
|
||||
sustainSlewR *= 0.9; inputSampleR = thirdSampleR; //two sample lookahead
|
||||
depthAmt = fmin(sin(fmin(sustainSlewR,M_PI_2))*compresity,9.0);
|
||||
z = floor(depthAmt);
|
||||
depthTrim = depthAmt - (double)z;
|
||||
|
||||
for (int y = 0; y < z; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewR[slewCount%2][y] = inputSampleR;
|
||||
inputSampleR = (slewR[0][y] + slewR[1][y]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewR[slewCount%4][y] = inputSampleR;
|
||||
inputSampleR = (slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewR[slewCount%6][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y];
|
||||
inputSampleR += slewR[3][y]+slewR[4][y]+slewR[5][y];
|
||||
inputSampleR *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewR[slewCount%8][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y];
|
||||
inputSampleR += slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y];
|
||||
inputSampleR *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewR[slewCount%10][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y];
|
||||
inputSampleR += slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y];
|
||||
inputSampleR *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewR[slewCount%12][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y];
|
||||
inputSampleR += slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y];
|
||||
inputSampleR *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewR[slewCount%14][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y];
|
||||
inputSampleR += slewR[7][y]+slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y];
|
||||
inputSampleR *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewR[slewCount%16][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y];
|
||||
inputSampleR += slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y];
|
||||
inputSampleR *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewR[slewCount%18][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y];
|
||||
inputSampleR += slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y]+slewR[16][y]+slewR[17][y];
|
||||
inputSampleR *= 0.05555555;
|
||||
break;
|
||||
case 9:
|
||||
slewR[slewCount%20][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y];
|
||||
inputSampleR += slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y]+slewR[16][y]+slewR[17][y]+slewR[18][y]+slewR[19][y];
|
||||
inputSampleR *= 0.05;
|
||||
break;
|
||||
} //generate sets of rectangular window averages to layer
|
||||
} //all of which have a 'node' (silence) at Nyquist to combine
|
||||
|
||||
double remainderSampleR = 0.0;
|
||||
switch (z) {
|
||||
case 0:
|
||||
slewR[slewCount%2][z] = inputSampleR;
|
||||
remainderSampleR = (slewR[0][z] + slewR[1][z]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewR[slewCount%4][z] = inputSampleR;
|
||||
remainderSampleR = (slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewR[slewCount%6][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z];
|
||||
remainderSampleR += slewR[3][z]+slewR[4][z]+slewR[5][z];
|
||||
remainderSampleR *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewR[slewCount%8][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z];
|
||||
remainderSampleR += slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z];
|
||||
remainderSampleR *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewR[slewCount%10][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z];
|
||||
remainderSampleR += slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z];
|
||||
remainderSampleR *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewR[slewCount%12][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z];
|
||||
remainderSampleR += slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z];
|
||||
remainderSampleR *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewR[slewCount%14][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z];
|
||||
remainderSampleR += slewR[7][z]+slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z];
|
||||
remainderSampleR *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewR[slewCount%16][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z];
|
||||
remainderSampleR += slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z];
|
||||
remainderSampleR *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewR[slewCount%18][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z];
|
||||
remainderSampleR += slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z]+slewR[16][z]+slewR[17][z];
|
||||
remainderSampleR *= 0.0555555;
|
||||
break;
|
||||
case 9:
|
||||
slewR[slewCount%20][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z];
|
||||
remainderSampleR += slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z]+slewR[16][z]+slewR[17][z]+slewR[18][z]+slewR[19][z];
|
||||
remainderSampleR *= 0.05;
|
||||
break;
|
||||
} //generate the final fractional amount
|
||||
|
||||
for (int y = z+1; y < 9; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewR[slewCount%2][y] = inputSampleR; break;
|
||||
case 1:
|
||||
slewR[slewCount%4][y] = inputSampleR; break;
|
||||
case 2:
|
||||
slewR[slewCount%6][y] = inputSampleR; break;
|
||||
case 3:
|
||||
slewR[slewCount%8][y] = inputSampleR; break;
|
||||
case 4:
|
||||
slewR[slewCount%10][y] = inputSampleR; break;
|
||||
case 5:
|
||||
slewR[slewCount%12][y] = inputSampleR; break;
|
||||
case 6:
|
||||
slewR[slewCount%14][y] = inputSampleR; break;
|
||||
case 7:
|
||||
slewR[slewCount%16][y] = inputSampleR; break;
|
||||
case 8:
|
||||
slewR[slewCount%18][y] = inputSampleR; break;
|
||||
case 9:
|
||||
slewR[slewCount%20][y] = inputSampleR; break;
|
||||
}
|
||||
} //clean up the little buffers when not being actively used
|
||||
//end R
|
||||
|
||||
|
||||
slewCount++; if (slewCount > 619315200) slewCount = 0;
|
||||
thirdSampleL = secondSampleL; secondSampleL = drySampleL;
|
||||
thirdSampleR = secondSampleR; secondSampleR = drySampleR;
|
||||
|
||||
inputSampleL = (inputSampleL*(1.0-depthTrim))+(remainderSampleL*depthTrim);
|
||||
inputSampleR = (inputSampleR*(1.0-depthTrim))+(remainderSampleR*depthTrim);
|
||||
|
||||
//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 Slew4::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 compresity = pow(A*0.95,2.0)*8.0*overallscale;
|
||||
|
||||
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 L
|
||||
sustainSlewL += fabs((inputSampleL-secondSampleL)-(secondSampleL-thirdSampleL));
|
||||
sustainSlewL *= 0.9; inputSampleL = thirdSampleL; //two sample lookahead
|
||||
double depthAmt = fmin(sin(fmin(sustainSlewL,M_PI_2))*compresity,9.0);
|
||||
int z = floor(depthAmt);
|
||||
double depthTrim = depthAmt - (double)z;
|
||||
|
||||
for (int y = 0; y < z; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewL[slewCount%2][y] = inputSampleL;
|
||||
inputSampleL = (slewL[0][y] + slewL[1][y]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewL[slewCount%4][y] = inputSampleL;
|
||||
inputSampleL = (slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewL[slewCount%6][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y];
|
||||
inputSampleL += slewL[3][y]+slewL[4][y]+slewL[5][y];
|
||||
inputSampleL *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewL[slewCount%8][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y];
|
||||
inputSampleL += slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y];
|
||||
inputSampleL *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewL[slewCount%10][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y];
|
||||
inputSampleL += slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y];
|
||||
inputSampleL *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewL[slewCount%12][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y];
|
||||
inputSampleL += slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y];
|
||||
inputSampleL *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewL[slewCount%14][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y];
|
||||
inputSampleL += slewL[7][y]+slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y];
|
||||
inputSampleL *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewL[slewCount%16][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y];
|
||||
inputSampleL += slewL[8][y]+slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y];
|
||||
inputSampleL *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewL[slewCount%18][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y];
|
||||
inputSampleL += slewL[9][y]+slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y]+slewL[16][y]+slewL[17][y];
|
||||
inputSampleL *= 0.05555555;
|
||||
break;
|
||||
case 9:
|
||||
slewL[slewCount%20][y] = inputSampleL;
|
||||
inputSampleL = slewL[0][y]+slewL[1][y]+slewL[2][y]+slewL[3][y]+slewL[4][y]+slewL[5][y]+slewL[6][y]+slewL[7][y]+slewL[8][y]+slewL[9][y];
|
||||
inputSampleL += slewL[10][y]+slewL[11][y]+slewL[12][y]+slewL[13][y]+slewL[14][y]+slewL[15][y]+slewL[16][y]+slewL[17][y]+slewL[18][y]+slewL[19][y];
|
||||
inputSampleL *= 0.05;
|
||||
break;
|
||||
} //generate sets of rectangular window averages to layer
|
||||
} //all of which have a 'node' (silence) at Nyquist to combine
|
||||
|
||||
double remainderSampleL = 0.0;
|
||||
switch (z) {
|
||||
case 0:
|
||||
slewL[slewCount%2][z] = inputSampleL;
|
||||
remainderSampleL = (slewL[0][z] + slewL[1][z]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewL[slewCount%4][z] = inputSampleL;
|
||||
remainderSampleL = (slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewL[slewCount%6][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z];
|
||||
remainderSampleL += slewL[3][z]+slewL[4][z]+slewL[5][z];
|
||||
remainderSampleL *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewL[slewCount%8][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z];
|
||||
remainderSampleL += slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z];
|
||||
remainderSampleL *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewL[slewCount%10][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z];
|
||||
remainderSampleL += slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z];
|
||||
remainderSampleL *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewL[slewCount%12][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z];
|
||||
remainderSampleL += slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z];
|
||||
remainderSampleL *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewL[slewCount%14][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z];
|
||||
remainderSampleL += slewL[7][z]+slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z];
|
||||
remainderSampleL *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewL[slewCount%16][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z];
|
||||
remainderSampleL += slewL[8][z]+slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z];
|
||||
remainderSampleL *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewL[slewCount%18][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z];
|
||||
remainderSampleL += slewL[9][z]+slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z]+slewL[16][z]+slewL[17][z];
|
||||
remainderSampleL *= 0.0555555;
|
||||
break;
|
||||
case 9:
|
||||
slewL[slewCount%20][z] = inputSampleL;
|
||||
remainderSampleL = slewL[0][z]+slewL[1][z]+slewL[2][z]+slewL[3][z]+slewL[4][z]+slewL[5][z]+slewL[6][z]+slewL[7][z]+slewL[8][z]+slewL[9][z];
|
||||
remainderSampleL += slewL[10][z]+slewL[11][z]+slewL[12][z]+slewL[13][z]+slewL[14][z]+slewL[15][z]+slewL[16][z]+slewL[17][z]+slewL[18][z]+slewL[19][z];
|
||||
remainderSampleL *= 0.05;
|
||||
break;
|
||||
} //generate the final fractional amount
|
||||
|
||||
for (int y = z+1; y < 9; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewL[slewCount%2][y] = inputSampleL; break;
|
||||
case 1:
|
||||
slewL[slewCount%4][y] = inputSampleL; break;
|
||||
case 2:
|
||||
slewL[slewCount%6][y] = inputSampleL; break;
|
||||
case 3:
|
||||
slewL[slewCount%8][y] = inputSampleL; break;
|
||||
case 4:
|
||||
slewL[slewCount%10][y] = inputSampleL; break;
|
||||
case 5:
|
||||
slewL[slewCount%12][y] = inputSampleL; break;
|
||||
case 6:
|
||||
slewL[slewCount%14][y] = inputSampleL; break;
|
||||
case 7:
|
||||
slewL[slewCount%16][y] = inputSampleL; break;
|
||||
case 8:
|
||||
slewL[slewCount%18][y] = inputSampleL; break;
|
||||
case 9:
|
||||
slewL[slewCount%20][y] = inputSampleL; break;
|
||||
}
|
||||
} //clean up the little buffers when not being actively used
|
||||
//end L
|
||||
|
||||
//begin R
|
||||
sustainSlewR += fabs((inputSampleR-secondSampleR)-(secondSampleR-thirdSampleR));
|
||||
sustainSlewR *= 0.9; inputSampleR = thirdSampleR; //two sample lookahead
|
||||
depthAmt = fmin(sin(fmin(sustainSlewR,M_PI_2))*compresity,9.0);
|
||||
z = floor(depthAmt);
|
||||
depthTrim = depthAmt - (double)z;
|
||||
|
||||
for (int y = 0; y < z; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewR[slewCount%2][y] = inputSampleR;
|
||||
inputSampleR = (slewR[0][y] + slewR[1][y]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewR[slewCount%4][y] = inputSampleR;
|
||||
inputSampleR = (slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewR[slewCount%6][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y];
|
||||
inputSampleR += slewR[3][y]+slewR[4][y]+slewR[5][y];
|
||||
inputSampleR *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewR[slewCount%8][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y];
|
||||
inputSampleR += slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y];
|
||||
inputSampleR *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewR[slewCount%10][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y];
|
||||
inputSampleR += slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y];
|
||||
inputSampleR *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewR[slewCount%12][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y];
|
||||
inputSampleR += slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y];
|
||||
inputSampleR *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewR[slewCount%14][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y];
|
||||
inputSampleR += slewR[7][y]+slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y];
|
||||
inputSampleR *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewR[slewCount%16][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y];
|
||||
inputSampleR += slewR[8][y]+slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y];
|
||||
inputSampleR *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewR[slewCount%18][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y];
|
||||
inputSampleR += slewR[9][y]+slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y]+slewR[16][y]+slewR[17][y];
|
||||
inputSampleR *= 0.05555555;
|
||||
break;
|
||||
case 9:
|
||||
slewR[slewCount%20][y] = inputSampleR;
|
||||
inputSampleR = slewR[0][y]+slewR[1][y]+slewR[2][y]+slewR[3][y]+slewR[4][y]+slewR[5][y]+slewR[6][y]+slewR[7][y]+slewR[8][y]+slewR[9][y];
|
||||
inputSampleR += slewR[10][y]+slewR[11][y]+slewR[12][y]+slewR[13][y]+slewR[14][y]+slewR[15][y]+slewR[16][y]+slewR[17][y]+slewR[18][y]+slewR[19][y];
|
||||
inputSampleR *= 0.05;
|
||||
break;
|
||||
} //generate sets of rectangular window averages to layer
|
||||
} //all of which have a 'node' (silence) at Nyquist to combine
|
||||
|
||||
double remainderSampleR = 0.0;
|
||||
switch (z) {
|
||||
case 0:
|
||||
slewR[slewCount%2][z] = inputSampleR;
|
||||
remainderSampleR = (slewR[0][z] + slewR[1][z]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slewR[slewCount%4][z] = inputSampleR;
|
||||
remainderSampleR = (slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slewR[slewCount%6][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z];
|
||||
remainderSampleR += slewR[3][z]+slewR[4][z]+slewR[5][z];
|
||||
remainderSampleR *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slewR[slewCount%8][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z];
|
||||
remainderSampleR += slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z];
|
||||
remainderSampleR *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slewR[slewCount%10][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z];
|
||||
remainderSampleR += slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z];
|
||||
remainderSampleR *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slewR[slewCount%12][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z];
|
||||
remainderSampleR += slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z];
|
||||
remainderSampleR *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slewR[slewCount%14][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z];
|
||||
remainderSampleR += slewR[7][z]+slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z];
|
||||
remainderSampleR *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slewR[slewCount%16][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z];
|
||||
remainderSampleR += slewR[8][z]+slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z];
|
||||
remainderSampleR *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slewR[slewCount%18][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z];
|
||||
remainderSampleR += slewR[9][z]+slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z]+slewR[16][z]+slewR[17][z];
|
||||
remainderSampleR *= 0.0555555;
|
||||
break;
|
||||
case 9:
|
||||
slewR[slewCount%20][z] = inputSampleR;
|
||||
remainderSampleR = slewR[0][z]+slewR[1][z]+slewR[2][z]+slewR[3][z]+slewR[4][z]+slewR[5][z]+slewR[6][z]+slewR[7][z]+slewR[8][z]+slewR[9][z];
|
||||
remainderSampleR += slewR[10][z]+slewR[11][z]+slewR[12][z]+slewR[13][z]+slewR[14][z]+slewR[15][z]+slewR[16][z]+slewR[17][z]+slewR[18][z]+slewR[19][z];
|
||||
remainderSampleR *= 0.05;
|
||||
break;
|
||||
} //generate the final fractional amount
|
||||
|
||||
for (int y = z+1; y < 9; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slewR[slewCount%2][y] = inputSampleR; break;
|
||||
case 1:
|
||||
slewR[slewCount%4][y] = inputSampleR; break;
|
||||
case 2:
|
||||
slewR[slewCount%6][y] = inputSampleR; break;
|
||||
case 3:
|
||||
slewR[slewCount%8][y] = inputSampleR; break;
|
||||
case 4:
|
||||
slewR[slewCount%10][y] = inputSampleR; break;
|
||||
case 5:
|
||||
slewR[slewCount%12][y] = inputSampleR; break;
|
||||
case 6:
|
||||
slewR[slewCount%14][y] = inputSampleR; break;
|
||||
case 7:
|
||||
slewR[slewCount%16][y] = inputSampleR; break;
|
||||
case 8:
|
||||
slewR[slewCount%18][y] = inputSampleR; break;
|
||||
case 9:
|
||||
slewR[slewCount%20][y] = inputSampleR; break;
|
||||
}
|
||||
} //clean up the little buffers when not being actively used
|
||||
//end R
|
||||
|
||||
|
||||
slewCount++; if (slewCount > 619315200) slewCount = 0;
|
||||
thirdSampleL = secondSampleL; secondSampleL = drySampleL;
|
||||
thirdSampleR = secondSampleR; secondSampleR = drySampleR;
|
||||
|
||||
inputSampleL = (inputSampleL*(1.0-depthTrim))+(remainderSampleL*depthTrim);
|
||||
inputSampleR = (inputSampleR*(1.0-depthTrim))+(remainderSampleR*depthTrim);
|
||||
|
||||
//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++;
|
||||
}
|
||||
}
|
||||
331
plugins/MacAU/Dynamics2/Dynamics2.cpp
Executable file
331
plugins/MacAU/Dynamics2/Dynamics2.cpp
Executable file
|
|
@ -0,0 +1,331 @@
|
|||
/*
|
||||
* File: Dynamics2.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Dynamics2.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Dynamics2.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(Dynamics2)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::Dynamics2
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Dynamics2::Dynamics2(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::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;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::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 Dynamics2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Dynamics2::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Dynamics2EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::Dynamics2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompS[bez_cycle] = 1.0; bezGate = 2.0;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus Dynamics2::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 bezCThresh = pow(1.0-GetParameter( kParam_A ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_B ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_C ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_D ),4.0),sqrt(bezCThresh+1.0));
|
||||
|
||||
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;
|
||||
|
||||
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
inputSampleR *= ((bezCThresh*0.5)+1.0);
|
||||
}
|
||||
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez);
|
||||
bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez);
|
||||
bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR)));
|
||||
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage,
|
||||
if (bezCompF[bez_SampL]<gate) bezCompF[bez_SampL] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampR] = bezMaxF/gate; //note: SampR is a control voltage,
|
||||
if (bezCompF[bez_SampR]<gate) bezCompF[bez_SampR] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CR] = bezCompF[bez_BR];
|
||||
bezCompF[bez_BR] = bezCompF[bez_AR];
|
||||
bezCompF[bez_AR] = bezCompF[bez_SampR];
|
||||
bezCompF[bez_SampR] = 0.0;
|
||||
|
||||
bezMaxF = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage
|
||||
bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezCompS[bez_SampL]<gate) bezCompS[bez_SampL] = 0.0;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 0.0;
|
||||
|
||||
if (bezCompS[bez_SampR]<gate) bezCompS[bez_SampR] = 0.0;
|
||||
bezCompS[bez_CR] = bezCompS[bez_BR];
|
||||
bezCompS[bez_BR] = bezCompS[bez_AR];
|
||||
bezCompS[bez_AR] = bezCompS[bez_SampR];
|
||||
bezCompS[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]);
|
||||
double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]);
|
||||
double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]);
|
||||
double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]);
|
||||
double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]);
|
||||
double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]);
|
||||
double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]);
|
||||
double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]);
|
||||
double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5;
|
||||
CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;}
|
||||
|
||||
//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;
|
||||
}
|
||||
|
||||
1
plugins/MacAU/Dynamics2/Dynamics2.exp
Executable file
1
plugins/MacAU/Dynamics2/Dynamics2.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_Dynamics2Entry
|
||||
148
plugins/MacAU/Dynamics2/Dynamics2.h
Executable file
148
plugins/MacAU/Dynamics2/Dynamics2.h
Executable file
|
|
@ -0,0 +1,148 @@
|
|||
/*
|
||||
* File: Dynamics2.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Dynamics2Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Dynamics2_h__
|
||||
#define __Dynamics2_h__
|
||||
|
||||
|
||||
#pragma mark ____Dynamics2 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterBName = CFSTR("Attack");
|
||||
static CFStringRef kParameterCName = CFSTR("Release");
|
||||
static CFStringRef kParameterDName = CFSTR("Gate");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=4
|
||||
};
|
||||
|
||||
#pragma mark ____Dynamics2
|
||||
class Dynamics2 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Dynamics2(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Dynamics2 () { 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 kDynamics2Version; }
|
||||
|
||||
private:
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AR,
|
||||
bez_BR,
|
||||
bez_CR,
|
||||
bez_InR,
|
||||
bez_UnInR,
|
||||
bez_SampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/Dynamics2/Dynamics2.r
Executable file
61
plugins/MacAU/Dynamics2/Dynamics2.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Dynamics2.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Dynamics2Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Dynamics2 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dynamics2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Dynamics2
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Dynamics2_COMP_SUBTYPE
|
||||
#define COMP_MANUF Dynamics2_COMP_MANF
|
||||
|
||||
#define VERSION kDynamics2Version
|
||||
#define NAME "Airwindows: Dynamics2"
|
||||
#define DESCRIPTION "Dynamics2 AU"
|
||||
#define ENTRY_POINT "Dynamics2Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
147
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.pbxuser
Executable file
147
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,147 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Dynamics2 */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 780618148;
|
||||
PBXWorkspaceStateSaveDate = 780618148;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B23680F2E87162300CA47D4 /* PBXTextBookmark */ = 8B23680F2E87162300CA47D4 /* PBXTextBookmark */;
|
||||
8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */ = 8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */;
|
||||
8B4F3DD12E874B19007FA9AE /* PBXBookmark */ = 8B4F3DD12E874B19007FA9AE /* PBXBookmark */;
|
||||
8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */ = 8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B23680F2E87162300CA47D4 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Dynamics2.h */;
|
||||
name = "Dynamics2.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 42;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Dynamics2Version.h */;
|
||||
name = "Dynamics2Version.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 128;
|
||||
vrLoc = 2780;
|
||||
};
|
||||
8B4F3DD12E874B19007FA9AE /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */;
|
||||
};
|
||||
8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */;
|
||||
name = "Dynamics2.cpp: 308";
|
||||
rLen = 0;
|
||||
rLoc = 14433;
|
||||
rType = 0;
|
||||
vrLen = 303;
|
||||
vrLoc = 13043;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dynamics2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 5868}}";
|
||||
sepNavSelRange = "{14433, 0}";
|
||||
sepNavVisRange = "{13043, 303}";
|
||||
sepNavWindowFrame = "{{10, 81}, {1250, 767}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1306, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{1172, 1797}";
|
||||
sepNavWindowFrame = "{{15, 70}, {1353, 803}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dynamics2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2664}}";
|
||||
sepNavSelRange = "{5071, 334}";
|
||||
sepNavVisRange = "{2727, 906}";
|
||||
sepNavWindowFrame = "{{38, 79}, {915, 773}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1486
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.perspectivev3
Executable file
1486
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/Dynamics2/Dynamics2.xcodeproj/project.pbxproj
Executable 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 /* Dynamics2.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Dynamics2.r */; };
|
||||
8BA05A6B0720730100365D66 /* Dynamics2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Dynamics2Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Dynamics2Version.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 /* Dynamics2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Dynamics2.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 /* Dynamics2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Dynamics2.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Dynamics2.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Dynamics2.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Dynamics2.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Dynamics2.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2Version.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 /* Dynamics2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics2.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dynamics2.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 /* Dynamics2 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Dynamics2;
|
||||
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 /* Dynamics2.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Dynamics2.h */,
|
||||
8BA05A660720730100365D66 /* Dynamics2.cpp */,
|
||||
8BA05A670720730100365D66 /* Dynamics2.exp */,
|
||||
8BA05A680720730100365D66 /* Dynamics2.r */,
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.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 /* Dynamics2Version.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 /* Dynamics2.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 /* Dynamics2 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Dynamics2" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Dynamics2;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Dynamics2;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Dynamics2.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 "Dynamics2" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Dynamics2 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2 */,
|
||||
);
|
||||
};
|
||||
/* 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 /* Dynamics2.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* Dynamics2.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 = Dynamics2.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 = Dynamics2;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = Dynamics2.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 = Dynamics2;
|
||||
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 "Dynamics2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Dynamics2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/Dynamics2/Dynamics2Version.h
Executable file
58
plugins/MacAU/Dynamics2/Dynamics2Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Dynamics2Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __Dynamics2Version_h__
|
||||
#define __Dynamics2Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDynamics2Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kDynamics2Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Dynamics2_COMP_MANF 'Dthr'
|
||||
#define Dynamics2_COMP_SUBTYPE 'dyn2'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/Dynamics2/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/Dynamics2/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/Dynamics2/Info.plist
Executable file
28
plugins/MacAU/Dynamics2/Info.plist
Executable 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>
|
||||
5
plugins/MacAU/Dynamics2/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/Dynamics2/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
16
plugins/MacAU/Dynamics2/version.plist
Executable file
16
plugins/MacAU/Dynamics2/version.plist
Executable 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>
|
||||
272
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.cpp
Executable file
272
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.cpp
Executable file
|
|
@ -0,0 +1,272 @@
|
|||
/*
|
||||
* File: Dynamics2Mono.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Dynamics2Mono.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Dynamics2Mono.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(Dynamics2Mono)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::Dynamics2Mono
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Dynamics2Mono::Dynamics2Mono(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2Mono::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2Mono::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;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2Mono::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2Mono::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Dynamics2Mono::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2Mono::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Dynamics2MonoEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::Dynamics2MonoKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Dynamics2Mono::Dynamics2MonoKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompS[bez_cycle] = 1.0; bezGate = 2.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2Mono::Dynamics2MonoKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Dynamics2Mono::Dynamics2MonoKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_A ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_B ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_C ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_D ),4.0),sqrt(bezCThresh+1.0));
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
if (fabs(inputSampleL) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
|
||||
if (bezCThresh > 0.0) inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez);
|
||||
bezMaxF = fmax(bezMaxF,fabs(inputSampleL));
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage,
|
||||
if (bezCompF[bez_SampL]<gate) bezCompF[bez_SampL] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
bezMaxF = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage.
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
if (bezCompS[bez_SampL]<gate) bezCompS[bez_SampL] = 0.0;
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 0.0;
|
||||
}
|
||||
double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]);
|
||||
double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]);
|
||||
double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]);
|
||||
double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]);
|
||||
double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5;
|
||||
|
||||
double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5;
|
||||
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) inputSampleL *= bezGate;
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.exp
Executable file
1
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_Dynamics2MonoEntry
|
||||
158
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.h
Executable file
158
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.h
Executable file
|
|
@ -0,0 +1,158 @@
|
|||
/*
|
||||
* File: Dynamics2Mono.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Dynamics2MonoVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Dynamics2Mono_h__
|
||||
#define __Dynamics2Mono_h__
|
||||
|
||||
|
||||
#pragma mark ____Dynamics2Mono Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterBName = CFSTR("Attack");
|
||||
static CFStringRef kParameterCName = CFSTR("Release");
|
||||
static CFStringRef kParameterDName = CFSTR("Gate");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=4
|
||||
};
|
||||
|
||||
#pragma mark ____Dynamics2Mono
|
||||
class Dynamics2Mono : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Dynamics2Mono(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Dynamics2Mono () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Dynamics2MonoKernel(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 kDynamics2MonoVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Dynamics2MonoKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Dynamics2MonoKernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.r
Executable file
61
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Dynamics2Mono.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Dynamics2MonoVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Dynamics2Mono 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dynamics2Mono~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Dynamics2Mono
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Dynamics2Mono_COMP_SUBTYPE
|
||||
#define COMP_MANUF Dynamics2Mono_COMP_MANF
|
||||
|
||||
#define VERSION kDynamics2MonoVersion
|
||||
#define NAME "Airwindows: Dynamics2Mono"
|
||||
#define DESCRIPTION "Dynamics2Mono AU"
|
||||
#define ENTRY_POINT "Dynamics2MonoEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
137
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.pbxuser
Executable file
137
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,137 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Dynamics2Mono */;
|
||||
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 = 780606359;
|
||||
PBXWorkspaceStateSaveDate = 780606359;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B2368212E8717A600CA47D4 /* PBXTextBookmark */ = 8B2368212E8717A600CA47D4 /* PBXTextBookmark */;
|
||||
8B2368302E871E7200CA47D4 /* PBXTextBookmark */ = 8B2368302E871E7200CA47D4 /* PBXTextBookmark */;
|
||||
8BF0FCD02E7EC80100F9D5D6 /* PlistBookmark */ = 8BF0FCD02E7EC80100F9D5D6 /* PlistBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B2368212E8717A600CA47D4 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2Mono.cpp */;
|
||||
name = "Dynamics2Mono.cpp: 273";
|
||||
rLen = 0;
|
||||
rLoc = 12617;
|
||||
rType = 0;
|
||||
vrLen = 210;
|
||||
vrLoc = 12305;
|
||||
};
|
||||
8B2368302E871E7200CA47D4 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2Mono.cpp */;
|
||||
name = "Dynamics2Mono.cpp: 273";
|
||||
rLen = 0;
|
||||
rLoc = 12617;
|
||||
rType = 0;
|
||||
vrLen = 208;
|
||||
vrLoc = 12406;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dynamics2Mono.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 5058}}";
|
||||
sepNavSelRange = "{12617, 0}";
|
||||
sepNavVisRange = "{12406, 208}";
|
||||
sepNavWindowFrame = "{{309, 59}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dynamics2MonoVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1306, 1062}}";
|
||||
sepNavSelRange = "{2934, 0}";
|
||||
sepNavVisRange = "{1073, 1924}";
|
||||
sepNavWindowFrame = "{{38, 49}, {1353, 803}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dynamics2Mono.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1306, 2844}}";
|
||||
sepNavSelRange = "{5511, 0}";
|
||||
sepNavVisRange = "{4951, 855}";
|
||||
sepNavWindowFrame = "{{730, 67}, {1353, 803}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BF0FCD02E7EC80100F9D5D6 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Dynamics2Mono/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2Mono */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1506
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.perspectivev3
Executable file
1506
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/Dynamics2Mono/Dynamics2Mono.xcodeproj/project.pbxproj
Executable 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 /* Dynamics2Mono.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Dynamics2Mono.r */; };
|
||||
8BA05A6B0720730100365D66 /* Dynamics2Mono.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Dynamics2Mono.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Dynamics2MonoVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Dynamics2MonoVersion.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 /* Dynamics2Mono.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Dynamics2Mono.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 /* Dynamics2Mono.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Dynamics2Mono.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Dynamics2Mono.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Dynamics2Mono.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Dynamics2Mono.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Dynamics2Mono.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Dynamics2MonoVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2MonoVersion.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 /* Dynamics2Mono.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2Mono.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics2Mono.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dynamics2Mono.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 /* Dynamics2Mono */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Dynamics2Mono;
|
||||
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 /* Dynamics2Mono.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Dynamics2Mono.h */,
|
||||
8BA05A660720730100365D66 /* Dynamics2Mono.cpp */,
|
||||
8BA05A670720730100365D66 /* Dynamics2Mono.exp */,
|
||||
8BA05A680720730100365D66 /* Dynamics2Mono.r */,
|
||||
8BA05A690720730100365D66 /* Dynamics2MonoVersion.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 /* Dynamics2MonoVersion.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 /* Dynamics2Mono.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 /* Dynamics2Mono */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Dynamics2Mono" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Dynamics2Mono;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Dynamics2Mono;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Dynamics2Mono.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 "Dynamics2Mono" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Dynamics2Mono */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2Mono */,
|
||||
);
|
||||
};
|
||||
/* 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 /* Dynamics2Mono.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* Dynamics2Mono.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 = Dynamics2Mono.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 = Dynamics2Mono;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = Dynamics2Mono.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 = Dynamics2Mono;
|
||||
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 "Dynamics2Mono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Dynamics2Mono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/Dynamics2Mono/Dynamics2MonoVersion.h
Executable file
58
plugins/MacAU/Dynamics2Mono/Dynamics2MonoVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Dynamics2MonoVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __Dynamics2MonoVersion_h__
|
||||
#define __Dynamics2MonoVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDynamics2MonoVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kDynamics2MonoVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Dynamics2Mono_COMP_MANF 'Dthr'
|
||||
#define Dynamics2Mono_COMP_SUBTYPE 'dym2'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/Dynamics2Mono/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/Dynamics2Mono/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/Dynamics2Mono/Info.plist
Executable file
28
plugins/MacAU/Dynamics2Mono/Info.plist
Executable 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>
|
||||
16
plugins/MacAU/Dynamics2Mono/version.plist
Executable file
16
plugins/MacAU/Dynamics2Mono/version.plist
Executable 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>
|
||||
BIN
plugins/MacAU/MasteringMono/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/MasteringMono/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/MasteringMono/Info.plist
Executable file
28
plugins/MacAU/MasteringMono/Info.plist
Executable 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>
|
||||
659
plugins/MacAU/MasteringMono/MasteringMono.cpp
Executable file
659
plugins/MacAU/MasteringMono/MasteringMono.cpp
Executable file
|
|
@ -0,0 +1,659 @@
|
|||
/*
|
||||
* File: MasteringMono.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/25/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
MasteringMono.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "MasteringMono.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(MasteringMono)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::MasteringMono
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
MasteringMono::MasteringMono(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
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult MasteringMono::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
if ((inScope == kAudioUnitScope_Global) && (inParameterID == kParam_F)) //ID must be actual name of parameter identifier, not number
|
||||
{
|
||||
if (outStrings == NULL) return noErr;
|
||||
CFStringRef strings [] =
|
||||
{
|
||||
kMenuItem_Dark,
|
||||
kMenuItem_TenNines,
|
||||
kMenuItem_TPDFWide,
|
||||
kMenuItem_PaulWide,
|
||||
kMenuItem_NJAD,
|
||||
kMenuItem_Bypass,
|
||||
};
|
||||
*outStrings = CFArrayCreate (
|
||||
NULL,
|
||||
(const void **) strings,
|
||||
(sizeof (strings) / sizeof (strings [0])),
|
||||
NULL
|
||||
);
|
||||
return noErr;
|
||||
}
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult MasteringMono::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_Indexed;
|
||||
outParameterInfo.minValue = kDark;
|
||||
outParameterInfo.maxValue = kBypass;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult MasteringMono::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult MasteringMono::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// MasteringMono::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult MasteringMono::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____MasteringMonoEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::MasteringMonoKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void MasteringMono::MasteringMonoKernel::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;
|
||||
|
||||
lastSampleL = 0.0;
|
||||
wasPosClipL = false;
|
||||
wasNegClipL = false;
|
||||
for (int x = 0; x < 16; x++) {intermediateL[x] = 0.0;}
|
||||
|
||||
quantA = 0;
|
||||
quantB = 1;
|
||||
expectedSlew = 0.0;
|
||||
testA = 0.0;
|
||||
testB = 0.0;
|
||||
correction = 0.0;
|
||||
shapedSampleL = 0.0;
|
||||
currentDither = 0.0;
|
||||
ditherL = 0.0;
|
||||
cutbinsL = false;
|
||||
hotbinA = 0;
|
||||
hotbinB = 0;
|
||||
benfordize = 0.0;
|
||||
totalA = 0.0;
|
||||
totalB = 0.0;
|
||||
outputSample = 0.0;
|
||||
expon = 0; //internal dither variables
|
||||
//these didn't like to be defined inside a case statement
|
||||
|
||||
NSOddL = 0.0; NSEvenL = 0.0; prevShapeL = 0.0;
|
||||
flip = true; //Ten Nines
|
||||
for(int count = 0; count < 99; count++) {
|
||||
darkSampleL[count] = 0;
|
||||
} //Dark
|
||||
previousDitherL = 0.0; //PaulWide
|
||||
bynL[0] = 1000.0;
|
||||
bynL[1] = 301.0;
|
||||
bynL[2] = 176.0;
|
||||
bynL[3] = 125.0;
|
||||
bynL[4] = 97.0;
|
||||
bynL[5] = 79.0;
|
||||
bynL[6] = 67.0;
|
||||
bynL[7] = 58.0;
|
||||
bynL[8] = 51.0;
|
||||
bynL[9] = 46.0;
|
||||
bynL[10] = 1000.0;
|
||||
noiseShapingL = 0.0; //NJAD
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// MasteringMono::MasteringMonoKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void MasteringMono::MasteringMonoKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double threshSinew = (0.25+((1.0-GetParameter( kParam_A ))*0.333))/overallscale;
|
||||
double depthSinew = 1.0-pow(1.0-GetParameter( kParam_A ),2.0);
|
||||
|
||||
double trebleZoom = GetParameter( kParam_B )-0.5;
|
||||
long double trebleGain = (trebleZoom*fabs(trebleZoom))+1.0;
|
||||
if (trebleGain > 1.0) trebleGain = pow(trebleGain,3.0+sqrt(overallscale));
|
||||
//this boost is necessary to adapt to higher sample rates
|
||||
|
||||
double midZoom = GetParameter( kParam_C )-0.5;
|
||||
long double midGain = (midZoom*fabs(midZoom))+1.0;
|
||||
double kalMid = 0.35-(GetParameter( kParam_C )*0.25); //crossover frequency between mid/bass
|
||||
double kalSub = 0.45+(GetParameter( kParam_C )*0.25); //crossover frequency between bass/sub
|
||||
|
||||
double bassZoom = (GetParameter( kParam_D )*0.5)-0.25;
|
||||
long double bassGain = (-bassZoom*fabs(bassZoom))+1.0; //control inverted
|
||||
long double subGain = ((GetParameter( kParam_D )*0.25)-0.125)+1.0;
|
||||
if (subGain < 1.0) subGain = 1.0; //very small sub shift, only pos.
|
||||
|
||||
long double driveIn = (GetParameter( kParam_E )-0.5)+1.0;
|
||||
long double driveOut = (-(GetParameter( kParam_E )-0.5)*fabs(GetParameter( kParam_E )-0.5))+1.0;
|
||||
|
||||
int spacing = floor(overallscale); //should give us working basic scaling, usually 2 or 4
|
||||
if (spacing < 1) spacing = 1; if (spacing > 16) spacing = 16;
|
||||
int dither = (int) GetParameter( kParam_F );
|
||||
int depth = (int)(17.0*overallscale);
|
||||
if (depth < 3) depth = 3; if (depth > 98) depth = 98; //for Dark
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
long double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
inputSampleL *= driveIn;
|
||||
long 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;
|
||||
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);
|
||||
|
||||
if (bassZoom > 0.0) {
|
||||
double closer = bassL * 1.57079633;
|
||||
if (closer > 1.57079633) closer = 1.57079633;
|
||||
if (closer < -1.57079633) closer = -1.57079633;
|
||||
bassL = (bassL*(1.0-bassZoom))+(sin(closer)*bassZoom);
|
||||
} //zooming in will make the body of the sound louder: it's just Density
|
||||
if (bassZoom < 0.0) {
|
||||
double farther = fabs(bassL) * 1.57079633;
|
||||
if (farther > 1.57079633) farther = 1.0;
|
||||
else farther = 1.0-cos(farther);
|
||||
if (bassL > 0.0) bassL = (bassL*(1.0+bassZoom))-(farther*bassZoom*1.57079633);
|
||||
if (bassL < 0.0) bassL = (bassL*(1.0+bassZoom))+(farther*bassZoom*1.57079633);
|
||||
} //zooming out boosts the hottest peaks but cuts back softer stuff
|
||||
inputSampleL += (bassL*bassGain);
|
||||
|
||||
if (midZoom > 0.0) {
|
||||
double closer = midL * 1.57079633;
|
||||
if (closer > 1.57079633) closer = 1.57079633;
|
||||
if (closer < -1.57079633) closer = -1.57079633;
|
||||
midL = (midL*(1.0-midZoom))+(sin(closer)*midZoom);
|
||||
} //zooming in will make the body of the sound louder: it's just Density
|
||||
if (midZoom < 0.0) {
|
||||
double farther = fabs(midL) * 1.57079633;
|
||||
if (farther > 1.57079633) farther = 1.0;
|
||||
else farther = 1.0-cos(farther);
|
||||
if (midL > 0.0) midL = (midL*(1.0+midZoom))-(farther*midZoom*1.57079633);
|
||||
if (midL < 0.0) midL = (midL*(1.0+midZoom))+(farther*midZoom*1.57079633);
|
||||
} //zooming out boosts the hottest peaks but cuts back softer stuff
|
||||
inputSampleL += (midL*midGain);
|
||||
|
||||
if (trebleZoom > 0.0) {
|
||||
double closer = trebleL * 1.57079633;
|
||||
if (closer > 1.57079633) closer = 1.57079633;
|
||||
if (closer < -1.57079633) closer = -1.57079633;
|
||||
trebleL = (trebleL*(1.0-trebleZoom))+(sin(closer)*trebleZoom);
|
||||
} //zooming in will make the body of the sound louder: it's just Density
|
||||
if (trebleZoom < 0.0) {
|
||||
double farther = fabs(trebleL) * 1.57079633;
|
||||
if (farther > 1.57079633) farther = 1.0;
|
||||
else farther = 1.0-cos(farther);
|
||||
if (trebleL > 0.0) trebleL = (trebleL*(1.0+trebleZoom))-(farther*trebleZoom*1.57079633);
|
||||
if (trebleL < 0.0) trebleL = (trebleL*(1.0+trebleZoom))+(farther*trebleZoom*1.57079633);
|
||||
} //zooming out boosts the hottest peaks but cuts back softer stuff
|
||||
inputSampleL += (trebleL*trebleGain);
|
||||
|
||||
inputSampleL *= driveOut;
|
||||
|
||||
//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 (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
|
||||
//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
|
||||
|
||||
switch (dither) {
|
||||
case 1:
|
||||
//begin Dark
|
||||
inputSampleL *= 8388608.0; //we will apply the 24 bit Dark
|
||||
//We are doing it first Left, then Right, because the loops may run faster if
|
||||
//they aren't too jammed full of variables. This means re-running code.
|
||||
|
||||
//begin left
|
||||
quantA = floor(inputSampleL);
|
||||
quantB = floor(inputSampleL+1.0);
|
||||
//to do this style of dither, we quantize in either direction and then
|
||||
//do a reconstruction of what the result will be for each choice.
|
||||
//We then evaluate which one we like, and keep a history of what we previously had
|
||||
|
||||
expectedSlew = 0;
|
||||
for(int x = 0; x < depth; x++) {
|
||||
expectedSlew += (darkSampleL[x+1] - darkSampleL[x]);
|
||||
}
|
||||
expectedSlew /= depth; //we have an average of all recent slews
|
||||
//we are doing that to voice the thing down into the upper mids a bit
|
||||
//it mustn't just soften the brightest treble, it must smooth high mids too
|
||||
|
||||
testA = fabs((darkSampleL[0] - quantA) - expectedSlew);
|
||||
testB = fabs((darkSampleL[0] - quantB) - expectedSlew);
|
||||
|
||||
if (testA < testB) inputSampleL = quantA;
|
||||
else inputSampleL = quantB;
|
||||
//select whichever one departs LEAST from the vector of averaged
|
||||
//reconstructed previous final samples. This will force a kind of dithering
|
||||
//as it'll make the output end up as smooth as possible
|
||||
|
||||
for(int x = depth; x >=0; x--) {
|
||||
darkSampleL[x+1] = darkSampleL[x];
|
||||
}
|
||||
darkSampleL[0] = inputSampleL;
|
||||
//end Dark left
|
||||
|
||||
inputSampleL /= 8388608.0;
|
||||
break; //Dark (Monitoring2)
|
||||
case 2:
|
||||
//begin Dark for Ten Nines
|
||||
inputSampleL *= 8388608.0; //we will apply the 24 bit Dark
|
||||
//We are doing it first Left, then Right, because the loops may run faster if
|
||||
//they aren't too jammed full of variables. This means re-running code.
|
||||
|
||||
//begin L
|
||||
correction = 0;
|
||||
if (flip) {
|
||||
NSOddL = (NSOddL * 0.9999999999) + prevShapeL;
|
||||
NSEvenL = (NSEvenL * 0.9999999999) - prevShapeL;
|
||||
correction = NSOddL;
|
||||
} else {
|
||||
NSOddL = (NSOddL * 0.9999999999) - prevShapeL;
|
||||
NSEvenL = (NSEvenL * 0.9999999999) + prevShapeL;
|
||||
correction = NSEvenL;
|
||||
}
|
||||
shapedSampleL = inputSampleL+correction;
|
||||
//end Ten Nines L
|
||||
|
||||
//begin Dark L
|
||||
quantA = floor(shapedSampleL);
|
||||
quantB = floor(shapedSampleL+1.0);
|
||||
//to do this style of dither, we quantize in either direction and then
|
||||
//do a reconstruction of what the result will be for each choice.
|
||||
//We then evaluate which one we like, and keep a history of what we previously had
|
||||
|
||||
expectedSlew = 0;
|
||||
for(int x = 0; x < depth; x++) {
|
||||
expectedSlew += (darkSampleL[x+1] - darkSampleL[x]);
|
||||
}
|
||||
expectedSlew /= depth; //we have an average of all recent slews
|
||||
//we are doing that to voice the thing down into the upper mids a bit
|
||||
//it mustn't just soften the brightest treble, it must smooth high mids too
|
||||
|
||||
testA = fabs((darkSampleL[0] - quantA) - expectedSlew);
|
||||
testB = fabs((darkSampleL[0] - quantB) - expectedSlew);
|
||||
|
||||
if (testA < testB) inputSampleL = quantA;
|
||||
else inputSampleL = quantB;
|
||||
//select whichever one departs LEAST from the vector of averaged
|
||||
//reconstructed previous final samples. This will force a kind of dithering
|
||||
//as it'll make the output end up as smooth as possible
|
||||
|
||||
for(int x = depth; x >=0; x--) {
|
||||
darkSampleL[x+1] = darkSampleL[x];
|
||||
}
|
||||
darkSampleL[0] = inputSampleL;
|
||||
//end Dark L
|
||||
|
||||
prevShapeL = (floor(shapedSampleL) - inputSampleL)*0.9999999999;
|
||||
//end Ten Nines L
|
||||
|
||||
flip = !flip;
|
||||
|
||||
inputSampleL /= 8388608.0;
|
||||
break; //Ten Nines (which goes into Dark in Monitoring3)
|
||||
case 3:
|
||||
inputSampleL *= 8388608.0;
|
||||
|
||||
ditherL = -1.0;
|
||||
ditherL += (double(fpdL)/UINT32_MAX);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
ditherL += (double(fpdL)/UINT32_MAX);
|
||||
//TPDF: two 0-1 random noises
|
||||
|
||||
inputSampleL = floor(inputSampleL+ditherL);
|
||||
|
||||
inputSampleL /= 8388608.0;
|
||||
break; //TPDF
|
||||
case 4:
|
||||
inputSampleL *= 8388608.0;
|
||||
//Paul Frindle: It's true that the dither itself can sound different
|
||||
//if it's given a different freq response and you get to hear it.
|
||||
//The one we use most is triangular single pole high pass dither.
|
||||
//It's not freq bent enough to sound odd, but is slightly less audible than
|
||||
//flat dither. It can also be easily made by taking one sample of dither
|
||||
//away from the previous one - this gives you the triangular PDF and the
|
||||
//filtering in one go :-)
|
||||
|
||||
currentDither = (double(fpdL)/UINT32_MAX);
|
||||
ditherL = currentDither;
|
||||
ditherL -= previousDitherL;
|
||||
previousDitherL = currentDither;
|
||||
//TPDF: 0-1 random noise
|
||||
|
||||
inputSampleL = floor(inputSampleL+ditherL);
|
||||
|
||||
inputSampleL /= 8388608.0;
|
||||
break; //PaulDither
|
||||
case 5:
|
||||
inputSampleL *= 8388608.0;
|
||||
cutbinsL = false;
|
||||
drySampleL = inputSampleL;//re-using in NJAD
|
||||
inputSampleL -= noiseShapingL;
|
||||
//NJAD L
|
||||
benfordize = floor(inputSampleL);
|
||||
while (benfordize >= 1.0) benfordize /= 10;
|
||||
while (benfordize < 1.0 && benfordize > 0.0000001) benfordize *= 10;
|
||||
hotbinA = floor(benfordize);
|
||||
//hotbin becomes the Benford bin value for this number floored
|
||||
totalA = 0.0;
|
||||
if ((hotbinA > 0) && (hotbinA < 10))
|
||||
{
|
||||
bynL[hotbinA] += 1; if (bynL[hotbinA] > 982) cutbinsL = true;
|
||||
totalA += (301-bynL[1]); totalA += (176-bynL[2]); totalA += (125-bynL[3]);
|
||||
totalA += (97-bynL[4]); totalA += (79-bynL[5]); totalA += (67-bynL[6]);
|
||||
totalA += (58-bynL[7]); totalA += (51-bynL[8]); totalA += (46-bynL[9]); bynL[hotbinA] -= 1;
|
||||
} else hotbinA = 10;
|
||||
//produce total number- smaller is closer to Benford real
|
||||
benfordize = ceil(inputSampleL);
|
||||
while (benfordize >= 1.0) benfordize /= 10;
|
||||
while (benfordize < 1.0 && benfordize > 0.0000001) benfordize *= 10;
|
||||
hotbinB = floor(benfordize);
|
||||
//hotbin becomes the Benford bin value for this number ceiled
|
||||
totalB = 0.0;
|
||||
if ((hotbinB > 0) && (hotbinB < 10))
|
||||
{
|
||||
bynL[hotbinB] += 1; if (bynL[hotbinB] > 982) cutbinsL = true;
|
||||
totalB += (301-bynL[1]); totalB += (176-bynL[2]); totalB += (125-bynL[3]);
|
||||
totalB += (97-bynL[4]); totalB += (79-bynL[5]); totalB += (67-bynL[6]);
|
||||
totalB += (58-bynL[7]); totalB += (51-bynL[8]); totalB += (46-bynL[9]); bynL[hotbinB] -= 1;
|
||||
} else hotbinB = 10;
|
||||
//produce total number- smaller is closer to Benford real
|
||||
if (totalA < totalB) {bynL[hotbinA] += 1; outputSample = floor(inputSampleL);}
|
||||
else {bynL[hotbinB] += 1; outputSample = floor(inputSampleL+1);}
|
||||
//assign the relevant one to the delay line
|
||||
//and floor/ceil signal accordingly
|
||||
if (cutbinsL) {
|
||||
bynL[1] *= 0.99; bynL[2] *= 0.99; bynL[3] *= 0.99; bynL[4] *= 0.99; bynL[5] *= 0.99;
|
||||
bynL[6] *= 0.99; bynL[7] *= 0.99; bynL[8] *= 0.99; bynL[9] *= 0.99; bynL[10] *= 0.99;
|
||||
}
|
||||
noiseShapingL += outputSample - drySampleL;
|
||||
if (noiseShapingL > fabs(inputSampleL)) noiseShapingL = fabs(inputSampleL);
|
||||
if (noiseShapingL < -fabs(inputSampleL)) noiseShapingL = -fabs(inputSampleL);
|
||||
inputSampleL /= 8388608.0;
|
||||
if (inputSampleL > 1.0) inputSampleL = 1.0;
|
||||
if (inputSampleL < -1.0) inputSampleL = -1.0;
|
||||
//finished NJAD L
|
||||
break; //NJAD (Monitoring. Brightest)
|
||||
case 6:
|
||||
//begin 32 bit stereo floating point dither
|
||||
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));
|
||||
//end 32 bit stereo floating point dither
|
||||
break; //Bypass for saving floating point files directly
|
||||
}
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/MasteringMono/MasteringMono.exp
Executable file
1
plugins/MacAU/MasteringMono/MasteringMono.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_MasteringMonoEntry
|
||||
238
plugins/MacAU/MasteringMono/MasteringMono.h
Executable file
238
plugins/MacAU/MasteringMono/MasteringMono.h
Executable file
|
|
@ -0,0 +1,238 @@
|
|||
/*
|
||||
* File: MasteringMono.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/25/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "MasteringMonoVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __MasteringMono_h__
|
||||
#define __MasteringMono_h__
|
||||
|
||||
|
||||
#pragma mark ____MasteringMono Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.0;
|
||||
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 int kDark = 1;
|
||||
static const int kTenNines = 2;
|
||||
static const int kTPDFWide = 3;
|
||||
static const int kPaulWide = 4;
|
||||
static const int kNJAD = 5;
|
||||
static const int kBypass = 6;
|
||||
static const int kDefaultValue_ParamF = kBypass;
|
||||
|
||||
static CFStringRef kMenuItem_Dark = CFSTR ("Dark");
|
||||
static CFStringRef kMenuItem_TenNines = CFSTR ("Ten Nines");
|
||||
static CFStringRef kMenuItem_TPDFWide = CFSTR ("TPDF");
|
||||
static CFStringRef kMenuItem_PaulWide = CFSTR ("PaulDither");
|
||||
static CFStringRef kMenuItem_NJAD = CFSTR ("NJAD");
|
||||
static CFStringRef kMenuItem_Bypass = CFSTR ("Bypass");
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Glue");
|
||||
static CFStringRef kParameterBName = CFSTR("Scope");
|
||||
static CFStringRef kParameterCName = CFSTR("Skronk");
|
||||
static CFStringRef kParameterDName = CFSTR("Girth");
|
||||
static CFStringRef kParameterEName = CFSTR("Drive");
|
||||
static CFStringRef kParameterFName = CFSTR("Dither");
|
||||
|
||||
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 ____MasteringMono
|
||||
class MasteringMono : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
MasteringMono(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~MasteringMono () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new MasteringMonoKernel(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 kMasteringMonoVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class MasteringMonoKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
MasteringMonoKernel(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 lastSampleL;
|
||||
double intermediateL[16];
|
||||
bool wasPosClipL;
|
||||
bool wasNegClipL;
|
||||
|
||||
int quantA;
|
||||
int quantB;
|
||||
float expectedSlew;
|
||||
float testA;
|
||||
float testB;
|
||||
double correction;
|
||||
double shapedSampleL;
|
||||
double currentDither;
|
||||
double ditherL;
|
||||
bool cutbinsL;
|
||||
int hotbinA;
|
||||
int hotbinB;
|
||||
double benfordize;
|
||||
double totalA;
|
||||
double totalB;
|
||||
double outputSample;
|
||||
int expon; //internal dither variables
|
||||
|
||||
double NSOddL; //dither section!
|
||||
double NSEvenL;
|
||||
double prevShapeL;
|
||||
bool flip; //VinylDither
|
||||
double darkSampleL[100];
|
||||
double previousDitherL;
|
||||
double bynL[13];
|
||||
double noiseShapingL; //NJAD
|
||||
|
||||
uint32_t fpdL;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/MasteringMono/MasteringMono.r
Executable file
61
plugins/MacAU/MasteringMono/MasteringMono.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: MasteringMono.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/25/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "MasteringMonoVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_MasteringMono 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ MasteringMono~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_MasteringMono
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE MasteringMono_COMP_SUBTYPE
|
||||
#define COMP_MANUF MasteringMono_COMP_MANF
|
||||
|
||||
#define VERSION kMasteringMonoVersion
|
||||
#define NAME "Airwindows: MasteringMono"
|
||||
#define DESCRIPTION "MasteringMono AU"
|
||||
#define ENTRY_POINT "MasteringMonoEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
128
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.pbxuser
Executable file
128
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,128 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* MasteringMono */;
|
||||
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 = 780515115;
|
||||
PBXWorkspaceStateSaveDate = 780515115;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B0D5E5D2E8575F3005B263E /* PlistBookmark */ = 8B0D5E5D2E8575F3005B263E /* PlistBookmark */;
|
||||
8B0D5EEF2E85BAB8005B263E /* PlistBookmark */ = 8B0D5EEF2E85BAB8005B263E /* PlistBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B0D5E5D2E8575F3005B263E /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/MasteringMono/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8B0D5EEF2E85BAB8005B263E /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/MasteringMono/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8BA05A660720730100365D66 /* MasteringMono.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1084, 12366}}";
|
||||
sepNavSelRange = "{10352, 0}";
|
||||
sepNavVisRange = "{21384, 1570}";
|
||||
sepNavWindowFrame = "{{397, 59}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* MasteringMonoVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1084, 1062}}";
|
||||
sepNavSelRange = "{2934, 0}";
|
||||
sepNavVisRange = "{1073, 1924}";
|
||||
sepNavWindowFrame = "{{15, 54}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* MasteringMono.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1084, 3600}}";
|
||||
sepNavSelRange = "{3544, 0}";
|
||||
sepNavVisRange = "{2734, 1292}";
|
||||
sepNavWindowFrame = "{{15, 54}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* MasteringMono */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1505
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.perspectivev3
Executable file
1505
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/MasteringMono/MasteringMono.xcodeproj/project.pbxproj
Executable 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 /* MasteringMono.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* MasteringMono.r */; };
|
||||
8BA05A6B0720730100365D66 /* MasteringMono.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* MasteringMono.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* MasteringMonoVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* MasteringMonoVersion.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 /* MasteringMono.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* MasteringMono.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 /* MasteringMono.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = MasteringMono.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* MasteringMono.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = MasteringMono.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* MasteringMono.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = MasteringMono.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* MasteringMonoVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MasteringMonoVersion.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 /* MasteringMono.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = MasteringMono.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* MasteringMono.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MasteringMono.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 /* MasteringMono */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = MasteringMono;
|
||||
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 /* MasteringMono.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* MasteringMono.h */,
|
||||
8BA05A660720730100365D66 /* MasteringMono.cpp */,
|
||||
8BA05A670720730100365D66 /* MasteringMono.exp */,
|
||||
8BA05A680720730100365D66 /* MasteringMono.r */,
|
||||
8BA05A690720730100365D66 /* MasteringMonoVersion.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 /* MasteringMonoVersion.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 /* MasteringMono.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 /* MasteringMono */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "MasteringMono" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = MasteringMono;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = MasteringMono;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* MasteringMono.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 "MasteringMono" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* MasteringMono */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* MasteringMono */,
|
||||
);
|
||||
};
|
||||
/* 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 /* MasteringMono.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* MasteringMono.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 = MasteringMono.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 = MasteringMono;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = MasteringMono.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 = MasteringMono;
|
||||
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 "MasteringMono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "MasteringMono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/MasteringMono/MasteringMonoVersion.h
Executable file
58
plugins/MacAU/MasteringMono/MasteringMonoVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: MasteringMonoVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/25/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __MasteringMonoVersion_h__
|
||||
#define __MasteringMonoVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kMasteringMonoVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kMasteringMonoVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define MasteringMono_COMP_MANF 'Dthr'
|
||||
#define MasteringMono_COMP_SUBTYPE 'masm'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/MasteringMono/version.plist
Executable file
16
plugins/MacAU/MasteringMono/version.plist
Executable 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>
|
||||
BIN
plugins/MacAU/PearEQ/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/PearEQ/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/PearEQ/Info.plist
Executable file
28
plugins/MacAU/PearEQ/Info.plist
Executable 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>
|
||||
297
plugins/MacAU/PearEQ/PearEQ.cpp
Executable file
297
plugins/MacAU/PearEQ/PearEQ.cpp
Executable file
|
|
@ -0,0 +1,297 @@
|
|||
/*
|
||||
* File: PearEQ.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
PearEQ.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "PearEQ.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(PearEQ)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::PearEQ
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PearEQ::PearEQ(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
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearEQ::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearEQ::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;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearEQ::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearEQ::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// PearEQ::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearEQ::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____PearEQEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::PearEQKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void PearEQ::PearEQKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < pear_total; x++) {
|
||||
pearA[x] = 0.0;
|
||||
pearB[x] = 0.0;
|
||||
pearC[x] = 0.0;
|
||||
pearD[x] = 0.0;
|
||||
pearE[x] = 0.0;
|
||||
}
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearEQ::PearEQKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void PearEQ::PearEQKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double topLevl = sqrt(GetParameter( kParam_A )+0.5);
|
||||
pearA[levl] = sqrt(GetParameter( kParam_B )+0.5);
|
||||
pearB[levl] = sqrt(GetParameter( kParam_C )+0.5);
|
||||
pearC[levl] = sqrt(GetParameter( kParam_D )+0.5);
|
||||
pearD[levl] = sqrt(GetParameter( kParam_E )+0.5);
|
||||
pearE[levl] = sqrt(GetParameter( kParam_F )+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+1.9);
|
||||
pearC[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearD[freq] = pow(0.564,freqFactor+6.2);
|
||||
pearE[freq] = pow(0.564,freqFactor+7.7);
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < pear_max; x += 2) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
inputSampleL -= pearA[figL];
|
||||
|
||||
pearB[figL] = pearA[figL];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL];
|
||||
|
||||
pearC[figL] = pearB[figL];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL];
|
||||
|
||||
pearD[figL] = pearC[figL];
|
||||
pearD[slew] = ((pearD[figL]-pearD[x])+pearD[x+1])*pearD[freq]*0.5;
|
||||
pearD[x] = pearD[figL] = (pearD[freq]*pearC[figL])+((1.0-pearD[freq])*(pearD[x]+pearD[x+1]));
|
||||
pearD[x+1] = pearD[slew];
|
||||
pearC[figL] -= pearD[figL];
|
||||
|
||||
pearE[figL] = pearD[figL];
|
||||
pearE[slew] = ((pearE[figL]-pearE[x])+pearE[x+1])*pearE[freq]*0.5;
|
||||
pearE[x] = pearE[figL] = (pearE[freq]*pearD[figL])+((1.0-pearE[freq])*(pearE[x]+pearE[x+1]));
|
||||
pearE[x+1] = pearE[slew];
|
||||
pearD[figL] -= pearE[figL];
|
||||
|
||||
inputSampleL *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]);
|
||||
inputSampleL += (pearD[figL]*pearD[levl]);
|
||||
inputSampleL += (pearE[figL]*pearE[levl]);
|
||||
}
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/PearEQ/PearEQ.exp
Executable file
1
plugins/MacAU/PearEQ/PearEQ.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_PearEQEntry
|
||||
185
plugins/MacAU/PearEQ/PearEQ.h
Executable file
185
plugins/MacAU/PearEQ/PearEQ.h
Executable file
|
|
@ -0,0 +1,185 @@
|
|||
/*
|
||||
* File: PearEQ.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "PearEQVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __PearEQ_h__
|
||||
#define __PearEQ_h__
|
||||
|
||||
|
||||
#pragma mark ____PearEQ 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 CFStringRef kParameterAName = CFSTR("High");
|
||||
static CFStringRef kParameterBName = CFSTR("HMid");
|
||||
static CFStringRef kParameterCName = CFSTR("Mid");
|
||||
static CFStringRef kParameterDName = CFSTR("LMid");
|
||||
static CFStringRef kParameterEName = CFSTR("Bass");
|
||||
static CFStringRef kParameterFName = CFSTR("Sub");
|
||||
//Alter the name if desired, but using the plugin name is a start
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=6
|
||||
};
|
||||
|
||||
#pragma mark ____PearEQ
|
||||
class PearEQ : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
PearEQ(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~PearEQ () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new PearEQKernel(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 kPearEQVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class PearEQKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
PearEQKernel(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 {
|
||||
prevSampL1,
|
||||
prevSlewL1,
|
||||
prevSampL2,
|
||||
prevSlewL2,
|
||||
prevSampL3,
|
||||
prevSlewL3,
|
||||
prevSampL4,
|
||||
prevSlewL4,
|
||||
prevSampL5,
|
||||
prevSlewL5,
|
||||
prevSampL6,
|
||||
prevSlewL6,
|
||||
prevSampL7,
|
||||
prevSlewL7,
|
||||
prevSampL8,
|
||||
prevSlewL8,
|
||||
prevSampL9,
|
||||
prevSlewL9,
|
||||
pear_max,
|
||||
figL,
|
||||
gndL,
|
||||
slew,
|
||||
freq,
|
||||
levl,
|
||||
pear_total
|
||||
}; //new pear filter
|
||||
|
||||
double pearA[pear_total];
|
||||
double pearB[pear_total];
|
||||
double pearC[pear_total];
|
||||
double pearD[pear_total];
|
||||
double pearE[pear_total];
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/PearEQ/PearEQ.r
Executable file
61
plugins/MacAU/PearEQ/PearEQ.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: PearEQ.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "PearEQVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_PearEQ 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PearEQ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_PearEQ
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE PearEQ_COMP_SUBTYPE
|
||||
#define COMP_MANUF PearEQ_COMP_MANF
|
||||
|
||||
#define VERSION kPearEQVersion
|
||||
#define NAME "Airwindows: PearEQ"
|
||||
#define DESCRIPTION "PearEQ AU"
|
||||
#define ENTRY_POINT "PearEQEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
144
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.pbxuser
Executable file
144
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,144 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* PearEQ */;
|
||||
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 = 781017906;
|
||||
PBXWorkspaceStateSaveDate = 781017906;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BDF8BB42E8D644D00833D3C /* PBXBookmark */ = 8BDF8BB42E8D644D00833D3C /* PBXBookmark */;
|
||||
8BDF8BBC2E8D65CC00833D3C /* PlistBookmark */ = 8BDF8BBC2E8D65CC00833D3C /* PlistBookmark */;
|
||||
8BDF8BC12E8D65DB00833D3C /* PlistBookmark */ = 8BDF8BC12E8D65DB00833D3C /* PlistBookmark */;
|
||||
8BDF8BC72E8D65DB00833D3C /* PBXTextBookmark */ = 8BDF8BC72E8D65DB00833D3C /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* PearEQ.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {957, 5364}}";
|
||||
sepNavSelRange = "{12312, 0}";
|
||||
sepNavVisRange = "{9821, 1679}";
|
||||
sepNavWindowFrame = "{{15, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* PearEQVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2885, 0}";
|
||||
sepNavVisRange = "{964, 1984}";
|
||||
sepNavWindowFrame = "{{15, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* PearEQ.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3870}}";
|
||||
sepNavSelRange = "{5909, 0}";
|
||||
sepNavVisRange = "{5623, 621}";
|
||||
sepNavWindowFrame = "{{15, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BDF8BB42E8D644D00833D3C /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* PearEQ.cpp */;
|
||||
};
|
||||
8BDF8BBC2E8D65CC00833D3C /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/PearEQ/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8BDF8BC12E8D65DB00833D3C /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/PearEQ/Info.plist;
|
||||
rLen = 26;
|
||||
rLoc = 0;
|
||||
};
|
||||
8BDF8BC72E8D65DB00833D3C /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* PearEQ.cpp */;
|
||||
name = "PearEQ.cpp: 276";
|
||||
rLen = 0;
|
||||
rLoc = 12312;
|
||||
rType = 0;
|
||||
vrLen = 1679;
|
||||
vrLoc = 9821;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* PearEQ */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1545
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.perspectivev3
Executable file
1545
plugins/MacAU/PearEQ/PearEQ.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/PearEQ/PearEQ.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/PearEQ/PearEQ.xcodeproj/project.pbxproj
Executable 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 /* PearEQ.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* PearEQ.r */; };
|
||||
8BA05A6B0720730100365D66 /* PearEQ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* PearEQ.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* PearEQVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* PearEQVersion.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 /* PearEQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* PearEQ.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 /* PearEQ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PearEQ.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* PearEQ.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = PearEQ.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* PearEQ.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = PearEQ.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* PearEQVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PearEQVersion.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 /* PearEQ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PearEQ.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* PearEQ.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PearEQ.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 /* PearEQ */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = PearEQ;
|
||||
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 /* PearEQ.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* PearEQ.h */,
|
||||
8BA05A660720730100365D66 /* PearEQ.cpp */,
|
||||
8BA05A670720730100365D66 /* PearEQ.exp */,
|
||||
8BA05A680720730100365D66 /* PearEQ.r */,
|
||||
8BA05A690720730100365D66 /* PearEQVersion.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 /* PearEQVersion.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 /* PearEQ.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 /* PearEQ */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PearEQ" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = PearEQ;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = PearEQ;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* PearEQ.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 "PearEQ" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* PearEQ */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* PearEQ */,
|
||||
);
|
||||
};
|
||||
/* 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 /* PearEQ.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* PearEQ.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 = PearEQ.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 = PearEQ;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = PearEQ.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 = PearEQ;
|
||||
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 "PearEQ" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PearEQ" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/PearEQ/PearEQVersion.h
Executable file
58
plugins/MacAU/PearEQ/PearEQVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: PearEQVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __PearEQVersion_h__
|
||||
#define __PearEQVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kPearEQVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kPearEQVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define PearEQ_COMP_MANF 'Dthr'
|
||||
#define PearEQ_COMP_SUBTYPE 'peaq'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/PearEQ/version.plist
Executable file
16
plugins/MacAU/PearEQ/version.plist
Executable 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>
|
||||
BIN
plugins/MacAU/PearLiteEQ/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/PearLiteEQ/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/PearLiteEQ/Info.plist
Executable file
28
plugins/MacAU/PearLiteEQ/Info.plist
Executable 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>
|
||||
261
plugins/MacAU/PearLiteEQ/PearLiteEQ.cpp
Executable file
261
plugins/MacAU/PearLiteEQ/PearLiteEQ.cpp
Executable file
|
|
@ -0,0 +1,261 @@
|
|||
/*
|
||||
* File: PearLiteEQ.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
PearLiteEQ.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "PearLiteEQ.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(PearLiteEQ)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::PearLiteEQ
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
PearLiteEQ::PearLiteEQ(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearLiteEQ::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearLiteEQ::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;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearLiteEQ::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearLiteEQ::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// PearLiteEQ::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult PearLiteEQ::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____PearLiteEQEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::PearLiteEQKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void PearLiteEQ::PearLiteEQKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < pear_total; x++) {
|
||||
pearA[x] = 0.0;
|
||||
pearB[x] = 0.0;
|
||||
pearC[x] = 0.0;
|
||||
}
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// PearLiteEQ::PearLiteEQKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void PearLiteEQ::PearLiteEQKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double topLevl = sqrt(GetParameter( kParam_A )+0.5);
|
||||
pearA[levl] = sqrt(GetParameter( kParam_B )+0.5);
|
||||
pearB[levl] = sqrt(GetParameter( kParam_C )+0.5);
|
||||
pearC[levl] = sqrt(GetParameter( kParam_D )+0.5);
|
||||
|
||||
double freqFactor = sqrt(overallscale)+(overallscale*0.5);
|
||||
pearA[freq] = pow(0.564,freqFactor+0.85);
|
||||
pearB[freq] = pow(0.564,freqFactor+4.1);
|
||||
pearC[freq] = pow(0.564,freqFactor+7.1);
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < pear_max; x += 2) {
|
||||
//begin Pear filter stages
|
||||
pearA[figL] = inputSampleL;
|
||||
pearA[slew] = ((pearA[figL]-pearA[x])+pearA[x+1])*pearA[freq]*0.5;
|
||||
pearA[x] = pearA[figL] = (pearA[freq]*pearA[figL])+((1.0-pearA[freq])*(pearA[x]+pearA[x+1]));
|
||||
pearA[x+1] = pearA[slew];
|
||||
inputSampleL -= pearA[figL];
|
||||
|
||||
pearB[figL] = pearA[figL];
|
||||
pearB[slew] = ((pearB[figL]-pearB[x])+pearB[x+1])*pearB[freq]*0.5;
|
||||
pearB[x] = pearB[figL] = (pearB[freq]*pearA[figL])+((1.0-pearB[freq])*(pearB[x]+pearB[x+1]));
|
||||
pearB[x+1] = pearB[slew];
|
||||
pearA[figL] -= pearB[figL];
|
||||
|
||||
pearC[figL] = pearB[figL];
|
||||
pearC[slew] = ((pearC[figL]-pearC[x])+pearC[x+1])*pearC[freq]*0.5;
|
||||
pearC[x] = pearC[figL] = (pearC[freq]*pearB[figL])+((1.0-pearC[freq])*(pearC[x]+pearC[x+1]));
|
||||
pearC[x+1] = pearC[slew];
|
||||
pearB[figL] -= pearC[figL];
|
||||
|
||||
inputSampleL *= topLevl;
|
||||
inputSampleL += (pearA[figL]*pearA[levl]);
|
||||
inputSampleL += (pearB[figL]*pearB[levl]);
|
||||
inputSampleL += (pearC[figL]*pearC[levl]);
|
||||
}
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/PearLiteEQ/PearLiteEQ.exp
Executable file
1
plugins/MacAU/PearLiteEQ/PearLiteEQ.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_PearLiteEQEntry
|
||||
175
plugins/MacAU/PearLiteEQ/PearLiteEQ.h
Executable file
175
plugins/MacAU/PearLiteEQ/PearLiteEQ.h
Executable file
|
|
@ -0,0 +1,175 @@
|
|||
/*
|
||||
* File: PearLiteEQ.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "PearLiteEQVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __PearLiteEQ_h__
|
||||
#define __PearLiteEQ_h__
|
||||
|
||||
|
||||
#pragma mark ____PearLiteEQ 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 CFStringRef kParameterAName = CFSTR("High");
|
||||
static CFStringRef kParameterBName = CFSTR("HMid");
|
||||
static CFStringRef kParameterCName = CFSTR("LMid");
|
||||
static CFStringRef kParameterDName = CFSTR("Bass");
|
||||
//Alter the name if desired, but using the plugin name is a start
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=4
|
||||
};
|
||||
|
||||
#pragma mark ____PearLiteEQ
|
||||
class PearLiteEQ : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
PearLiteEQ(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~PearLiteEQ () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new PearLiteEQKernel(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 kPearLiteEQVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class PearLiteEQKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
PearLiteEQKernel(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 {
|
||||
prevSampL1,
|
||||
prevSlewL1,
|
||||
prevSampL2,
|
||||
prevSlewL2,
|
||||
prevSampL3,
|
||||
prevSlewL3,
|
||||
prevSampL4,
|
||||
prevSlewL4,
|
||||
prevSampL5,
|
||||
prevSlewL5,
|
||||
prevSampL6,
|
||||
prevSlewL6,
|
||||
prevSampL7,
|
||||
prevSlewL7,
|
||||
prevSampL8,
|
||||
prevSlewL8,
|
||||
pear_max,
|
||||
figL,
|
||||
gndL,
|
||||
slew,
|
||||
freq,
|
||||
levl,
|
||||
pear_total
|
||||
}; //new pear filter
|
||||
|
||||
double pearA[pear_total];
|
||||
double pearB[pear_total];
|
||||
double pearC[pear_total];
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/PearLiteEQ/PearLiteEQ.r
Executable file
61
plugins/MacAU/PearLiteEQ/PearLiteEQ.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: PearLiteEQ.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "PearLiteEQVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_PearLiteEQ 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PearLiteEQ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_PearLiteEQ
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE PearLiteEQ_COMP_SUBTYPE
|
||||
#define COMP_MANUF PearLiteEQ_COMP_MANF
|
||||
|
||||
#define VERSION kPearLiteEQVersion
|
||||
#define NAME "Airwindows: PearLiteEQ"
|
||||
#define DESCRIPTION "PearLiteEQ AU"
|
||||
#define ENTRY_POINT "PearLiteEQEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
128
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser
Executable file
128
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,128 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* PearLiteEQ */;
|
||||
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 = 781017104;
|
||||
PBXWorkspaceStateSaveDate = 781017104;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8BDF8B8A2E8D61F100833D3C /* PlistBookmark */ = 8BDF8B8A2E8D61F100833D3C /* PlistBookmark */;
|
||||
8BDF8B902E8D623C00833D3C /* PlistBookmark */ = 8BDF8B902E8D623C00833D3C /* PlistBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* PearLiteEQ.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {957, 4788}}";
|
||||
sepNavSelRange = "{11322, 0}";
|
||||
sepNavVisRange = "{9997, 1388}";
|
||||
sepNavWindowFrame = "{{37, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* PearLiteEQVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2913, 0}";
|
||||
sepNavVisRange = "{968, 2008}";
|
||||
sepNavWindowFrame = "{{15, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* PearLiteEQ.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 3888}}";
|
||||
sepNavSelRange = "{5860, 0}";
|
||||
sepNavVisRange = "{5412, 576}";
|
||||
sepNavWindowFrame = "{{15, 38}, {963, 840}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8BDF8B8A2E8D61F100833D3C /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/PearLiteEQ/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8BDF8B902E8D623C00833D3C /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/PearLiteEQ/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* PearLiteEQ */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1506
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3
Executable file
1506
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/PearLiteEQ/PearLiteEQ.xcodeproj/project.pbxproj
Executable 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 /* PearLiteEQ.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* PearLiteEQ.r */; };
|
||||
8BA05A6B0720730100365D66 /* PearLiteEQ.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* PearLiteEQ.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* PearLiteEQVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* PearLiteEQVersion.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 /* PearLiteEQ.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* PearLiteEQ.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 /* PearLiteEQ.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = PearLiteEQ.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* PearLiteEQ.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = PearLiteEQ.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* PearLiteEQ.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = PearLiteEQ.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* PearLiteEQVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PearLiteEQVersion.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 /* PearLiteEQ.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PearLiteEQ.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* PearLiteEQ.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PearLiteEQ.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 /* PearLiteEQ */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = PearLiteEQ;
|
||||
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 /* PearLiteEQ.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* PearLiteEQ.h */,
|
||||
8BA05A660720730100365D66 /* PearLiteEQ.cpp */,
|
||||
8BA05A670720730100365D66 /* PearLiteEQ.exp */,
|
||||
8BA05A680720730100365D66 /* PearLiteEQ.r */,
|
||||
8BA05A690720730100365D66 /* PearLiteEQVersion.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 /* PearLiteEQVersion.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 /* PearLiteEQ.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 /* PearLiteEQ */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "PearLiteEQ" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = PearLiteEQ;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = PearLiteEQ;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* PearLiteEQ.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 "PearLiteEQ" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* PearLiteEQ */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* PearLiteEQ */,
|
||||
);
|
||||
};
|
||||
/* 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 /* PearLiteEQ.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* PearLiteEQ.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 = PearLiteEQ.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 = PearLiteEQ;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = PearLiteEQ.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 = PearLiteEQ;
|
||||
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 "PearLiteEQ" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "PearLiteEQ" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/PearLiteEQ/PearLiteEQVersion.h
Executable file
58
plugins/MacAU/PearLiteEQ/PearLiteEQVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: PearLiteEQVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 10/1/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __PearLiteEQVersion_h__
|
||||
#define __PearLiteEQVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kPearLiteEQVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kPearLiteEQVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define PearLiteEQ_COMP_MANF 'Dthr'
|
||||
#define PearLiteEQ_COMP_SUBTYPE 'peap'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/PearLiteEQ/version.plist
Executable file
16
plugins/MacAU/PearLiteEQ/version.plist
Executable 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>
|
||||
BIN
plugins/MacAU/Slew4/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/Slew4/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/Slew4/Info.plist
Executable file
28
plugins/MacAU/Slew4/Info.plist
Executable 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>
|
||||
363
plugins/MacAU/Slew4/Slew4.cpp
Executable file
363
plugins/MacAU/Slew4/Slew4.cpp
Executable file
|
|
@ -0,0 +1,363 @@
|
|||
/*
|
||||
* File: Slew4.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/24/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Slew4.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Slew4.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(Slew4)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::Slew4
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Slew4::Slew4(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Slew4::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Slew4::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;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Slew4::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Slew4::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Slew4::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Slew4::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Slew4EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::Slew4Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Slew4::Slew4Kernel::Reset()
|
||||
{
|
||||
for(int x = 0; x < 23; x++) {
|
||||
for (int y = 0; y < 11; y++) slew[x][y] = 0.0;
|
||||
}
|
||||
slewCount = 0;
|
||||
sustainSlew = 0.0;
|
||||
secondSample = 0.0;
|
||||
thirdSample = 0.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Slew4::Slew4Kernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Slew4::Slew4Kernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
|
||||
double compresity = pow(GetParameter( kParam_A )*0.95,2.0)*8.0*overallscale;
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double drySample = inputSample;
|
||||
|
||||
sustainSlew += fabs((inputSample-secondSample)-(secondSample-thirdSample));
|
||||
sustainSlew *= 0.9; inputSample = thirdSample; //two sample lookahead
|
||||
double depthAmt = fmin(sin(fmin(sustainSlew,M_PI_2))*compresity,9.0);
|
||||
int z = floor(depthAmt);
|
||||
double depthTrim = depthAmt - (double)z;
|
||||
|
||||
for (int y = 0; y < z; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slew[slewCount%2][y] = inputSample;
|
||||
inputSample = (slew[0][y] + slew[1][y]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slew[slewCount%4][y] = inputSample;
|
||||
inputSample = (slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slew[slewCount%6][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y];
|
||||
inputSample += slew[3][y]+slew[4][y]+slew[5][y];
|
||||
inputSample *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slew[slewCount%8][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y];
|
||||
inputSample += slew[4][y]+slew[5][y]+slew[6][y]+slew[7][y];
|
||||
inputSample *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slew[slewCount%10][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y];
|
||||
inputSample += slew[5][y]+slew[6][y]+slew[7][y]+slew[8][y]+slew[9][y];
|
||||
inputSample *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slew[slewCount%12][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y]+slew[5][y];
|
||||
inputSample += slew[6][y]+slew[7][y]+slew[8][y]+slew[9][y]+slew[10][y]+slew[11][y];
|
||||
inputSample *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slew[slewCount%14][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y]+slew[5][y]+slew[6][y];
|
||||
inputSample += slew[7][y]+slew[8][y]+slew[9][y]+slew[10][y]+slew[11][y]+slew[12][y]+slew[13][y];
|
||||
inputSample *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slew[slewCount%16][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y]+slew[5][y]+slew[6][y]+slew[7][y];
|
||||
inputSample += slew[8][y]+slew[9][y]+slew[10][y]+slew[11][y]+slew[12][y]+slew[13][y]+slew[14][y]+slew[15][y];
|
||||
inputSample *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slew[slewCount%18][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y]+slew[5][y]+slew[6][y]+slew[7][y]+slew[8][y];
|
||||
inputSample += slew[9][y]+slew[10][y]+slew[11][y]+slew[12][y]+slew[13][y]+slew[14][y]+slew[15][y]+slew[16][y]+slew[17][y];
|
||||
inputSample *= 0.05555555;
|
||||
break;
|
||||
case 9:
|
||||
slew[slewCount%20][y] = inputSample;
|
||||
inputSample = slew[0][y]+slew[1][y]+slew[2][y]+slew[3][y]+slew[4][y]+slew[5][y]+slew[6][y]+slew[7][y]+slew[8][y]+slew[9][y];
|
||||
inputSample += slew[10][y]+slew[11][y]+slew[12][y]+slew[13][y]+slew[14][y]+slew[15][y]+slew[16][y]+slew[17][y]+slew[18][y]+slew[19][y];
|
||||
inputSample *= 0.05;
|
||||
break;
|
||||
} //generate sets of rectangular window averages to layer
|
||||
} //all of which have a 'node' (silence) at Nyquist to combine
|
||||
|
||||
double remainderSample = 0.0;
|
||||
switch (z) {
|
||||
case 0:
|
||||
slew[slewCount%2][z] = inputSample;
|
||||
remainderSample = (slew[0][z] + slew[1][z]) * 0.5;
|
||||
break;
|
||||
case 1:
|
||||
slew[slewCount%4][z] = inputSample;
|
||||
remainderSample = (slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]) * 0.25;
|
||||
break;
|
||||
case 2:
|
||||
slew[slewCount%6][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z];
|
||||
remainderSample += slew[3][z]+slew[4][z]+slew[5][z];
|
||||
remainderSample *= 0.1666666666;
|
||||
break;
|
||||
case 3:
|
||||
slew[slewCount%8][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z];
|
||||
remainderSample += slew[4][z]+slew[5][z]+slew[6][z]+slew[7][z];
|
||||
remainderSample *= 0.125;
|
||||
break;
|
||||
case 4:
|
||||
slew[slewCount%10][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z];
|
||||
remainderSample += slew[5][z]+slew[6][z]+slew[7][z]+slew[8][z]+slew[9][z];
|
||||
remainderSample *= 0.1;
|
||||
break;
|
||||
case 5:
|
||||
slew[slewCount%12][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z]+slew[5][z];
|
||||
remainderSample += slew[6][z]+slew[7][z]+slew[8][z]+slew[9][z]+slew[10][z]+slew[11][z];
|
||||
remainderSample *= 0.0833333333;
|
||||
break;
|
||||
case 6:
|
||||
slew[slewCount%14][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z]+slew[5][z]+slew[6][z];
|
||||
remainderSample += slew[7][z]+slew[8][z]+slew[9][z]+slew[10][z]+slew[11][z]+slew[12][z]+slew[13][z];
|
||||
remainderSample *= 0.0714285;
|
||||
break;
|
||||
case 7:
|
||||
slew[slewCount%16][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z]+slew[5][z]+slew[6][z]+slew[7][z];
|
||||
remainderSample += slew[8][z]+slew[9][z]+slew[10][z]+slew[11][z]+slew[12][z]+slew[13][z]+slew[14][z]+slew[15][z];
|
||||
remainderSample *= 0.0625;
|
||||
break;
|
||||
case 8:
|
||||
slew[slewCount%18][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z]+slew[5][z]+slew[6][z]+slew[7][z]+slew[8][z];
|
||||
remainderSample += slew[9][z]+slew[10][z]+slew[11][z]+slew[12][z]+slew[13][z]+slew[14][z]+slew[15][z]+slew[16][z]+slew[17][z];
|
||||
remainderSample *= 0.0555555;
|
||||
break;
|
||||
case 9:
|
||||
slew[slewCount%20][z] = inputSample;
|
||||
remainderSample = slew[0][z]+slew[1][z]+slew[2][z]+slew[3][z]+slew[4][z]+slew[5][z]+slew[6][z]+slew[7][z]+slew[8][z]+slew[9][z];
|
||||
remainderSample += slew[10][z]+slew[11][z]+slew[12][z]+slew[13][z]+slew[14][z]+slew[15][z]+slew[16][z]+slew[17][z]+slew[18][z]+slew[19][z];
|
||||
remainderSample *= 0.05;
|
||||
break;
|
||||
} //generate the final fractional amount
|
||||
|
||||
for (int y = z+1; y < 9; y++) {
|
||||
switch (y) {
|
||||
case 0:
|
||||
slew[slewCount%2][y] = inputSample; break;
|
||||
case 1:
|
||||
slew[slewCount%4][y] = inputSample; break;
|
||||
case 2:
|
||||
slew[slewCount%6][y] = inputSample; break;
|
||||
case 3:
|
||||
slew[slewCount%8][y] = inputSample; break;
|
||||
case 4:
|
||||
slew[slewCount%10][y] = inputSample; break;
|
||||
case 5:
|
||||
slew[slewCount%12][y] = inputSample; break;
|
||||
case 6:
|
||||
slew[slewCount%14][y] = inputSample; break;
|
||||
case 7:
|
||||
slew[slewCount%16][y] = inputSample; break;
|
||||
case 8:
|
||||
slew[slewCount%18][y] = inputSample; break;
|
||||
case 9:
|
||||
slew[slewCount%20][y] = inputSample; break;
|
||||
}
|
||||
} //clean up the little buffers when not being actively used
|
||||
|
||||
slewCount++; if (slewCount > 619315200) slewCount = 0;
|
||||
thirdSample = secondSample; secondSample = drySample;
|
||||
|
||||
inputSample = (inputSample*(1.0-depthTrim))+(remainderSample*depthTrim);
|
||||
|
||||
//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/Slew4/Slew4.exp
Executable file
1
plugins/MacAU/Slew4/Slew4.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_Slew4Entry
|
||||
141
plugins/MacAU/Slew4/Slew4.h
Executable file
141
plugins/MacAU/Slew4/Slew4.h
Executable file
|
|
@ -0,0 +1,141 @@
|
|||
/*
|
||||
* File: Slew4.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/24/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Slew4Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Slew4_h__
|
||||
#define __Slew4_h__
|
||||
|
||||
|
||||
#pragma mark ____Slew4 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Compres");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=1
|
||||
};
|
||||
|
||||
#pragma mark ____Slew4
|
||||
class Slew4 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Slew4(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Slew4 () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Slew4Kernel(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 kSlew4Version; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Slew4Kernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Slew4Kernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
|
||||
double slew[24][12];
|
||||
int slewCount;
|
||||
double sustainSlew;
|
||||
double secondSample;
|
||||
double thirdSample;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/Slew4/Slew4.r
Executable file
61
plugins/MacAU/Slew4/Slew4.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Slew4.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/24/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Slew4Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Slew4 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Slew4~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Slew4
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Slew4_COMP_SUBTYPE
|
||||
#define COMP_MANUF Slew4_COMP_MANF
|
||||
|
||||
#define VERSION kSlew4Version
|
||||
#define NAME "Airwindows: Slew4"
|
||||
#define DESCRIPTION "Slew4 AU"
|
||||
#define ENTRY_POINT "Slew4Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
133
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.pbxuser
Executable file
133
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,133 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Slew4 */;
|
||||
breakpoints = (
|
||||
);
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
300,
|
||||
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 = 780614087;
|
||||
PBXWorkspaceStateSaveDate = 780614087;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B4F3D932E8744DD007FA9AE /* PlistBookmark */ = 8B4F3D932E8744DD007FA9AE /* PlistBookmark */;
|
||||
8B4F3D942E8744DD007FA9AE /* PBXBookmark */ = 8B4F3D942E8744DD007FA9AE /* PBXBookmark */;
|
||||
8B4F3D952E8744DD007FA9AE /* PBXTextBookmark */ = 8B4F3D952E8744DD007FA9AE /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B4F3D932E8744DD007FA9AE /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/Slew4/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8B4F3D942E8744DD007FA9AE /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Slew4.cpp */;
|
||||
};
|
||||
8B4F3D952E8744DD007FA9AE /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Slew4.cpp */;
|
||||
name = "Slew4.cpp: 322";
|
||||
rLen = 0;
|
||||
rLoc = 14029;
|
||||
rType = 0;
|
||||
vrLen = 167;
|
||||
vrLoc = 13954;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Slew4.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1407, 6570}}";
|
||||
sepNavSelRange = "{14029, 0}";
|
||||
sepNavVisRange = "{13954, 167}";
|
||||
sepNavWindowFrame = "{{17, 80}, {1219, 785}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Slew4Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1084, 1062}}";
|
||||
sepNavSelRange = "{2878, 0}";
|
||||
sepNavVisRange = "{1065, 1876}";
|
||||
sepNavWindowFrame = "{{15, 54}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Slew4.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2538}}";
|
||||
sepNavSelRange = "{4941, 0}";
|
||||
sepNavVisRange = "{2001, 1059}";
|
||||
sepNavWindowFrame = "{{61, 59}, {1131, 819}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Slew4 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1507
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.perspectivev3
Executable file
1507
plugins/MacAU/Slew4/Slew4.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/Slew4/Slew4.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/Slew4/Slew4.xcodeproj/project.pbxproj
Executable 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 /* Slew4.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* Slew4.r */; };
|
||||
8BA05A6B0720730100365D66 /* Slew4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Slew4.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Slew4Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Slew4Version.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 /* Slew4.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Slew4.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 /* Slew4.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Slew4.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Slew4.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Slew4.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Slew4.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Slew4.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Slew4Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Slew4Version.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 /* Slew4.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Slew4.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Slew4.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Slew4.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 /* Slew4 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Slew4;
|
||||
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 /* Slew4.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Slew4.h */,
|
||||
8BA05A660720730100365D66 /* Slew4.cpp */,
|
||||
8BA05A670720730100365D66 /* Slew4.exp */,
|
||||
8BA05A680720730100365D66 /* Slew4.r */,
|
||||
8BA05A690720730100365D66 /* Slew4Version.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 /* Slew4Version.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 /* Slew4.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 /* Slew4 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Slew4" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Slew4;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Slew4;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Slew4.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 "Slew4" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Slew4 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Slew4 */,
|
||||
);
|
||||
};
|
||||
/* 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 /* Slew4.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* Slew4.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 = Slew4.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 = Slew4;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = Slew4.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 = Slew4;
|
||||
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 "Slew4" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Slew4" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/Slew4/Slew4Version.h
Executable file
58
plugins/MacAU/Slew4/Slew4Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Slew4Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/24/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#ifndef __Slew4Version_h__
|
||||
#define __Slew4Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kSlew4Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kSlew4Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Slew4_COMP_MANF 'Dthr'
|
||||
#define Slew4_COMP_SUBTYPE 'slw4'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
16
plugins/MacAU/Slew4/version.plist
Executable file
16
plugins/MacAU/Slew4/version.plist
Executable 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>
|
||||
331
plugins/MacSignedAU/Dynamics2/Dynamics2.cpp
Executable file
331
plugins/MacSignedAU/Dynamics2/Dynamics2.cpp
Executable file
|
|
@ -0,0 +1,331 @@
|
|||
/*
|
||||
* File: Dynamics2.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Dynamics2.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Dynamics2.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Dynamics2)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::Dynamics2
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Dynamics2::Dynamics2(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::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;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::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 Dynamics2::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Dynamics2::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Dynamics2EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::Dynamics2Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics2::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompS[bez_cycle] = 1.0; bezGate = 2.0;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics2::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus Dynamics2::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 bezCThresh = pow(1.0-GetParameter( kParam_A ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_B ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_C ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_D ),4.0),sqrt(bezCThresh+1.0));
|
||||
|
||||
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;
|
||||
|
||||
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
inputSampleR *= ((bezCThresh*0.5)+1.0);
|
||||
}
|
||||
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_SampL] += (fabs(inputSampleL) * bezRez);
|
||||
bezCompF[bez_SampR] += (fabs(inputSampleR) * bezRez);
|
||||
bezMaxF = fmax(bezMaxF,fmax(fabs(inputSampleL),fabs(inputSampleR)));
|
||||
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampL] = bezMaxF/gate; //note: SampL is a control voltage,
|
||||
if (bezCompF[bez_SampL]<gate) bezCompF[bez_SampL] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
|
||||
if (bezMaxF < gate) bezCompF[bez_SampR] = bezMaxF/gate; //note: SampR is a control voltage,
|
||||
if (bezCompF[bez_SampR]<gate) bezCompF[bez_SampR] = 0.0; //not a bipolar audio signal
|
||||
bezCompF[bez_CR] = bezCompF[bez_BR];
|
||||
bezCompF[bez_BR] = bezCompF[bez_AR];
|
||||
bezCompF[bez_AR] = bezCompF[bez_SampR];
|
||||
bezCompF[bez_SampR] = 0.0;
|
||||
|
||||
bezMaxF = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_SampL] += (fabs(inputSampleL) * sloRez); //note: SampL is a control voltage
|
||||
bezCompS[bez_SampR] += (fabs(inputSampleR) * sloRez); //note: SampR is a control voltage
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
|
||||
if (bezCompS[bez_SampL]<gate) bezCompS[bez_SampL] = 0.0;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 0.0;
|
||||
|
||||
if (bezCompS[bez_SampR]<gate) bezCompS[bez_SampR] = 0.0;
|
||||
bezCompS[bez_CR] = bezCompS[bez_BR];
|
||||
bezCompS[bez_BR] = bezCompS[bez_AR];
|
||||
bezCompS[bez_AR] = bezCompS[bez_SampR];
|
||||
bezCompS[bez_SampR] = 0.0;
|
||||
}
|
||||
double CBFL = (bezCompF[bez_CL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BL]*bezCompF[bez_cycle]);
|
||||
double BAFL = (bezCompF[bez_BL]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AL]*bezCompF[bez_cycle]);
|
||||
double CBAFL = (bezCompF[bez_BL]+(CBFL*(1.0-bezCompF[bez_cycle]))+(BAFL*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSL = (bezCompS[bez_CL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BL]*bezCompS[bez_cycle]);
|
||||
double BASL = (bezCompS[bez_BL]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AL]*bezCompS[bez_cycle]);
|
||||
double CBASL = (bezCompS[bez_BL]+(CBSL*(1.0-bezCompS[bez_cycle]))+(BASL*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBASL,CBAFL); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBASL*-CBAMax)+(CBAFL*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
double CBFR = (bezCompF[bez_CR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_BR]*bezCompF[bez_cycle]);
|
||||
double BAFR = (bezCompF[bez_BR]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_AR]*bezCompF[bez_cycle]);
|
||||
double CBAFR = (bezCompF[bez_BR]+(CBFR*(1.0-bezCompF[bez_cycle]))+(BAFR*bezCompF[bez_cycle]))*0.5;
|
||||
double CBSR = (bezCompS[bez_CR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_BR]*bezCompS[bez_cycle]);
|
||||
double BASR = (bezCompS[bez_BR]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_AR]*bezCompS[bez_cycle]);
|
||||
double CBASR = (bezCompS[bez_BR]+(CBSR*(1.0-bezCompS[bez_cycle]))+(BASR*bezCompS[bez_cycle]))*0.5;
|
||||
CBAMax = fmax(CBASR,CBAFR); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
CBAFade = ((CBASR*-CBAMax)+(CBAFR*CBAMax)+1.0)*0.5;
|
||||
if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0));
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;}
|
||||
|
||||
//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;
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/Dynamics2/Dynamics2.exp
Executable file
2
plugins/MacSignedAU/Dynamics2/Dynamics2.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_Dynamics2Entry
|
||||
_Dynamics2Factory
|
||||
148
plugins/MacSignedAU/Dynamics2/Dynamics2.h
Executable file
148
plugins/MacSignedAU/Dynamics2/Dynamics2.h
Executable file
|
|
@ -0,0 +1,148 @@
|
|||
/*
|
||||
* File: Dynamics2.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include "AUEffectBase.h"
|
||||
#include "Dynamics2Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Dynamics2_h__
|
||||
#define __Dynamics2_h__
|
||||
|
||||
|
||||
#pragma mark ____Dynamics2 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterBName = CFSTR("Attack");
|
||||
static CFStringRef kParameterCName = CFSTR("Release");
|
||||
static CFStringRef kParameterDName = CFSTR("Gate");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=4
|
||||
};
|
||||
|
||||
#pragma mark ____Dynamics2
|
||||
class Dynamics2 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Dynamics2(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Dynamics2 () { 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 kDynamics2Version; }
|
||||
|
||||
private:
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AR,
|
||||
bez_BR,
|
||||
bez_CR,
|
||||
bez_InR,
|
||||
bez_UnInR,
|
||||
bez_SampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/Dynamics2/Dynamics2.r
Executable file
61
plugins/MacSignedAU/Dynamics2/Dynamics2.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Dynamics2.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 9/20/25
|
||||
*
|
||||
* Copyright: Copyright © 2025 Airwindows, Airwindows uses the MIT license
|
||||
*
|
||||
* Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. ("Apple") in
|
||||
* consideration of your agreement to the following terms, and your use, installation, modification
|
||||
* or redistribution of this Apple software constitutes acceptance of these terms. If you do
|
||||
* not agree with these terms, please do not use, install, modify or redistribute this Apple
|
||||
* software.
|
||||
*
|
||||
* In consideration of your agreement to abide by the following terms, and subject to these terms,
|
||||
* Apple grants you a personal, non-exclusive license, under Apple's copyrights in this
|
||||
* original Apple software (the "Apple Software"), to use, reproduce, modify and redistribute the
|
||||
* Apple Software, with or without modifications, in source and/or binary forms; provided that if you
|
||||
* redistribute the Apple Software in its entirety and without modifications, you must retain this
|
||||
* notice and the following text and disclaimers in all such redistributions of the Apple Software.
|
||||
* Neither the name, trademarks, service marks or logos of Apple Computer, Inc. may be used to
|
||||
* endorse or promote products derived from the Apple Software without specific prior written
|
||||
* permission from Apple. Except as expressly stated in this notice, no other rights or
|
||||
* licenses, express or implied, are granted by Apple herein, including but not limited to any
|
||||
* patent rights that may be infringed by your derivative works or by other works in which the
|
||||
* Apple Software may be incorporated.
|
||||
*
|
||||
* The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO WARRANTIES, EXPRESS OR
|
||||
* IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY
|
||||
* AND FITNESS FOR A PARTICULAR PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE
|
||||
* OR IN COMBINATION WITH YOUR PRODUCTS.
|
||||
*
|
||||
* IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ARISING IN ANY WAY OUT OF THE USE,
|
||||
* REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER
|
||||
* UNDER THEORY OF CONTRACT, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN
|
||||
* IF APPLE HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*/
|
||||
#include <AudioUnit/AudioUnit.r>
|
||||
|
||||
#include "Dynamics2Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Dynamics2 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dynamics2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Dynamics2
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Dynamics2_COMP_SUBTYPE
|
||||
#define COMP_MANUF Dynamics2_COMP_MANF
|
||||
|
||||
#define VERSION kDynamics2Version
|
||||
#define NAME "Airwindows: Dynamics2"
|
||||
#define DESCRIPTION "Dynamics2 AU"
|
||||
#define ENTRY_POINT "Dynamics2Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
147
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.pbxuser
Executable file
147
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,147 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Dynamics2 */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 780618148;
|
||||
PBXWorkspaceStateSaveDate = 780618148;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B23680F2E87162300CA47D4 /* PBXTextBookmark */ = 8B23680F2E87162300CA47D4 /* PBXTextBookmark */;
|
||||
8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */ = 8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */;
|
||||
8B4F3DD12E874B19007FA9AE /* PBXBookmark */ = 8B4F3DD12E874B19007FA9AE /* PBXBookmark */;
|
||||
8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */ = 8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B23680F2E87162300CA47D4 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Dynamics2.h */;
|
||||
name = "Dynamics2.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 42;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B4F3DD02E874B19007FA9AE /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* Dynamics2Version.h */;
|
||||
name = "Dynamics2Version.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 128;
|
||||
vrLoc = 2780;
|
||||
};
|
||||
8B4F3DD12E874B19007FA9AE /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */;
|
||||
};
|
||||
8B4F3DD22E874B19007FA9AE /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */;
|
||||
name = "Dynamics2.cpp: 308";
|
||||
rLen = 0;
|
||||
rLoc = 14433;
|
||||
rType = 0;
|
||||
vrLen = 303;
|
||||
vrLoc = 13043;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dynamics2.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 5868}}";
|
||||
sepNavSelRange = "{14433, 0}";
|
||||
sepNavVisRange = "{13043, 303}";
|
||||
sepNavWindowFrame = "{{10, 81}, {1250, 767}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1306, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{1172, 1797}";
|
||||
sepNavWindowFrame = "{{15, 70}, {1353, 803}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dynamics2.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2664}}";
|
||||
sepNavSelRange = "{5071, 334}";
|
||||
sepNavVisRange = "{2727, 906}";
|
||||
sepNavWindowFrame = "{{38, 79}, {915, 773}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1486
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.perspectivev3
Executable file
1486
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8B3B42B32E8AF84900F1D202 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B422B2E8AF84900F1D202 /* CAExtAudioFile.h */; };
|
||||
8B3B42B42E8AF84900F1D202 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B422C2E8AF84900F1D202 /* CACFMachPort.h */; };
|
||||
8B3B42B52E8AF84900F1D202 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B422D2E8AF84900F1D202 /* CABool.h */; };
|
||||
8B3B42B62E8AF84900F1D202 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B422E2E8AF84900F1D202 /* CAComponent.cpp */; };
|
||||
8B3B42B72E8AF84900F1D202 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B422F2E8AF84900F1D202 /* CADebugger.h */; };
|
||||
8B3B42B82E8AF84900F1D202 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42302E8AF84900F1D202 /* CACFNumber.cpp */; };
|
||||
8B3B42B92E8AF84A00F1D202 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42312E8AF84900F1D202 /* CAGuard.h */; };
|
||||
8B3B42BA2E8AF84A00F1D202 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42322E8AF84900F1D202 /* CAAtomic.h */; };
|
||||
8B3B42BB2E8AF84A00F1D202 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42332E8AF84900F1D202 /* CAStreamBasicDescription.h */; };
|
||||
8B3B42BC2E8AF84A00F1D202 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42342E8AF84900F1D202 /* CACFObject.h */; };
|
||||
8B3B42BD2E8AF84A00F1D202 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42352E8AF84900F1D202 /* CAStreamRangedDescription.h */; };
|
||||
8B3B42BE2E8AF84A00F1D202 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42362E8AF84900F1D202 /* CATokenMap.h */; };
|
||||
8B3B42BF2E8AF84A00F1D202 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42372E8AF84900F1D202 /* CAComponent.h */; };
|
||||
8B3B42C02E8AF84A00F1D202 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42382E8AF84900F1D202 /* CAAudioBufferList.h */; };
|
||||
8B3B42C12E8AF84A00F1D202 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42392E8AF84900F1D202 /* CAAudioUnit.h */; };
|
||||
8B3B42C22E8AF84A00F1D202 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B423A2E8AF84900F1D202 /* CAAUParameter.h */; };
|
||||
8B3B42C32E8AF84A00F1D202 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B423B2E8AF84900F1D202 /* CAException.h */; };
|
||||
8B3B42C42E8AF84A00F1D202 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B423C2E8AF84900F1D202 /* CAAUProcessor.cpp */; };
|
||||
8B3B42C52E8AF84A00F1D202 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B423D2E8AF84900F1D202 /* CAAUProcessor.h */; };
|
||||
8B3B42C62E8AF84A00F1D202 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B423E2E8AF84900F1D202 /* CAProcess.h */; };
|
||||
8B3B42C72E8AF84A00F1D202 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B423F2E8AF84900F1D202 /* CACFDictionary.h */; };
|
||||
8B3B42C82E8AF84A00F1D202 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42402E8AF84900F1D202 /* CAPThread.h */; };
|
||||
8B3B42C92E8AF84A00F1D202 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42412E8AF84900F1D202 /* CAAUParameter.cpp */; };
|
||||
8B3B42CA2E8AF84A00F1D202 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42422E8AF84900F1D202 /* CAAudioTimeStamp.h */; };
|
||||
8B3B42CB2E8AF84A00F1D202 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42432E8AF84900F1D202 /* CAFilePathUtils.cpp */; };
|
||||
8B3B42CC2E8AF84A00F1D202 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42442E8AF84900F1D202 /* CAAudioValueRange.h */; };
|
||||
8B3B42CD2E8AF84A00F1D202 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42452E8AF84900F1D202 /* CAVectorUnitTypes.h */; };
|
||||
8B3B42CE2E8AF84A00F1D202 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42462E8AF84900F1D202 /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8B3B42CF2E8AF84A00F1D202 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42472E8AF84900F1D202 /* CAGuard.cpp */; };
|
||||
8B3B42D02E8AF84A00F1D202 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42482E8AF84900F1D202 /* CACFNumber.h */; };
|
||||
8B3B42D12E8AF84A00F1D202 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42492E8AF84900F1D202 /* CACFDistributedNotification.cpp */; };
|
||||
8B3B42D22E8AF84A00F1D202 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B424A2E8AF84900F1D202 /* CACFString.h */; };
|
||||
8B3B42D32E8AF84A00F1D202 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B424B2E8AF84900F1D202 /* CAAUMIDIMapManager.cpp */; };
|
||||
8B3B42D42E8AF84A00F1D202 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B424C2E8AF84900F1D202 /* CAComponentDescription.cpp */; };
|
||||
8B3B42D52E8AF84A00F1D202 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B424D2E8AF84900F1D202 /* CAHostTimeBase.h */; };
|
||||
8B3B42D62E8AF84A00F1D202 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B424E2E8AF84900F1D202 /* CADebugMacros.cpp */; };
|
||||
8B3B42D72E8AF84A00F1D202 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B424F2E8AF84900F1D202 /* CAAudioFileFormats.h */; };
|
||||
8B3B42D82E8AF84A00F1D202 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42502E8AF84900F1D202 /* CAAUMIDIMapManager.h */; };
|
||||
8B3B42D92E8AF84A00F1D202 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42512E8AF84900F1D202 /* CACFDictionary.cpp */; };
|
||||
8B3B42DA2E8AF84A00F1D202 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42522E8AF84900F1D202 /* CAMutex.h */; };
|
||||
8B3B42DB2E8AF84A00F1D202 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42532E8AF84900F1D202 /* CACFString.cpp */; };
|
||||
8B3B42DC2E8AF84A00F1D202 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42542E8AF84900F1D202 /* CASettingsStorage.h */; };
|
||||
8B3B42DD2E8AF84A00F1D202 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42552E8AF84900F1D202 /* CADebugPrintf.h */; };
|
||||
8B3B42DE2E8AF84A00F1D202 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42562E8AF84900F1D202 /* CAXException.cpp */; };
|
||||
8B3B42DF2E8AF84A00F1D202 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42572E8AF84900F1D202 /* CAAUMIDIMap.h */; };
|
||||
8B3B42E02E8AF84A00F1D202 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42582E8AF84900F1D202 /* AUParamInfo.h */; };
|
||||
8B3B42E12E8AF84A00F1D202 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42592E8AF84900F1D202 /* CABitOperations.h */; };
|
||||
8B3B42E22E8AF84A00F1D202 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B425A2E8AF84900F1D202 /* CACFPreferences.cpp */; };
|
||||
8B3B42E32E8AF84A00F1D202 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B425B2E8AF84900F1D202 /* CABundleLocker.h */; };
|
||||
8B3B42E42E8AF84A00F1D202 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B425C2E8AF84900F1D202 /* CAPropertyAddress.h */; };
|
||||
8B3B42E52E8AF84A00F1D202 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B425D2E8AF84900F1D202 /* CAXException.h */; };
|
||||
8B3B42E62E8AF84A00F1D202 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B425E2E8AF84900F1D202 /* CAAudioChannelLayout.cpp */; };
|
||||
8B3B42E72E8AF84A00F1D202 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B425F2E8AF84900F1D202 /* CAThreadSafeList.h */; };
|
||||
8B3B42E82E8AF84A00F1D202 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42602E8AF84900F1D202 /* CAAudioUnitOutputCapturer.h */; };
|
||||
8B3B42E92E8AF84A00F1D202 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42612E8AF84900F1D202 /* AUParamInfo.cpp */; };
|
||||
8B3B42EA2E8AF84A00F1D202 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42622E8AF84900F1D202 /* CASharedLibrary.cpp */; };
|
||||
8B3B42EB2E8AF84A00F1D202 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42632E8AF84900F1D202 /* CAAUMIDIMap.cpp */; };
|
||||
8B3B42EC2E8AF84A00F1D202 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42642E8AF84900F1D202 /* CALogMacros.h */; };
|
||||
8B3B42ED2E8AF84A00F1D202 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42652E8AF84900F1D202 /* CACFMessagePort.cpp */; };
|
||||
8B3B42EE2E8AF84A00F1D202 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42662E8AF84900F1D202 /* CARingBuffer.h */; };
|
||||
8B3B42EF2E8AF84A00F1D202 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42672E8AF84900F1D202 /* AUOutputBL.cpp */; };
|
||||
8B3B42F02E8AF84A00F1D202 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42682E8AF84900F1D202 /* CABufferList.h */; };
|
||||
8B3B42F12E8AF84A00F1D202 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42692E8AF84900F1D202 /* CASharedLibrary.h */; };
|
||||
8B3B42F22E8AF84A00F1D202 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B426A2E8AF84900F1D202 /* CACFData.h */; };
|
||||
8B3B42F32E8AF84A00F1D202 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B426B2E8AF84900F1D202 /* CAStreamRangedDescription.cpp */; };
|
||||
8B3B42F42E8AF84A00F1D202 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B426C2E8AF84900F1D202 /* CAPThread.cpp */; };
|
||||
8B3B42F52E8AF84A00F1D202 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B426D2E8AF84900F1D202 /* CAAutoDisposer.h */; };
|
||||
8B3B42F62E8AF84A00F1D202 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B426E2E8AF84900F1D202 /* CACFPreferences.h */; };
|
||||
8B3B42F72E8AF84A00F1D202 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B426F2E8AF84900F1D202 /* CAVectorUnit.cpp */; };
|
||||
8B3B42F82E8AF84A00F1D202 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42702E8AF84900F1D202 /* CAComponentDescription.h */; };
|
||||
8B3B42F92E8AF84A00F1D202 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42712E8AF84900F1D202 /* CADebugMacros.h */; };
|
||||
8B3B42FA2E8AF84A00F1D202 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42722E8AF84900F1D202 /* AUOutputBL.h */; };
|
||||
8B3B42FB2E8AF84A00F1D202 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42732E8AF84900F1D202 /* CADebugPrintf.cpp */; };
|
||||
8B3B42FC2E8AF84A00F1D202 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42742E8AF84900F1D202 /* CARingBuffer.cpp */; };
|
||||
8B3B42FD2E8AF84A00F1D202 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42752E8AF84900F1D202 /* CACFPlugIn.h */; };
|
||||
8B3B42FE2E8AF84A00F1D202 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42762E8AF84900F1D202 /* CASettingsStorage.cpp */; };
|
||||
8B3B42FF2E8AF84A00F1D202 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42772E8AF84900F1D202 /* CAMixMap.h */; };
|
||||
8B3B43002E8AF84A00F1D202 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42782E8AF84900F1D202 /* CACFDistributedNotification.h */; };
|
||||
8B3B43012E8AF84A00F1D202 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42792E8AF84900F1D202 /* CAFilePathUtils.h */; };
|
||||
8B3B43022E8AF84A00F1D202 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B427A2E8AF84900F1D202 /* CATink.h */; };
|
||||
8B3B43032E8AF84A00F1D202 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B427B2E8AF84900F1D202 /* CAStreamBasicDescription.cpp */; };
|
||||
8B3B43042E8AF84A00F1D202 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B427C2E8AF84900F1D202 /* CAAudioChannelLayout.h */; };
|
||||
8B3B43052E8AF84A00F1D202 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B427D2E8AF84900F1D202 /* CAProcess.cpp */; };
|
||||
8B3B43062E8AF84A00F1D202 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B427E2E8AF84900F1D202 /* CAHostTimeBase.cpp */; };
|
||||
8B3B43072E8AF84A00F1D202 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B427F2E8AF84900F1D202 /* CAPersistence.cpp */; };
|
||||
8B3B43082E8AF84A00F1D202 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42802E8AF84900F1D202 /* CAAudioBufferList.cpp */; };
|
||||
8B3B43092E8AF84A00F1D202 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42812E8AF84900F1D202 /* CAAudioTimeStamp.cpp */; };
|
||||
8B3B430A2E8AF84A00F1D202 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42822E8AF84900F1D202 /* CAVectorUnit.h */; };
|
||||
8B3B430B2E8AF84A00F1D202 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42832E8AF84900F1D202 /* CAByteOrder.h */; };
|
||||
8B3B430C2E8AF84A00F1D202 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42842E8AF84900F1D202 /* CACFArray.h */; };
|
||||
8B3B430D2E8AF84A00F1D202 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42852E8AF84900F1D202 /* CAAtomicStack.h */; };
|
||||
8B3B430E2E8AF84A00F1D202 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42862E8AF84900F1D202 /* CAReferenceCounted.h */; };
|
||||
8B3B430F2E8AF84A00F1D202 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42872E8AF84900F1D202 /* CACFMachPort.cpp */; };
|
||||
8B3B43102E8AF84A00F1D202 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42882E8AF84900F1D202 /* CABufferList.cpp */; };
|
||||
8B3B43112E8AF84A00F1D202 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42892E8AF84900F1D202 /* CAMutex.cpp */; };
|
||||
8B3B43122E8AF84A00F1D202 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B428A2E8AF84900F1D202 /* CADebugger.cpp */; };
|
||||
8B3B43132E8AF84A00F1D202 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B428B2E8AF84900F1D202 /* CABundleLocker.cpp */; };
|
||||
8B3B43142E8AF84A00F1D202 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B428C2E8AF84900F1D202 /* CAAudioFileFormats.cpp */; };
|
||||
8B3B43152E8AF84A00F1D202 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B428D2E8AF84900F1D202 /* CAMath.h */; };
|
||||
8B3B43162E8AF84A00F1D202 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B428E2E8AF84900F1D202 /* CACFArray.cpp */; };
|
||||
8B3B43172E8AF84A00F1D202 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B428F2E8AF84900F1D202 /* CACFMessagePort.h */; };
|
||||
8B3B43182E8AF84A00F1D202 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42902E8AF84900F1D202 /* CAAudioValueRange.cpp */; };
|
||||
8B3B43192E8AF84A00F1D202 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42912E8AF84900F1D202 /* CAAudioUnit.cpp */; };
|
||||
8B3B431A2E8AF84A00F1D202 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42952E8AF84900F1D202 /* AUViewLocalizedStringKeys.h */; };
|
||||
8B3B431B2E8AF84A00F1D202 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42972E8AF84900F1D202 /* ComponentBase.cpp */; };
|
||||
8B3B431C2E8AF84A00F1D202 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42982E8AF84900F1D202 /* AUScopeElement.cpp */; };
|
||||
8B3B431D2E8AF84A00F1D202 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42992E8AF84900F1D202 /* ComponentBase.h */; };
|
||||
8B3B431E2E8AF84A00F1D202 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B429A2E8AF84900F1D202 /* AUBase.cpp */; };
|
||||
8B3B431F2E8AF84A00F1D202 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B429B2E8AF84900F1D202 /* AUInputElement.h */; };
|
||||
8B3B43202E8AF84A00F1D202 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B429C2E8AF84900F1D202 /* AUBase.h */; };
|
||||
8B3B43212E8AF84A00F1D202 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B429D2E8AF84900F1D202 /* AUPlugInDispatch.h */; };
|
||||
8B3B43222E8AF84A00F1D202 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B429E2E8AF84900F1D202 /* AUDispatch.h */; };
|
||||
8B3B43232E8AF84A00F1D202 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B429F2E8AF84900F1D202 /* AUOutputElement.cpp */; };
|
||||
8B3B43252E8AF84A00F1D202 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42A12E8AF84900F1D202 /* AUPlugInDispatch.cpp */; };
|
||||
8B3B43262E8AF84A00F1D202 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42A22E8AF84900F1D202 /* AUOutputElement.h */; };
|
||||
8B3B43272E8AF84A00F1D202 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42A32E8AF84900F1D202 /* AUDispatch.cpp */; };
|
||||
8B3B43282E8AF84A00F1D202 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42A42E8AF84900F1D202 /* AUScopeElement.h */; };
|
||||
8B3B43292E8AF84A00F1D202 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42A52E8AF84900F1D202 /* AUInputElement.cpp */; };
|
||||
8B3B432A2E8AF84A00F1D202 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42A72E8AF84900F1D202 /* AUEffectBase.cpp */; };
|
||||
8B3B432B2E8AF84A00F1D202 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42A82E8AF84900F1D202 /* AUEffectBase.h */; };
|
||||
8B3B432C2E8AF84A00F1D202 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42AA2E8AF84900F1D202 /* AUTimestampGenerator.h */; };
|
||||
8B3B432D2E8AF84A00F1D202 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42AB2E8AF84900F1D202 /* AUBaseHelper.cpp */; };
|
||||
8B3B432E2E8AF84A00F1D202 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42AC2E8AF84900F1D202 /* AUSilentTimeout.h */; };
|
||||
8B3B432F2E8AF84A00F1D202 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42AD2E8AF84900F1D202 /* AUInputFormatConverter.h */; };
|
||||
8B3B43302E8AF84A00F1D202 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42AE2E8AF84900F1D202 /* AUTimestampGenerator.cpp */; };
|
||||
8B3B43312E8AF84A00F1D202 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B3B42AF2E8AF84900F1D202 /* AUBuffer.cpp */; };
|
||||
8B3B43322E8AF84A00F1D202 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42B02E8AF84900F1D202 /* AUMIDIDefs.h */; };
|
||||
8B3B43332E8AF84A00F1D202 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42B12E8AF84900F1D202 /* AUBuffer.h */; };
|
||||
8B3B43342E8AF84A00F1D202 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B3B42B22E8AF84900F1D202 /* AUBaseHelper.h */; };
|
||||
8BA05A6B0720730100365D66 /* Dynamics2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Dynamics2.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Dynamics2Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Dynamics2Version.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 /* Dynamics2.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Dynamics2.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
8B3B422B2E8AF84900F1D202 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8B3B422C2E8AF84900F1D202 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8B3B422D2E8AF84900F1D202 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8B3B422E2E8AF84900F1D202 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8B3B422F2E8AF84900F1D202 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8B3B42302E8AF84900F1D202 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8B3B42312E8AF84900F1D202 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8B3B42322E8AF84900F1D202 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8B3B42332E8AF84900F1D202 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8B3B42342E8AF84900F1D202 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8B3B42352E8AF84900F1D202 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8B3B42362E8AF84900F1D202 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8B3B42372E8AF84900F1D202 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8B3B42382E8AF84900F1D202 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8B3B42392E8AF84900F1D202 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8B3B423A2E8AF84900F1D202 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8B3B423B2E8AF84900F1D202 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8B3B423C2E8AF84900F1D202 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8B3B423D2E8AF84900F1D202 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8B3B423E2E8AF84900F1D202 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8B3B423F2E8AF84900F1D202 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8B3B42402E8AF84900F1D202 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8B3B42412E8AF84900F1D202 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8B3B42422E8AF84900F1D202 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8B3B42432E8AF84900F1D202 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8B3B42442E8AF84900F1D202 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8B3B42452E8AF84900F1D202 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B3B42462E8AF84900F1D202 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8B3B42472E8AF84900F1D202 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8B3B42482E8AF84900F1D202 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8B3B42492E8AF84900F1D202 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8B3B424A2E8AF84900F1D202 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8B3B424B2E8AF84900F1D202 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8B3B424C2E8AF84900F1D202 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8B3B424D2E8AF84900F1D202 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8B3B424E2E8AF84900F1D202 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8B3B424F2E8AF84900F1D202 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8B3B42502E8AF84900F1D202 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8B3B42512E8AF84900F1D202 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8B3B42522E8AF84900F1D202 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8B3B42532E8AF84900F1D202 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8B3B42542E8AF84900F1D202 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8B3B42552E8AF84900F1D202 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8B3B42562E8AF84900F1D202 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8B3B42572E8AF84900F1D202 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8B3B42582E8AF84900F1D202 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8B3B42592E8AF84900F1D202 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8B3B425A2E8AF84900F1D202 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8B3B425B2E8AF84900F1D202 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8B3B425C2E8AF84900F1D202 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8B3B425D2E8AF84900F1D202 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8B3B425E2E8AF84900F1D202 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8B3B425F2E8AF84900F1D202 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8B3B42602E8AF84900F1D202 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8B3B42612E8AF84900F1D202 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8B3B42622E8AF84900F1D202 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8B3B42632E8AF84900F1D202 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8B3B42642E8AF84900F1D202 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8B3B42652E8AF84900F1D202 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8B3B42662E8AF84900F1D202 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8B3B42672E8AF84900F1D202 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8B3B42682E8AF84900F1D202 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8B3B42692E8AF84900F1D202 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8B3B426A2E8AF84900F1D202 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8B3B426B2E8AF84900F1D202 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8B3B426C2E8AF84900F1D202 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8B3B426D2E8AF84900F1D202 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8B3B426E2E8AF84900F1D202 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8B3B426F2E8AF84900F1D202 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8B3B42702E8AF84900F1D202 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8B3B42712E8AF84900F1D202 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8B3B42722E8AF84900F1D202 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8B3B42732E8AF84900F1D202 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8B3B42742E8AF84900F1D202 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B3B42752E8AF84900F1D202 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8B3B42762E8AF84900F1D202 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8B3B42772E8AF84900F1D202 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8B3B42782E8AF84900F1D202 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8B3B42792E8AF84900F1D202 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8B3B427A2E8AF84900F1D202 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8B3B427B2E8AF84900F1D202 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8B3B427C2E8AF84900F1D202 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8B3B427D2E8AF84900F1D202 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8B3B427E2E8AF84900F1D202 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8B3B427F2E8AF84900F1D202 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8B3B42802E8AF84900F1D202 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8B3B42812E8AF84900F1D202 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8B3B42822E8AF84900F1D202 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8B3B42832E8AF84900F1D202 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8B3B42842E8AF84900F1D202 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8B3B42852E8AF84900F1D202 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8B3B42862E8AF84900F1D202 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8B3B42872E8AF84900F1D202 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8B3B42882E8AF84900F1D202 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8B3B42892E8AF84900F1D202 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8B3B428A2E8AF84900F1D202 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8B3B428B2E8AF84900F1D202 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8B3B428C2E8AF84900F1D202 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8B3B428D2E8AF84900F1D202 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8B3B428E2E8AF84900F1D202 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8B3B428F2E8AF84900F1D202 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8B3B42902E8AF84900F1D202 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8B3B42912E8AF84900F1D202 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8B3B42952E8AF84900F1D202 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8B3B42972E8AF84900F1D202 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8B3B42982E8AF84900F1D202 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8B3B42992E8AF84900F1D202 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8B3B429A2E8AF84900F1D202 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8B3B429B2E8AF84900F1D202 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8B3B429C2E8AF84900F1D202 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8B3B429D2E8AF84900F1D202 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8B3B429E2E8AF84900F1D202 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8B3B429F2E8AF84900F1D202 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8B3B42A02E8AF84900F1D202 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8B3B42A12E8AF84900F1D202 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B3B42A22E8AF84900F1D202 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8B3B42A32E8AF84900F1D202 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B3B42A42E8AF84900F1D202 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8B3B42A52E8AF84900F1D202 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8B3B42A72E8AF84900F1D202 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8B3B42A82E8AF84900F1D202 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8B3B42AA2E8AF84900F1D202 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8B3B42AB2E8AF84900F1D202 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8B3B42AC2E8AF84900F1D202 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8B3B42AD2E8AF84900F1D202 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8B3B42AE2E8AF84900F1D202 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8B3B42AF2E8AF84900F1D202 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B3B42B02E8AF84900F1D202 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8B3B42B12E8AF84900F1D202 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8B3B42B22E8AF84900F1D202 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8B3B43352E8AF96000F1D202 /* 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 /* Dynamics2.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Dynamics2.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Dynamics2.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Dynamics2.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Dynamics2.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Dynamics2.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2Version.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 /* Dynamics2.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics2.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics2.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dynamics2.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 /* Dynamics2 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Dynamics2;
|
||||
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 = (
|
||||
8B3B42292E8AF84900F1D202 /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics2.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42292E8AF84900F1D202 /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B422A2E8AF84900F1D202 /* PublicUtility */,
|
||||
8B3B42922E8AF84900F1D202 /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B422A2E8AF84900F1D202 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B422B2E8AF84900F1D202 /* CAExtAudioFile.h */,
|
||||
8B3B422C2E8AF84900F1D202 /* CACFMachPort.h */,
|
||||
8B3B422D2E8AF84900F1D202 /* CABool.h */,
|
||||
8B3B422E2E8AF84900F1D202 /* CAComponent.cpp */,
|
||||
8B3B422F2E8AF84900F1D202 /* CADebugger.h */,
|
||||
8B3B42302E8AF84900F1D202 /* CACFNumber.cpp */,
|
||||
8B3B42312E8AF84900F1D202 /* CAGuard.h */,
|
||||
8B3B42322E8AF84900F1D202 /* CAAtomic.h */,
|
||||
8B3B42332E8AF84900F1D202 /* CAStreamBasicDescription.h */,
|
||||
8B3B42342E8AF84900F1D202 /* CACFObject.h */,
|
||||
8B3B42352E8AF84900F1D202 /* CAStreamRangedDescription.h */,
|
||||
8B3B42362E8AF84900F1D202 /* CATokenMap.h */,
|
||||
8B3B42372E8AF84900F1D202 /* CAComponent.h */,
|
||||
8B3B42382E8AF84900F1D202 /* CAAudioBufferList.h */,
|
||||
8B3B42392E8AF84900F1D202 /* CAAudioUnit.h */,
|
||||
8B3B423A2E8AF84900F1D202 /* CAAUParameter.h */,
|
||||
8B3B423B2E8AF84900F1D202 /* CAException.h */,
|
||||
8B3B423C2E8AF84900F1D202 /* CAAUProcessor.cpp */,
|
||||
8B3B423D2E8AF84900F1D202 /* CAAUProcessor.h */,
|
||||
8B3B423E2E8AF84900F1D202 /* CAProcess.h */,
|
||||
8B3B423F2E8AF84900F1D202 /* CACFDictionary.h */,
|
||||
8B3B42402E8AF84900F1D202 /* CAPThread.h */,
|
||||
8B3B42412E8AF84900F1D202 /* CAAUParameter.cpp */,
|
||||
8B3B42422E8AF84900F1D202 /* CAAudioTimeStamp.h */,
|
||||
8B3B42432E8AF84900F1D202 /* CAFilePathUtils.cpp */,
|
||||
8B3B42442E8AF84900F1D202 /* CAAudioValueRange.h */,
|
||||
8B3B42452E8AF84900F1D202 /* CAVectorUnitTypes.h */,
|
||||
8B3B42462E8AF84900F1D202 /* CAAudioChannelLayoutObject.cpp */,
|
||||
8B3B42472E8AF84900F1D202 /* CAGuard.cpp */,
|
||||
8B3B42482E8AF84900F1D202 /* CACFNumber.h */,
|
||||
8B3B42492E8AF84900F1D202 /* CACFDistributedNotification.cpp */,
|
||||
8B3B424A2E8AF84900F1D202 /* CACFString.h */,
|
||||
8B3B424B2E8AF84900F1D202 /* CAAUMIDIMapManager.cpp */,
|
||||
8B3B424C2E8AF84900F1D202 /* CAComponentDescription.cpp */,
|
||||
8B3B424D2E8AF84900F1D202 /* CAHostTimeBase.h */,
|
||||
8B3B424E2E8AF84900F1D202 /* CADebugMacros.cpp */,
|
||||
8B3B424F2E8AF84900F1D202 /* CAAudioFileFormats.h */,
|
||||
8B3B42502E8AF84900F1D202 /* CAAUMIDIMapManager.h */,
|
||||
8B3B42512E8AF84900F1D202 /* CACFDictionary.cpp */,
|
||||
8B3B42522E8AF84900F1D202 /* CAMutex.h */,
|
||||
8B3B42532E8AF84900F1D202 /* CACFString.cpp */,
|
||||
8B3B42542E8AF84900F1D202 /* CASettingsStorage.h */,
|
||||
8B3B42552E8AF84900F1D202 /* CADebugPrintf.h */,
|
||||
8B3B42562E8AF84900F1D202 /* CAXException.cpp */,
|
||||
8B3B42572E8AF84900F1D202 /* CAAUMIDIMap.h */,
|
||||
8B3B42582E8AF84900F1D202 /* AUParamInfo.h */,
|
||||
8B3B42592E8AF84900F1D202 /* CABitOperations.h */,
|
||||
8B3B425A2E8AF84900F1D202 /* CACFPreferences.cpp */,
|
||||
8B3B425B2E8AF84900F1D202 /* CABundleLocker.h */,
|
||||
8B3B425C2E8AF84900F1D202 /* CAPropertyAddress.h */,
|
||||
8B3B425D2E8AF84900F1D202 /* CAXException.h */,
|
||||
8B3B425E2E8AF84900F1D202 /* CAAudioChannelLayout.cpp */,
|
||||
8B3B425F2E8AF84900F1D202 /* CAThreadSafeList.h */,
|
||||
8B3B42602E8AF84900F1D202 /* CAAudioUnitOutputCapturer.h */,
|
||||
8B3B42612E8AF84900F1D202 /* AUParamInfo.cpp */,
|
||||
8B3B42622E8AF84900F1D202 /* CASharedLibrary.cpp */,
|
||||
8B3B42632E8AF84900F1D202 /* CAAUMIDIMap.cpp */,
|
||||
8B3B42642E8AF84900F1D202 /* CALogMacros.h */,
|
||||
8B3B42652E8AF84900F1D202 /* CACFMessagePort.cpp */,
|
||||
8B3B42662E8AF84900F1D202 /* CARingBuffer.h */,
|
||||
8B3B42672E8AF84900F1D202 /* AUOutputBL.cpp */,
|
||||
8B3B42682E8AF84900F1D202 /* CABufferList.h */,
|
||||
8B3B42692E8AF84900F1D202 /* CASharedLibrary.h */,
|
||||
8B3B426A2E8AF84900F1D202 /* CACFData.h */,
|
||||
8B3B426B2E8AF84900F1D202 /* CAStreamRangedDescription.cpp */,
|
||||
8B3B426C2E8AF84900F1D202 /* CAPThread.cpp */,
|
||||
8B3B426D2E8AF84900F1D202 /* CAAutoDisposer.h */,
|
||||
8B3B426E2E8AF84900F1D202 /* CACFPreferences.h */,
|
||||
8B3B426F2E8AF84900F1D202 /* CAVectorUnit.cpp */,
|
||||
8B3B42702E8AF84900F1D202 /* CAComponentDescription.h */,
|
||||
8B3B42712E8AF84900F1D202 /* CADebugMacros.h */,
|
||||
8B3B42722E8AF84900F1D202 /* AUOutputBL.h */,
|
||||
8B3B42732E8AF84900F1D202 /* CADebugPrintf.cpp */,
|
||||
8B3B42742E8AF84900F1D202 /* CARingBuffer.cpp */,
|
||||
8B3B42752E8AF84900F1D202 /* CACFPlugIn.h */,
|
||||
8B3B42762E8AF84900F1D202 /* CASettingsStorage.cpp */,
|
||||
8B3B42772E8AF84900F1D202 /* CAMixMap.h */,
|
||||
8B3B42782E8AF84900F1D202 /* CACFDistributedNotification.h */,
|
||||
8B3B42792E8AF84900F1D202 /* CAFilePathUtils.h */,
|
||||
8B3B427A2E8AF84900F1D202 /* CATink.h */,
|
||||
8B3B427B2E8AF84900F1D202 /* CAStreamBasicDescription.cpp */,
|
||||
8B3B427C2E8AF84900F1D202 /* CAAudioChannelLayout.h */,
|
||||
8B3B427D2E8AF84900F1D202 /* CAProcess.cpp */,
|
||||
8B3B427E2E8AF84900F1D202 /* CAHostTimeBase.cpp */,
|
||||
8B3B427F2E8AF84900F1D202 /* CAPersistence.cpp */,
|
||||
8B3B42802E8AF84900F1D202 /* CAAudioBufferList.cpp */,
|
||||
8B3B42812E8AF84900F1D202 /* CAAudioTimeStamp.cpp */,
|
||||
8B3B42822E8AF84900F1D202 /* CAVectorUnit.h */,
|
||||
8B3B42832E8AF84900F1D202 /* CAByteOrder.h */,
|
||||
8B3B42842E8AF84900F1D202 /* CACFArray.h */,
|
||||
8B3B42852E8AF84900F1D202 /* CAAtomicStack.h */,
|
||||
8B3B42862E8AF84900F1D202 /* CAReferenceCounted.h */,
|
||||
8B3B42872E8AF84900F1D202 /* CACFMachPort.cpp */,
|
||||
8B3B42882E8AF84900F1D202 /* CABufferList.cpp */,
|
||||
8B3B42892E8AF84900F1D202 /* CAMutex.cpp */,
|
||||
8B3B428A2E8AF84900F1D202 /* CADebugger.cpp */,
|
||||
8B3B428B2E8AF84900F1D202 /* CABundleLocker.cpp */,
|
||||
8B3B428C2E8AF84900F1D202 /* CAAudioFileFormats.cpp */,
|
||||
8B3B428D2E8AF84900F1D202 /* CAMath.h */,
|
||||
8B3B428E2E8AF84900F1D202 /* CACFArray.cpp */,
|
||||
8B3B428F2E8AF84900F1D202 /* CACFMessagePort.h */,
|
||||
8B3B42902E8AF84900F1D202 /* CAAudioValueRange.cpp */,
|
||||
8B3B42912E8AF84900F1D202 /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42922E8AF84900F1D202 /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42932E8AF84900F1D202 /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42932E8AF84900F1D202 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42942E8AF84900F1D202 /* AUViewBase */,
|
||||
8B3B42962E8AF84900F1D202 /* AUBase */,
|
||||
8B3B42A62E8AF84900F1D202 /* OtherBases */,
|
||||
8B3B42A92E8AF84900F1D202 /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42942E8AF84900F1D202 /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42952E8AF84900F1D202 /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42962E8AF84900F1D202 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42972E8AF84900F1D202 /* ComponentBase.cpp */,
|
||||
8B3B42982E8AF84900F1D202 /* AUScopeElement.cpp */,
|
||||
8B3B42992E8AF84900F1D202 /* ComponentBase.h */,
|
||||
8B3B429A2E8AF84900F1D202 /* AUBase.cpp */,
|
||||
8B3B429B2E8AF84900F1D202 /* AUInputElement.h */,
|
||||
8B3B429C2E8AF84900F1D202 /* AUBase.h */,
|
||||
8B3B429D2E8AF84900F1D202 /* AUPlugInDispatch.h */,
|
||||
8B3B429E2E8AF84900F1D202 /* AUDispatch.h */,
|
||||
8B3B429F2E8AF84900F1D202 /* AUOutputElement.cpp */,
|
||||
8B3B42A02E8AF84900F1D202 /* AUResources.r */,
|
||||
8B3B42A12E8AF84900F1D202 /* AUPlugInDispatch.cpp */,
|
||||
8B3B42A22E8AF84900F1D202 /* AUOutputElement.h */,
|
||||
8B3B42A32E8AF84900F1D202 /* AUDispatch.cpp */,
|
||||
8B3B42A42E8AF84900F1D202 /* AUScopeElement.h */,
|
||||
8B3B42A52E8AF84900F1D202 /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42A62E8AF84900F1D202 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42A72E8AF84900F1D202 /* AUEffectBase.cpp */,
|
||||
8B3B42A82E8AF84900F1D202 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B3B42A92E8AF84900F1D202 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B3B42AA2E8AF84900F1D202 /* AUTimestampGenerator.h */,
|
||||
8B3B42AB2E8AF84900F1D202 /* AUBaseHelper.cpp */,
|
||||
8B3B42AC2E8AF84900F1D202 /* AUSilentTimeout.h */,
|
||||
8B3B42AD2E8AF84900F1D202 /* AUInputFormatConverter.h */,
|
||||
8B3B42AE2E8AF84900F1D202 /* AUTimestampGenerator.cpp */,
|
||||
8B3B42AF2E8AF84900F1D202 /* AUBuffer.cpp */,
|
||||
8B3B42B02E8AF84900F1D202 /* AUMIDIDefs.h */,
|
||||
8B3B42B12E8AF84900F1D202 /* AUBuffer.h */,
|
||||
8B3B42B22E8AF84900F1D202 /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Dynamics2.h */,
|
||||
8BA05A660720730100365D66 /* Dynamics2.cpp */,
|
||||
8BA05A670720730100365D66 /* Dynamics2.exp */,
|
||||
8BA05A680720730100365D66 /* Dynamics2.r */,
|
||||
8BA05A690720730100365D66 /* Dynamics2Version.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B3B42E32E8AF84A00F1D202 /* CABundleLocker.h in Headers */,
|
||||
8B3B43042E8AF84A00F1D202 /* CAAudioChannelLayout.h in Headers */,
|
||||
8B3B42FA2E8AF84A00F1D202 /* AUOutputBL.h in Headers */,
|
||||
8B3B42D52E8AF84A00F1D202 /* CAHostTimeBase.h in Headers */,
|
||||
8B3B431D2E8AF84A00F1D202 /* ComponentBase.h in Headers */,
|
||||
8B3B430D2E8AF84A00F1D202 /* CAAtomicStack.h in Headers */,
|
||||
8B3B42CA2E8AF84A00F1D202 /* CAAudioTimeStamp.h in Headers */,
|
||||
8B3B42E72E8AF84A00F1D202 /* CAThreadSafeList.h in Headers */,
|
||||
8B3B42C22E8AF84A00F1D202 /* CAAUParameter.h in Headers */,
|
||||
8B3B43342E8AF84A00F1D202 /* AUBaseHelper.h in Headers */,
|
||||
8B3B432C2E8AF84A00F1D202 /* AUTimestampGenerator.h in Headers */,
|
||||
8B3B42DD2E8AF84A00F1D202 /* CADebugPrintf.h in Headers */,
|
||||
8B3B43172E8AF84A00F1D202 /* CACFMessagePort.h in Headers */,
|
||||
8B3B42C52E8AF84A00F1D202 /* CAAUProcessor.h in Headers */,
|
||||
8B3B42C12E8AF84A00F1D202 /* CAAudioUnit.h in Headers */,
|
||||
8B3B431A2E8AF84A00F1D202 /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8B3B43002E8AF84A00F1D202 /* CACFDistributedNotification.h in Headers */,
|
||||
8B3B42BF2E8AF84A00F1D202 /* CAComponent.h in Headers */,
|
||||
8B3B42CD2E8AF84A00F1D202 /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* Dynamics2Version.h in Headers */,
|
||||
8B3B43012E8AF84A00F1D202 /* CAFilePathUtils.h in Headers */,
|
||||
8B3B42C32E8AF84A00F1D202 /* CAException.h in Headers */,
|
||||
8B3B42BA2E8AF84A00F1D202 /* CAAtomic.h in Headers */,
|
||||
8B3B42B92E8AF84A00F1D202 /* CAGuard.h in Headers */,
|
||||
8B3B431F2E8AF84A00F1D202 /* AUInputElement.h in Headers */,
|
||||
8B3B42F62E8AF84A00F1D202 /* CACFPreferences.h in Headers */,
|
||||
8B3B430B2E8AF84A00F1D202 /* CAByteOrder.h in Headers */,
|
||||
8B3B42EE2E8AF84A00F1D202 /* CARingBuffer.h in Headers */,
|
||||
8B3B42B52E8AF84900F1D202 /* CABool.h in Headers */,
|
||||
8B3B42DA2E8AF84A00F1D202 /* CAMutex.h in Headers */,
|
||||
8B3B43202E8AF84A00F1D202 /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* Dynamics2.h in Headers */,
|
||||
8B3B42D22E8AF84A00F1D202 /* CACFString.h in Headers */,
|
||||
8B3B42F12E8AF84A00F1D202 /* CASharedLibrary.h in Headers */,
|
||||
8B3B42BE2E8AF84A00F1D202 /* CATokenMap.h in Headers */,
|
||||
8B3B42B32E8AF84900F1D202 /* CAExtAudioFile.h in Headers */,
|
||||
8B3B42C82E8AF84A00F1D202 /* CAPThread.h in Headers */,
|
||||
8B3B42E42E8AF84A00F1D202 /* CAPropertyAddress.h in Headers */,
|
||||
8B3B430E2E8AF84A00F1D202 /* CAReferenceCounted.h in Headers */,
|
||||
8B3B43332E8AF84A00F1D202 /* AUBuffer.h in Headers */,
|
||||
8B3B43152E8AF84A00F1D202 /* CAMath.h in Headers */,
|
||||
8B3B42F52E8AF84A00F1D202 /* CAAutoDisposer.h in Headers */,
|
||||
8B3B42BC2E8AF84A00F1D202 /* CACFObject.h in Headers */,
|
||||
8B3B42DC2E8AF84A00F1D202 /* CASettingsStorage.h in Headers */,
|
||||
8B3B42E52E8AF84A00F1D202 /* CAXException.h in Headers */,
|
||||
8B3B43022E8AF84A00F1D202 /* CATink.h in Headers */,
|
||||
8B3B432F2E8AF84A00F1D202 /* AUInputFormatConverter.h in Headers */,
|
||||
8B3B430A2E8AF84A00F1D202 /* CAVectorUnit.h in Headers */,
|
||||
8B3B42C62E8AF84A00F1D202 /* CAProcess.h in Headers */,
|
||||
8B3B42CC2E8AF84A00F1D202 /* CAAudioValueRange.h in Headers */,
|
||||
8B3B42E12E8AF84A00F1D202 /* CABitOperations.h in Headers */,
|
||||
8B3B42D72E8AF84A00F1D202 /* CAAudioFileFormats.h in Headers */,
|
||||
8B3B42D02E8AF84A00F1D202 /* CACFNumber.h in Headers */,
|
||||
8B3B42E82E8AF84A00F1D202 /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8B3B42F92E8AF84A00F1D202 /* CADebugMacros.h in Headers */,
|
||||
8B3B43322E8AF84A00F1D202 /* AUMIDIDefs.h in Headers */,
|
||||
8B3B42F22E8AF84A00F1D202 /* CACFData.h in Headers */,
|
||||
8B3B42BB2E8AF84A00F1D202 /* CAStreamBasicDescription.h in Headers */,
|
||||
8B3B43212E8AF84A00F1D202 /* AUPlugInDispatch.h in Headers */,
|
||||
8B3B42BD2E8AF84A00F1D202 /* CAStreamRangedDescription.h in Headers */,
|
||||
8B3B42FD2E8AF84A00F1D202 /* CACFPlugIn.h in Headers */,
|
||||
8B3B42C02E8AF84A00F1D202 /* CAAudioBufferList.h in Headers */,
|
||||
8B3B42D82E8AF84A00F1D202 /* CAAUMIDIMapManager.h in Headers */,
|
||||
8B3B432B2E8AF84A00F1D202 /* AUEffectBase.h in Headers */,
|
||||
8B3B42C72E8AF84A00F1D202 /* CACFDictionary.h in Headers */,
|
||||
8B3B43282E8AF84A00F1D202 /* AUScopeElement.h in Headers */,
|
||||
8B3B42F82E8AF84A00F1D202 /* CAComponentDescription.h in Headers */,
|
||||
8B3B432E2E8AF84A00F1D202 /* AUSilentTimeout.h in Headers */,
|
||||
8B3B42F02E8AF84A00F1D202 /* CABufferList.h in Headers */,
|
||||
8B3B43222E8AF84A00F1D202 /* AUDispatch.h in Headers */,
|
||||
8B3B43262E8AF84A00F1D202 /* AUOutputElement.h in Headers */,
|
||||
8B3B42EC2E8AF84A00F1D202 /* CALogMacros.h in Headers */,
|
||||
8B3B42E02E8AF84A00F1D202 /* AUParamInfo.h in Headers */,
|
||||
8B3B42FF2E8AF84A00F1D202 /* CAMixMap.h in Headers */,
|
||||
8B3B430C2E8AF84A00F1D202 /* CACFArray.h in Headers */,
|
||||
8B3B42B42E8AF84900F1D202 /* CACFMachPort.h in Headers */,
|
||||
8B3B42DF2E8AF84A00F1D202 /* CAAUMIDIMap.h in Headers */,
|
||||
8B3B42B72E8AF84900F1D202 /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Dynamics2" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Dynamics2;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Dynamics2;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Dynamics2.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 "Dynamics2" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
fr,
|
||||
Base,
|
||||
ja,
|
||||
de,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Dynamics2 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics2 */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8B3B42EF2E8AF84A00F1D202 /* AUOutputBL.cpp in Sources */,
|
||||
8B3B43142E8AF84A00F1D202 /* CAAudioFileFormats.cpp in Sources */,
|
||||
8B3B43062E8AF84A00F1D202 /* CAHostTimeBase.cpp in Sources */,
|
||||
8B3B42DE2E8AF84A00F1D202 /* CAXException.cpp in Sources */,
|
||||
8B3B43082E8AF84A00F1D202 /* CAAudioBufferList.cpp in Sources */,
|
||||
8B3B42CB2E8AF84A00F1D202 /* CAFilePathUtils.cpp in Sources */,
|
||||
8B3B42C92E8AF84A00F1D202 /* CAAUParameter.cpp in Sources */,
|
||||
8B3B42EB2E8AF84A00F1D202 /* CAAUMIDIMap.cpp in Sources */,
|
||||
8B3B43182E8AF84A00F1D202 /* CAAudioValueRange.cpp in Sources */,
|
||||
8B3B43272E8AF84A00F1D202 /* AUDispatch.cpp in Sources */,
|
||||
8B3B42E22E8AF84A00F1D202 /* CACFPreferences.cpp in Sources */,
|
||||
8B3B43252E8AF84A00F1D202 /* AUPlugInDispatch.cpp in Sources */,
|
||||
8B3B42C42E8AF84A00F1D202 /* CAAUProcessor.cpp in Sources */,
|
||||
8B3B42D92E8AF84A00F1D202 /* CACFDictionary.cpp in Sources */,
|
||||
8B3B432D2E8AF84A00F1D202 /* AUBaseHelper.cpp in Sources */,
|
||||
8B3B43122E8AF84A00F1D202 /* CADebugger.cpp in Sources */,
|
||||
8B3B42E62E8AF84A00F1D202 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8B3B42E92E8AF84A00F1D202 /* AUParamInfo.cpp in Sources */,
|
||||
8B3B43072E8AF84A00F1D202 /* CAPersistence.cpp in Sources */,
|
||||
8B3B42FB2E8AF84A00F1D202 /* CADebugPrintf.cpp in Sources */,
|
||||
8B3B43302E8AF84A00F1D202 /* AUTimestampGenerator.cpp in Sources */,
|
||||
8B3B43032E8AF84A00F1D202 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8B3B42D32E8AF84A00F1D202 /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8B3B42FE2E8AF84A00F1D202 /* CASettingsStorage.cpp in Sources */,
|
||||
8B3B43232E8AF84A00F1D202 /* AUOutputElement.cpp in Sources */,
|
||||
8B3B42CF2E8AF84A00F1D202 /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* Dynamics2.cpp in Sources */,
|
||||
8B3B43112E8AF84A00F1D202 /* CAMutex.cpp in Sources */,
|
||||
8B3B432A2E8AF84A00F1D202 /* AUEffectBase.cpp in Sources */,
|
||||
8B3B430F2E8AF84A00F1D202 /* CACFMachPort.cpp in Sources */,
|
||||
8B3B431E2E8AF84A00F1D202 /* AUBase.cpp in Sources */,
|
||||
8B3B42EA2E8AF84A00F1D202 /* CASharedLibrary.cpp in Sources */,
|
||||
8B3B42D12E8AF84A00F1D202 /* CACFDistributedNotification.cpp in Sources */,
|
||||
8B3B42D42E8AF84A00F1D202 /* CAComponentDescription.cpp in Sources */,
|
||||
8B3B42DB2E8AF84A00F1D202 /* CACFString.cpp in Sources */,
|
||||
8B3B431B2E8AF84A00F1D202 /* ComponentBase.cpp in Sources */,
|
||||
8B3B42FC2E8AF84A00F1D202 /* CARingBuffer.cpp in Sources */,
|
||||
8B3B431C2E8AF84A00F1D202 /* AUScopeElement.cpp in Sources */,
|
||||
8B3B43192E8AF84A00F1D202 /* CAAudioUnit.cpp in Sources */,
|
||||
8B3B43162E8AF84A00F1D202 /* CACFArray.cpp in Sources */,
|
||||
8B3B43132E8AF84A00F1D202 /* CABundleLocker.cpp in Sources */,
|
||||
8B3B43052E8AF84A00F1D202 /* CAProcess.cpp in Sources */,
|
||||
8B3B42F32E8AF84A00F1D202 /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8B3B42F42E8AF84A00F1D202 /* CAPThread.cpp in Sources */,
|
||||
8B3B42B62E8AF84900F1D202 /* CAComponent.cpp in Sources */,
|
||||
8B3B42CE2E8AF84A00F1D202 /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8B3B43092E8AF84A00F1D202 /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8B3B43102E8AF84A00F1D202 /* CABufferList.cpp in Sources */,
|
||||
8B3B42ED2E8AF84A00F1D202 /* CACFMessagePort.cpp in Sources */,
|
||||
8B3B42F72E8AF84A00F1D202 /* CAVectorUnit.cpp in Sources */,
|
||||
8B3B43292E8AF84A00F1D202 /* AUInputElement.cpp in Sources */,
|
||||
8B3B43312E8AF84A00F1D202 /* AUBuffer.cpp in Sources */,
|
||||
8B3B42D62E8AF84A00F1D202 /* CADebugMacros.cpp in Sources */,
|
||||
8B3B42B82E8AF84900F1D202 /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8B3B43352E8AF96000F1D202 /* 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 = Dynamics2.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 = Dynamics2;
|
||||
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 = Dynamics2.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 = Dynamics2;
|
||||
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 "Dynamics2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Dynamics2" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
7
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
plugins/MacSignedAU/Dynamics2/Dynamics2.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
@ -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>
|
||||
Binary file not shown.
|
|
@ -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 = "Dynamics2.component"
|
||||
BlueprintName = "Dynamics2"
|
||||
ReferencedContainer = "container:Dynamics2.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 = "Dynamics2.component"
|
||||
BlueprintName = "Dynamics2"
|
||||
ReferencedContainer = "container:Dynamics2.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
|
|
@ -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>Dynamics2.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>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue