mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-21 06:46:21 -06:00
PurestDualPan
This commit is contained in:
parent
bfff4df7e6
commit
c357ed8bca
286 changed files with 53993 additions and 25943 deletions
|
|
@ -250,7 +250,7 @@ ComponentResult ConsoleHBuss::Reset(AudioUnitScope inScope, AudioUnitElement in
|
|||
//SmoothEQ3
|
||||
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompF[bez_cycle] = 1.0;
|
||||
bezCompS[bez_cycle] = 1.0;
|
||||
//Dynamics2
|
||||
|
||||
|
|
@ -303,35 +303,45 @@ OSStatus ConsoleHBuss::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
double bassGain = (GetParameter( kParam_LOW )-0.5)*2.0;
|
||||
bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain));
|
||||
//separate from filtering stage, this is amplitude, centered on 1.0 unity gain
|
||||
double highCoef = 0.0;
|
||||
double lowCoef = 0.0;
|
||||
double omega = 0.0;
|
||||
double biqK = 0.0;
|
||||
double norm = 0.0;
|
||||
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
double omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
double biqK = 2.0 - cos(omega);
|
||||
double highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
double lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
bool eqOff = (trebleGain == 1.0 && midGain == 1.0 && bassGain == 1.0);
|
||||
//we get to completely bypass EQ if we're truly not using it. The mechanics of it mean that
|
||||
//it cancels out to bit-identical anyhow, but we get to skip the calculation
|
||||
if (!eqOff) {
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_THR ), 6.0) * 8.0;
|
||||
|
|
@ -522,101 +532,79 @@ OSStatus ConsoleHBuss::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
} else lowpass[hilp_cR1] = lowpass[hilp_cR2] = lowpass[hilp_cL1] = lowpass[hilp_cL2] = 0.0;
|
||||
//another stage of Highpass/Lowpass before bringing in the parametric bands
|
||||
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
inputSampleL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
|
||||
double trebleFastR = inputSampleR;
|
||||
outSample = (trebleFastR * highFast[biq_a0]) + highFast[biq_sR1];
|
||||
highFast[biq_sR1] = (trebleFastR * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sR2];
|
||||
highFast[biq_sR2] = (trebleFastR * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastR = outSample; trebleFastR -= midFastR;
|
||||
outSample = (midFastR * lowFast[biq_a0]) + lowFast[biq_sR1];
|
||||
lowFast[biq_sR1] = (midFastR * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sR2];
|
||||
lowFast[biq_sR2] = (midFastR * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastR = outSample; midFastR -= bassFastR;
|
||||
trebleFastR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastRIIR = (highFastRIIR*highCoef) + (trebleFastR*(1.0-highCoef));
|
||||
midFastR = highFastRIIR; trebleFastR -= midFastR;
|
||||
lowFastRIIR = (lowFastRIIR*lowCoef) + (midFastR*(1.0-lowCoef));
|
||||
bassFastR = lowFastRIIR; midFastR -= bassFastR;
|
||||
inputSampleR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
if (!eqOff) {
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
inputSampleL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
double trebleFastR = inputSampleR;
|
||||
outSample = (trebleFastR * highFast[biq_a0]) + highFast[biq_sR1];
|
||||
highFast[biq_sR1] = (trebleFastR * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sR2];
|
||||
highFast[biq_sR2] = (trebleFastR * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastR = outSample; trebleFastR -= midFastR;
|
||||
outSample = (midFastR * lowFast[biq_a0]) + lowFast[biq_sR1];
|
||||
lowFast[biq_sR1] = (midFastR * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sR2];
|
||||
lowFast[biq_sR2] = (midFastR * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastR = outSample; midFastR -= bassFastR;
|
||||
trebleFastR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastRIIR = (highFastRIIR*highCoef) + (trebleFastR*(1.0-highCoef));
|
||||
midFastR = highFastRIIR; trebleFastR -= midFastR;
|
||||
lowFastRIIR = (lowFastRIIR*lowCoef) + (midFastR*(1.0-lowCoef));
|
||||
bassFastR = lowFastRIIR; midFastR -= bassFastR;
|
||||
inputSampleR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
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;
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
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;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 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));
|
||||
//Dynamics2
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_Ctrl] += (fmax(fabs(inputSampleL),fabs(inputSampleR)) * bezRez);
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
bezCompF[bez_C] = bezCompF[bez_B];
|
||||
bezCompF[bez_B] = bezCompF[bez_A];
|
||||
bezCompF[bez_A] = bezCompF[bez_Ctrl];
|
||||
bezCompF[bez_Ctrl] = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_Ctrl] += (fmax(fabs(inputSampleL),fabs(inputSampleR)) * sloRez);
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
bezCompS[bez_C] = bezCompS[bez_B];
|
||||
bezCompS[bez_B] = bezCompS[bez_A];
|
||||
bezCompS[bez_A] = bezCompS[bez_Ctrl];
|
||||
bezCompS[bez_Ctrl] = 0.0;
|
||||
}
|
||||
double CBF = (bezCompF[bez_C]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_B]*bezCompF[bez_cycle]);
|
||||
double BAF = (bezCompF[bez_B]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_A]*bezCompF[bez_cycle]);
|
||||
double CBAF = (bezCompF[bez_B]+(CBF*(1.0-bezCompF[bez_cycle]))+(BAF*bezCompF[bez_cycle]))*0.5;
|
||||
double CBS = (bezCompS[bez_C]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_B]*bezCompS[bez_cycle]);
|
||||
double BAS = (bezCompS[bez_B]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_A]*bezCompS[bez_cycle]);
|
||||
double CBAS = (bezCompS[bez_B]+(CBS*(1.0-bezCompS[bez_cycle]))+(BAS*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBAS,CBAF); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBAS*-CBAMax)+(CBAF*CBAMax)+1.0)*0.5;
|
||||
inputSampleL *= 1.0-(fmin(((CBAS*(1.0-CBAFade))+(CBAF*CBAFade))*bezCThresh,1.0));
|
||||
inputSampleR *= 1.0-(fmin(((CBAS*(1.0-CBAFade))+(CBAF*CBAFade))*bezCThresh,1.0));
|
||||
} else {bezCompF[bez_Ctrl] = 0.0; bezCompS[bez_Ctrl] = 0.0;}
|
||||
//Dynamics2 custom version for buss
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_e0])+highpass[hilp_eL1];
|
||||
|
|
@ -679,47 +667,39 @@ OSStatus ConsoleHBuss::ProcessBufferLists(AudioUnitRenderActionFlags & ioAction
|
|||
darkSampleL /= 2.0; darkSampleR /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
double avgSlewL = fmin(lastSlewL*lastSlewL*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223);
|
||||
lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR;
|
||||
double avgSlewR = fmin(lastSlewR,1.0);
|
||||
double avgSlewR = fmin(lastSlewR*lastSlewR*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR);
|
||||
|
||||
//begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
inputSampleL *= 0.92;
|
||||
//end TapeHack section
|
||||
inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596);
|
||||
long double X = inputSampleL * inputSampleL;
|
||||
long double sat = inputSampleL * X;
|
||||
inputSampleL -= (sat*0.125); sat *= X;
|
||||
inputSampleL += (sat*0.0078125); sat *= X;
|
||||
inputSampleL -= (sat*0.000244140625); sat *= X;
|
||||
inputSampleL += (sat*0.000003814697265625); sat *= X;
|
||||
inputSampleL -= (sat*0.0000000298023223876953125); sat *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
|
||||
//begin TapeHack section
|
||||
inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908);
|
||||
addtwo = inputSampleR * inputSampleR;
|
||||
empower = inputSampleR * addtwo; // inputSampleR to the third power
|
||||
inputSampleR -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleR += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleR -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleR += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleR -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
inputSampleR *= 0.92;
|
||||
//end TapeHack section
|
||||
inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596);
|
||||
X = inputSampleR * inputSampleR;
|
||||
sat = inputSampleR * X;
|
||||
inputSampleR -= (sat*0.125); sat *= X;
|
||||
inputSampleR += (sat*0.0078125); sat *= X;
|
||||
inputSampleR -= (sat*0.000244140625); sat *= X;
|
||||
inputSampleR += (sat*0.000003814697265625); sat *= X;
|
||||
inputSampleR -= (sat*0.0000000298023223876953125); sat *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
|
||||
//we are leaving it as a clip that will go over 0dB.
|
||||
//it is a softclip so it will give you a more forgiving experience,
|
||||
//but you are meant to not drive the softclip for just level.
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
|
|
|
|||
|
|
@ -161,25 +161,16 @@ public:
|
|||
//SmoothEQ3
|
||||
|
||||
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_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
//Dynamics2
|
||||
//Dynamics2 custom for buss
|
||||
|
||||
enum {
|
||||
hilp_freq, hilp_temp,
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -405,10 +405,10 @@ ComponentResult ConsoleHChannel::Reset(AudioUnitScope inScope, AudioUnitElement
|
|||
}
|
||||
//HipCrush with four bands
|
||||
|
||||
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;
|
||||
//Dynamics2
|
||||
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
|
||||
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
|
||||
bezGate = 2.0;
|
||||
//Dynamics3
|
||||
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPositionL[count] = 0.0;
|
||||
|
|
@ -477,6 +477,7 @@ OSStatus ConsoleHChannel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double moreTapeHack = (GetParameter( kParam_MOR )*2.0)+1.0;
|
||||
bool tapehackOff = (GetParameter( kParam_MOR ) == 0.0);
|
||||
switch ((int)GetParameter( kParam_TRM )){
|
||||
case 0: moreTapeHack *= 0.5; break;
|
||||
case 1: break;
|
||||
|
|
@ -494,110 +495,123 @@ OSStatus ConsoleHChannel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
double bassGain = (GetParameter( kParam_LOW )-0.5)*2.0;
|
||||
bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain));
|
||||
//separate from filtering stage, this is amplitude, centered on 1.0 unity gain
|
||||
double highCoef = 0.0;
|
||||
double lowCoef = 0.0;
|
||||
double omega = 0.0;
|
||||
double biqK = 0.0;
|
||||
double norm = 0.0;
|
||||
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
double omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
double biqK = 2.0 - cos(omega);
|
||||
double highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
double lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
bool eqOff = (trebleGain == 1.0 && midGain == 1.0 && bassGain == 1.0);
|
||||
//we get to completely bypass EQ if we're truly not using it. The mechanics of it mean that
|
||||
//it cancels out to bit-identical anyhow, but we get to skip the calculation
|
||||
if (!eqOff) {
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),2.0)*16000.0)+1000.0)/GetSampleRate());
|
||||
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
|
||||
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
|
||||
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
|
||||
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * high[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_a0] = biqK / (high[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
high[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_b2] = (1.0 - biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_c0] = biqK / (high[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
high[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_d2] = (1.0 - biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//high
|
||||
|
||||
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3.0)*7000.0)+300.0)/GetSampleRate());
|
||||
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
|
||||
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
|
||||
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
|
||||
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * hmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_a0] = biqK / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
hmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_b2] = (1.0 - biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_c0] = biqK / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
hmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_d2] = (1.0 - biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//hmid
|
||||
|
||||
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3.0)*3000.0)+40.0)/GetSampleRate());
|
||||
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
|
||||
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
|
||||
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
|
||||
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * lmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_a0] = biqK / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
lmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_b2] = (1.0 - biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_c0] = biqK / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
lmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_d2] = (1.0 - biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//lmid
|
||||
|
||||
bass[biqs_freq] = (((pow(GetParameter( kParam_BSF ),4.0)*1000.0)+20.0)/GetSampleRate());
|
||||
if (bass[biqs_freq] < 0.00001) bass[biqs_freq] = 0.00001;
|
||||
bass[biqs_bit] = (GetParameter( kParam_BSB )*2.0)-1.0;
|
||||
bass[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_BSG ),2.0))*1.618033988749894848204586;
|
||||
bass[biqs_reso] = pow(GetParameter( kParam_BSG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * bass[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_a0] = biqK / (bass[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
bass[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_b2] = (1.0 - biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_c0] = biqK / (bass[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
bass[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_d2] = (1.0 - biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//bass
|
||||
double crossFade = GetParameter( kParam_CRS );
|
||||
bool hipcrushOff = (crossFade == 0.0);
|
||||
if (!hipcrushOff) {
|
||||
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),2.0)*16000.0)+1000.0)/GetSampleRate());
|
||||
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
|
||||
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
|
||||
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
|
||||
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * high[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_a0] = biqK / (high[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
high[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_b2] = (1.0 - biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_c0] = biqK / (high[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
high[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_d2] = (1.0 - biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//high
|
||||
|
||||
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3.0)*7000.0)+300.0)/GetSampleRate());
|
||||
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
|
||||
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
|
||||
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
|
||||
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * hmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_a0] = biqK / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
hmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_b2] = (1.0 - biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_c0] = biqK / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
hmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_d2] = (1.0 - biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//hmid
|
||||
|
||||
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3.0)*3000.0)+40.0)/GetSampleRate());
|
||||
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
|
||||
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
|
||||
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
|
||||
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * lmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_a0] = biqK / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
lmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_b2] = (1.0 - biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_c0] = biqK / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
lmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_d2] = (1.0 - biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//lmid
|
||||
|
||||
bass[biqs_freq] = (((pow(GetParameter( kParam_BSF ),4.0)*1000.0)+20.0)/GetSampleRate());
|
||||
if (bass[biqs_freq] < 0.00001) bass[biqs_freq] = 0.00001;
|
||||
bass[biqs_bit] = (GetParameter( kParam_BSB )*2.0)-1.0;
|
||||
bass[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_BSG ),2.0))*1.618033988749894848204586;
|
||||
bass[biqs_reso] = pow(GetParameter( kParam_BSG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * bass[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_a0] = biqK / (bass[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
bass[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_b2] = (1.0 - biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_c0] = biqK / (bass[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
bass[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_d2] = (1.0 - biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//bass
|
||||
}
|
||||
//HipCrush with four bands
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_THR ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_ATK ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_RLS ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
double bezThresh = pow(1.0-GetParameter( kParam_THR ), 4.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_ATK ), 4.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_RLS ), 4.0) / overallscale;
|
||||
double gate = pow(GetParameter( kParam_GAT ),4.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_GAT ),4.0),sqrt(bezCThresh+1.0));
|
||||
//Dynamics2
|
||||
sloRez = fmin(fmax(sloRez,0.0001),1.0);
|
||||
//Dynamics3
|
||||
|
||||
lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_LOP ),0.002),overallscale); //the lowpass
|
||||
hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_HIP ),overallscale+2.0); //the highpass
|
||||
|
|
@ -613,393 +627,359 @@ OSStatus ConsoleHChannel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
double darkSampleL = inputSampleL;
|
||||
double darkSampleR = inputSampleR;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];}
|
||||
darkSampleL /= 32.0; darkSampleR /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];}
|
||||
darkSampleL /= 16.0; darkSampleR /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];}
|
||||
darkSampleL /= 8.0; darkSampleR /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];}
|
||||
darkSampleL /= 4.0; darkSampleR /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];}
|
||||
darkSampleL /= 2.0; darkSampleR /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223);
|
||||
lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR;
|
||||
double avgSlewR = fmin(lastSlewR,1.0);
|
||||
lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR);
|
||||
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreTapeHack;
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
|
||||
//begin Discontinuity section
|
||||
inputSampleR *= moreTapeHack;
|
||||
inputSampleR *= moreDiscontinuity;
|
||||
dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5);
|
||||
dBaPosR = fmin(dBaPosR,1.0);
|
||||
dBdly = floor(dBaPosR*dscBuf);
|
||||
dBi = (dBaPosR*dscBuf)-dBdly;
|
||||
inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0;
|
||||
inputSampleR /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908);
|
||||
addtwo = inputSampleR * inputSampleR;
|
||||
empower = inputSampleR * addtwo; // inputSampleR to the third power
|
||||
inputSampleR -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleR += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleR -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleR += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleR -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
//trim control gets to work even when MORE is off
|
||||
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
double smoothEQL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
if (!tapehackOff) {
|
||||
double darkSampleL = inputSampleL;
|
||||
double darkSampleR = inputSampleR;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL; avg32R[avgPos] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x]; darkSampleR += avg32R[x];}
|
||||
darkSampleL /= 32.0; darkSampleR /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL; avg16R[avgPos%16] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x]; darkSampleR += avg16R[x];}
|
||||
darkSampleL /= 16.0; darkSampleR /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL; avg8R[avgPos%8] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x]; darkSampleR += avg8R[x];}
|
||||
darkSampleL /= 8.0; darkSampleR /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL; avg4R[avgPos%4] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x]; darkSampleR += avg4R[x];}
|
||||
darkSampleL /= 4.0; darkSampleR /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL; avg2R[avgPos%2] = darkSampleR;
|
||||
darkSampleL = 0.0; darkSampleR = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x]; darkSampleR += avg2R[x];}
|
||||
darkSampleL /= 2.0; darkSampleR /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL*lastSlewL*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223);
|
||||
lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR;
|
||||
double avgSlewR = fmin(lastSlewR*lastSlewR*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR);
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//begin Discontinuity section
|
||||
inputSampleR *= moreDiscontinuity;
|
||||
dBaR[dBaXR] = inputSampleR; dBaPosR *= 0.5; dBaPosR += fabs((inputSampleR*((inputSampleR*0.25)-0.5))*0.5);
|
||||
dBaPosR = fmin(dBaPosR,1.0);
|
||||
dBdly = floor(dBaPosR*dscBuf);
|
||||
dBi = (dBaPosR*dscBuf)-dBdly;
|
||||
inputSampleR = dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleR += dBaR[dBaXR-dBdly +((dBaXR-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXR++; if (dBaXR < 0 || dBaXR >= dscBuf) dBaXR = 0;
|
||||
inputSampleR /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908);
|
||||
addtwo = inputSampleR * inputSampleR;
|
||||
empower = inputSampleR * addtwo; // inputSampleR to the third power
|
||||
inputSampleR -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleR += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleR -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleR += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleR -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
}
|
||||
|
||||
double trebleFastR = inputSampleR;
|
||||
outSample = (trebleFastR * highFast[biq_a0]) + highFast[biq_sR1];
|
||||
highFast[biq_sR1] = (trebleFastR * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sR2];
|
||||
highFast[biq_sR2] = (trebleFastR * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastR = outSample; trebleFastR -= midFastR;
|
||||
outSample = (midFastR * lowFast[biq_a0]) + lowFast[biq_sR1];
|
||||
lowFast[biq_sR1] = (midFastR * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sR2];
|
||||
lowFast[biq_sR2] = (midFastR * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastR = outSample; midFastR -= bassFastR;
|
||||
trebleFastR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastRIIR = (highFastRIIR*highCoef) + (trebleFastR*(1.0-highCoef));
|
||||
midFastR = highFastRIIR; trebleFastR -= midFastR;
|
||||
lowFastRIIR = (lowFastRIIR*lowCoef) + (midFastR*(1.0-lowCoef));
|
||||
bassFastR = lowFastRIIR; midFastR -= bassFastR;
|
||||
double smoothEQR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
double smoothEQL = inputSampleL;
|
||||
double smoothEQR = inputSampleR;
|
||||
|
||||
if (!eqOff) {
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
smoothEQL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
double trebleFastR = inputSampleR;
|
||||
outSample = (trebleFastR * highFast[biq_a0]) + highFast[biq_sR1];
|
||||
highFast[biq_sR1] = (trebleFastR * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sR2];
|
||||
highFast[biq_sR2] = (trebleFastR * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastR = outSample; trebleFastR -= midFastR;
|
||||
outSample = (midFastR * lowFast[biq_a0]) + lowFast[biq_sR1];
|
||||
lowFast[biq_sR1] = (midFastR * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sR2];
|
||||
lowFast[biq_sR2] = (midFastR * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastR = outSample; midFastR -= bassFastR;
|
||||
trebleFastR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastRIIR = (highFastRIIR*highCoef) + (trebleFastR*(1.0-highCoef));
|
||||
midFastR = highFastRIIR; trebleFastR -= midFastR;
|
||||
lowFastRIIR = (lowFastRIIR*lowCoef) + (midFastR*(1.0-lowCoef));
|
||||
bassFastR = lowFastRIIR; midFastR -= bassFastR;
|
||||
smoothEQR = (bassFastR*bassGain) + (midFastR*midGain) + (trebleFastR*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
|
||||
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outL] *= bitFactor;
|
||||
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outL] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
|
||||
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
high[biqs_outL] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
double parametricL = 0.0;
|
||||
double parametricR = 0.0;
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
|
||||
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outL] *= bitFactor;
|
||||
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outL] /= bitFactor;
|
||||
if (!hipcrushOff) {
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
|
||||
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outL] *= bitFactor;
|
||||
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outL] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
|
||||
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
high[biqs_outL] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
|
||||
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outL] *= bitFactor;
|
||||
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
|
||||
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
hmid[biqs_outL] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
|
||||
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outL] *= bitFactor;
|
||||
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
|
||||
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
lmid[biqs_outL] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
bass[biqs_outL] = inputSampleL * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_a0]) + bass[biqs_aL1];
|
||||
bass[biqs_aL1] = bass[biqs_aL2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aL2] = (bass[biqs_outL] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outL] *= bitFactor;
|
||||
bass[biqs_outL] = floor(bass[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outL] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_c0]) + bass[biqs_cL1];
|
||||
bass[biqs_cL1] = bass[biqs_cL2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cL2] = (bass[biqs_outL] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
bass[biqs_outL] *= bass[biqs_level];
|
||||
parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL] + bass[biqs_outL];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
high[biqs_outR] = inputSampleR * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outR] * high[biqs_a0]) + high[biqs_aR1];
|
||||
high[biqs_aR1] = high[biqs_aR2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aR2] = (high[biqs_outR] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outR] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outR] *= bitFactor;
|
||||
high[biqs_outR] = floor(high[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outR] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outR] * high[biqs_c0]) + high[biqs_cR1];
|
||||
high[biqs_cR1] = high[biqs_cR2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cR2] = (high[biqs_outR] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outR] = high[biqs_temp];
|
||||
high[biqs_outR] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
hmid[biqs_outR] = inputSampleR * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_a0]) + hmid[biqs_aR1];
|
||||
hmid[biqs_aR1] = hmid[biqs_aR2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aR2] = (hmid[biqs_outR] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outR] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outR] *= bitFactor;
|
||||
hmid[biqs_outR] = floor(hmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outR] /= bitFactor;
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_c0]) + hmid[biqs_cR1];
|
||||
hmid[biqs_cR1] = hmid[biqs_cR2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cR2] = (hmid[biqs_outR] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outR] = hmid[biqs_temp];
|
||||
hmid[biqs_outR] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
lmid[biqs_outR] = inputSampleR * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_a0]) + lmid[biqs_aR1];
|
||||
lmid[biqs_aR1] = lmid[biqs_aR2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aR2] = (lmid[biqs_outR] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outR] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outR] *= bitFactor;
|
||||
lmid[biqs_outR] = floor(lmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outR] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_c0]) + lmid[biqs_cR1];
|
||||
lmid[biqs_cR1] = lmid[biqs_cR2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cR2] = (lmid[biqs_outR] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outR] = lmid[biqs_temp];
|
||||
lmid[biqs_outR] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
bass[biqs_outR] = inputSampleR * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outR] * bass[biqs_a0]) + bass[biqs_aR1];
|
||||
bass[biqs_aR1] = bass[biqs_aR2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aR2] = (bass[biqs_outR] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outR] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outR] *= bitFactor;
|
||||
bass[biqs_outR] = floor(bass[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outR] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outR] * bass[biqs_c0]) + bass[biqs_cR1];
|
||||
bass[biqs_cR1] = bass[biqs_cR2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cR2] = (bass[biqs_outR] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outR] = bass[biqs_temp];
|
||||
bass[biqs_outR] *= bass[biqs_level];
|
||||
parametricR = high[biqs_outR] + hmid[biqs_outR] + lmid[biqs_outR] + bass[biqs_outR];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
|
||||
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
hmid[biqs_outL] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
|
||||
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outL] *= bitFactor;
|
||||
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
|
||||
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
lmid[biqs_outL] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
bass[biqs_outL] = inputSampleL * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_a0]) + bass[biqs_aL1];
|
||||
bass[biqs_aL1] = bass[biqs_aL2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aL2] = (bass[biqs_outL] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outL] *= bitFactor;
|
||||
bass[biqs_outL] = floor(bass[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outL] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_c0]) + bass[biqs_cL1];
|
||||
bass[biqs_cL1] = bass[biqs_cL2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cL2] = (bass[biqs_outL] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
bass[biqs_outL] *= bass[biqs_level];
|
||||
double parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL] + bass[biqs_outL];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
high[biqs_outR] = inputSampleR * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outR] * high[biqs_a0]) + high[biqs_aR1];
|
||||
high[biqs_aR1] = high[biqs_aR2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aR2] = (high[biqs_outR] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outR] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outR] *= bitFactor;
|
||||
high[biqs_outR] = floor(high[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outR] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outR] * high[biqs_c0]) + high[biqs_cR1];
|
||||
high[biqs_cR1] = high[biqs_cR2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cR2] = (high[biqs_outR] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outR] = high[biqs_temp];
|
||||
high[biqs_outR] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
hmid[biqs_outR] = inputSampleR * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_a0]) + hmid[biqs_aR1];
|
||||
hmid[biqs_aR1] = hmid[biqs_aR2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aR2] = (hmid[biqs_outR] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outR] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outR] *= bitFactor;
|
||||
hmid[biqs_outR] = floor(hmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outR] /= bitFactor;
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outR] * hmid[biqs_c0]) + hmid[biqs_cR1];
|
||||
hmid[biqs_cR1] = hmid[biqs_cR2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cR2] = (hmid[biqs_outR] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outR] = hmid[biqs_temp];
|
||||
hmid[biqs_outR] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
lmid[biqs_outR] = inputSampleR * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_a0]) + lmid[biqs_aR1];
|
||||
lmid[biqs_aR1] = lmid[biqs_aR2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aR2] = (lmid[biqs_outR] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outR] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outR] *= bitFactor;
|
||||
lmid[biqs_outR] = floor(lmid[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outR] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outR] * lmid[biqs_c0]) + lmid[biqs_cR1];
|
||||
lmid[biqs_cR1] = lmid[biqs_cR2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cR2] = (lmid[biqs_outR] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outR] = lmid[biqs_temp];
|
||||
lmid[biqs_outR] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow R
|
||||
bass[biqs_outR] = inputSampleR * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outR] * bass[biqs_a0]) + bass[biqs_aR1];
|
||||
bass[biqs_aR1] = bass[biqs_aR2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aR2] = (bass[biqs_outR] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outR] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outR] *= bitFactor;
|
||||
bass[biqs_outR] = floor(bass[biqs_outR]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outR] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outR] * bass[biqs_c0]) + bass[biqs_cR1];
|
||||
bass[biqs_cR1] = bass[biqs_cR2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cR2] = (bass[biqs_outR] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outR] = bass[biqs_temp];
|
||||
bass[biqs_outR] *= bass[biqs_level];
|
||||
double parametricR = high[biqs_outR] + hmid[biqs_outR] + lmid[biqs_outR] + bass[biqs_outR];
|
||||
//end Stacked Biquad With Reversed Neutron Flow R
|
||||
//end HipCrush as four band
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
inputSampleR *= ((bezCThresh*0.5)+1.0);
|
||||
smoothEQL *= ((bezCThresh*0.5)+1.0);
|
||||
smoothEQR *= ((bezCThresh*0.5)+1.0);
|
||||
parametricL *= ((bezCThresh*0.5)+1.0);
|
||||
parametricR *= ((bezCThresh*0.5)+1.0);
|
||||
} //makeup gain
|
||||
if (fmax(fabs(inputSampleL),fabs(inputSampleR)) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
|
||||
else bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
|
||||
|
||||
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));
|
||||
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 (bezThresh > 0.0) {
|
||||
inputSampleL *= (bezThresh+1.0);
|
||||
inputSampleR *= (bezThresh+1.0);
|
||||
smoothEQL *= (bezThresh+1.0);
|
||||
smoothEQR *= (bezThresh+1.0);
|
||||
parametricL *= (bezThresh+1.0);
|
||||
parametricR *= (bezThresh+1.0);
|
||||
} //makeup gain
|
||||
|
||||
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;
|
||||
double ctrl = fmax(fabs(inputSampleL),fabs(inputSampleR));
|
||||
bezMax = fmax(bezMax,ctrl);
|
||||
bezMin = fmax(bezMin-sloRez,ctrl);
|
||||
bezComp[bez_cycle] += bezRez;
|
||||
bezComp[bez_Ctrl] += (bezMin * bezRez);
|
||||
|
||||
if (bezComp[bez_cycle] > 1.0) {
|
||||
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
|
||||
bezComp[bez_cycle] -= 1.0;
|
||||
bezComp[bez_C] = bezComp[bez_B];
|
||||
bezComp[bez_B] = bezComp[bez_A];
|
||||
bezComp[bez_A] = bezComp[bez_Ctrl];
|
||||
bezComp[bez_Ctrl] = 0.0;
|
||||
bezMax = 0.0;
|
||||
}
|
||||
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;
|
||||
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
|
||||
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
|
||||
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
|
||||
//switch over to the EQed or HipCrushed sound and compress
|
||||
inputSampleL = (smoothEQL * (1.0-crossFade)) + (parametricL * crossFade);
|
||||
//apply filtration to what was just the unfiltered sound
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
//apply compression worked out using unfiltered sound
|
||||
|
||||
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;
|
||||
//switch over to the EQed or HipCrushed sound and compress
|
||||
inputSampleR = (smoothEQR * (1.0-crossFade)) + (parametricR * crossFade);
|
||||
//apply filtration to what was just the unfiltered sound
|
||||
if (bezCThresh > 0.0) inputSampleR *= 1.0-(fmin(((CBASR*(1.0-CBAFade))+(CBAFR*CBAFade))*bezCThresh,1.0));
|
||||
//apply compression worked out using unfiltered sound
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) {inputSampleL *= bezGate; inputSampleR *= bezGate;}
|
||||
//and gate the lot, if necessary
|
||||
//Dynamics2
|
||||
if (bezThresh > 0.0) {
|
||||
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
inputSampleR *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
}
|
||||
//Dynamics3, but with crossfade over EQ or HipCrush
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
|
||||
|
|
@ -1026,7 +1006,7 @@ OSStatus ConsoleHChannel::ProcessBufferLists(AudioUnitRenderActionFlags & ioAct
|
|||
iirHPositionR[count] = 0.0;
|
||||
iirHAngleR[count] = 0.0;
|
||||
}
|
||||
} //blank out highpass if jut switched off
|
||||
} //blank out highpass if just switched off
|
||||
}
|
||||
const double lFreq = (lFreqA*temp)+(lFreqB*(1.0-temp));
|
||||
if (lFreq < 1.0) {
|
||||
|
|
|
|||
|
|
@ -236,26 +236,18 @@ public:
|
|||
//HipCrush with four bands
|
||||
|
||||
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_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
//Dynamics3
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -379,10 +379,10 @@ void ConsoleHPre::ConsoleHPreKernel::Reset()
|
|||
}
|
||||
//HipCrush with four bands
|
||||
|
||||
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;
|
||||
//Dynamics2
|
||||
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
|
||||
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
|
||||
bezGate = 2.0;
|
||||
//Dynamics3
|
||||
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
|
|
@ -440,6 +440,7 @@ void ConsoleHPre::ConsoleHPreKernel::Process( const Float32 *inSourceP,
|
|||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double moreTapeHack = (GetParameter( kParam_MOR )*2.0)+1.0;
|
||||
bool tapehackOff = (GetParameter( kParam_MOR ) == 0.0);
|
||||
switch ((int)GetParameter( kParam_TRM )){
|
||||
case 0: moreTapeHack *= 0.5; break;
|
||||
case 1: break;
|
||||
|
|
@ -457,109 +458,123 @@ void ConsoleHPre::ConsoleHPreKernel::Process( const Float32 *inSourceP,
|
|||
double bassGain = (GetParameter( kParam_LOW )-0.5)*2.0;
|
||||
bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain));
|
||||
//separate from filtering stage, this is amplitude, centered on 1.0 unity gain
|
||||
double highCoef = 0.0;
|
||||
double lowCoef = 0.0;
|
||||
double omega = 0.0;
|
||||
double biqK = 0.0;
|
||||
double norm = 0.0;
|
||||
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
double omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
double biqK = 2.0 - cos(omega);
|
||||
double highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
double lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
bool eqOff = (trebleGain == 1.0 && midGain == 1.0 && bassGain == 1.0);
|
||||
//we get to completely bypass EQ if we're truly not using it. The mechanics of it mean that
|
||||
//it cancels out to bit-identical anyhow, but we get to skip the calculation
|
||||
if (!eqOff) {
|
||||
//SmoothEQ3 is how to get 3rd order steepness at very low CPU.
|
||||
//because sample rate varies, you could also vary the crossovers
|
||||
//you can't vary Q because math is simplified to take advantage of
|
||||
//how the accurate Q value for this filter is always exactly 1.0.
|
||||
highFast[biq_freq] = (4000.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(4000.0/GetSampleRate()); //mid-high crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
highCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
lowFast[biq_freq] = (200.0/GetSampleRate());
|
||||
omega = 2.0*M_PI*(200.0/GetSampleRate()); //low-mid crossover freq
|
||||
biqK = 2.0 - cos(omega);
|
||||
lowCoef = -sqrt(biqK*biqK - 1.0) + biqK;
|
||||
//exponential IIR filter as part of an accurate 3rd order Butterworth filter
|
||||
biqK = tan(M_PI * highFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
highFast[biq_a0] = biqK * biqK * norm;
|
||||
highFast[biq_a1] = 2.0 * highFast[biq_a0];
|
||||
highFast[biq_a2] = highFast[biq_a0];
|
||||
highFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
highFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
biqK = tan(M_PI * lowFast[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK + biqK*biqK);
|
||||
lowFast[biq_a0] = biqK * biqK * norm;
|
||||
lowFast[biq_a1] = 2.0 * lowFast[biq_a0];
|
||||
lowFast[biq_a2] = lowFast[biq_a0];
|
||||
lowFast[biq_b1] = 2.0 * (biqK*biqK - 1.0) * norm;
|
||||
lowFast[biq_b2] = (1.0 - biqK + biqK*biqK) * norm;
|
||||
//custom biquad setup with Q = 1.0 gets to omit some divides
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),2.0)*16000.0)+1000.0)/GetSampleRate());
|
||||
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
|
||||
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
|
||||
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
|
||||
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * high[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_a0] = biqK / (high[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
high[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_b2] = (1.0 - biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_c0] = biqK / (high[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
high[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_d2] = (1.0 - biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//high
|
||||
|
||||
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3.0)*7000.0)+300.0)/GetSampleRate());
|
||||
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
|
||||
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
|
||||
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
|
||||
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * hmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_a0] = biqK / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
hmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_b2] = (1.0 - biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_c0] = biqK / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
hmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_d2] = (1.0 - biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//hmid
|
||||
|
||||
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3.0)*3000.0)+40.0)/GetSampleRate());
|
||||
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
|
||||
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
|
||||
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
|
||||
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * lmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_a0] = biqK / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
lmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_b2] = (1.0 - biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_c0] = biqK / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
lmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_d2] = (1.0 - biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//lmid
|
||||
|
||||
bass[biqs_freq] = (((pow(GetParameter( kParam_BSF ),4.0)*1000.0)+20.0)/GetSampleRate());
|
||||
if (bass[biqs_freq] < 0.00001) bass[biqs_freq] = 0.00001;
|
||||
bass[biqs_bit] = (GetParameter( kParam_BSB )*2.0)-1.0;
|
||||
bass[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_BSG ),2.0))*1.618033988749894848204586;
|
||||
bass[biqs_reso] = pow(GetParameter( kParam_BSG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * bass[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_a0] = biqK / (bass[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
bass[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_b2] = (1.0 - biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_c0] = biqK / (bass[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
bass[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_d2] = (1.0 - biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//bass
|
||||
double crossFade = GetParameter( kParam_CRS );
|
||||
bool hipcrushOff = (crossFade == 0.0);
|
||||
if (!hipcrushOff) {
|
||||
high[biqs_freq] = (((pow(GetParameter( kParam_TRF ),2.0)*16000.0)+1000.0)/GetSampleRate());
|
||||
if (high[biqs_freq] < 0.0001) high[biqs_freq] = 0.0001;
|
||||
high[biqs_bit] = (GetParameter( kParam_TRB )*2.0)-1.0;
|
||||
high[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_TRG ),2.0))*1.618033988749894848204586;
|
||||
high[biqs_reso] = pow(GetParameter( kParam_TRG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * high[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_a0] = biqK / (high[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
high[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_b2] = (1.0 - biqK / (high[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
high[biqs_c0] = biqK / (high[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
high[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
high[biqs_d2] = (1.0 - biqK / (high[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//high
|
||||
|
||||
hmid[biqs_freq] = (((pow(GetParameter( kParam_HMF ),3.0)*7000.0)+300.0)/GetSampleRate());
|
||||
if (hmid[biqs_freq] < 0.0001) hmid[biqs_freq] = 0.0001;
|
||||
hmid[biqs_bit] = (GetParameter( kParam_HMB )*2.0)-1.0;
|
||||
hmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_HMG ),2.0))*1.618033988749894848204586;
|
||||
hmid[biqs_reso] = pow(GetParameter( kParam_HMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * hmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_a0] = biqK / (hmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
hmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_b2] = (1.0 - biqK / (hmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
hmid[biqs_c0] = biqK / (hmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
hmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
hmid[biqs_d2] = (1.0 - biqK / (hmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//hmid
|
||||
|
||||
lmid[biqs_freq] = (((pow(GetParameter( kParam_LMF ),3.0)*3000.0)+40.0)/GetSampleRate());
|
||||
if (lmid[biqs_freq] < 0.00001) lmid[biqs_freq] = 0.00001;
|
||||
lmid[biqs_bit] = (GetParameter( kParam_LMB )*2.0)-1.0;
|
||||
lmid[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_LMG ),2.0))*1.618033988749894848204586;
|
||||
lmid[biqs_reso] = pow(GetParameter( kParam_LMG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * lmid[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_a0] = biqK / (lmid[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
lmid[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_b2] = (1.0 - biqK / (lmid[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
lmid[biqs_c0] = biqK / (lmid[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
lmid[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lmid[biqs_d2] = (1.0 - biqK / (lmid[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//lmid
|
||||
|
||||
bass[biqs_freq] = (((pow(GetParameter( kParam_BSF ),4.0)*1000.0)+20.0)/GetSampleRate());
|
||||
if (bass[biqs_freq] < 0.00001) bass[biqs_freq] = 0.00001;
|
||||
bass[biqs_bit] = (GetParameter( kParam_BSB )*2.0)-1.0;
|
||||
bass[biqs_level] = (1.0-pow(1.0-GetParameter( kParam_BSG ),2.0))*1.618033988749894848204586;
|
||||
bass[biqs_reso] = pow(GetParameter( kParam_BSG )+0.618033988749894848204586,2.0);
|
||||
biqK = tan(M_PI * bass[biqs_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_a0] = biqK / (bass[biqs_reso]*0.618033988749894848204586) * norm;
|
||||
bass[biqs_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_b2] = (1.0 - biqK / (bass[biqs_reso]*0.618033988749894848204586) + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK);
|
||||
bass[biqs_c0] = biqK / (bass[biqs_reso]*1.618033988749894848204586) * norm;
|
||||
bass[biqs_d1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
bass[biqs_d2] = (1.0 - biqK / (bass[biqs_reso]*1.618033988749894848204586) + biqK * biqK) * norm;
|
||||
//bass
|
||||
}
|
||||
//HipCrush with four bands
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_THR ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_ATK ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_RLS ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
double bezThresh = pow(1.0-GetParameter( kParam_THR ), 4.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_ATK ), 4.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_RLS ), 4.0) / overallscale;
|
||||
double gate = pow(GetParameter( kParam_GAT ),4.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_GAT ),4.0),sqrt(bezCThresh+1.0));
|
||||
//Dynamics2
|
||||
sloRez = fmin(fmax(sloRez,0.0001),1.0);
|
||||
//Dynamics3
|
||||
|
||||
lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_LOP ),0.002),overallscale); //the lowpass
|
||||
hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_HIP ),overallscale+2.0); //the highpass
|
||||
|
|
@ -572,220 +587,219 @@ void ConsoleHPre::ConsoleHPreKernel::Process( const Float32 *inSourceP,
|
|||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
double darkSampleL = inputSampleL;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x];}
|
||||
darkSampleL /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x];}
|
||||
darkSampleL /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x];}
|
||||
darkSampleL /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x];}
|
||||
darkSampleL /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x];}
|
||||
darkSampleL /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreTapeHack;
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
//trim control gets to work even when MORE is off
|
||||
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
double smoothEQL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
if (!tapehackOff) {
|
||||
double darkSampleL = inputSampleL;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x];}
|
||||
darkSampleL /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x];}
|
||||
darkSampleL /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x];}
|
||||
darkSampleL /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x];}
|
||||
darkSampleL /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x];}
|
||||
darkSampleL /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreTapeHack;
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
}
|
||||
|
||||
double smoothEQL = inputSampleL;
|
||||
|
||||
if (!eqOff) {
|
||||
double trebleFastL = inputSampleL;
|
||||
double outSample = (trebleFastL * highFast[biq_a0]) + highFast[biq_sL1];
|
||||
highFast[biq_sL1] = (trebleFastL * highFast[biq_a1]) - (outSample * highFast[biq_b1]) + highFast[biq_sL2];
|
||||
highFast[biq_sL2] = (trebleFastL * highFast[biq_a2]) - (outSample * highFast[biq_b2]);
|
||||
double midFastL = outSample; trebleFastL -= midFastL;
|
||||
outSample = (midFastL * lowFast[biq_a0]) + lowFast[biq_sL1];
|
||||
lowFast[biq_sL1] = (midFastL * lowFast[biq_a1]) - (outSample * lowFast[biq_b1]) + lowFast[biq_sL2];
|
||||
lowFast[biq_sL2] = (midFastL * lowFast[biq_a2]) - (outSample * lowFast[biq_b2]);
|
||||
double bassFastL = outSample; midFastL -= bassFastL;
|
||||
trebleFastL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//first stage of two crossovers is biquad of exactly 1.0 Q
|
||||
highFastLIIR = (highFastLIIR*highCoef) + (trebleFastL*(1.0-highCoef));
|
||||
midFastL = highFastLIIR; trebleFastL -= midFastL;
|
||||
lowFastLIIR = (lowFastLIIR*lowCoef) + (midFastL*(1.0-lowCoef));
|
||||
bassFastL = lowFastLIIR; midFastL -= bassFastL;
|
||||
smoothEQL = (bassFastL*bassGain) + (midFastL*midGain) + (trebleFastL*trebleGain);
|
||||
//second stage of two crossovers is the exponential filters
|
||||
//this produces a slightly steeper Butterworth filter very cheaply
|
||||
}
|
||||
//SmoothEQ3
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
|
||||
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outL] *= bitFactor;
|
||||
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outL] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
|
||||
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
high[biqs_outL] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
double parametricL = 0.0;
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
|
||||
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outL] *= bitFactor;
|
||||
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outL] /= bitFactor;
|
||||
if (!hipcrushOff) {
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
high[biqs_outL] = inputSampleL * fabs(high[biqs_level]);
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_a0]) + high[biqs_aL1];
|
||||
high[biqs_aL1] = high[biqs_aL2] - (high[biqs_temp]*high[biqs_b1]);
|
||||
high[biqs_aL2] = (high[biqs_outL] * -high[biqs_a0]) - (high[biqs_temp]*high[biqs_b2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
if (high[biqs_bit] != 0.0) {
|
||||
double bitFactor = high[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
high[biqs_outL] *= bitFactor;
|
||||
high[biqs_outL] = floor(high[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
high[biqs_outL] /= bitFactor;
|
||||
}
|
||||
high[biqs_temp] = (high[biqs_outL] * high[biqs_c0]) + high[biqs_cL1];
|
||||
high[biqs_cL1] = high[biqs_cL2] - (high[biqs_temp]*high[biqs_d1]);
|
||||
high[biqs_cL2] = (high[biqs_outL] * -high[biqs_c0]) - (high[biqs_temp]*high[biqs_d2]);
|
||||
high[biqs_outL] = high[biqs_temp];
|
||||
high[biqs_outL] *= high[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
hmid[biqs_outL] = inputSampleL * fabs(hmid[biqs_level]);
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_a0]) + hmid[biqs_aL1];
|
||||
hmid[biqs_aL1] = hmid[biqs_aL2] - (hmid[biqs_temp]*hmid[biqs_b1]);
|
||||
hmid[biqs_aL2] = (hmid[biqs_outL] * -hmid[biqs_a0]) - (hmid[biqs_temp]*hmid[biqs_b2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
if (hmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = hmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
hmid[biqs_outL] *= bitFactor;
|
||||
hmid[biqs_outL] = floor(hmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
hmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
|
||||
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
hmid[biqs_outL] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
|
||||
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outL] *= bitFactor;
|
||||
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
|
||||
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
lmid[biqs_outL] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
bass[biqs_outL] = inputSampleL * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_a0]) + bass[biqs_aL1];
|
||||
bass[biqs_aL1] = bass[biqs_aL2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aL2] = (bass[biqs_outL] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outL] *= bitFactor;
|
||||
bass[biqs_outL] = floor(bass[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outL] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_c0]) + bass[biqs_cL1];
|
||||
bass[biqs_cL1] = bass[biqs_cL2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cL2] = (bass[biqs_outL] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
bass[biqs_outL] *= bass[biqs_level];
|
||||
parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL] + bass[biqs_outL];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
}
|
||||
hmid[biqs_temp] = (hmid[biqs_outL] * hmid[biqs_c0]) + hmid[biqs_cL1];
|
||||
hmid[biqs_cL1] = hmid[biqs_cL2] - (hmid[biqs_temp]*hmid[biqs_d1]);
|
||||
hmid[biqs_cL2] = (hmid[biqs_outL] * -hmid[biqs_c0]) - (hmid[biqs_temp]*hmid[biqs_d2]);
|
||||
hmid[biqs_outL] = hmid[biqs_temp];
|
||||
hmid[biqs_outL] *= hmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
lmid[biqs_outL] = inputSampleL * fabs(lmid[biqs_level]);
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_a0]) + lmid[biqs_aL1];
|
||||
lmid[biqs_aL1] = lmid[biqs_aL2] - (lmid[biqs_temp]*lmid[biqs_b1]);
|
||||
lmid[biqs_aL2] = (lmid[biqs_outL] * -lmid[biqs_a0]) - (lmid[biqs_temp]*lmid[biqs_b2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
if (lmid[biqs_bit] != 0.0) {
|
||||
double bitFactor = lmid[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
lmid[biqs_outL] *= bitFactor;
|
||||
lmid[biqs_outL] = floor(lmid[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
lmid[biqs_outL] /= bitFactor;
|
||||
}
|
||||
lmid[biqs_temp] = (lmid[biqs_outL] * lmid[biqs_c0]) + lmid[biqs_cL1];
|
||||
lmid[biqs_cL1] = lmid[biqs_cL2] - (lmid[biqs_temp]*lmid[biqs_d1]);
|
||||
lmid[biqs_cL2] = (lmid[biqs_outL] * -lmid[biqs_c0]) - (lmid[biqs_temp]*lmid[biqs_d2]);
|
||||
lmid[biqs_outL] = lmid[biqs_temp];
|
||||
lmid[biqs_outL] *= lmid[biqs_level];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
|
||||
//begin Stacked Biquad With Reversed Neutron Flow L
|
||||
bass[biqs_outL] = inputSampleL * fabs(bass[biqs_level]);
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_a0]) + bass[biqs_aL1];
|
||||
bass[biqs_aL1] = bass[biqs_aL2] - (bass[biqs_temp]*bass[biqs_b1]);
|
||||
bass[biqs_aL2] = (bass[biqs_outL] * -bass[biqs_a0]) - (bass[biqs_temp]*bass[biqs_b2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
if (bass[biqs_bit] != 0.0) {
|
||||
double bitFactor = bass[biqs_bit];
|
||||
bool crushGate = (bitFactor < 0.0);
|
||||
bitFactor = pow(2.0,fmin(fmax((1.0-fabs(bitFactor))*16.0,0.5),16.0));
|
||||
bass[biqs_outL] *= bitFactor;
|
||||
bass[biqs_outL] = floor(bass[biqs_outL]+(crushGate?0.5/bitFactor:0.0));
|
||||
bass[biqs_outL] /= bitFactor;
|
||||
}
|
||||
bass[biqs_temp] = (bass[biqs_outL] * bass[biqs_c0]) + bass[biqs_cL1];
|
||||
bass[biqs_cL1] = bass[biqs_cL2] - (bass[biqs_temp]*bass[biqs_d1]);
|
||||
bass[biqs_cL2] = (bass[biqs_outL] * -bass[biqs_c0]) - (bass[biqs_temp]*bass[biqs_d2]);
|
||||
bass[biqs_outL] = bass[biqs_temp];
|
||||
bass[biqs_outL] *= bass[biqs_level];
|
||||
double parametricL = high[biqs_outL] + hmid[biqs_outL] + lmid[biqs_outL] + bass[biqs_outL];
|
||||
//end Stacked Biquad With Reversed Neutron Flow L
|
||||
//end HipCrush as four band
|
||||
|
||||
if (bezCThresh > 0.0) {
|
||||
inputSampleL *= ((bezCThresh*0.5)+1.0);
|
||||
smoothEQL *= ((bezCThresh*0.5)+1.0);
|
||||
parametricL *= ((bezCThresh*0.5)+1.0);
|
||||
} //makeup gain
|
||||
if (fabs(inputSampleL) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
|
||||
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
|
||||
|
||||
if (fabs(inputSampleL) > gate+(sloRez*bezGate)) bezGate = ((bezGate*overallscale*3.0)+3.0)*(0.25/overallscale);
|
||||
else bezGate = fmax(0.0, bezGate-(sloRez*sloRez));
|
||||
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;
|
||||
if (bezThresh > 0.0) {
|
||||
inputSampleL *= (bezThresh+1.0);
|
||||
smoothEQL *= (bezThresh+1.0);
|
||||
parametricL *= (bezThresh+1.0);
|
||||
} //makeup gain
|
||||
|
||||
double ctrl = fabs(inputSampleL);
|
||||
bezMax = fmax(bezMax,ctrl);
|
||||
bezMin = fmax(bezMin-sloRez,ctrl);
|
||||
bezComp[bez_cycle] += bezRez;
|
||||
bezComp[bez_Ctrl] += (bezMin * bezRez);
|
||||
|
||||
if (bezComp[bez_cycle] > 1.0) {
|
||||
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
|
||||
bezComp[bez_cycle] -= 1.0;
|
||||
bezComp[bez_C] = bezComp[bez_B];
|
||||
bezComp[bez_B] = bezComp[bez_A];
|
||||
bezComp[bez_A] = bezComp[bez_Ctrl];
|
||||
bezComp[bez_Ctrl] = 0.0;
|
||||
bezMax = 0.0;
|
||||
}
|
||||
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;
|
||||
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
|
||||
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
|
||||
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
|
||||
//switch over to the EQed or HipCrushed sound and compress
|
||||
inputSampleL = (smoothEQL * (1.0-crossFade)) + (parametricL * crossFade);
|
||||
//apply filtration to what was just the unfiltered sound
|
||||
if (bezCThresh > 0.0) inputSampleL *= 1.0-(fmin(((CBASL*(1.0-CBAFade))+(CBAFL*CBAFade))*bezCThresh,1.0));
|
||||
//apply compression worked out using unfiltered sound
|
||||
|
||||
if (bezGate < 1.0 && gate > 0.0) inputSampleL *= bezGate;
|
||||
//Dynamics2
|
||||
if (bezThresh > 0.0) {
|
||||
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
}
|
||||
//Dynamics3, but with crossfade over EQ or HipCrush
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
|
||||
|
|
|
|||
|
|
@ -245,20 +245,18 @@ public:
|
|||
//HipCrush with four bands
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
//Dynamics3
|
||||
|
||||
double iirHPosition[23];
|
||||
double iirHAngle[23];
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -59,17 +59,17 @@ ConsoleX2Buss::ConsoleX2Buss(AudioUnit component)
|
|||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
SetParameter(kParam_E, kDefaultValue_ParamE );
|
||||
SetParameter(kParam_F, kDefaultValue_ParamF );
|
||||
SetParameter(kParam_G, kDefaultValue_ParamG );
|
||||
SetParameter(kParam_H, kDefaultValue_ParamH );
|
||||
SetParameter(kParam_I, kDefaultValue_ParamI );
|
||||
SetParameter(kParam_J, kDefaultValue_ParamJ );
|
||||
SetParameter(kParam_K, kDefaultValue_ParamK );
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
|
||||
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
|
||||
SetParameter(kParam_BSG, kDefaultValue_ParamBSG );
|
||||
SetParameter(kParam_HIF, kDefaultValue_ParamHIF );
|
||||
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
|
||||
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
|
||||
SetParameter(kParam_BSF, kDefaultValue_ParamBSF );
|
||||
SetParameter(kParam_THR, kDefaultValue_ParamTHR );
|
||||
SetParameter(kParam_PAN, kDefaultValue_ParamPAN );
|
||||
SetParameter(kParam_FAD, kDefaultValue_ParamFAD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
|
|
@ -106,85 +106,85 @@ ComponentResult ConsoleX2Buss::GetParameterInfo(AudioUnitScope inScope,
|
|||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterAUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
case kParam_HMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
case kParam_LMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
|
||||
break;
|
||||
case kParam_D:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
|
||||
case kParam_BSG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamD;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSG;
|
||||
break;
|
||||
case kParam_E:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
|
||||
case kParam_HIF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterEUnit;
|
||||
outParameterInfo.unitName = kParameterHIFUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamE;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIF;
|
||||
break;
|
||||
case kParam_F:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
|
||||
case kParam_HMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
|
||||
break;
|
||||
case kParam_G:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
|
||||
case kParam_LMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamG;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
|
||||
break;
|
||||
case kParam_H:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
|
||||
case kParam_BSF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamH;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSF;
|
||||
break;
|
||||
case kParam_I:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterIUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamI;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
case kParam_J:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterJName, false);
|
||||
case kParam_PAN:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterPANName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamJ;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamPAN;
|
||||
break;
|
||||
case kParam_K:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterKName, false);
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamK;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
|
|
@ -276,7 +276,7 @@ ComponentResult ConsoleX2Buss::Reset(AudioUnitScope inScope, AudioUnitElement i
|
|||
//SmoothEQ2
|
||||
|
||||
for (int x = 0; x < bez_total; x++) {bezCompF[x] = 0.0;bezCompS[x] = 0.0;}
|
||||
bezCompF[bez_cycle] = 1.0; bezMaxF = 0.0;
|
||||
bezCompF[bez_cycle] = 1.0;
|
||||
bezCompS[bez_cycle] = 1.0;
|
||||
//Dynamics2
|
||||
|
||||
|
|
@ -317,133 +317,141 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio
|
|||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double trebleGain = (GetParameter( kParam_A )-0.5)*2.0;
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double highmidGain = (GetParameter( kParam_B )-0.5)*2.0;
|
||||
double highmidGain = (GetParameter( kParam_HMG )-0.5)*2.0;
|
||||
highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain));
|
||||
double lowmidGain = (GetParameter( kParam_C )-0.5)*2.0;
|
||||
double lowmidGain = (GetParameter( kParam_LMG )-0.5)*2.0;
|
||||
lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain));
|
||||
double bassGain = (GetParameter( kParam_D )-0.5)*2.0;
|
||||
double bassGain = (GetParameter( kParam_BSG )-0.5)*2.0;
|
||||
bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain));
|
||||
double highCoef = 0.0;
|
||||
double midCoef = 0.0;
|
||||
double lowCoef = 0.0;
|
||||
|
||||
double trebleRef = GetParameter( kParam_E )-0.5;
|
||||
double highmidRef = GetParameter( kParam_F )-0.5;
|
||||
double lowmidRef = GetParameter( kParam_G )-0.5;
|
||||
double bassRef = GetParameter( kParam_H )-0.5;
|
||||
double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125);
|
||||
double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125);
|
||||
double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125);
|
||||
|
||||
double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125);
|
||||
double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125);
|
||||
double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125);
|
||||
|
||||
highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate());
|
||||
highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025);
|
||||
double highFreq = pow(highF,3)*20000.0;
|
||||
double omega = 2.0*M_PI*(highFreq/GetSampleRate());
|
||||
double biqK = 2.0-cos(omega);
|
||||
double highCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
highA[biq_reso] = 2.24697960 * highQ;
|
||||
highB[biq_reso] = 0.80193774 * highQ;
|
||||
highC[biq_reso] = 0.55495813 * highQ;
|
||||
|
||||
midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate());
|
||||
midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025);
|
||||
double midFreq = pow(midF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(midFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
double midCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
midA[biq_reso] = 2.24697960 * midQ;
|
||||
midB[biq_reso] = 0.80193774 * midQ;
|
||||
midC[biq_reso] = 0.55495813 * midQ;
|
||||
|
||||
lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate());
|
||||
lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025);
|
||||
double lowFreq = pow(bassF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(lowFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
lowA[biq_reso] = 2.24697960 * lowQ;
|
||||
lowB[biq_reso] = 0.80193774 * lowQ;
|
||||
lowC[biq_reso] = 0.55495813 * lowQ;
|
||||
|
||||
biqK = tan(M_PI * highA[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK);
|
||||
highA[biq_a0] = biqK * biqK * norm;
|
||||
highA[biq_a1] = 2.0 * highA[biq_a0];
|
||||
highA[biq_a2] = highA[biq_a0];
|
||||
highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK);
|
||||
highB[biq_a0] = biqK * biqK * norm;
|
||||
highB[biq_a1] = 2.0 * highB[biq_a0];
|
||||
highB[biq_a2] = highB[biq_a0];
|
||||
highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK);
|
||||
highC[biq_a0] = biqK * biqK * norm;
|
||||
highC[biq_a1] = 2.0 * highC[biq_a0];
|
||||
highC[biq_a2] = highC[biq_a0];
|
||||
highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * midA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK);
|
||||
midA[biq_a0] = biqK * biqK * norm;
|
||||
midA[biq_a1] = 2.0 * midA[biq_a0];
|
||||
midA[biq_a2] = midA[biq_a0];
|
||||
midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK);
|
||||
midB[biq_a0] = biqK * biqK * norm;
|
||||
midB[biq_a1] = 2.0 * midB[biq_a0];
|
||||
midB[biq_a2] = midB[biq_a0];
|
||||
midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK);
|
||||
midC[biq_a0] = biqK * biqK * norm;
|
||||
midC[biq_a1] = 2.0 * midC[biq_a0];
|
||||
midC[biq_a2] = midC[biq_a0];
|
||||
midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK);
|
||||
lowA[biq_a0] = biqK * biqK * norm;
|
||||
lowA[biq_a1] = 2.0 * lowA[biq_a0];
|
||||
lowA[biq_a2] = lowA[biq_a0];
|
||||
lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK);
|
||||
lowB[biq_a0] = biqK * biqK * norm;
|
||||
lowB[biq_a1] = 2.0 * lowB[biq_a0];
|
||||
lowB[biq_a2] = lowB[biq_a0];
|
||||
lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK);
|
||||
lowC[biq_a0] = biqK * biqK * norm;
|
||||
lowC[biq_a1] = 2.0 * lowC[biq_a0];
|
||||
lowC[biq_a2] = lowC[biq_a0];
|
||||
lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm;
|
||||
bool eqOff = (trebleGain == 1.0 && highmidGain == 1.0 && lowmidGain == 1.0 && bassGain == 1.0);
|
||||
//we get to completely bypass EQ if we're truly not using it. The mechanics of it mean that
|
||||
//it cancels out to bit-identical anyhow, but we get to skip the calculation
|
||||
if (!eqOff) {
|
||||
double trebleRef = GetParameter( kParam_HIF )-0.5;
|
||||
double highmidRef = GetParameter( kParam_HMF )-0.5;
|
||||
double lowmidRef = GetParameter( kParam_LMF )-0.5;
|
||||
double bassRef = GetParameter( kParam_BSF )-0.5;
|
||||
double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125);
|
||||
double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125);
|
||||
double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125);
|
||||
|
||||
double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125);
|
||||
double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125);
|
||||
double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125);
|
||||
|
||||
highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate());
|
||||
highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025);
|
||||
double highFreq = pow(highF,3)*20000.0;
|
||||
double omega = 2.0*M_PI*(highFreq/GetSampleRate());
|
||||
double biqK = 2.0-cos(omega);
|
||||
highCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
highA[biq_reso] = 2.24697960 * highQ;
|
||||
highB[biq_reso] = 0.80193774 * highQ;
|
||||
highC[biq_reso] = 0.55495813 * highQ;
|
||||
|
||||
midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate());
|
||||
midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025);
|
||||
double midFreq = pow(midF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(midFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
midCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
midA[biq_reso] = 2.24697960 * midQ;
|
||||
midB[biq_reso] = 0.80193774 * midQ;
|
||||
midC[biq_reso] = 0.55495813 * midQ;
|
||||
|
||||
lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate());
|
||||
lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025);
|
||||
double lowFreq = pow(bassF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(lowFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
lowCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
lowA[biq_reso] = 2.24697960 * lowQ;
|
||||
lowB[biq_reso] = 0.80193774 * lowQ;
|
||||
lowC[biq_reso] = 0.55495813 * lowQ;
|
||||
|
||||
biqK = tan(M_PI * highA[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK);
|
||||
highA[biq_a0] = biqK * biqK * norm;
|
||||
highA[biq_a1] = 2.0 * highA[biq_a0];
|
||||
highA[biq_a2] = highA[biq_a0];
|
||||
highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK);
|
||||
highB[biq_a0] = biqK * biqK * norm;
|
||||
highB[biq_a1] = 2.0 * highB[biq_a0];
|
||||
highB[biq_a2] = highB[biq_a0];
|
||||
highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK);
|
||||
highC[biq_a0] = biqK * biqK * norm;
|
||||
highC[biq_a1] = 2.0 * highC[biq_a0];
|
||||
highC[biq_a2] = highC[biq_a0];
|
||||
highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * midA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK);
|
||||
midA[biq_a0] = biqK * biqK * norm;
|
||||
midA[biq_a1] = 2.0 * midA[biq_a0];
|
||||
midA[biq_a2] = midA[biq_a0];
|
||||
midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK);
|
||||
midB[biq_a0] = biqK * biqK * norm;
|
||||
midB[biq_a1] = 2.0 * midB[biq_a0];
|
||||
midB[biq_a2] = midB[biq_a0];
|
||||
midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK);
|
||||
midC[biq_a0] = biqK * biqK * norm;
|
||||
midC[biq_a1] = 2.0 * midC[biq_a0];
|
||||
midC[biq_a2] = midC[biq_a0];
|
||||
midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK);
|
||||
lowA[biq_a0] = biqK * biqK * norm;
|
||||
lowA[biq_a1] = 2.0 * lowA[biq_a0];
|
||||
lowA[biq_a2] = lowA[biq_a0];
|
||||
lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK);
|
||||
lowB[biq_a0] = biqK * biqK * norm;
|
||||
lowB[biq_a1] = 2.0 * lowB[biq_a0];
|
||||
lowB[biq_a2] = lowB[biq_a0];
|
||||
lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK);
|
||||
lowC[biq_a0] = biqK * biqK * norm;
|
||||
lowC[biq_a1] = 2.0 * lowC[biq_a0];
|
||||
lowC[biq_a2] = lowC[biq_a0];
|
||||
lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm;
|
||||
}
|
||||
//SmoothEQ2
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_I ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_I ), 12.360679774997898) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_I ),10.0) / overallscale;
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_THR ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_THR ), 12.360679774997898) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_THR ),10.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez,0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.00001),1.0);
|
||||
//Dynamics2
|
||||
|
||||
panA = panB; panB = GetParameter( kParam_J )*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_K )*2.0;
|
||||
panA = panB; panB = GetParameter( kParam_PAN )*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_FAD )*2.0;
|
||||
//Console
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
|
|
@ -462,198 +470,176 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio
|
|||
if (inputSampleR < -1.0) inputSampleR = -1.0;
|
||||
else if (inputSampleR < 0.0) inputSampleR = expm1((log1p(inputSampleR) * 0.6180339887498949));
|
||||
|
||||
double trebleL = inputSampleL;
|
||||
double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1];
|
||||
highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2];
|
||||
highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1];
|
||||
midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2];
|
||||
midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1];
|
||||
lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2];
|
||||
lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1];
|
||||
highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2];
|
||||
highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1];
|
||||
midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2];
|
||||
midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1];
|
||||
lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2];
|
||||
lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1];
|
||||
highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2];
|
||||
highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1];
|
||||
midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2];
|
||||
midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1];
|
||||
lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2];
|
||||
lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef));
|
||||
highmidL = highLIIR; trebleL -= highmidL;
|
||||
|
||||
midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef));
|
||||
lowmidL = midLIIR; highmidL -= lowmidL;
|
||||
|
||||
lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef));
|
||||
bassL = lowLIIR; lowmidL -= bassL;
|
||||
|
||||
inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
|
||||
|
||||
double trebleR = inputSampleR;
|
||||
outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1];
|
||||
highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2];
|
||||
highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1];
|
||||
midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2];
|
||||
midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1];
|
||||
lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2];
|
||||
lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1];
|
||||
highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2];
|
||||
highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1];
|
||||
midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2];
|
||||
midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1];
|
||||
lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2];
|
||||
lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1];
|
||||
highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2];
|
||||
highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1];
|
||||
midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2];
|
||||
midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1];
|
||||
lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2];
|
||||
lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef));
|
||||
highmidR = highRIIR; trebleR -= highmidR;
|
||||
|
||||
midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef));
|
||||
lowmidR = midRIIR; highmidR -= lowmidR;
|
||||
|
||||
lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef));
|
||||
bassR = lowRIIR; lowmidR -= bassR;
|
||||
|
||||
inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
if (!eqOff) {
|
||||
double trebleL = inputSampleL;
|
||||
double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1];
|
||||
highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2];
|
||||
highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1];
|
||||
midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2];
|
||||
midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1];
|
||||
lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2];
|
||||
lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1];
|
||||
highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2];
|
||||
highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1];
|
||||
midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2];
|
||||
midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1];
|
||||
lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2];
|
||||
lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1];
|
||||
highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2];
|
||||
highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1];
|
||||
midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2];
|
||||
midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1];
|
||||
lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2];
|
||||
lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highLIIR = (highLIIR*highCoef) + (trebleL*(1.0-highCoef));
|
||||
highmidL = highLIIR; trebleL -= highmidL;
|
||||
|
||||
midLIIR = (midLIIR*midCoef) + (highmidL*(1.0-midCoef));
|
||||
lowmidL = midLIIR; highmidL -= lowmidL;
|
||||
|
||||
lowLIIR = (lowLIIR*lowCoef) + (lowmidL*(1.0-lowCoef));
|
||||
bassL = lowLIIR; lowmidL -= bassL;
|
||||
|
||||
inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
|
||||
double trebleR = inputSampleR;
|
||||
outSample = (trebleR * highA[biq_a0]) + highA[biq_sR1];
|
||||
highA[biq_sR1] = (trebleR * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sR2];
|
||||
highA[biq_sR2] = (trebleR * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midA[biq_a0]) + midA[biq_sR1];
|
||||
midA[biq_sR1] = (highmidR * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sR2];
|
||||
midA[biq_sR2] = (highmidR * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowA[biq_a0]) + lowA[biq_sR1];
|
||||
lowA[biq_sR1] = (lowmidR * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sR2];
|
||||
lowA[biq_sR2] = (lowmidR * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleR * highB[biq_a0]) + highB[biq_sR1];
|
||||
highB[biq_sR1] = (trebleR * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sR2];
|
||||
highB[biq_sR2] = (trebleR * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midB[biq_a0]) + midB[biq_sR1];
|
||||
midB[biq_sR1] = (highmidR * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sR2];
|
||||
midB[biq_sR2] = (highmidR * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowB[biq_a0]) + lowB[biq_sR1];
|
||||
lowB[biq_sR1] = (lowmidR * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sR2];
|
||||
lowB[biq_sR2] = (lowmidR * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleR * highC[biq_a0]) + highC[biq_sR1];
|
||||
highC[biq_sR1] = (trebleR * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sR2];
|
||||
highC[biq_sR2] = (trebleR * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidR = outSample; trebleR -= highmidR;
|
||||
|
||||
outSample = (highmidR * midC[biq_a0]) + midC[biq_sR1];
|
||||
midC[biq_sR1] = (highmidR * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sR2];
|
||||
midC[biq_sR2] = (highmidR * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidR = outSample; highmidR -= lowmidR;
|
||||
|
||||
outSample = (lowmidR * lowC[biq_a0]) + lowC[biq_sR1];
|
||||
lowC[biq_sR1] = (lowmidR * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sR2];
|
||||
lowC[biq_sR2] = (lowmidR * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassR = outSample; lowmidR -= bassR;
|
||||
|
||||
trebleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highRIIR = (highRIIR*highCoef) + (trebleR*(1.0-highCoef));
|
||||
highmidR = highRIIR; trebleR -= highmidR;
|
||||
|
||||
midRIIR = (midRIIR*midCoef) + (highmidR*(1.0-midCoef));
|
||||
lowmidR = midRIIR; highmidR -= lowmidR;
|
||||
|
||||
lowRIIR = (lowRIIR*lowCoef) + (lowmidR*(1.0-lowCoef));
|
||||
bassR = lowRIIR; lowmidR -= bassR;
|
||||
|
||||
inputSampleR = (bassR*bassGain) + (lowmidR*lowmidGain) + (highmidR*highmidGain) + (trebleR*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
}
|
||||
//SmoothEQ2
|
||||
|
||||
|
||||
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;
|
||||
bezCompF[bez_CL] = bezCompF[bez_BL];
|
||||
bezCompF[bez_BL] = bezCompF[bez_AL];
|
||||
bezCompF[bez_AL] = bezCompF[bez_SampL];
|
||||
bezCompF[bez_SampL] = 0.0;
|
||||
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;
|
||||
bezCompS[bez_CL] = bezCompS[bez_BL];
|
||||
bezCompS[bez_BL] = bezCompS[bez_AL];
|
||||
bezCompS[bez_AL] = bezCompS[bez_SampL];
|
||||
bezCompS[bez_SampL] = 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));
|
||||
//Dynamics2
|
||||
bezCompF[bez_cycle] += bezRez;
|
||||
bezCompF[bez_Ctrl] += (fmax(fabs(inputSampleL),fabs(inputSampleR)) * bezRez);
|
||||
if (bezCompF[bez_cycle] > 1.0) {
|
||||
bezCompF[bez_cycle] -= 1.0;
|
||||
bezCompF[bez_C] = bezCompF[bez_B];
|
||||
bezCompF[bez_B] = bezCompF[bez_A];
|
||||
bezCompF[bez_A] = bezCompF[bez_Ctrl];
|
||||
bezCompF[bez_Ctrl] = 0.0;
|
||||
}
|
||||
bezCompS[bez_cycle] += sloRez;
|
||||
bezCompS[bez_Ctrl] += (fmax(fabs(inputSampleL),fabs(inputSampleR)) * sloRez);
|
||||
if (bezCompS[bez_cycle] > 1.0) {
|
||||
bezCompS[bez_cycle] -= 1.0;
|
||||
bezCompS[bez_C] = bezCompS[bez_B];
|
||||
bezCompS[bez_B] = bezCompS[bez_A];
|
||||
bezCompS[bez_A] = bezCompS[bez_Ctrl];
|
||||
bezCompS[bez_Ctrl] = 0.0;
|
||||
}
|
||||
double CBF = (bezCompF[bez_C]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_B]*bezCompF[bez_cycle]);
|
||||
double BAF = (bezCompF[bez_B]*(1.0-bezCompF[bez_cycle]))+(bezCompF[bez_A]*bezCompF[bez_cycle]);
|
||||
double CBAF = (bezCompF[bez_B]+(CBF*(1.0-bezCompF[bez_cycle]))+(BAF*bezCompF[bez_cycle]))*0.5;
|
||||
double CBS = (bezCompS[bez_C]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_B]*bezCompS[bez_cycle]);
|
||||
double BAS = (bezCompS[bez_B]*(1.0-bezCompS[bez_cycle]))+(bezCompS[bez_A]*bezCompS[bez_cycle]);
|
||||
double CBAS = (bezCompS[bez_B]+(CBS*(1.0-bezCompS[bez_cycle]))+(BAS*bezCompS[bez_cycle]))*0.5;
|
||||
double CBAMax = fmax(CBAS,CBAF); if (CBAMax > 0.0) CBAMax = 1.0/CBAMax;
|
||||
double CBAFade = ((CBAS*-CBAMax)+(CBAF*CBAMax)+1.0)*0.5;
|
||||
inputSampleL *= 1.0-(fmin(((CBAS*(1.0-CBAFade))+(CBAF*CBAFade))*bezCThresh,1.0));
|
||||
inputSampleR *= 1.0-(fmin(((CBAS*(1.0-CBAFade))+(CBAF*CBAFade))*bezCThresh,1.0));
|
||||
} else {bezCompF[bez_Ctrl] = 0.0; bezCompS[bez_Ctrl] = 0.0;}
|
||||
//Dynamics2 custom version for buss
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
double gainR = (panA*temp)+(panB*(1.0-temp));
|
||||
|
|
@ -698,48 +684,39 @@ OSStatus ConsoleX2Buss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActio
|
|||
darkSampleL /= 2.0; darkSampleR /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
double avgSlewL = fmin(lastSlewL*lastSlewL*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223);
|
||||
lastSlewR += fabs(lastSlewpleR-inputSampleR); lastSlewpleR = inputSampleR;
|
||||
double avgSlewR = fmin(lastSlewR,1.0);
|
||||
double avgSlewR = fmin(lastSlewR*lastSlewR*(0.0635-(overallscale*0.0018436)),1.0);
|
||||
lastSlewR = fmax(lastSlewR*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
inputSampleR = (inputSampleR*(1.0-avgSlewR)) + (darkSampleR*avgSlewR);
|
||||
|
||||
//begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
inputSampleL *= 0.92;
|
||||
//end TapeHack section
|
||||
inputSampleL = fmin(fmax(inputSampleL,-2.032610446872596),2.032610446872596);
|
||||
long double X = inputSampleL * inputSampleL;
|
||||
long double sat = inputSampleL * X;
|
||||
inputSampleL -= (sat*0.125); sat *= X;
|
||||
inputSampleL += (sat*0.0078125); sat *= X;
|
||||
inputSampleL -= (sat*0.000244140625); sat *= X;
|
||||
inputSampleL += (sat*0.000003814697265625); sat *= X;
|
||||
inputSampleL -= (sat*0.0000000298023223876953125); sat *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
|
||||
//begin TapeHack section
|
||||
inputSampleR = fmax(fmin(inputSampleR,2.305929007734908),-2.305929007734908);
|
||||
addtwo = inputSampleR * inputSampleR;
|
||||
empower = inputSampleR * addtwo; // inputSampleR to the third power
|
||||
inputSampleR -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleR += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleR -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleR += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleR -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
inputSampleR *= 0.92;
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
inputSampleR = fmin(fmax(inputSampleR,-2.032610446872596),2.032610446872596);
|
||||
X = inputSampleR * inputSampleR;
|
||||
sat = inputSampleR * X;
|
||||
inputSampleR -= (sat*0.125); sat *= X;
|
||||
inputSampleR += (sat*0.0078125); sat *= X;
|
||||
inputSampleR -= (sat*0.000244140625); sat *= X;
|
||||
inputSampleR += (sat*0.000003814697265625); sat *= X;
|
||||
inputSampleR -= (sat*0.0000000298023223876953125); sat *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
|
||||
//we are leaving it as a clip that will go over 0dB.
|
||||
//it is a softclip so it will give you a more forgiving experience,
|
||||
//but you are meant to not drive the softclip for just level.
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
|
|
|
|||
|
|
@ -54,45 +54,49 @@
|
|||
#pragma mark ____ConsoleX2Buss Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 0.5;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
static const float kDefaultValue_ParamG = 0.5;
|
||||
static const float kDefaultValue_ParamH = 0.5;
|
||||
static const float kDefaultValue_ParamI = 1.0;
|
||||
static const float kDefaultValue_ParamJ = 0.5;
|
||||
static const float kDefaultValue_ParamK = 0.5;
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.5;
|
||||
|
||||
static CFStringRef kParameterAUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterAName = CFSTR("High");
|
||||
static CFStringRef kParameterBName = CFSTR("HMid");
|
||||
static CFStringRef kParameterCName = CFSTR("LMid");
|
||||
static CFStringRef kParameterDName = CFSTR("Bass");
|
||||
static CFStringRef kParameterEUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterEName = CFSTR("HighF");
|
||||
static CFStringRef kParameterFName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterGName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterHName = CFSTR("BassF");
|
||||
static CFStringRef kParameterIUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterIName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterJName = CFSTR("Pan");
|
||||
static CFStringRef kParameterKName = CFSTR("Fader");
|
||||
static const float kDefaultValue_ParamHIF = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamTHR = 1.0;
|
||||
static const float kDefaultValue_ParamPAN = 0.5;
|
||||
static const float kDefaultValue_ParamFAD = 0.5;
|
||||
|
||||
static CFStringRef kParameterHIGUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterHIGName = CFSTR("High");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HMid");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LMid");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
|
||||
static CFStringRef kParameterHIFUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterHIFName = CFSTR("HighF");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterBSFName = CFSTR("BassF");
|
||||
|
||||
static CFStringRef kParameterTHRUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterTHRName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterPANName = CFSTR("Pan");
|
||||
static CFStringRef kParameterFADName = CFSTR("Fader");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
kParam_G =6,
|
||||
kParam_H =7,
|
||||
kParam_I =8,
|
||||
kParam_J =9,
|
||||
kParam_K =10,
|
||||
kParam_HIG =0,
|
||||
kParam_HMG =1,
|
||||
kParam_LMG =2,
|
||||
kParam_BSG =3,
|
||||
kParam_HIF =4,
|
||||
kParam_HMF =5,
|
||||
kParam_LMF =6,
|
||||
kParam_BSF =7,
|
||||
kParam_THR =8,
|
||||
kParam_PAN =9,
|
||||
kParam_FAD =10,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=11
|
||||
};
|
||||
|
|
@ -155,7 +159,7 @@ public:
|
|||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating bessel filter, stereo
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highA[biq_total];
|
||||
double highB[biq_total];
|
||||
double highC[biq_total];
|
||||
|
|
@ -176,25 +180,16 @@ public:
|
|||
//SmoothEQ2
|
||||
|
||||
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_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
//Dynamics2
|
||||
//Dynamics2 custom for buss
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
|
|
@ -217,6 +212,7 @@ public:
|
|||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
|
|
|||
Binary file not shown.
File diff suppressed because it is too large
Load diff
|
|
@ -54,67 +54,75 @@
|
|||
#pragma mark ____ConsoleX2Channel Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamA = 1;
|
||||
static const float kDefaultValue_ParamB = 0.0;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
static const float kDefaultValue_ParamG = 0.5;
|
||||
static const float kDefaultValue_ParamH = 0.5;
|
||||
static const float kDefaultValue_ParamI = 0.5;
|
||||
static const float kDefaultValue_ParamJ = 0.5;
|
||||
static const float kDefaultValue_ParamK = 1.0;
|
||||
static const float kDefaultValue_ParamL = 0.5;
|
||||
static const float kDefaultValue_ParamM = 0.5;
|
||||
static const float kDefaultValue_ParamN = 0.0;
|
||||
static const float kDefaultValue_ParamO = 1.0;
|
||||
static const float kDefaultValue_ParamP = 0.0;
|
||||
static const float kDefaultValue_ParamQ = 0.5;
|
||||
static const float kDefaultValue_ParamR = 0.5;
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Trim");
|
||||
static CFStringRef kParameterBName = CFSTR("More");
|
||||
static CFStringRef kParameterCUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterCName = CFSTR("High");
|
||||
static CFStringRef kParameterDName = CFSTR("HMid");
|
||||
static CFStringRef kParameterEName = CFSTR("LMid");
|
||||
static CFStringRef kParameterFName = CFSTR("Bass");
|
||||
static CFStringRef kParameterGUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterGName = CFSTR("HighF");
|
||||
static CFStringRef kParameterHName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterIName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterJName = CFSTR("BassF");
|
||||
static CFStringRef kParameterKUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterKName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterLName = CFSTR("Attack");
|
||||
static CFStringRef kParameterMName = CFSTR("Release");
|
||||
static CFStringRef kParameterNName = CFSTR("Gate");
|
||||
static CFStringRef kParameterOUnit = CFSTR("fltr");
|
||||
static CFStringRef kParameterOName = CFSTR("Lowpass");
|
||||
static CFStringRef kParameterPName = CFSTR("Hipass");
|
||||
static CFStringRef kParameterQName = CFSTR("Pan");
|
||||
static CFStringRef kParameterRName = CFSTR("Fader");
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamHIF = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamTHR = 1.0;
|
||||
static const float kDefaultValue_ParamATK = 0.5;
|
||||
static const float kDefaultValue_ParamRLS = 0.5;
|
||||
static const float kDefaultValue_ParamGAT = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamLOP = 1.0;
|
||||
static const float kDefaultValue_ParamHIP = 0.0;
|
||||
static const float kDefaultValue_ParamPAN = 0.5;
|
||||
static const float kDefaultValue_ParamFAD = 0.5;
|
||||
|
||||
static CFStringRef kParameterTRMName = CFSTR("Trim");
|
||||
static CFStringRef kParameterMORName = CFSTR("More");
|
||||
|
||||
static CFStringRef kParameterHIGUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterHIGName = CFSTR("High");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HMid");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LMid");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
|
||||
static CFStringRef kParameterHIFUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterHIFName = CFSTR("HighF");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterBSFName = CFSTR("BassF");
|
||||
|
||||
static CFStringRef kParameterTHRUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterTHRName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterATKName = CFSTR("Attack");
|
||||
static CFStringRef kParameterRLSName = CFSTR("Release");
|
||||
static CFStringRef kParameterGATName = CFSTR("Gate");
|
||||
|
||||
static CFStringRef kParameterLOPUnit = CFSTR("fltr");
|
||||
static CFStringRef kParameterLOPName = CFSTR("Lowpass");
|
||||
static CFStringRef kParameterHIPName = CFSTR("Hipass");
|
||||
static CFStringRef kParameterPANName = CFSTR("Pan");
|
||||
static CFStringRef kParameterFADName = CFSTR("Fader");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
kParam_G =6,
|
||||
kParam_H =7,
|
||||
kParam_I =8,
|
||||
kParam_J =9,
|
||||
kParam_K =10,
|
||||
kParam_L =11,
|
||||
kParam_M =12,
|
||||
kParam_N =13,
|
||||
kParam_O =14,
|
||||
kParam_P =15,
|
||||
kParam_Q =16,
|
||||
kParam_R =17,
|
||||
kParam_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_HMG =3,
|
||||
kParam_LMG =4,
|
||||
kParam_BSG =5,
|
||||
kParam_HIF =6,
|
||||
kParam_HMF =7,
|
||||
kParam_LMF =8,
|
||||
kParam_BSF =9,
|
||||
kParam_THR =10,
|
||||
kParam_ATK =11,
|
||||
kParam_RLS =12,
|
||||
kParam_GAT =13,
|
||||
kParam_LOP =14,
|
||||
kParam_HIP =15,
|
||||
kParam_PAN =16,
|
||||
kParam_FAD =17,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=18
|
||||
};
|
||||
|
|
@ -200,26 +208,18 @@ public:
|
|||
//SmoothEQ2
|
||||
|
||||
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_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
//Dynamics3
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -59,23 +59,23 @@ ConsoleX2Pre::ConsoleX2Pre(AudioUnit component)
|
|||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_A, kDefaultValue_ParamA );
|
||||
SetParameter(kParam_B, kDefaultValue_ParamB );
|
||||
SetParameter(kParam_C, kDefaultValue_ParamC );
|
||||
SetParameter(kParam_D, kDefaultValue_ParamD );
|
||||
SetParameter(kParam_E, kDefaultValue_ParamE );
|
||||
SetParameter(kParam_F, kDefaultValue_ParamF );
|
||||
SetParameter(kParam_G, kDefaultValue_ParamG );
|
||||
SetParameter(kParam_H, kDefaultValue_ParamH );
|
||||
SetParameter(kParam_I, kDefaultValue_ParamI );
|
||||
SetParameter(kParam_J, kDefaultValue_ParamJ );
|
||||
SetParameter(kParam_K, kDefaultValue_ParamK );
|
||||
SetParameter(kParam_L, kDefaultValue_ParamL );
|
||||
SetParameter(kParam_M, kDefaultValue_ParamM );
|
||||
SetParameter(kParam_N, kDefaultValue_ParamN );
|
||||
SetParameter(kParam_O, kDefaultValue_ParamO );
|
||||
SetParameter(kParam_P, kDefaultValue_ParamP );
|
||||
SetParameter(kParam_Q, kDefaultValue_ParamQ );
|
||||
SetParameter(kParam_TRM, kDefaultValue_ParamTRM );
|
||||
SetParameter(kParam_MOR, kDefaultValue_ParamMOR );
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
|
||||
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
|
||||
SetParameter(kParam_BSG, kDefaultValue_ParamBSG );
|
||||
SetParameter(kParam_HIF, kDefaultValue_ParamHIF );
|
||||
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
|
||||
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
|
||||
SetParameter(kParam_BSF, kDefaultValue_ParamBSF );
|
||||
SetParameter(kParam_THR, kDefaultValue_ParamTHR );
|
||||
SetParameter(kParam_ATK, kDefaultValue_ParamATK );
|
||||
SetParameter(kParam_RLS, kDefaultValue_ParamRLS );
|
||||
SetParameter(kParam_GAT, kDefaultValue_ParamGAT );
|
||||
SetParameter(kParam_LOP, kDefaultValue_ParamLOP );
|
||||
SetParameter(kParam_HIP, kDefaultValue_ParamHIP );
|
||||
SetParameter(kParam_FAD, kDefaultValue_ParamFAD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
|
|
@ -112,128 +112,128 @@ ComponentResult ConsoleX2Pre::GetParameterInfo(AudioUnitScope inScope,
|
|||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_A:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterAName, false);
|
||||
case kParam_TRM:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRMName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
|
||||
outParameterInfo.minValue = 0;
|
||||
outParameterInfo.maxValue = 4;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamA;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRM;
|
||||
break;
|
||||
case kParam_B:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBName, false);
|
||||
case kParam_MOR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMORName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamB;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMOR;
|
||||
break;
|
||||
case kParam_C:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCName, false);
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterCUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamC;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_D:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterDName, false);
|
||||
case kParam_HMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamD;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
|
||||
break;
|
||||
case kParam_E:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterEName, false);
|
||||
case kParam_LMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamE;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
|
||||
break;
|
||||
case kParam_F:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFName, false);
|
||||
case kParam_BSG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamF;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSG;
|
||||
break;
|
||||
case kParam_G:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGName, false);
|
||||
case kParam_HIF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterGUnit;
|
||||
outParameterInfo.unitName = kParameterHIFUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamG;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIF;
|
||||
break;
|
||||
case kParam_H:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHName, false);
|
||||
case kParam_HMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamH;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
|
||||
break;
|
||||
case kParam_I:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterIName, false);
|
||||
case kParam_LMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamI;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
|
||||
break;
|
||||
case kParam_J:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterJName, false);
|
||||
case kParam_BSF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamJ;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSF;
|
||||
break;
|
||||
case kParam_K:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterKName, false);
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterKUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamK;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
case kParam_L:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLName, false);
|
||||
case kParam_ATK:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterATKName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamL;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamATK;
|
||||
break;
|
||||
case kParam_M:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMName, false);
|
||||
case kParam_RLS:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterRLSName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamM;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamRLS;
|
||||
break;
|
||||
case kParam_N:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterNName, false);
|
||||
case kParam_GAT:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGATName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamN;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamGAT;
|
||||
break;
|
||||
case kParam_O:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterOName, false);
|
||||
case kParam_LOP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterOUnit;
|
||||
outParameterInfo.unitName = kParameterLOPUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamO;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOP;
|
||||
break;
|
||||
case kParam_P:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterPName, false);
|
||||
case kParam_HIP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamP;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIP;
|
||||
break;
|
||||
case kParam_Q:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterQName, false);
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamQ;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
|
|
@ -306,10 +306,10 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Reset()
|
|||
lowIIR = 0.0;
|
||||
//SmoothEQ2
|
||||
|
||||
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;
|
||||
//Dynamics2
|
||||
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
|
||||
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
|
||||
bezGate = 2.0;
|
||||
//Dynamics3
|
||||
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
|
|
@ -366,323 +366,321 @@ void ConsoleX2Pre::ConsoleX2PreKernel::Process( const Float32 *inSourceP,
|
|||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double moreTapeHack = (GetParameter( kParam_B )*2.0)+1.0;
|
||||
switch ((int)GetParameter( kParam_A )){
|
||||
double moreTapeHack = (GetParameter( kParam_MOR )*2.0)+1.0;
|
||||
bool tapehackOff = (GetParameter( kParam_MOR ) == 0.0);
|
||||
switch ((int)GetParameter( kParam_TRM )){
|
||||
case 0: moreTapeHack *= 0.5; break;
|
||||
case 1: break;
|
||||
case 2: moreTapeHack *= 2.0; break;
|
||||
case 3: moreTapeHack *= 4.0; break;
|
||||
case 4: moreTapeHack *= 8.0; break;
|
||||
}
|
||||
double moreDiscontinuity = fmax(pow(GetParameter( kParam_B )*0.42,3.0)*overallscale,0.00001);
|
||||
double moreDiscontinuity = fmax(pow(GetParameter( kParam_MOR )*0.42,3.0)*overallscale,0.00001);
|
||||
//Discontapeity
|
||||
|
||||
double trebleGain = (GetParameter( kParam_C )-0.5)*2.0;
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double highmidGain = (GetParameter( kParam_D )-0.5)*2.0;
|
||||
double highmidGain = (GetParameter( kParam_HMG )-0.5)*2.0;
|
||||
highmidGain = 1.0+(highmidGain*fabs(highmidGain)*fabs(highmidGain));
|
||||
double lowmidGain = (GetParameter( kParam_E )-0.5)*2.0;
|
||||
double lowmidGain = (GetParameter( kParam_LMG )-0.5)*2.0;
|
||||
lowmidGain = 1.0+(lowmidGain*fabs(lowmidGain)*fabs(lowmidGain));
|
||||
double bassGain = (GetParameter( kParam_F )-0.5)*2.0;
|
||||
double bassGain = (GetParameter( kParam_BSG )-0.5)*2.0;
|
||||
bassGain = 1.0+(bassGain*fabs(bassGain)*fabs(bassGain));
|
||||
double highCoef = 0.0;
|
||||
double midCoef = 0.0;
|
||||
double lowCoef = 0.0;
|
||||
|
||||
double trebleRef = GetParameter( kParam_G )-0.5;
|
||||
double highmidRef = GetParameter( kParam_H )-0.5;
|
||||
double lowmidRef = GetParameter( kParam_I )-0.5;
|
||||
double bassRef = GetParameter( kParam_J )-0.5;
|
||||
double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125);
|
||||
double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125);
|
||||
double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125);
|
||||
|
||||
double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125);
|
||||
double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125);
|
||||
double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125);
|
||||
|
||||
highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate());
|
||||
highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025);
|
||||
double highFreq = pow(highF,3)*20000.0;
|
||||
double omega = 2.0*M_PI*(highFreq/GetSampleRate());
|
||||
double biqK = 2.0-cos(omega);
|
||||
double highCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
highA[biq_reso] = 2.24697960 * highQ;
|
||||
highB[biq_reso] = 0.80193774 * highQ;
|
||||
highC[biq_reso] = 0.55495813 * highQ;
|
||||
|
||||
midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate());
|
||||
midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025);
|
||||
double midFreq = pow(midF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(midFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
double midCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
midA[biq_reso] = 2.24697960 * midQ;
|
||||
midB[biq_reso] = 0.80193774 * midQ;
|
||||
midC[biq_reso] = 0.55495813 * midQ;
|
||||
|
||||
lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate());
|
||||
lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025);
|
||||
double lowFreq = pow(bassF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(lowFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
double lowCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
lowA[biq_reso] = 2.24697960 * lowQ;
|
||||
lowB[biq_reso] = 0.80193774 * lowQ;
|
||||
lowC[biq_reso] = 0.55495813 * lowQ;
|
||||
|
||||
biqK = tan(M_PI * highA[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK);
|
||||
highA[biq_a0] = biqK * biqK * norm;
|
||||
highA[biq_a1] = 2.0 * highA[biq_a0];
|
||||
highA[biq_a2] = highA[biq_a0];
|
||||
highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK);
|
||||
highB[biq_a0] = biqK * biqK * norm;
|
||||
highB[biq_a1] = 2.0 * highB[biq_a0];
|
||||
highB[biq_a2] = highB[biq_a0];
|
||||
highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK);
|
||||
highC[biq_a0] = biqK * biqK * norm;
|
||||
highC[biq_a1] = 2.0 * highC[biq_a0];
|
||||
highC[biq_a2] = highC[biq_a0];
|
||||
highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * midA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK);
|
||||
midA[biq_a0] = biqK * biqK * norm;
|
||||
midA[biq_a1] = 2.0 * midA[biq_a0];
|
||||
midA[biq_a2] = midA[biq_a0];
|
||||
midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK);
|
||||
midB[biq_a0] = biqK * biqK * norm;
|
||||
midB[biq_a1] = 2.0 * midB[biq_a0];
|
||||
midB[biq_a2] = midB[biq_a0];
|
||||
midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK);
|
||||
midC[biq_a0] = biqK * biqK * norm;
|
||||
midC[biq_a1] = 2.0 * midC[biq_a0];
|
||||
midC[biq_a2] = midC[biq_a0];
|
||||
midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK);
|
||||
lowA[biq_a0] = biqK * biqK * norm;
|
||||
lowA[biq_a1] = 2.0 * lowA[biq_a0];
|
||||
lowA[biq_a2] = lowA[biq_a0];
|
||||
lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK);
|
||||
lowB[biq_a0] = biqK * biqK * norm;
|
||||
lowB[biq_a1] = 2.0 * lowB[biq_a0];
|
||||
lowB[biq_a2] = lowB[biq_a0];
|
||||
lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK);
|
||||
lowC[biq_a0] = biqK * biqK * norm;
|
||||
lowC[biq_a1] = 2.0 * lowC[biq_a0];
|
||||
lowC[biq_a2] = lowC[biq_a0];
|
||||
lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm;
|
||||
bool eqOff = (trebleGain == 1.0 && highmidGain == 1.0 && lowmidGain == 1.0 && bassGain == 1.0);
|
||||
//we get to completely bypass EQ if we're truly not using it. The mechanics of it mean that
|
||||
//it cancels out to bit-identical anyhow, but we get to skip the calculation
|
||||
if (!eqOff) {
|
||||
double trebleRef = GetParameter( kParam_HIF )-0.5;
|
||||
double highmidRef = GetParameter( kParam_HMF )-0.5;
|
||||
double lowmidRef = GetParameter( kParam_LMF )-0.5;
|
||||
double bassRef = GetParameter( kParam_BSF )-0.5;
|
||||
double highF = 0.75 + ((trebleRef+trebleRef+trebleRef+highmidRef)*0.125);
|
||||
double bassF = 0.25 + ((lowmidRef+bassRef+bassRef+bassRef)*0.125);
|
||||
double midF = (highF*0.5) + (bassF*0.5) + ((highmidRef+lowmidRef)*0.125);
|
||||
|
||||
double highQ = fmax(fmin(1.0+(highmidRef-trebleRef),4.0),0.125);
|
||||
double midQ = fmax(fmin(1.0+(lowmidRef-highmidRef),4.0),0.125);
|
||||
double lowQ = fmax(fmin(1.0+(bassRef-lowmidRef),4.0),0.125);
|
||||
|
||||
highA[biq_freq] = ((pow(highF,3)*20000.0)/GetSampleRate());
|
||||
highC[biq_freq] = highB[biq_freq] = highA[biq_freq] = fmax(fmin(highA[biq_freq],0.4999),0.00025);
|
||||
double highFreq = pow(highF,3)*20000.0;
|
||||
double omega = 2.0*M_PI*(highFreq/GetSampleRate());
|
||||
double biqK = 2.0-cos(omega);
|
||||
highCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
highA[biq_reso] = 2.24697960 * highQ;
|
||||
highB[biq_reso] = 0.80193774 * highQ;
|
||||
highC[biq_reso] = 0.55495813 * highQ;
|
||||
|
||||
midA[biq_freq] = ((pow(midF,3)*20000.0)/GetSampleRate());
|
||||
midC[biq_freq] = midB[biq_freq] = midA[biq_freq] = fmax(fmin(midA[biq_freq],0.4999),0.00025);
|
||||
double midFreq = pow(midF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(midFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
midCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
midA[biq_reso] = 2.24697960 * midQ;
|
||||
midB[biq_reso] = 0.80193774 * midQ;
|
||||
midC[biq_reso] = 0.55495813 * midQ;
|
||||
|
||||
lowA[biq_freq] = ((pow(bassF,3)*20000.0)/GetSampleRate());
|
||||
lowC[biq_freq] = lowB[biq_freq] = lowA[biq_freq] = fmax(fmin(lowA[biq_freq],0.4999),0.00025);
|
||||
double lowFreq = pow(bassF,3)*20000.0;
|
||||
omega = 2.0*M_PI*(lowFreq/GetSampleRate());
|
||||
biqK = 2.0-cos(omega);
|
||||
lowCoef = -sqrt((biqK*biqK)-1.0)+biqK;
|
||||
lowA[biq_reso] = 2.24697960 * lowQ;
|
||||
lowB[biq_reso] = 0.80193774 * lowQ;
|
||||
lowC[biq_reso] = 0.55495813 * lowQ;
|
||||
|
||||
biqK = tan(M_PI * highA[biq_freq]);
|
||||
double norm = 1.0 / (1.0 + biqK / highA[biq_reso] + biqK * biqK);
|
||||
highA[biq_a0] = biqK * biqK * norm;
|
||||
highA[biq_a1] = 2.0 * highA[biq_a0];
|
||||
highA[biq_a2] = highA[biq_a0];
|
||||
highA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highA[biq_b2] = (1.0 - biqK / highA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highB[biq_reso] + biqK * biqK);
|
||||
highB[biq_a0] = biqK * biqK * norm;
|
||||
highB[biq_a1] = 2.0 * highB[biq_a0];
|
||||
highB[biq_a2] = highB[biq_a0];
|
||||
highB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highB[biq_b2] = (1.0 - biqK / highB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * highC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / highC[biq_reso] + biqK * biqK);
|
||||
highC[biq_a0] = biqK * biqK * norm;
|
||||
highC[biq_a1] = 2.0 * highC[biq_a0];
|
||||
highC[biq_a2] = highC[biq_a0];
|
||||
highC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highC[biq_b2] = (1.0 - biqK / highC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * midA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midA[biq_reso] + biqK * biqK);
|
||||
midA[biq_a0] = biqK * biqK * norm;
|
||||
midA[biq_a1] = 2.0 * midA[biq_a0];
|
||||
midA[biq_a2] = midA[biq_a0];
|
||||
midA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midA[biq_b2] = (1.0 - biqK / midA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midB[biq_reso] + biqK * biqK);
|
||||
midB[biq_a0] = biqK * biqK * norm;
|
||||
midB[biq_a1] = 2.0 * midB[biq_a0];
|
||||
midB[biq_a2] = midB[biq_a0];
|
||||
midB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midB[biq_b2] = (1.0 - biqK / midB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * midC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / midC[biq_reso] + biqK * biqK);
|
||||
midC[biq_a0] = biqK * biqK * norm;
|
||||
midC[biq_a1] = 2.0 * midC[biq_a0];
|
||||
midC[biq_a2] = midC[biq_a0];
|
||||
midC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
midC[biq_b2] = (1.0 - biqK / midC[biq_reso] + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowA[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowA[biq_reso] + biqK * biqK);
|
||||
lowA[biq_a0] = biqK * biqK * norm;
|
||||
lowA[biq_a1] = 2.0 * lowA[biq_a0];
|
||||
lowA[biq_a2] = lowA[biq_a0];
|
||||
lowA[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowA[biq_b2] = (1.0 - biqK / lowA[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowB[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowB[biq_reso] + biqK * biqK);
|
||||
lowB[biq_a0] = biqK * biqK * norm;
|
||||
lowB[biq_a1] = 2.0 * lowB[biq_a0];
|
||||
lowB[biq_a2] = lowB[biq_a0];
|
||||
lowB[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowB[biq_b2] = (1.0 - biqK / lowB[biq_reso] + biqK * biqK) * norm;
|
||||
biqK = tan(M_PI * lowC[biq_freq]);
|
||||
norm = 1.0 / (1.0 + biqK / lowC[biq_reso] + biqK * biqK);
|
||||
lowC[biq_a0] = biqK * biqK * norm;
|
||||
lowC[biq_a1] = 2.0 * lowC[biq_a0];
|
||||
lowC[biq_a2] = lowC[biq_a0];
|
||||
lowC[biq_b1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowC[biq_b2] = (1.0 - biqK / lowC[biq_reso] + biqK * biqK) * norm;
|
||||
}
|
||||
//SmoothEQ2
|
||||
|
||||
double bezCThresh = pow(1.0-GetParameter( kParam_K ), 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_L ), 8.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_M ),12.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez-(bezRez*0.5),0.00001),1.0);
|
||||
double bezThresh = pow(1.0-GetParameter( kParam_THR ), 4.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_ATK ), 4.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_RLS ), 4.0) / overallscale;
|
||||
double gate = pow(GetParameter( kParam_GAT ),4.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_N ),4.0),sqrt(bezCThresh+1.0));
|
||||
//Dynamics2
|
||||
sloRez = fmin(fmax(sloRez,0.0001),1.0);
|
||||
//Dynamics3
|
||||
|
||||
lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_O ),0.002),overallscale); //the lowpass
|
||||
hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_P ),overallscale+2.0); //the highpass
|
||||
lFreqA = lFreqB; lFreqB = pow(fmax(GetParameter( kParam_LOP ),0.002),overallscale); //the lowpass
|
||||
hFreqA = hFreqB; hFreqB = pow(GetParameter( kParam_HIP ),overallscale+2.0); //the highpass
|
||||
//Cabs2
|
||||
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_Q )*2.0;
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_FAD )*2.0;
|
||||
//Console
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
double darkSampleL = inputSampleL;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x];}
|
||||
darkSampleL /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x];}
|
||||
darkSampleL /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x];}
|
||||
darkSampleL /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x];}
|
||||
darkSampleL /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x];}
|
||||
darkSampleL /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreTapeHack;
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//trim control gets to work even when MORE is off
|
||||
|
||||
double trebleL = inputSampleL;
|
||||
double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1];
|
||||
highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2];
|
||||
highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidL = outSample; trebleL -= highmidL;
|
||||
if (!tapehackOff) {
|
||||
double darkSampleL = inputSampleL;
|
||||
if (avgPos > 31) avgPos = 0;
|
||||
if (spacing > 31) {
|
||||
avg32L[avgPos] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 32; x++) {darkSampleL += avg32L[x];}
|
||||
darkSampleL /= 32.0;
|
||||
} if (spacing > 15) {
|
||||
avg16L[avgPos%16] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 16; x++) {darkSampleL += avg16L[x];}
|
||||
darkSampleL /= 16.0;
|
||||
} if (spacing > 7) {
|
||||
avg8L[avgPos%8] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 8; x++) {darkSampleL += avg8L[x];}
|
||||
darkSampleL /= 8.0;
|
||||
} if (spacing > 3) {
|
||||
avg4L[avgPos%4] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 4; x++) {darkSampleL += avg4L[x];}
|
||||
darkSampleL /= 4.0;
|
||||
} if (spacing > 1) {
|
||||
avg2L[avgPos%2] = darkSampleL;
|
||||
darkSampleL = 0.0;
|
||||
for (int x = 0; x < 2; x++) {darkSampleL += avg2L[x];}
|
||||
darkSampleL /= 2.0;
|
||||
} avgPos++;
|
||||
lastSlewL += fabs(lastSlewpleL-inputSampleL); lastSlewpleL = inputSampleL;
|
||||
double avgSlewL = fmin(lastSlewL,1.0);
|
||||
lastSlewL = fmax(lastSlewL*0.78,2.39996322972865332223); //look up Golden Angle, it's cool
|
||||
inputSampleL = (inputSampleL*(1.0-avgSlewL)) + (darkSampleL*avgSlewL);
|
||||
//begin Discontinuity section
|
||||
inputSampleL *= moreDiscontinuity;
|
||||
dBaL[dBaXL] = inputSampleL; dBaPosL *= 0.5; dBaPosL += fabs((inputSampleL*((inputSampleL*0.25)-0.5))*0.5);
|
||||
dBaPosL = fmin(dBaPosL,1.0);
|
||||
int dBdly = floor(dBaPosL*dscBuf);
|
||||
double dBi = (dBaPosL*dscBuf)-dBdly;
|
||||
inputSampleL = dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*(1.0-dBi);
|
||||
dBdly++; inputSampleL += dBaL[dBaXL-dBdly +((dBaXL-dBdly < 0)?dscBuf:0)]*dBi;
|
||||
dBaXL++; if (dBaXL < 0 || dBaXL >= dscBuf) dBaXL = 0;
|
||||
inputSampleL /= moreDiscontinuity;
|
||||
//end Discontinuity section, begin TapeHack section
|
||||
inputSampleL = fmax(fmin(inputSampleL,2.305929007734908),-2.305929007734908);
|
||||
double addtwo = inputSampleL * inputSampleL;
|
||||
double empower = inputSampleL * addtwo; // inputSampleL to the third power
|
||||
inputSampleL -= (empower / 6.0);
|
||||
empower *= addtwo; // to the fifth power
|
||||
inputSampleL += (empower / 69.0);
|
||||
empower *= addtwo; //seventh
|
||||
inputSampleL -= (empower / 2530.08);
|
||||
empower *= addtwo; //ninth
|
||||
inputSampleL += (empower / 224985.6);
|
||||
empower *= addtwo; //eleventh
|
||||
inputSampleL -= (empower / 9979200.0f);
|
||||
//this is a degenerate form of a Taylor Series to approximate sin()
|
||||
//end TapeHack section
|
||||
//Discontapeity
|
||||
}
|
||||
|
||||
outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1];
|
||||
midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2];
|
||||
midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1];
|
||||
lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2];
|
||||
lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1];
|
||||
highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2];
|
||||
highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1];
|
||||
midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2];
|
||||
midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1];
|
||||
lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2];
|
||||
lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1];
|
||||
highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2];
|
||||
highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1];
|
||||
midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2];
|
||||
midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1];
|
||||
lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2];
|
||||
lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highIIR = (highIIR*highCoef) + (trebleL*(1.0-highCoef));
|
||||
highmidL = highIIR; trebleL -= highmidL;
|
||||
|
||||
midIIR = (midIIR*midCoef) + (highmidL*(1.0-midCoef));
|
||||
lowmidL = midIIR; highmidL -= lowmidL;
|
||||
|
||||
lowIIR = (lowIIR*lowCoef) + (lowmidL*(1.0-lowCoef));
|
||||
bassL = lowIIR; lowmidL -= bassL;
|
||||
|
||||
inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
if (!eqOff) {
|
||||
double trebleL = inputSampleL;
|
||||
double outSample = (trebleL * highA[biq_a0]) + highA[biq_sL1];
|
||||
highA[biq_sL1] = (trebleL * highA[biq_a1]) - (outSample * highA[biq_b1]) + highA[biq_sL2];
|
||||
highA[biq_sL2] = (trebleL * highA[biq_a2]) - (outSample * highA[biq_b2]);
|
||||
double highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midA[biq_a0]) + midA[biq_sL1];
|
||||
midA[biq_sL1] = (highmidL * midA[biq_a1]) - (outSample * midA[biq_b1]) + midA[biq_sL2];
|
||||
midA[biq_sL2] = (highmidL * midA[biq_a2]) - (outSample * midA[biq_b2]);
|
||||
double lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowA[biq_a0]) + lowA[biq_sL1];
|
||||
lowA[biq_sL1] = (lowmidL * lowA[biq_a1]) - (outSample * lowA[biq_b1]) + lowA[biq_sL2];
|
||||
lowA[biq_sL2] = (lowmidL * lowA[biq_a2]) - (outSample * lowA[biq_b2]);
|
||||
double bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//first stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highB[biq_a0]) + highB[biq_sL1];
|
||||
highB[biq_sL1] = (trebleL * highB[biq_a1]) - (outSample * highB[biq_b1]) + highB[biq_sL2];
|
||||
highB[biq_sL2] = (trebleL * highB[biq_a2]) - (outSample * highB[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midB[biq_a0]) + midB[biq_sL1];
|
||||
midB[biq_sL1] = (highmidL * midB[biq_a1]) - (outSample * midB[biq_b1]) + midB[biq_sL2];
|
||||
midB[biq_sL2] = (highmidL * midB[biq_a2]) - (outSample * midB[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowB[biq_a0]) + lowB[biq_sL1];
|
||||
lowB[biq_sL1] = (lowmidL * lowB[biq_a1]) - (outSample * lowB[biq_b1]) + lowB[biq_sL2];
|
||||
lowB[biq_sL2] = (lowmidL * lowB[biq_a2]) - (outSample * lowB[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//second stage of three crossovers
|
||||
|
||||
outSample = (trebleL * highC[biq_a0]) + highC[biq_sL1];
|
||||
highC[biq_sL1] = (trebleL * highC[biq_a1]) - (outSample * highC[biq_b1]) + highC[biq_sL2];
|
||||
highC[biq_sL2] = (trebleL * highC[biq_a2]) - (outSample * highC[biq_b2]);
|
||||
highmidL = outSample; trebleL -= highmidL;
|
||||
|
||||
outSample = (highmidL * midC[biq_a0]) + midC[biq_sL1];
|
||||
midC[biq_sL1] = (highmidL * midC[biq_a1]) - (outSample * midC[biq_b1]) + midC[biq_sL2];
|
||||
midC[biq_sL2] = (highmidL * midC[biq_a2]) - (outSample * midC[biq_b2]);
|
||||
lowmidL = outSample; highmidL -= lowmidL;
|
||||
|
||||
outSample = (lowmidL * lowC[biq_a0]) + lowC[biq_sL1];
|
||||
lowC[biq_sL1] = (lowmidL * lowC[biq_a1]) - (outSample * lowC[biq_b1]) + lowC[biq_sL2];
|
||||
lowC[biq_sL2] = (lowmidL * lowC[biq_a2]) - (outSample * lowC[biq_b2]);
|
||||
bassL = outSample; lowmidL -= bassL;
|
||||
|
||||
trebleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//third stage of three crossovers
|
||||
|
||||
highIIR = (highIIR*highCoef) + (trebleL*(1.0-highCoef));
|
||||
highmidL = highIIR; trebleL -= highmidL;
|
||||
|
||||
midIIR = (midIIR*midCoef) + (highmidL*(1.0-midCoef));
|
||||
lowmidL = midIIR; highmidL -= lowmidL;
|
||||
|
||||
lowIIR = (lowIIR*lowCoef) + (lowmidL*(1.0-lowCoef));
|
||||
bassL = lowIIR; lowmidL -= bassL;
|
||||
|
||||
inputSampleL = (bassL*bassGain) + (lowmidL*lowmidGain) + (highmidL*highmidGain) + (trebleL*trebleGain);
|
||||
//fourth stage of three crossovers is the exponential filters
|
||||
}
|
||||
//SmoothEQ2
|
||||
|
||||
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;
|
||||
//Dynamics2
|
||||
if (bezThresh > 0.0) {
|
||||
if (fabs(inputSampleL) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
|
||||
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
|
||||
inputSampleL *= (bezThresh+1.0);
|
||||
double ctrl = fabs(inputSampleL);
|
||||
bezMax = fmax(bezMax,ctrl);
|
||||
bezMin = fmax(bezMin-sloRez,ctrl);
|
||||
bezComp[bez_cycle] += bezRez;
|
||||
bezComp[bez_Ctrl] += (bezMin * bezRez);
|
||||
if (bezComp[bez_cycle] > 1.0) {
|
||||
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
|
||||
bezComp[bez_cycle] -= 1.0;
|
||||
bezComp[bez_C] = bezComp[bez_B];
|
||||
bezComp[bez_B] = bezComp[bez_A];
|
||||
bezComp[bez_A] = bezComp[bez_Ctrl];
|
||||
bezComp[bez_Ctrl] = 0.0;
|
||||
bezMax = 0.0;
|
||||
}
|
||||
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
|
||||
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
|
||||
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
|
||||
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
} else bezComp[bez_Ctrl] = 0.0;
|
||||
//Dynamics3
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
|
||||
|
|
|
|||
|
|
@ -54,64 +54,72 @@
|
|||
#pragma mark ____ConsoleX2Pre Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamA = 1;
|
||||
static const float kDefaultValue_ParamB = 0.0;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.5;
|
||||
static const float kDefaultValue_ParamE = 0.5;
|
||||
static const float kDefaultValue_ParamF = 0.5;
|
||||
static const float kDefaultValue_ParamG = 0.5;
|
||||
static const float kDefaultValue_ParamH = 0.5;
|
||||
static const float kDefaultValue_ParamI = 0.5;
|
||||
static const float kDefaultValue_ParamJ = 0.5;
|
||||
static const float kDefaultValue_ParamK = 1.0;
|
||||
static const float kDefaultValue_ParamL = 0.5;
|
||||
static const float kDefaultValue_ParamM = 0.5;
|
||||
static const float kDefaultValue_ParamN = 0.0;
|
||||
static const float kDefaultValue_ParamO = 1.0;
|
||||
static const float kDefaultValue_ParamP = 0.0;
|
||||
static const float kDefaultValue_ParamQ = 0.5;
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static CFStringRef kParameterAName = CFSTR("Trim");
|
||||
static CFStringRef kParameterBName = CFSTR("More");
|
||||
static CFStringRef kParameterCUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterCName = CFSTR("High");
|
||||
static CFStringRef kParameterDName = CFSTR("HMid");
|
||||
static CFStringRef kParameterEName = CFSTR("LMid");
|
||||
static CFStringRef kParameterFName = CFSTR("Bass");
|
||||
static CFStringRef kParameterGUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterGName = CFSTR("HighF");
|
||||
static CFStringRef kParameterHName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterIName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterJName = CFSTR("BassF");
|
||||
static CFStringRef kParameterKUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterKName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterLName = CFSTR("Attack");
|
||||
static CFStringRef kParameterMName = CFSTR("Release");
|
||||
static CFStringRef kParameterNName = CFSTR("Gate");
|
||||
static CFStringRef kParameterOUnit = CFSTR("fltr");
|
||||
static CFStringRef kParameterOName = CFSTR("Lowpass");
|
||||
static CFStringRef kParameterPName = CFSTR("Hipass");
|
||||
static CFStringRef kParameterQName = CFSTR("Fader");
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamHIF = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamTHR = 1.0;
|
||||
static const float kDefaultValue_ParamATK = 0.5;
|
||||
static const float kDefaultValue_ParamRLS = 0.5;
|
||||
static const float kDefaultValue_ParamGAT = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamLOP = 1.0;
|
||||
static const float kDefaultValue_ParamHIP = 0.0;
|
||||
static const float kDefaultValue_ParamFAD = 0.5;
|
||||
|
||||
static CFStringRef kParameterTRMName = CFSTR("Trim");
|
||||
static CFStringRef kParameterMORName = CFSTR("More");
|
||||
|
||||
static CFStringRef kParameterHIGUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterHIGName = CFSTR("High");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HMid");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LMid");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
|
||||
static CFStringRef kParameterHIFUnit = CFSTR("freq");
|
||||
static CFStringRef kParameterHIFName = CFSTR("HighF");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HMidF");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LMidF");
|
||||
static CFStringRef kParameterBSFName = CFSTR("BassF");
|
||||
|
||||
static CFStringRef kParameterTHRUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterTHRName = CFSTR("Thresh");
|
||||
static CFStringRef kParameterATKName = CFSTR("Attack");
|
||||
static CFStringRef kParameterRLSName = CFSTR("Release");
|
||||
static CFStringRef kParameterGATName = CFSTR("Gate");
|
||||
|
||||
static CFStringRef kParameterLOPUnit = CFSTR("fltr");
|
||||
static CFStringRef kParameterLOPName = CFSTR("Lowpass");
|
||||
static CFStringRef kParameterHIPName = CFSTR("Hipass");
|
||||
static CFStringRef kParameterFADName = CFSTR("Fader");
|
||||
|
||||
enum {
|
||||
kParam_A =0,
|
||||
kParam_B =1,
|
||||
kParam_C =2,
|
||||
kParam_D =3,
|
||||
kParam_E =4,
|
||||
kParam_F =5,
|
||||
kParam_G =6,
|
||||
kParam_H =7,
|
||||
kParam_I =8,
|
||||
kParam_J =9,
|
||||
kParam_K =10,
|
||||
kParam_L =11,
|
||||
kParam_M =12,
|
||||
kParam_N =13,
|
||||
kParam_O =14,
|
||||
kParam_P =15,
|
||||
kParam_Q =16,
|
||||
kParam_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_HMG =3,
|
||||
kParam_LMG =4,
|
||||
kParam_BSG =5,
|
||||
kParam_HIF =6,
|
||||
kParam_HMF =7,
|
||||
kParam_LMF =8,
|
||||
kParam_BSF =9,
|
||||
kParam_THR =10,
|
||||
kParam_ATK =11,
|
||||
kParam_RLS =12,
|
||||
kParam_GAT =13,
|
||||
kParam_LOP =14,
|
||||
kParam_HIP =15,
|
||||
kParam_FAD =16,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=17
|
||||
};
|
||||
|
|
@ -208,20 +216,18 @@ public:
|
|||
//SmoothEQ2
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
//Dynamics3
|
||||
|
||||
double iirHPosition[23];
|
||||
double iirHAngle[23];
|
||||
|
|
|
|||
Binary file not shown.
293
plugins/MacSignedAU/Dynamics3/Dynamics3.cpp
Executable file
293
plugins/MacSignedAU/Dynamics3/Dynamics3.cpp
Executable file
|
|
@ -0,0 +1,293 @@
|
|||
/*
|
||||
* File: Dynamics3.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Dynamics3.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Dynamics3.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Dynamics3)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::Dynamics3
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Dynamics3::Dynamics3(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
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::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;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::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 Dynamics3::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Dynamics3::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Dynamics3EffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::Dynamics3Kernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
|
||||
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
|
||||
bezGate = 2.0;
|
||||
//Dynamics3
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus Dynamics3::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 bezThresh = pow(1.0-GetParameter( kParam_A ), 4.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_B ), 4.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_C ), 4.0) / overallscale;
|
||||
double gate = pow(GetParameter( kParam_D ),4.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
sloRez = fmin(fmax(sloRez,0.0001),1.0);
|
||||
//Dynamics3
|
||||
|
||||
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) bezGate = overallscale/fmin(bezRez,sloRez);
|
||||
else bezGate = bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
|
||||
|
||||
if (bezThresh > 0.0) {
|
||||
inputSampleL *= (bezThresh+1.0);
|
||||
inputSampleR *= (bezThresh+1.0);
|
||||
}
|
||||
|
||||
double ctrl = fmax(fabs(inputSampleL),fabs(inputSampleR));
|
||||
bezMax = fmax(bezMax,ctrl);
|
||||
bezMin = fmax(bezMin-sloRez,ctrl);
|
||||
bezComp[bez_cycle] += bezRez;
|
||||
bezComp[bez_Ctrl] += (bezMin * bezRez);
|
||||
|
||||
if (bezComp[bez_cycle] > 1.0) {
|
||||
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
|
||||
bezComp[bez_cycle] -= 1.0;
|
||||
bezComp[bez_C] = bezComp[bez_B];
|
||||
bezComp[bez_B] = bezComp[bez_A];
|
||||
bezComp[bez_A] = bezComp[bez_Ctrl];
|
||||
bezComp[bez_Ctrl] = 0.0;
|
||||
bezMax = 0.0;
|
||||
}
|
||||
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
|
||||
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
|
||||
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
|
||||
|
||||
if (bezThresh > 0.0) {
|
||||
inputSampleL *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
inputSampleR *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
}
|
||||
|
||||
//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/Dynamics3/Dynamics3.exp
Executable file
2
plugins/MacSignedAU/Dynamics3/Dynamics3.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_Dynamics3Entry
|
||||
_Dynamics3Factory
|
||||
142
plugins/MacSignedAU/Dynamics3/Dynamics3.h
Executable file
142
plugins/MacSignedAU/Dynamics3/Dynamics3.h
Executable file
|
|
@ -0,0 +1,142 @@
|
|||
/*
|
||||
* File: Dynamics3.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 "Dynamics3Version.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Dynamics3_h__
|
||||
#define __Dynamics3_h__
|
||||
|
||||
|
||||
#pragma mark ____Dynamics3 Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.0;
|
||||
|
||||
static 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 ____Dynamics3
|
||||
class Dynamics3 : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Dynamics3(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Dynamics3 () { 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 kDynamics3Version; }
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
bez_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
//Dynamics3
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/Dynamics3/Dynamics3.r
Executable file
61
plugins/MacSignedAU/Dynamics3/Dynamics3.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Dynamics3.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 "Dynamics3Version.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Dynamics3 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dynamics3~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Dynamics3
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Dynamics3_COMP_SUBTYPE
|
||||
#define COMP_MANUF Dynamics3_COMP_MANF
|
||||
|
||||
#define VERSION kDynamics3Version
|
||||
#define NAME "Airwindows: Dynamics3"
|
||||
#define DESCRIPTION "Dynamics3 AU"
|
||||
#define ENTRY_POINT "Dynamics3Entry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
131
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser
Executable file
131
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,131 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Dynamics3 */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
127,
|
||||
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 = 786918597;
|
||||
PBXWorkspaceStateSaveDate = 786918597;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */ = 8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */;
|
||||
8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */ = 8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B5AB2B22EE779AB00A3F512 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
|
||||
name = "Dynamics3.cpp: 240";
|
||||
rLen = 1179;
|
||||
rLoc = 10661;
|
||||
rType = 0;
|
||||
vrLen = 241;
|
||||
vrLoc = 10661;
|
||||
};
|
||||
8B5AB2B32EE779AB00A3F512 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */;
|
||||
name = "Dynamics3.cpp: 240";
|
||||
rLen = 1179;
|
||||
rLoc = 10661;
|
||||
rType = 0;
|
||||
vrLen = 241;
|
||||
vrLoc = 10661;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dynamics3.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {975, 5508}}";
|
||||
sepNavSelRange = "{10661, 1179}";
|
||||
sepNavVisRange = "{10661, 241}";
|
||||
sepNavWindowFrame = "{{-4, 38}, {742, 840}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dynamics3Version.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2907, 0}";
|
||||
sepNavVisRange = "{1699, 1271}";
|
||||
sepNavWindowFrame = "{{15, 192}, {826, 681}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dynamics3.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 2826}}";
|
||||
sepNavSelRange = "{5073, 237}";
|
||||
sepNavVisRange = "{4431, 1012}";
|
||||
sepNavWindowFrame = "{{-5, 58}, {565, 799}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3 */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1484
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3
Executable file
1484
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8B8AF0AB2EEC917B00FC1F17 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0232EEC917B00FC1F17 /* CAExtAudioFile.h */; };
|
||||
8B8AF0AC2EEC917B00FC1F17 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0242EEC917B00FC1F17 /* CACFMachPort.h */; };
|
||||
8B8AF0AD2EEC917B00FC1F17 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0252EEC917B00FC1F17 /* CABool.h */; };
|
||||
8B8AF0AE2EEC917B00FC1F17 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0262EEC917B00FC1F17 /* CAComponent.cpp */; };
|
||||
8B8AF0AF2EEC917B00FC1F17 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0272EEC917B00FC1F17 /* CADebugger.h */; };
|
||||
8B8AF0B02EEC917B00FC1F17 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0282EEC917B00FC1F17 /* CACFNumber.cpp */; };
|
||||
8B8AF0B12EEC917B00FC1F17 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0292EEC917B00FC1F17 /* CAGuard.h */; };
|
||||
8B8AF0B22EEC917B00FC1F17 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02A2EEC917B00FC1F17 /* CAAtomic.h */; };
|
||||
8B8AF0B32EEC917B00FC1F17 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02B2EEC917B00FC1F17 /* CAStreamBasicDescription.h */; };
|
||||
8B8AF0B42EEC917B00FC1F17 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02C2EEC917B00FC1F17 /* CACFObject.h */; };
|
||||
8B8AF0B52EEC917B00FC1F17 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02D2EEC917B00FC1F17 /* CAStreamRangedDescription.h */; };
|
||||
8B8AF0B62EEC917B00FC1F17 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02E2EEC917B00FC1F17 /* CATokenMap.h */; };
|
||||
8B8AF0B72EEC917B00FC1F17 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF02F2EEC917B00FC1F17 /* CAComponent.h */; };
|
||||
8B8AF0B82EEC917B00FC1F17 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0302EEC917B00FC1F17 /* CAAudioBufferList.h */; };
|
||||
8B8AF0B92EEC917B00FC1F17 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0312EEC917B00FC1F17 /* CAAudioUnit.h */; };
|
||||
8B8AF0BA2EEC917B00FC1F17 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0322EEC917B00FC1F17 /* CAAUParameter.h */; };
|
||||
8B8AF0BB2EEC917B00FC1F17 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0332EEC917B00FC1F17 /* CAException.h */; };
|
||||
8B8AF0BC2EEC917B00FC1F17 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0342EEC917B00FC1F17 /* CAAUProcessor.cpp */; };
|
||||
8B8AF0BD2EEC917B00FC1F17 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0352EEC917B00FC1F17 /* CAAUProcessor.h */; };
|
||||
8B8AF0BE2EEC917B00FC1F17 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0362EEC917B00FC1F17 /* CAProcess.h */; };
|
||||
8B8AF0BF2EEC917B00FC1F17 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0372EEC917B00FC1F17 /* CACFDictionary.h */; };
|
||||
8B8AF0C02EEC917B00FC1F17 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0382EEC917B00FC1F17 /* CAPThread.h */; };
|
||||
8B8AF0C12EEC917B00FC1F17 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0392EEC917B00FC1F17 /* CAAUParameter.cpp */; };
|
||||
8B8AF0C22EEC917B00FC1F17 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF03A2EEC917B00FC1F17 /* CAAudioTimeStamp.h */; };
|
||||
8B8AF0C32EEC917B00FC1F17 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF03B2EEC917B00FC1F17 /* CAFilePathUtils.cpp */; };
|
||||
8B8AF0C42EEC917B00FC1F17 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF03C2EEC917B00FC1F17 /* CAAudioValueRange.h */; };
|
||||
8B8AF0C52EEC917B00FC1F17 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF03D2EEC917B00FC1F17 /* CAVectorUnitTypes.h */; };
|
||||
8B8AF0C62EEC917B00FC1F17 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF03E2EEC917B00FC1F17 /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8B8AF0C72EEC917B00FC1F17 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF03F2EEC917B00FC1F17 /* CAGuard.cpp */; };
|
||||
8B8AF0C82EEC917B00FC1F17 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0402EEC917B00FC1F17 /* CACFNumber.h */; };
|
||||
8B8AF0C92EEC917B00FC1F17 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0412EEC917B00FC1F17 /* CACFDistributedNotification.cpp */; };
|
||||
8B8AF0CA2EEC917B00FC1F17 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0422EEC917B00FC1F17 /* CACFString.h */; };
|
||||
8B8AF0CB2EEC917B00FC1F17 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0432EEC917B00FC1F17 /* CAAUMIDIMapManager.cpp */; };
|
||||
8B8AF0CC2EEC917B00FC1F17 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0442EEC917B00FC1F17 /* CAComponentDescription.cpp */; };
|
||||
8B8AF0CD2EEC917B00FC1F17 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0452EEC917B00FC1F17 /* CAHostTimeBase.h */; };
|
||||
8B8AF0CE2EEC917B00FC1F17 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0462EEC917B00FC1F17 /* CADebugMacros.cpp */; };
|
||||
8B8AF0CF2EEC917B00FC1F17 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0472EEC917B00FC1F17 /* CAAudioFileFormats.h */; };
|
||||
8B8AF0D02EEC917B00FC1F17 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0482EEC917B00FC1F17 /* CAAUMIDIMapManager.h */; };
|
||||
8B8AF0D12EEC917B00FC1F17 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0492EEC917B00FC1F17 /* CACFDictionary.cpp */; };
|
||||
8B8AF0D22EEC917B00FC1F17 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF04A2EEC917B00FC1F17 /* CAMutex.h */; };
|
||||
8B8AF0D32EEC917B00FC1F17 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF04B2EEC917B00FC1F17 /* CACFString.cpp */; };
|
||||
8B8AF0D42EEC917B00FC1F17 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF04C2EEC917B00FC1F17 /* CASettingsStorage.h */; };
|
||||
8B8AF0D52EEC917B00FC1F17 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF04D2EEC917B00FC1F17 /* CADebugPrintf.h */; };
|
||||
8B8AF0D62EEC917B00FC1F17 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF04E2EEC917B00FC1F17 /* CAXException.cpp */; };
|
||||
8B8AF0D72EEC917B00FC1F17 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF04F2EEC917B00FC1F17 /* CAAUMIDIMap.h */; };
|
||||
8B8AF0D82EEC917B00FC1F17 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0502EEC917B00FC1F17 /* AUParamInfo.h */; };
|
||||
8B8AF0D92EEC917B00FC1F17 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0512EEC917B00FC1F17 /* CABitOperations.h */; };
|
||||
8B8AF0DA2EEC917B00FC1F17 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0522EEC917B00FC1F17 /* CACFPreferences.cpp */; };
|
||||
8B8AF0DB2EEC917B00FC1F17 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0532EEC917B00FC1F17 /* CABundleLocker.h */; };
|
||||
8B8AF0DC2EEC917B00FC1F17 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0542EEC917B00FC1F17 /* CAPropertyAddress.h */; };
|
||||
8B8AF0DD2EEC917B00FC1F17 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0552EEC917B00FC1F17 /* CAXException.h */; };
|
||||
8B8AF0DE2EEC917B00FC1F17 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0562EEC917B00FC1F17 /* CAAudioChannelLayout.cpp */; };
|
||||
8B8AF0DF2EEC917B00FC1F17 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0572EEC917B00FC1F17 /* CAThreadSafeList.h */; };
|
||||
8B8AF0E02EEC917B00FC1F17 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0582EEC917B00FC1F17 /* CAAudioUnitOutputCapturer.h */; };
|
||||
8B8AF0E12EEC917B00FC1F17 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0592EEC917B00FC1F17 /* AUParamInfo.cpp */; };
|
||||
8B8AF0E22EEC917B00FC1F17 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF05A2EEC917B00FC1F17 /* CASharedLibrary.cpp */; };
|
||||
8B8AF0E32EEC917B00FC1F17 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF05B2EEC917B00FC1F17 /* CAAUMIDIMap.cpp */; };
|
||||
8B8AF0E42EEC917B00FC1F17 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF05C2EEC917B00FC1F17 /* CALogMacros.h */; };
|
||||
8B8AF0E52EEC917B00FC1F17 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF05D2EEC917B00FC1F17 /* CACFMessagePort.cpp */; };
|
||||
8B8AF0E62EEC917B00FC1F17 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF05E2EEC917B00FC1F17 /* CARingBuffer.h */; };
|
||||
8B8AF0E72EEC917B00FC1F17 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF05F2EEC917B00FC1F17 /* AUOutputBL.cpp */; };
|
||||
8B8AF0E82EEC917B00FC1F17 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0602EEC917B00FC1F17 /* CABufferList.h */; };
|
||||
8B8AF0E92EEC917B00FC1F17 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0612EEC917B00FC1F17 /* CASharedLibrary.h */; };
|
||||
8B8AF0EA2EEC917B00FC1F17 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0622EEC917B00FC1F17 /* CACFData.h */; };
|
||||
8B8AF0EB2EEC917B00FC1F17 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0632EEC917B00FC1F17 /* CAStreamRangedDescription.cpp */; };
|
||||
8B8AF0EC2EEC917B00FC1F17 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0642EEC917B00FC1F17 /* CAPThread.cpp */; };
|
||||
8B8AF0ED2EEC917B00FC1F17 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0652EEC917B00FC1F17 /* CAAutoDisposer.h */; };
|
||||
8B8AF0EE2EEC917B00FC1F17 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0662EEC917B00FC1F17 /* CACFPreferences.h */; };
|
||||
8B8AF0EF2EEC917B00FC1F17 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0672EEC917B00FC1F17 /* CAVectorUnit.cpp */; };
|
||||
8B8AF0F02EEC917B00FC1F17 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0682EEC917B00FC1F17 /* CAComponentDescription.h */; };
|
||||
8B8AF0F12EEC917B00FC1F17 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0692EEC917B00FC1F17 /* CADebugMacros.h */; };
|
||||
8B8AF0F22EEC917B00FC1F17 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF06A2EEC917B00FC1F17 /* AUOutputBL.h */; };
|
||||
8B8AF0F32EEC917B00FC1F17 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF06B2EEC917B00FC1F17 /* CADebugPrintf.cpp */; };
|
||||
8B8AF0F42EEC917B00FC1F17 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF06C2EEC917B00FC1F17 /* CARingBuffer.cpp */; };
|
||||
8B8AF0F52EEC917B00FC1F17 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF06D2EEC917B00FC1F17 /* CACFPlugIn.h */; };
|
||||
8B8AF0F62EEC917B00FC1F17 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF06E2EEC917B00FC1F17 /* CASettingsStorage.cpp */; };
|
||||
8B8AF0F72EEC917B00FC1F17 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF06F2EEC917B00FC1F17 /* CAMixMap.h */; };
|
||||
8B8AF0F82EEC917B00FC1F17 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0702EEC917B00FC1F17 /* CACFDistributedNotification.h */; };
|
||||
8B8AF0F92EEC917B00FC1F17 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0712EEC917B00FC1F17 /* CAFilePathUtils.h */; };
|
||||
8B8AF0FA2EEC917B00FC1F17 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0722EEC917B00FC1F17 /* CATink.h */; };
|
||||
8B8AF0FB2EEC917B00FC1F17 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0732EEC917B00FC1F17 /* CAStreamBasicDescription.cpp */; };
|
||||
8B8AF0FC2EEC917B00FC1F17 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0742EEC917B00FC1F17 /* CAAudioChannelLayout.h */; };
|
||||
8B8AF0FD2EEC917B00FC1F17 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0752EEC917B00FC1F17 /* CAProcess.cpp */; };
|
||||
8B8AF0FE2EEC917B00FC1F17 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0762EEC917B00FC1F17 /* CAHostTimeBase.cpp */; };
|
||||
8B8AF0FF2EEC917B00FC1F17 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0772EEC917B00FC1F17 /* CAPersistence.cpp */; };
|
||||
8B8AF1002EEC917B00FC1F17 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0782EEC917B00FC1F17 /* CAAudioBufferList.cpp */; };
|
||||
8B8AF1012EEC917B00FC1F17 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0792EEC917B00FC1F17 /* CAAudioTimeStamp.cpp */; };
|
||||
8B8AF1022EEC917B00FC1F17 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF07A2EEC917B00FC1F17 /* CAVectorUnit.h */; };
|
||||
8B8AF1032EEC917B00FC1F17 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF07B2EEC917B00FC1F17 /* CAByteOrder.h */; };
|
||||
8B8AF1042EEC917B00FC1F17 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF07C2EEC917B00FC1F17 /* CACFArray.h */; };
|
||||
8B8AF1052EEC917B00FC1F17 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF07D2EEC917B00FC1F17 /* CAAtomicStack.h */; };
|
||||
8B8AF1062EEC917B00FC1F17 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF07E2EEC917B00FC1F17 /* CAReferenceCounted.h */; };
|
||||
8B8AF1072EEC917B00FC1F17 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF07F2EEC917B00FC1F17 /* CACFMachPort.cpp */; };
|
||||
8B8AF1082EEC917B00FC1F17 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0802EEC917B00FC1F17 /* CABufferList.cpp */; };
|
||||
8B8AF1092EEC917B00FC1F17 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0812EEC917B00FC1F17 /* CAMutex.cpp */; };
|
||||
8B8AF10A2EEC917B00FC1F17 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0822EEC917B00FC1F17 /* CADebugger.cpp */; };
|
||||
8B8AF10B2EEC917B00FC1F17 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0832EEC917B00FC1F17 /* CABundleLocker.cpp */; };
|
||||
8B8AF10C2EEC917B00FC1F17 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0842EEC917B00FC1F17 /* CAAudioFileFormats.cpp */; };
|
||||
8B8AF10D2EEC917B00FC1F17 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0852EEC917B00FC1F17 /* CAMath.h */; };
|
||||
8B8AF10E2EEC917B00FC1F17 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0862EEC917B00FC1F17 /* CACFArray.cpp */; };
|
||||
8B8AF10F2EEC917B00FC1F17 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0872EEC917B00FC1F17 /* CACFMessagePort.h */; };
|
||||
8B8AF1102EEC917B00FC1F17 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0882EEC917B00FC1F17 /* CAAudioValueRange.cpp */; };
|
||||
8B8AF1112EEC917B00FC1F17 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0892EEC917B00FC1F17 /* CAAudioUnit.cpp */; };
|
||||
8B8AF1122EEC917B00FC1F17 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF08D2EEC917B00FC1F17 /* AUViewLocalizedStringKeys.h */; };
|
||||
8B8AF1132EEC917B00FC1F17 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF08F2EEC917B00FC1F17 /* ComponentBase.cpp */; };
|
||||
8B8AF1142EEC917B00FC1F17 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0902EEC917B00FC1F17 /* AUScopeElement.cpp */; };
|
||||
8B8AF1152EEC917B00FC1F17 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0912EEC917B00FC1F17 /* ComponentBase.h */; };
|
||||
8B8AF1162EEC917B00FC1F17 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0922EEC917B00FC1F17 /* AUBase.cpp */; };
|
||||
8B8AF1172EEC917B00FC1F17 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0932EEC917B00FC1F17 /* AUInputElement.h */; };
|
||||
8B8AF1182EEC917B00FC1F17 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0942EEC917B00FC1F17 /* AUBase.h */; };
|
||||
8B8AF1192EEC917B00FC1F17 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0952EEC917B00FC1F17 /* AUPlugInDispatch.h */; };
|
||||
8B8AF11A2EEC917B00FC1F17 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0962EEC917B00FC1F17 /* AUDispatch.h */; };
|
||||
8B8AF11B2EEC917B00FC1F17 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0972EEC917B00FC1F17 /* AUOutputElement.cpp */; };
|
||||
8B8AF11D2EEC917B00FC1F17 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0992EEC917B00FC1F17 /* AUPlugInDispatch.cpp */; };
|
||||
8B8AF11E2EEC917B00FC1F17 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF09A2EEC917B00FC1F17 /* AUOutputElement.h */; };
|
||||
8B8AF11F2EEC917B00FC1F17 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF09B2EEC917B00FC1F17 /* AUDispatch.cpp */; };
|
||||
8B8AF1202EEC917B00FC1F17 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF09C2EEC917B00FC1F17 /* AUScopeElement.h */; };
|
||||
8B8AF1212EEC917B00FC1F17 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF09D2EEC917B00FC1F17 /* AUInputElement.cpp */; };
|
||||
8B8AF1222EEC917B00FC1F17 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF09F2EEC917B00FC1F17 /* AUEffectBase.cpp */; };
|
||||
8B8AF1232EEC917B00FC1F17 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A02EEC917B00FC1F17 /* AUEffectBase.h */; };
|
||||
8B8AF1242EEC917B00FC1F17 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A22EEC917B00FC1F17 /* AUTimestampGenerator.h */; };
|
||||
8B8AF1252EEC917B00FC1F17 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0A32EEC917B00FC1F17 /* AUBaseHelper.cpp */; };
|
||||
8B8AF1262EEC917B00FC1F17 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A42EEC917B00FC1F17 /* AUSilentTimeout.h */; };
|
||||
8B8AF1272EEC917B00FC1F17 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A52EEC917B00FC1F17 /* AUInputFormatConverter.h */; };
|
||||
8B8AF1282EEC917B00FC1F17 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0A62EEC917B00FC1F17 /* AUTimestampGenerator.cpp */; };
|
||||
8B8AF1292EEC917B00FC1F17 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AF0A72EEC917B00FC1F17 /* AUBuffer.cpp */; };
|
||||
8B8AF12A2EEC917B00FC1F17 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A82EEC917B00FC1F17 /* AUMIDIDefs.h */; };
|
||||
8B8AF12B2EEC917B00FC1F17 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0A92EEC917B00FC1F17 /* AUBuffer.h */; };
|
||||
8B8AF12C2EEC917B00FC1F17 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AF0AA2EEC917B00FC1F17 /* AUBaseHelper.h */; };
|
||||
8BA05A6B0720730100365D66 /* Dynamics3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Dynamics3.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Dynamics3Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Dynamics3Version.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 /* Dynamics3.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Dynamics3.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8B8AF0232EEC917B00FC1F17 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8B8AF0242EEC917B00FC1F17 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8B8AF0252EEC917B00FC1F17 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8B8AF0262EEC917B00FC1F17 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0272EEC917B00FC1F17 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8B8AF0282EEC917B00FC1F17 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0292EEC917B00FC1F17 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8B8AF02A2EEC917B00FC1F17 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8B8AF02B2EEC917B00FC1F17 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8B8AF02C2EEC917B00FC1F17 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8B8AF02D2EEC917B00FC1F17 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8B8AF02E2EEC917B00FC1F17 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8B8AF02F2EEC917B00FC1F17 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8B8AF0302EEC917B00FC1F17 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8B8AF0312EEC917B00FC1F17 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8B8AF0322EEC917B00FC1F17 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8B8AF0332EEC917B00FC1F17 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8B8AF0342EEC917B00FC1F17 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0352EEC917B00FC1F17 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8B8AF0362EEC917B00FC1F17 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8B8AF0372EEC917B00FC1F17 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8B8AF0382EEC917B00FC1F17 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8B8AF0392EEC917B00FC1F17 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8B8AF03A2EEC917B00FC1F17 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8B8AF03B2EEC917B00FC1F17 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8B8AF03C2EEC917B00FC1F17 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8B8AF03D2EEC917B00FC1F17 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B8AF03E2EEC917B00FC1F17 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8B8AF03F2EEC917B00FC1F17 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0402EEC917B00FC1F17 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8B8AF0412EEC917B00FC1F17 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0422EEC917B00FC1F17 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8B8AF0432EEC917B00FC1F17 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0442EEC917B00FC1F17 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0452EEC917B00FC1F17 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8B8AF0462EEC917B00FC1F17 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0472EEC917B00FC1F17 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8B8AF0482EEC917B00FC1F17 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8B8AF0492EEC917B00FC1F17 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8B8AF04A2EEC917B00FC1F17 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8B8AF04B2EEC917B00FC1F17 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8B8AF04C2EEC917B00FC1F17 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8B8AF04D2EEC917B00FC1F17 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8B8AF04E2EEC917B00FC1F17 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8B8AF04F2EEC917B00FC1F17 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8B8AF0502EEC917B00FC1F17 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8B8AF0512EEC917B00FC1F17 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8B8AF0522EEC917B00FC1F17 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0532EEC917B00FC1F17 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8B8AF0542EEC917B00FC1F17 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8B8AF0552EEC917B00FC1F17 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8B8AF0562EEC917B00FC1F17 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0572EEC917B00FC1F17 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8B8AF0582EEC917B00FC1F17 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8B8AF0592EEC917B00FC1F17 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8B8AF05A2EEC917B00FC1F17 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8B8AF05B2EEC917B00FC1F17 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8B8AF05C2EEC917B00FC1F17 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8B8AF05D2EEC917B00FC1F17 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8B8AF05E2EEC917B00FC1F17 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8B8AF05F2EEC917B00FC1F17 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0602EEC917B00FC1F17 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8B8AF0612EEC917B00FC1F17 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8B8AF0622EEC917B00FC1F17 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8B8AF0632EEC917B00FC1F17 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0642EEC917B00FC1F17 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0652EEC917B00FC1F17 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8B8AF0662EEC917B00FC1F17 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8B8AF0672EEC917B00FC1F17 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0682EEC917B00FC1F17 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8B8AF0692EEC917B00FC1F17 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8B8AF06A2EEC917B00FC1F17 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8B8AF06B2EEC917B00FC1F17 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8B8AF06C2EEC917B00FC1F17 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8AF06D2EEC917B00FC1F17 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8B8AF06E2EEC917B00FC1F17 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8B8AF06F2EEC917B00FC1F17 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8B8AF0702EEC917B00FC1F17 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8B8AF0712EEC917B00FC1F17 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8B8AF0722EEC917B00FC1F17 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8B8AF0732EEC917B00FC1F17 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0742EEC917B00FC1F17 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8B8AF0752EEC917B00FC1F17 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0762EEC917B00FC1F17 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0772EEC917B00FC1F17 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0782EEC917B00FC1F17 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0792EEC917B00FC1F17 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8B8AF07A2EEC917B00FC1F17 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8B8AF07B2EEC917B00FC1F17 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8B8AF07C2EEC917B00FC1F17 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8B8AF07D2EEC917B00FC1F17 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8B8AF07E2EEC917B00FC1F17 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8B8AF07F2EEC917B00FC1F17 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0802EEC917B00FC1F17 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0812EEC917B00FC1F17 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0822EEC917B00FC1F17 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0832EEC917B00FC1F17 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0842EEC917B00FC1F17 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0852EEC917B00FC1F17 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8B8AF0862EEC917B00FC1F17 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0872EEC917B00FC1F17 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8B8AF0882EEC917B00FC1F17 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0892EEC917B00FC1F17 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8AF08D2EEC917B00FC1F17 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8B8AF08F2EEC917B00FC1F17 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0902EEC917B00FC1F17 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0912EEC917B00FC1F17 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8B8AF0922EEC917B00FC1F17 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0932EEC917B00FC1F17 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8B8AF0942EEC917B00FC1F17 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8B8AF0952EEC917B00FC1F17 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8B8AF0962EEC917B00FC1F17 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8B8AF0972EEC917B00FC1F17 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0982EEC917B00FC1F17 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8B8AF0992EEC917B00FC1F17 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8AF09A2EEC917B00FC1F17 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8B8AF09B2EEC917B00FC1F17 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8AF09C2EEC917B00FC1F17 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8B8AF09D2EEC917B00FC1F17 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AF09F2EEC917B00FC1F17 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0A02EEC917B00FC1F17 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8B8AF0A22EEC917B00FC1F17 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8B8AF0A32EEC917B00FC1F17 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0A42EEC917B00FC1F17 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8B8AF0A52EEC917B00FC1F17 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8B8AF0A62EEC917B00FC1F17 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0A72EEC917B00FC1F17 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8AF0A82EEC917B00FC1F17 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8B8AF0A92EEC917B00FC1F17 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8B8AF0AA2EEC917B00FC1F17 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8B8AF12D2EEC923400FC1F17 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8BA05A660720730100365D66 /* Dynamics3.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Dynamics3.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Dynamics3.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Dynamics3.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Dynamics3.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Dynamics3.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Dynamics3Version.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics3Version.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 /* Dynamics3.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics3.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics3.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dynamics3.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 /* Dynamics3 */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Dynamics3;
|
||||
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 = (
|
||||
8B8AF0212EEC917B00FC1F17 /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics3.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF0212EEC917B00FC1F17 /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF0222EEC917B00FC1F17 /* PublicUtility */,
|
||||
8B8AF08A2EEC917B00FC1F17 /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF0222EEC917B00FC1F17 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF0232EEC917B00FC1F17 /* CAExtAudioFile.h */,
|
||||
8B8AF0242EEC917B00FC1F17 /* CACFMachPort.h */,
|
||||
8B8AF0252EEC917B00FC1F17 /* CABool.h */,
|
||||
8B8AF0262EEC917B00FC1F17 /* CAComponent.cpp */,
|
||||
8B8AF0272EEC917B00FC1F17 /* CADebugger.h */,
|
||||
8B8AF0282EEC917B00FC1F17 /* CACFNumber.cpp */,
|
||||
8B8AF0292EEC917B00FC1F17 /* CAGuard.h */,
|
||||
8B8AF02A2EEC917B00FC1F17 /* CAAtomic.h */,
|
||||
8B8AF02B2EEC917B00FC1F17 /* CAStreamBasicDescription.h */,
|
||||
8B8AF02C2EEC917B00FC1F17 /* CACFObject.h */,
|
||||
8B8AF02D2EEC917B00FC1F17 /* CAStreamRangedDescription.h */,
|
||||
8B8AF02E2EEC917B00FC1F17 /* CATokenMap.h */,
|
||||
8B8AF02F2EEC917B00FC1F17 /* CAComponent.h */,
|
||||
8B8AF0302EEC917B00FC1F17 /* CAAudioBufferList.h */,
|
||||
8B8AF0312EEC917B00FC1F17 /* CAAudioUnit.h */,
|
||||
8B8AF0322EEC917B00FC1F17 /* CAAUParameter.h */,
|
||||
8B8AF0332EEC917B00FC1F17 /* CAException.h */,
|
||||
8B8AF0342EEC917B00FC1F17 /* CAAUProcessor.cpp */,
|
||||
8B8AF0352EEC917B00FC1F17 /* CAAUProcessor.h */,
|
||||
8B8AF0362EEC917B00FC1F17 /* CAProcess.h */,
|
||||
8B8AF0372EEC917B00FC1F17 /* CACFDictionary.h */,
|
||||
8B8AF0382EEC917B00FC1F17 /* CAPThread.h */,
|
||||
8B8AF0392EEC917B00FC1F17 /* CAAUParameter.cpp */,
|
||||
8B8AF03A2EEC917B00FC1F17 /* CAAudioTimeStamp.h */,
|
||||
8B8AF03B2EEC917B00FC1F17 /* CAFilePathUtils.cpp */,
|
||||
8B8AF03C2EEC917B00FC1F17 /* CAAudioValueRange.h */,
|
||||
8B8AF03D2EEC917B00FC1F17 /* CAVectorUnitTypes.h */,
|
||||
8B8AF03E2EEC917B00FC1F17 /* CAAudioChannelLayoutObject.cpp */,
|
||||
8B8AF03F2EEC917B00FC1F17 /* CAGuard.cpp */,
|
||||
8B8AF0402EEC917B00FC1F17 /* CACFNumber.h */,
|
||||
8B8AF0412EEC917B00FC1F17 /* CACFDistributedNotification.cpp */,
|
||||
8B8AF0422EEC917B00FC1F17 /* CACFString.h */,
|
||||
8B8AF0432EEC917B00FC1F17 /* CAAUMIDIMapManager.cpp */,
|
||||
8B8AF0442EEC917B00FC1F17 /* CAComponentDescription.cpp */,
|
||||
8B8AF0452EEC917B00FC1F17 /* CAHostTimeBase.h */,
|
||||
8B8AF0462EEC917B00FC1F17 /* CADebugMacros.cpp */,
|
||||
8B8AF0472EEC917B00FC1F17 /* CAAudioFileFormats.h */,
|
||||
8B8AF0482EEC917B00FC1F17 /* CAAUMIDIMapManager.h */,
|
||||
8B8AF0492EEC917B00FC1F17 /* CACFDictionary.cpp */,
|
||||
8B8AF04A2EEC917B00FC1F17 /* CAMutex.h */,
|
||||
8B8AF04B2EEC917B00FC1F17 /* CACFString.cpp */,
|
||||
8B8AF04C2EEC917B00FC1F17 /* CASettingsStorage.h */,
|
||||
8B8AF04D2EEC917B00FC1F17 /* CADebugPrintf.h */,
|
||||
8B8AF04E2EEC917B00FC1F17 /* CAXException.cpp */,
|
||||
8B8AF04F2EEC917B00FC1F17 /* CAAUMIDIMap.h */,
|
||||
8B8AF0502EEC917B00FC1F17 /* AUParamInfo.h */,
|
||||
8B8AF0512EEC917B00FC1F17 /* CABitOperations.h */,
|
||||
8B8AF0522EEC917B00FC1F17 /* CACFPreferences.cpp */,
|
||||
8B8AF0532EEC917B00FC1F17 /* CABundleLocker.h */,
|
||||
8B8AF0542EEC917B00FC1F17 /* CAPropertyAddress.h */,
|
||||
8B8AF0552EEC917B00FC1F17 /* CAXException.h */,
|
||||
8B8AF0562EEC917B00FC1F17 /* CAAudioChannelLayout.cpp */,
|
||||
8B8AF0572EEC917B00FC1F17 /* CAThreadSafeList.h */,
|
||||
8B8AF0582EEC917B00FC1F17 /* CAAudioUnitOutputCapturer.h */,
|
||||
8B8AF0592EEC917B00FC1F17 /* AUParamInfo.cpp */,
|
||||
8B8AF05A2EEC917B00FC1F17 /* CASharedLibrary.cpp */,
|
||||
8B8AF05B2EEC917B00FC1F17 /* CAAUMIDIMap.cpp */,
|
||||
8B8AF05C2EEC917B00FC1F17 /* CALogMacros.h */,
|
||||
8B8AF05D2EEC917B00FC1F17 /* CACFMessagePort.cpp */,
|
||||
8B8AF05E2EEC917B00FC1F17 /* CARingBuffer.h */,
|
||||
8B8AF05F2EEC917B00FC1F17 /* AUOutputBL.cpp */,
|
||||
8B8AF0602EEC917B00FC1F17 /* CABufferList.h */,
|
||||
8B8AF0612EEC917B00FC1F17 /* CASharedLibrary.h */,
|
||||
8B8AF0622EEC917B00FC1F17 /* CACFData.h */,
|
||||
8B8AF0632EEC917B00FC1F17 /* CAStreamRangedDescription.cpp */,
|
||||
8B8AF0642EEC917B00FC1F17 /* CAPThread.cpp */,
|
||||
8B8AF0652EEC917B00FC1F17 /* CAAutoDisposer.h */,
|
||||
8B8AF0662EEC917B00FC1F17 /* CACFPreferences.h */,
|
||||
8B8AF0672EEC917B00FC1F17 /* CAVectorUnit.cpp */,
|
||||
8B8AF0682EEC917B00FC1F17 /* CAComponentDescription.h */,
|
||||
8B8AF0692EEC917B00FC1F17 /* CADebugMacros.h */,
|
||||
8B8AF06A2EEC917B00FC1F17 /* AUOutputBL.h */,
|
||||
8B8AF06B2EEC917B00FC1F17 /* CADebugPrintf.cpp */,
|
||||
8B8AF06C2EEC917B00FC1F17 /* CARingBuffer.cpp */,
|
||||
8B8AF06D2EEC917B00FC1F17 /* CACFPlugIn.h */,
|
||||
8B8AF06E2EEC917B00FC1F17 /* CASettingsStorage.cpp */,
|
||||
8B8AF06F2EEC917B00FC1F17 /* CAMixMap.h */,
|
||||
8B8AF0702EEC917B00FC1F17 /* CACFDistributedNotification.h */,
|
||||
8B8AF0712EEC917B00FC1F17 /* CAFilePathUtils.h */,
|
||||
8B8AF0722EEC917B00FC1F17 /* CATink.h */,
|
||||
8B8AF0732EEC917B00FC1F17 /* CAStreamBasicDescription.cpp */,
|
||||
8B8AF0742EEC917B00FC1F17 /* CAAudioChannelLayout.h */,
|
||||
8B8AF0752EEC917B00FC1F17 /* CAProcess.cpp */,
|
||||
8B8AF0762EEC917B00FC1F17 /* CAHostTimeBase.cpp */,
|
||||
8B8AF0772EEC917B00FC1F17 /* CAPersistence.cpp */,
|
||||
8B8AF0782EEC917B00FC1F17 /* CAAudioBufferList.cpp */,
|
||||
8B8AF0792EEC917B00FC1F17 /* CAAudioTimeStamp.cpp */,
|
||||
8B8AF07A2EEC917B00FC1F17 /* CAVectorUnit.h */,
|
||||
8B8AF07B2EEC917B00FC1F17 /* CAByteOrder.h */,
|
||||
8B8AF07C2EEC917B00FC1F17 /* CACFArray.h */,
|
||||
8B8AF07D2EEC917B00FC1F17 /* CAAtomicStack.h */,
|
||||
8B8AF07E2EEC917B00FC1F17 /* CAReferenceCounted.h */,
|
||||
8B8AF07F2EEC917B00FC1F17 /* CACFMachPort.cpp */,
|
||||
8B8AF0802EEC917B00FC1F17 /* CABufferList.cpp */,
|
||||
8B8AF0812EEC917B00FC1F17 /* CAMutex.cpp */,
|
||||
8B8AF0822EEC917B00FC1F17 /* CADebugger.cpp */,
|
||||
8B8AF0832EEC917B00FC1F17 /* CABundleLocker.cpp */,
|
||||
8B8AF0842EEC917B00FC1F17 /* CAAudioFileFormats.cpp */,
|
||||
8B8AF0852EEC917B00FC1F17 /* CAMath.h */,
|
||||
8B8AF0862EEC917B00FC1F17 /* CACFArray.cpp */,
|
||||
8B8AF0872EEC917B00FC1F17 /* CACFMessagePort.h */,
|
||||
8B8AF0882EEC917B00FC1F17 /* CAAudioValueRange.cpp */,
|
||||
8B8AF0892EEC917B00FC1F17 /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF08A2EEC917B00FC1F17 /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF08B2EEC917B00FC1F17 /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF08B2EEC917B00FC1F17 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF08C2EEC917B00FC1F17 /* AUViewBase */,
|
||||
8B8AF08E2EEC917B00FC1F17 /* AUBase */,
|
||||
8B8AF09E2EEC917B00FC1F17 /* OtherBases */,
|
||||
8B8AF0A12EEC917B00FC1F17 /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF08C2EEC917B00FC1F17 /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF08D2EEC917B00FC1F17 /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF08E2EEC917B00FC1F17 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF08F2EEC917B00FC1F17 /* ComponentBase.cpp */,
|
||||
8B8AF0902EEC917B00FC1F17 /* AUScopeElement.cpp */,
|
||||
8B8AF0912EEC917B00FC1F17 /* ComponentBase.h */,
|
||||
8B8AF0922EEC917B00FC1F17 /* AUBase.cpp */,
|
||||
8B8AF0932EEC917B00FC1F17 /* AUInputElement.h */,
|
||||
8B8AF0942EEC917B00FC1F17 /* AUBase.h */,
|
||||
8B8AF0952EEC917B00FC1F17 /* AUPlugInDispatch.h */,
|
||||
8B8AF0962EEC917B00FC1F17 /* AUDispatch.h */,
|
||||
8B8AF0972EEC917B00FC1F17 /* AUOutputElement.cpp */,
|
||||
8B8AF0982EEC917B00FC1F17 /* AUResources.r */,
|
||||
8B8AF0992EEC917B00FC1F17 /* AUPlugInDispatch.cpp */,
|
||||
8B8AF09A2EEC917B00FC1F17 /* AUOutputElement.h */,
|
||||
8B8AF09B2EEC917B00FC1F17 /* AUDispatch.cpp */,
|
||||
8B8AF09C2EEC917B00FC1F17 /* AUScopeElement.h */,
|
||||
8B8AF09D2EEC917B00FC1F17 /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF09E2EEC917B00FC1F17 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF09F2EEC917B00FC1F17 /* AUEffectBase.cpp */,
|
||||
8B8AF0A02EEC917B00FC1F17 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AF0A12EEC917B00FC1F17 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AF0A22EEC917B00FC1F17 /* AUTimestampGenerator.h */,
|
||||
8B8AF0A32EEC917B00FC1F17 /* AUBaseHelper.cpp */,
|
||||
8B8AF0A42EEC917B00FC1F17 /* AUSilentTimeout.h */,
|
||||
8B8AF0A52EEC917B00FC1F17 /* AUInputFormatConverter.h */,
|
||||
8B8AF0A62EEC917B00FC1F17 /* AUTimestampGenerator.cpp */,
|
||||
8B8AF0A72EEC917B00FC1F17 /* AUBuffer.cpp */,
|
||||
8B8AF0A82EEC917B00FC1F17 /* AUMIDIDefs.h */,
|
||||
8B8AF0A92EEC917B00FC1F17 /* AUBuffer.h */,
|
||||
8B8AF0AA2EEC917B00FC1F17 /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Dynamics3.h */,
|
||||
8BA05A660720730100365D66 /* Dynamics3.cpp */,
|
||||
8BA05A670720730100365D66 /* Dynamics3.exp */,
|
||||
8BA05A680720730100365D66 /* Dynamics3.r */,
|
||||
8BA05A690720730100365D66 /* Dynamics3Version.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8AF0DB2EEC917B00FC1F17 /* CABundleLocker.h in Headers */,
|
||||
8B8AF0FC2EEC917B00FC1F17 /* CAAudioChannelLayout.h in Headers */,
|
||||
8B8AF0F22EEC917B00FC1F17 /* AUOutputBL.h in Headers */,
|
||||
8B8AF0CD2EEC917B00FC1F17 /* CAHostTimeBase.h in Headers */,
|
||||
8B8AF1152EEC917B00FC1F17 /* ComponentBase.h in Headers */,
|
||||
8B8AF1052EEC917B00FC1F17 /* CAAtomicStack.h in Headers */,
|
||||
8B8AF0C22EEC917B00FC1F17 /* CAAudioTimeStamp.h in Headers */,
|
||||
8B8AF0DF2EEC917B00FC1F17 /* CAThreadSafeList.h in Headers */,
|
||||
8B8AF0BA2EEC917B00FC1F17 /* CAAUParameter.h in Headers */,
|
||||
8B8AF12C2EEC917B00FC1F17 /* AUBaseHelper.h in Headers */,
|
||||
8B8AF1242EEC917B00FC1F17 /* AUTimestampGenerator.h in Headers */,
|
||||
8B8AF0D52EEC917B00FC1F17 /* CADebugPrintf.h in Headers */,
|
||||
8B8AF10F2EEC917B00FC1F17 /* CACFMessagePort.h in Headers */,
|
||||
8B8AF0BD2EEC917B00FC1F17 /* CAAUProcessor.h in Headers */,
|
||||
8B8AF0B92EEC917B00FC1F17 /* CAAudioUnit.h in Headers */,
|
||||
8B8AF1122EEC917B00FC1F17 /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8B8AF0F82EEC917B00FC1F17 /* CACFDistributedNotification.h in Headers */,
|
||||
8B8AF0B72EEC917B00FC1F17 /* CAComponent.h in Headers */,
|
||||
8B8AF0C52EEC917B00FC1F17 /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* Dynamics3Version.h in Headers */,
|
||||
8B8AF0F92EEC917B00FC1F17 /* CAFilePathUtils.h in Headers */,
|
||||
8B8AF0BB2EEC917B00FC1F17 /* CAException.h in Headers */,
|
||||
8B8AF0B22EEC917B00FC1F17 /* CAAtomic.h in Headers */,
|
||||
8B8AF0B12EEC917B00FC1F17 /* CAGuard.h in Headers */,
|
||||
8B8AF1172EEC917B00FC1F17 /* AUInputElement.h in Headers */,
|
||||
8B8AF0EE2EEC917B00FC1F17 /* CACFPreferences.h in Headers */,
|
||||
8B8AF1032EEC917B00FC1F17 /* CAByteOrder.h in Headers */,
|
||||
8B8AF0E62EEC917B00FC1F17 /* CARingBuffer.h in Headers */,
|
||||
8B8AF0AD2EEC917B00FC1F17 /* CABool.h in Headers */,
|
||||
8B8AF0D22EEC917B00FC1F17 /* CAMutex.h in Headers */,
|
||||
8B8AF1182EEC917B00FC1F17 /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* Dynamics3.h in Headers */,
|
||||
8B8AF0CA2EEC917B00FC1F17 /* CACFString.h in Headers */,
|
||||
8B8AF0E92EEC917B00FC1F17 /* CASharedLibrary.h in Headers */,
|
||||
8B8AF0B62EEC917B00FC1F17 /* CATokenMap.h in Headers */,
|
||||
8B8AF0AB2EEC917B00FC1F17 /* CAExtAudioFile.h in Headers */,
|
||||
8B8AF0C02EEC917B00FC1F17 /* CAPThread.h in Headers */,
|
||||
8B8AF0DC2EEC917B00FC1F17 /* CAPropertyAddress.h in Headers */,
|
||||
8B8AF1062EEC917B00FC1F17 /* CAReferenceCounted.h in Headers */,
|
||||
8B8AF12B2EEC917B00FC1F17 /* AUBuffer.h in Headers */,
|
||||
8B8AF10D2EEC917B00FC1F17 /* CAMath.h in Headers */,
|
||||
8B8AF0ED2EEC917B00FC1F17 /* CAAutoDisposer.h in Headers */,
|
||||
8B8AF0B42EEC917B00FC1F17 /* CACFObject.h in Headers */,
|
||||
8B8AF0D42EEC917B00FC1F17 /* CASettingsStorage.h in Headers */,
|
||||
8B8AF0DD2EEC917B00FC1F17 /* CAXException.h in Headers */,
|
||||
8B8AF0FA2EEC917B00FC1F17 /* CATink.h in Headers */,
|
||||
8B8AF1272EEC917B00FC1F17 /* AUInputFormatConverter.h in Headers */,
|
||||
8B8AF1022EEC917B00FC1F17 /* CAVectorUnit.h in Headers */,
|
||||
8B8AF0BE2EEC917B00FC1F17 /* CAProcess.h in Headers */,
|
||||
8B8AF0C42EEC917B00FC1F17 /* CAAudioValueRange.h in Headers */,
|
||||
8B8AF0D92EEC917B00FC1F17 /* CABitOperations.h in Headers */,
|
||||
8B8AF0CF2EEC917B00FC1F17 /* CAAudioFileFormats.h in Headers */,
|
||||
8B8AF0C82EEC917B00FC1F17 /* CACFNumber.h in Headers */,
|
||||
8B8AF0E02EEC917B00FC1F17 /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8B8AF0F12EEC917B00FC1F17 /* CADebugMacros.h in Headers */,
|
||||
8B8AF12A2EEC917B00FC1F17 /* AUMIDIDefs.h in Headers */,
|
||||
8B8AF0EA2EEC917B00FC1F17 /* CACFData.h in Headers */,
|
||||
8B8AF0B32EEC917B00FC1F17 /* CAStreamBasicDescription.h in Headers */,
|
||||
8B8AF1192EEC917B00FC1F17 /* AUPlugInDispatch.h in Headers */,
|
||||
8B8AF0B52EEC917B00FC1F17 /* CAStreamRangedDescription.h in Headers */,
|
||||
8B8AF0F52EEC917B00FC1F17 /* CACFPlugIn.h in Headers */,
|
||||
8B8AF0B82EEC917B00FC1F17 /* CAAudioBufferList.h in Headers */,
|
||||
8B8AF0D02EEC917B00FC1F17 /* CAAUMIDIMapManager.h in Headers */,
|
||||
8B8AF1232EEC917B00FC1F17 /* AUEffectBase.h in Headers */,
|
||||
8B8AF0BF2EEC917B00FC1F17 /* CACFDictionary.h in Headers */,
|
||||
8B8AF1202EEC917B00FC1F17 /* AUScopeElement.h in Headers */,
|
||||
8B8AF0F02EEC917B00FC1F17 /* CAComponentDescription.h in Headers */,
|
||||
8B8AF1262EEC917B00FC1F17 /* AUSilentTimeout.h in Headers */,
|
||||
8B8AF0E82EEC917B00FC1F17 /* CABufferList.h in Headers */,
|
||||
8B8AF11A2EEC917B00FC1F17 /* AUDispatch.h in Headers */,
|
||||
8B8AF11E2EEC917B00FC1F17 /* AUOutputElement.h in Headers */,
|
||||
8B8AF0E42EEC917B00FC1F17 /* CALogMacros.h in Headers */,
|
||||
8B8AF0D82EEC917B00FC1F17 /* AUParamInfo.h in Headers */,
|
||||
8B8AF0F72EEC917B00FC1F17 /* CAMixMap.h in Headers */,
|
||||
8B8AF1042EEC917B00FC1F17 /* CACFArray.h in Headers */,
|
||||
8B8AF0AC2EEC917B00FC1F17 /* CACFMachPort.h in Headers */,
|
||||
8B8AF0D72EEC917B00FC1F17 /* CAAUMIDIMap.h in Headers */,
|
||||
8B8AF0AF2EEC917B00FC1F17 /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3 */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Dynamics3" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Dynamics3;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Dynamics3;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Dynamics3.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 "Dynamics3" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
ja,
|
||||
Base,
|
||||
en,
|
||||
fr,
|
||||
de,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Dynamics3 */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3 */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8B8AF0E72EEC917B00FC1F17 /* AUOutputBL.cpp in Sources */,
|
||||
8B8AF10C2EEC917B00FC1F17 /* CAAudioFileFormats.cpp in Sources */,
|
||||
8B8AF0FE2EEC917B00FC1F17 /* CAHostTimeBase.cpp in Sources */,
|
||||
8B8AF0D62EEC917B00FC1F17 /* CAXException.cpp in Sources */,
|
||||
8B8AF1002EEC917B00FC1F17 /* CAAudioBufferList.cpp in Sources */,
|
||||
8B8AF0C32EEC917B00FC1F17 /* CAFilePathUtils.cpp in Sources */,
|
||||
8B8AF0C12EEC917B00FC1F17 /* CAAUParameter.cpp in Sources */,
|
||||
8B8AF0E32EEC917B00FC1F17 /* CAAUMIDIMap.cpp in Sources */,
|
||||
8B8AF1102EEC917B00FC1F17 /* CAAudioValueRange.cpp in Sources */,
|
||||
8B8AF11F2EEC917B00FC1F17 /* AUDispatch.cpp in Sources */,
|
||||
8B8AF0DA2EEC917B00FC1F17 /* CACFPreferences.cpp in Sources */,
|
||||
8B8AF11D2EEC917B00FC1F17 /* AUPlugInDispatch.cpp in Sources */,
|
||||
8B8AF0BC2EEC917B00FC1F17 /* CAAUProcessor.cpp in Sources */,
|
||||
8B8AF0D12EEC917B00FC1F17 /* CACFDictionary.cpp in Sources */,
|
||||
8B8AF1252EEC917B00FC1F17 /* AUBaseHelper.cpp in Sources */,
|
||||
8B8AF10A2EEC917B00FC1F17 /* CADebugger.cpp in Sources */,
|
||||
8B8AF0DE2EEC917B00FC1F17 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8B8AF0E12EEC917B00FC1F17 /* AUParamInfo.cpp in Sources */,
|
||||
8B8AF0FF2EEC917B00FC1F17 /* CAPersistence.cpp in Sources */,
|
||||
8B8AF0F32EEC917B00FC1F17 /* CADebugPrintf.cpp in Sources */,
|
||||
8B8AF1282EEC917B00FC1F17 /* AUTimestampGenerator.cpp in Sources */,
|
||||
8B8AF0FB2EEC917B00FC1F17 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8B8AF0CB2EEC917B00FC1F17 /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8B8AF0F62EEC917B00FC1F17 /* CASettingsStorage.cpp in Sources */,
|
||||
8B8AF11B2EEC917B00FC1F17 /* AUOutputElement.cpp in Sources */,
|
||||
8B8AF0C72EEC917B00FC1F17 /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* Dynamics3.cpp in Sources */,
|
||||
8B8AF1092EEC917B00FC1F17 /* CAMutex.cpp in Sources */,
|
||||
8B8AF1222EEC917B00FC1F17 /* AUEffectBase.cpp in Sources */,
|
||||
8B8AF1072EEC917B00FC1F17 /* CACFMachPort.cpp in Sources */,
|
||||
8B8AF1162EEC917B00FC1F17 /* AUBase.cpp in Sources */,
|
||||
8B8AF0E22EEC917B00FC1F17 /* CASharedLibrary.cpp in Sources */,
|
||||
8B8AF0C92EEC917B00FC1F17 /* CACFDistributedNotification.cpp in Sources */,
|
||||
8B8AF0CC2EEC917B00FC1F17 /* CAComponentDescription.cpp in Sources */,
|
||||
8B8AF0D32EEC917B00FC1F17 /* CACFString.cpp in Sources */,
|
||||
8B8AF1132EEC917B00FC1F17 /* ComponentBase.cpp in Sources */,
|
||||
8B8AF0F42EEC917B00FC1F17 /* CARingBuffer.cpp in Sources */,
|
||||
8B8AF1142EEC917B00FC1F17 /* AUScopeElement.cpp in Sources */,
|
||||
8B8AF1112EEC917B00FC1F17 /* CAAudioUnit.cpp in Sources */,
|
||||
8B8AF10E2EEC917B00FC1F17 /* CACFArray.cpp in Sources */,
|
||||
8B8AF10B2EEC917B00FC1F17 /* CABundleLocker.cpp in Sources */,
|
||||
8B8AF0FD2EEC917B00FC1F17 /* CAProcess.cpp in Sources */,
|
||||
8B8AF0EB2EEC917B00FC1F17 /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8B8AF0EC2EEC917B00FC1F17 /* CAPThread.cpp in Sources */,
|
||||
8B8AF0AE2EEC917B00FC1F17 /* CAComponent.cpp in Sources */,
|
||||
8B8AF0C62EEC917B00FC1F17 /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8B8AF1012EEC917B00FC1F17 /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8B8AF1082EEC917B00FC1F17 /* CABufferList.cpp in Sources */,
|
||||
8B8AF0E52EEC917B00FC1F17 /* CACFMessagePort.cpp in Sources */,
|
||||
8B8AF0EF2EEC917B00FC1F17 /* CAVectorUnit.cpp in Sources */,
|
||||
8B8AF1212EEC917B00FC1F17 /* AUInputElement.cpp in Sources */,
|
||||
8B8AF1292EEC917B00FC1F17 /* AUBuffer.cpp in Sources */,
|
||||
8B8AF0CE2EEC917B00FC1F17 /* CADebugMacros.cpp in Sources */,
|
||||
8B8AF0B02EEC917B00FC1F17 /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8B8AF12D2EEC923400FC1F17 /* 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 = Dynamics3.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 = Dynamics3;
|
||||
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 = Dynamics3.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 = Dynamics3;
|
||||
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 "Dynamics3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Dynamics3" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
7
plugins/MacSignedAU/Dynamics3/Dynamics3.xcodeproj/project.xcworkspace/contents.xcworkspacedata
generated
Normal file
7
plugins/MacSignedAU/Dynamics3/Dynamics3.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 = "Dynamics3.component"
|
||||
BlueprintName = "Dynamics3"
|
||||
ReferencedContainer = "container:Dynamics3.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 = "Dynamics3.component"
|
||||
BlueprintName = "Dynamics3"
|
||||
ReferencedContainer = "container:Dynamics3.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>Dynamics3.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>
|
||||
58
plugins/MacSignedAU/Dynamics3/Dynamics3Version.h
Executable file
58
plugins/MacSignedAU/Dynamics3/Dynamics3Version.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Dynamics3Version.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 __Dynamics3Version_h__
|
||||
#define __Dynamics3Version_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDynamics3Version 0xFFFFFFFF
|
||||
#else
|
||||
#define kDynamics3Version 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Dynamics3_COMP_MANF 'Dthr'
|
||||
#define Dynamics3_COMP_SUBTYPE 'dyn3'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
47
plugins/MacSignedAU/Dynamics3/Info.plist
Executable file
47
plugins/MacSignedAU/Dynamics3/Info.plist
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AudioComponents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>${PRODUCT_NAME:identifier} AU</string>
|
||||
<key>factoryFunction</key>
|
||||
<string>${PRODUCT_NAME:identifier}Factory</string>
|
||||
<key>manufacturer</key>
|
||||
<string>Dthr</string>
|
||||
<key>name</key>
|
||||
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
|
||||
<key>subtype</key>
|
||||
<string>dyn3</string>
|
||||
<key>type</key>
|
||||
<string>aufx</string>
|
||||
<key>version</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
5
plugins/MacSignedAU/Dynamics3/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/Dynamics3/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>
|
||||
BIN
plugins/MacSignedAU/Dynamics3/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/Dynamics3/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/Dynamics3/version.plist
Executable file
16
plugins/MacSignedAU/Dynamics3/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>
|
||||
258
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp
Executable file
258
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.cpp
Executable file
|
|
@ -0,0 +1,258 @@
|
|||
/*
|
||||
* File: Dynamics3Mono.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
Dynamics3Mono.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "Dynamics3Mono.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, Dynamics3Mono)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::Dynamics3Mono
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Dynamics3Mono::Dynamics3Mono(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
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3Mono::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3Mono::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;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3Mono::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3Mono::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// Dynamics3Mono::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult Dynamics3Mono::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____Dynamics3MonoEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::Dynamics3MonoKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Dynamics3Mono::Dynamics3MonoKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < bez_total; x++) bezComp[x] = 0.0;
|
||||
bezComp[bez_cycle] = 1.0; bezMax = 0.0; bezMin = 0.0;
|
||||
bezGate = 2.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Dynamics3Mono::Dynamics3MonoKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void Dynamics3Mono::Dynamics3MonoKernel::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 bezThresh = pow(1.0-GetParameter( kParam_A ), 4.0) * 8.0;
|
||||
double bezRez = pow(1.0-GetParameter( kParam_B ), 4.0) / overallscale;
|
||||
double sloRez = pow(1.0-GetParameter( kParam_C ), 4.0) / overallscale;
|
||||
double gate = pow(GetParameter( kParam_D ),4.0);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
sloRez = fmin(fmax(sloRez,0.0001),1.0);
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
|
||||
if (fabs(inputSample) > gate) bezGate = overallscale/fmin(bezRez,sloRez);
|
||||
else bezGate = fmax(0.000001, bezGate-fmin(bezRez,sloRez));
|
||||
|
||||
if (bezThresh > 0.0) {
|
||||
inputSample *= (bezThresh+1.0);
|
||||
}
|
||||
|
||||
double ctrl = fabs(inputSample);
|
||||
bezMax = fmax(bezMax,ctrl);
|
||||
bezMin = fmax(bezMin-sloRez,ctrl);
|
||||
bezComp[bez_cycle] += bezRez;
|
||||
bezComp[bez_Ctrl] += (bezMin * bezRez);
|
||||
|
||||
if (bezComp[bez_cycle] > 1.0) {
|
||||
if (bezGate < 1.0) bezComp[bez_Ctrl] /= bezGate;
|
||||
bezComp[bez_cycle] -= 1.0;
|
||||
bezComp[bez_C] = bezComp[bez_B];
|
||||
bezComp[bez_B] = bezComp[bez_A];
|
||||
bezComp[bez_A] = bezComp[bez_Ctrl];
|
||||
bezComp[bez_Ctrl] = 0.0;
|
||||
bezMax = 0.0;
|
||||
}
|
||||
double CB = (bezComp[bez_C]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_B]*bezComp[bez_cycle]);
|
||||
double BA = (bezComp[bez_B]*(1.0-bezComp[bez_cycle]))+(bezComp[bez_A]*bezComp[bez_cycle]);
|
||||
double CBA = (bezComp[bez_B]+(CB*(1.0-bezComp[bez_cycle]))+(BA*bezComp[bez_cycle]))*0.5;
|
||||
|
||||
if (bezThresh > 0.0) inputSample *= 1.0-(fmin(CBA*bezThresh,1.0));
|
||||
|
||||
//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;
|
||||
}
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.exp
Executable file
2
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_Dynamics3MonoEntry
|
||||
_Dynamics3MonoFactory
|
||||
156
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h
Executable file
156
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.h
Executable file
|
|
@ -0,0 +1,156 @@
|
|||
/*
|
||||
* File: Dynamics3Mono.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 "Dynamics3MonoVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __Dynamics3Mono_h__
|
||||
#define __Dynamics3Mono_h__
|
||||
|
||||
|
||||
#pragma mark ____Dynamics3Mono Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamA = 1.0;
|
||||
static const float kDefaultValue_ParamB = 0.5;
|
||||
static const float kDefaultValue_ParamC = 0.5;
|
||||
static const float kDefaultValue_ParamD = 0.0;
|
||||
|
||||
static 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 ____Dynamics3Mono
|
||||
class Dynamics3Mono : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
Dynamics3Mono(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~Dynamics3Mono () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new Dynamics3MonoKernel(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 kDynamics3MonoVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class Dynamics3MonoKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
Dynamics3MonoKernel(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_A,
|
||||
bez_B,
|
||||
bez_C,
|
||||
bez_Ctrl,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezComp[bez_total];
|
||||
double bezMax;
|
||||
double bezMin;
|
||||
double bezGate;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.r
Executable file
61
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: Dynamics3Mono.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 "Dynamics3MonoVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_Dynamics3Mono 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Dynamics3Mono~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_Dynamics3Mono
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE Dynamics3Mono_COMP_SUBTYPE
|
||||
#define COMP_MANUF Dynamics3Mono_COMP_MANF
|
||||
|
||||
#define VERSION kDynamics3MonoVersion
|
||||
#define NAME "Airwindows: Dynamics3Mono"
|
||||
#define DESCRIPTION "Dynamics3Mono AU"
|
||||
#define ENTRY_POINT "Dynamics3MonoEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,137 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* Dynamics3Mono */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
128,
|
||||
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 = 786890841;
|
||||
PBXWorkspaceStateSaveDate = 786890841;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B5AAF022EE6F6D100A3F512 /* PlistBookmark */ = 8B5AAF022EE6F6D100A3F512 /* PlistBookmark */;
|
||||
8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */ = 8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */;
|
||||
8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */ = 8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B5AAF022EE6F6D100A3F512 /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/Dynamics3Mono/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8B5AAF2B2EE6FA8800A3F512 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */;
|
||||
name = "Dynamics3Mono.h: 146";
|
||||
rLen = 0;
|
||||
rLoc = 5621;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B5AAF4A2EE700FF00A3F512 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */;
|
||||
name = "Dynamics3Mono.h: 146";
|
||||
rLen = 0;
|
||||
rLoc = 5621;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8BA05A660720730100365D66 /* Dynamics3Mono.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {894, 4824}}";
|
||||
sepNavSelRange = "{10055, 138}";
|
||||
sepNavVisRange = "{9517, 1479}";
|
||||
sepNavWindowFrame = "{{550, 45}, {890, 833}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* Dynamics3MonoVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2935, 0}";
|
||||
sepNavVisRange = "{1372, 1626}";
|
||||
sepNavWindowFrame = "{{84, 39}, {828, 771}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* Dynamics3Mono.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {318, 2844}}";
|
||||
sepNavSelRange = "{5621, 0}";
|
||||
sepNavVisRange = "{0, 0}";
|
||||
sepNavWindowFrame = "{{612, 86}, {828, 771}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3Mono */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/Dynamics3Mono/Dynamics3Mono.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8B8AEF9E2EEC904700FC1F17 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF162EEC904700FC1F17 /* CAExtAudioFile.h */; };
|
||||
8B8AEF9F2EEC904700FC1F17 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF172EEC904700FC1F17 /* CACFMachPort.h */; };
|
||||
8B8AEFA02EEC904700FC1F17 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF182EEC904700FC1F17 /* CABool.h */; };
|
||||
8B8AEFA12EEC904700FC1F17 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF192EEC904700FC1F17 /* CAComponent.cpp */; };
|
||||
8B8AEFA22EEC904700FC1F17 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF1A2EEC904700FC1F17 /* CADebugger.h */; };
|
||||
8B8AEFA32EEC904700FC1F17 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF1B2EEC904700FC1F17 /* CACFNumber.cpp */; };
|
||||
8B8AEFA42EEC904700FC1F17 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF1C2EEC904700FC1F17 /* CAGuard.h */; };
|
||||
8B8AEFA52EEC904700FC1F17 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF1D2EEC904700FC1F17 /* CAAtomic.h */; };
|
||||
8B8AEFA62EEC904700FC1F17 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF1E2EEC904700FC1F17 /* CAStreamBasicDescription.h */; };
|
||||
8B8AEFA72EEC904700FC1F17 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF1F2EEC904700FC1F17 /* CACFObject.h */; };
|
||||
8B8AEFA82EEC904700FC1F17 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF202EEC904700FC1F17 /* CAStreamRangedDescription.h */; };
|
||||
8B8AEFA92EEC904700FC1F17 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF212EEC904700FC1F17 /* CATokenMap.h */; };
|
||||
8B8AEFAA2EEC904700FC1F17 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF222EEC904700FC1F17 /* CAComponent.h */; };
|
||||
8B8AEFAB2EEC904700FC1F17 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF232EEC904700FC1F17 /* CAAudioBufferList.h */; };
|
||||
8B8AEFAC2EEC904700FC1F17 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF242EEC904700FC1F17 /* CAAudioUnit.h */; };
|
||||
8B8AEFAD2EEC904700FC1F17 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF252EEC904700FC1F17 /* CAAUParameter.h */; };
|
||||
8B8AEFAE2EEC904700FC1F17 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF262EEC904700FC1F17 /* CAException.h */; };
|
||||
8B8AEFAF2EEC904700FC1F17 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF272EEC904700FC1F17 /* CAAUProcessor.cpp */; };
|
||||
8B8AEFB02EEC904700FC1F17 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF282EEC904700FC1F17 /* CAAUProcessor.h */; };
|
||||
8B8AEFB12EEC904700FC1F17 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF292EEC904700FC1F17 /* CAProcess.h */; };
|
||||
8B8AEFB22EEC904700FC1F17 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF2A2EEC904700FC1F17 /* CACFDictionary.h */; };
|
||||
8B8AEFB32EEC904700FC1F17 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF2B2EEC904700FC1F17 /* CAPThread.h */; };
|
||||
8B8AEFB42EEC904700FC1F17 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF2C2EEC904700FC1F17 /* CAAUParameter.cpp */; };
|
||||
8B8AEFB52EEC904700FC1F17 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF2D2EEC904700FC1F17 /* CAAudioTimeStamp.h */; };
|
||||
8B8AEFB62EEC904700FC1F17 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF2E2EEC904700FC1F17 /* CAFilePathUtils.cpp */; };
|
||||
8B8AEFB72EEC904700FC1F17 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF2F2EEC904700FC1F17 /* CAAudioValueRange.h */; };
|
||||
8B8AEFB82EEC904700FC1F17 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF302EEC904700FC1F17 /* CAVectorUnitTypes.h */; };
|
||||
8B8AEFB92EEC904700FC1F17 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF312EEC904700FC1F17 /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8B8AEFBA2EEC904700FC1F17 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF322EEC904700FC1F17 /* CAGuard.cpp */; };
|
||||
8B8AEFBB2EEC904700FC1F17 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF332EEC904700FC1F17 /* CACFNumber.h */; };
|
||||
8B8AEFBC2EEC904700FC1F17 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF342EEC904700FC1F17 /* CACFDistributedNotification.cpp */; };
|
||||
8B8AEFBD2EEC904700FC1F17 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF352EEC904700FC1F17 /* CACFString.h */; };
|
||||
8B8AEFBE2EEC904700FC1F17 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF362EEC904700FC1F17 /* CAAUMIDIMapManager.cpp */; };
|
||||
8B8AEFBF2EEC904700FC1F17 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF372EEC904700FC1F17 /* CAComponentDescription.cpp */; };
|
||||
8B8AEFC02EEC904700FC1F17 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF382EEC904700FC1F17 /* CAHostTimeBase.h */; };
|
||||
8B8AEFC12EEC904700FC1F17 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF392EEC904700FC1F17 /* CADebugMacros.cpp */; };
|
||||
8B8AEFC22EEC904700FC1F17 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF3A2EEC904700FC1F17 /* CAAudioFileFormats.h */; };
|
||||
8B8AEFC32EEC904700FC1F17 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF3B2EEC904700FC1F17 /* CAAUMIDIMapManager.h */; };
|
||||
8B8AEFC42EEC904700FC1F17 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF3C2EEC904700FC1F17 /* CACFDictionary.cpp */; };
|
||||
8B8AEFC52EEC904700FC1F17 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF3D2EEC904700FC1F17 /* CAMutex.h */; };
|
||||
8B8AEFC62EEC904700FC1F17 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF3E2EEC904700FC1F17 /* CACFString.cpp */; };
|
||||
8B8AEFC72EEC904700FC1F17 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF3F2EEC904700FC1F17 /* CASettingsStorage.h */; };
|
||||
8B8AEFC82EEC904700FC1F17 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF402EEC904700FC1F17 /* CADebugPrintf.h */; };
|
||||
8B8AEFC92EEC904700FC1F17 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF412EEC904700FC1F17 /* CAXException.cpp */; };
|
||||
8B8AEFCA2EEC904700FC1F17 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF422EEC904700FC1F17 /* CAAUMIDIMap.h */; };
|
||||
8B8AEFCB2EEC904700FC1F17 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF432EEC904700FC1F17 /* AUParamInfo.h */; };
|
||||
8B8AEFCC2EEC904700FC1F17 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF442EEC904700FC1F17 /* CABitOperations.h */; };
|
||||
8B8AEFCD2EEC904700FC1F17 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF452EEC904700FC1F17 /* CACFPreferences.cpp */; };
|
||||
8B8AEFCE2EEC904700FC1F17 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF462EEC904700FC1F17 /* CABundleLocker.h */; };
|
||||
8B8AEFCF2EEC904700FC1F17 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF472EEC904700FC1F17 /* CAPropertyAddress.h */; };
|
||||
8B8AEFD02EEC904700FC1F17 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF482EEC904700FC1F17 /* CAXException.h */; };
|
||||
8B8AEFD12EEC904700FC1F17 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF492EEC904700FC1F17 /* CAAudioChannelLayout.cpp */; };
|
||||
8B8AEFD22EEC904700FC1F17 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF4A2EEC904700FC1F17 /* CAThreadSafeList.h */; };
|
||||
8B8AEFD32EEC904700FC1F17 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF4B2EEC904700FC1F17 /* CAAudioUnitOutputCapturer.h */; };
|
||||
8B8AEFD42EEC904700FC1F17 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF4C2EEC904700FC1F17 /* AUParamInfo.cpp */; };
|
||||
8B8AEFD52EEC904700FC1F17 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF4D2EEC904700FC1F17 /* CASharedLibrary.cpp */; };
|
||||
8B8AEFD62EEC904700FC1F17 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF4E2EEC904700FC1F17 /* CAAUMIDIMap.cpp */; };
|
||||
8B8AEFD72EEC904700FC1F17 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF4F2EEC904700FC1F17 /* CALogMacros.h */; };
|
||||
8B8AEFD82EEC904700FC1F17 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF502EEC904700FC1F17 /* CACFMessagePort.cpp */; };
|
||||
8B8AEFD92EEC904700FC1F17 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF512EEC904700FC1F17 /* CARingBuffer.h */; };
|
||||
8B8AEFDA2EEC904700FC1F17 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF522EEC904700FC1F17 /* AUOutputBL.cpp */; };
|
||||
8B8AEFDB2EEC904700FC1F17 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF532EEC904700FC1F17 /* CABufferList.h */; };
|
||||
8B8AEFDC2EEC904700FC1F17 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF542EEC904700FC1F17 /* CASharedLibrary.h */; };
|
||||
8B8AEFDD2EEC904700FC1F17 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF552EEC904700FC1F17 /* CACFData.h */; };
|
||||
8B8AEFDE2EEC904700FC1F17 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF562EEC904700FC1F17 /* CAStreamRangedDescription.cpp */; };
|
||||
8B8AEFDF2EEC904700FC1F17 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF572EEC904700FC1F17 /* CAPThread.cpp */; };
|
||||
8B8AEFE02EEC904700FC1F17 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF582EEC904700FC1F17 /* CAAutoDisposer.h */; };
|
||||
8B8AEFE12EEC904700FC1F17 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF592EEC904700FC1F17 /* CACFPreferences.h */; };
|
||||
8B8AEFE22EEC904700FC1F17 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF5A2EEC904700FC1F17 /* CAVectorUnit.cpp */; };
|
||||
8B8AEFE32EEC904700FC1F17 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF5B2EEC904700FC1F17 /* CAComponentDescription.h */; };
|
||||
8B8AEFE42EEC904700FC1F17 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF5C2EEC904700FC1F17 /* CADebugMacros.h */; };
|
||||
8B8AEFE52EEC904700FC1F17 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF5D2EEC904700FC1F17 /* AUOutputBL.h */; };
|
||||
8B8AEFE62EEC904700FC1F17 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF5E2EEC904700FC1F17 /* CADebugPrintf.cpp */; };
|
||||
8B8AEFE72EEC904700FC1F17 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF5F2EEC904700FC1F17 /* CARingBuffer.cpp */; };
|
||||
8B8AEFE82EEC904700FC1F17 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF602EEC904700FC1F17 /* CACFPlugIn.h */; };
|
||||
8B8AEFE92EEC904700FC1F17 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF612EEC904700FC1F17 /* CASettingsStorage.cpp */; };
|
||||
8B8AEFEA2EEC904700FC1F17 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF622EEC904700FC1F17 /* CAMixMap.h */; };
|
||||
8B8AEFEB2EEC904700FC1F17 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF632EEC904700FC1F17 /* CACFDistributedNotification.h */; };
|
||||
8B8AEFEC2EEC904700FC1F17 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF642EEC904700FC1F17 /* CAFilePathUtils.h */; };
|
||||
8B8AEFED2EEC904700FC1F17 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF652EEC904700FC1F17 /* CATink.h */; };
|
||||
8B8AEFEE2EEC904700FC1F17 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF662EEC904700FC1F17 /* CAStreamBasicDescription.cpp */; };
|
||||
8B8AEFEF2EEC904700FC1F17 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF672EEC904700FC1F17 /* CAAudioChannelLayout.h */; };
|
||||
8B8AEFF02EEC904700FC1F17 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF682EEC904700FC1F17 /* CAProcess.cpp */; };
|
||||
8B8AEFF12EEC904700FC1F17 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF692EEC904700FC1F17 /* CAHostTimeBase.cpp */; };
|
||||
8B8AEFF22EEC904700FC1F17 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF6A2EEC904700FC1F17 /* CAPersistence.cpp */; };
|
||||
8B8AEFF32EEC904700FC1F17 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF6B2EEC904700FC1F17 /* CAAudioBufferList.cpp */; };
|
||||
8B8AEFF42EEC904700FC1F17 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF6C2EEC904700FC1F17 /* CAAudioTimeStamp.cpp */; };
|
||||
8B8AEFF52EEC904700FC1F17 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF6D2EEC904700FC1F17 /* CAVectorUnit.h */; };
|
||||
8B8AEFF62EEC904700FC1F17 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF6E2EEC904700FC1F17 /* CAByteOrder.h */; };
|
||||
8B8AEFF72EEC904700FC1F17 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF6F2EEC904700FC1F17 /* CACFArray.h */; };
|
||||
8B8AEFF82EEC904700FC1F17 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF702EEC904700FC1F17 /* CAAtomicStack.h */; };
|
||||
8B8AEFF92EEC904700FC1F17 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF712EEC904700FC1F17 /* CAReferenceCounted.h */; };
|
||||
8B8AEFFA2EEC904700FC1F17 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF722EEC904700FC1F17 /* CACFMachPort.cpp */; };
|
||||
8B8AEFFB2EEC904700FC1F17 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF732EEC904700FC1F17 /* CABufferList.cpp */; };
|
||||
8B8AEFFC2EEC904700FC1F17 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF742EEC904700FC1F17 /* CAMutex.cpp */; };
|
||||
8B8AEFFD2EEC904700FC1F17 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF752EEC904700FC1F17 /* CADebugger.cpp */; };
|
||||
8B8AEFFE2EEC904700FC1F17 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF762EEC904700FC1F17 /* CABundleLocker.cpp */; };
|
||||
8B8AEFFF2EEC904700FC1F17 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF772EEC904700FC1F17 /* CAAudioFileFormats.cpp */; };
|
||||
8B8AF0002EEC904700FC1F17 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF782EEC904700FC1F17 /* CAMath.h */; };
|
||||
8B8AF0012EEC904700FC1F17 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF792EEC904700FC1F17 /* CACFArray.cpp */; };
|
||||
8B8AF0022EEC904700FC1F17 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF7A2EEC904700FC1F17 /* CACFMessagePort.h */; };
|
||||
8B8AF0032EEC904700FC1F17 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF7B2EEC904700FC1F17 /* CAAudioValueRange.cpp */; };
|
||||
8B8AF0042EEC904700FC1F17 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF7C2EEC904700FC1F17 /* CAAudioUnit.cpp */; };
|
||||
8B8AF0052EEC904700FC1F17 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF802EEC904700FC1F17 /* AUViewLocalizedStringKeys.h */; };
|
||||
8B8AF0062EEC904700FC1F17 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF822EEC904700FC1F17 /* ComponentBase.cpp */; };
|
||||
8B8AF0072EEC904700FC1F17 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF832EEC904700FC1F17 /* AUScopeElement.cpp */; };
|
||||
8B8AF0082EEC904700FC1F17 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF842EEC904700FC1F17 /* ComponentBase.h */; };
|
||||
8B8AF0092EEC904700FC1F17 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF852EEC904700FC1F17 /* AUBase.cpp */; };
|
||||
8B8AF00A2EEC904700FC1F17 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF862EEC904700FC1F17 /* AUInputElement.h */; };
|
||||
8B8AF00B2EEC904700FC1F17 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF872EEC904700FC1F17 /* AUBase.h */; };
|
||||
8B8AF00C2EEC904700FC1F17 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF882EEC904700FC1F17 /* AUPlugInDispatch.h */; };
|
||||
8B8AF00D2EEC904700FC1F17 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF892EEC904700FC1F17 /* AUDispatch.h */; };
|
||||
8B8AF00E2EEC904700FC1F17 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF8A2EEC904700FC1F17 /* AUOutputElement.cpp */; };
|
||||
8B8AF0102EEC904700FC1F17 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF8C2EEC904700FC1F17 /* AUPlugInDispatch.cpp */; };
|
||||
8B8AF0112EEC904700FC1F17 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF8D2EEC904700FC1F17 /* AUOutputElement.h */; };
|
||||
8B8AF0122EEC904700FC1F17 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF8E2EEC904700FC1F17 /* AUDispatch.cpp */; };
|
||||
8B8AF0132EEC904700FC1F17 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF8F2EEC904700FC1F17 /* AUScopeElement.h */; };
|
||||
8B8AF0142EEC904700FC1F17 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF902EEC904700FC1F17 /* AUInputElement.cpp */; };
|
||||
8B8AF0152EEC904700FC1F17 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF922EEC904700FC1F17 /* AUEffectBase.cpp */; };
|
||||
8B8AF0162EEC904700FC1F17 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF932EEC904700FC1F17 /* AUEffectBase.h */; };
|
||||
8B8AF0172EEC904700FC1F17 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF952EEC904700FC1F17 /* AUTimestampGenerator.h */; };
|
||||
8B8AF0182EEC904700FC1F17 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF962EEC904700FC1F17 /* AUBaseHelper.cpp */; };
|
||||
8B8AF0192EEC904700FC1F17 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF972EEC904700FC1F17 /* AUSilentTimeout.h */; };
|
||||
8B8AF01A2EEC904700FC1F17 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF982EEC904700FC1F17 /* AUInputFormatConverter.h */; };
|
||||
8B8AF01B2EEC904700FC1F17 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF992EEC904700FC1F17 /* AUTimestampGenerator.cpp */; };
|
||||
8B8AF01C2EEC904700FC1F17 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8B8AEF9A2EEC904700FC1F17 /* AUBuffer.cpp */; };
|
||||
8B8AF01D2EEC904700FC1F17 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF9B2EEC904700FC1F17 /* AUMIDIDefs.h */; };
|
||||
8B8AF01E2EEC904700FC1F17 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF9C2EEC904700FC1F17 /* AUBuffer.h */; };
|
||||
8B8AF01F2EEC904700FC1F17 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B8AEF9D2EEC904700FC1F17 /* AUBaseHelper.h */; };
|
||||
8BA05A6B0720730100365D66 /* Dynamics3Mono.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* Dynamics3Mono.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* Dynamics3MonoVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* Dynamics3MonoVersion.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 /* Dynamics3Mono.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* Dynamics3Mono.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8B8AEF162EEC904700FC1F17 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8B8AEF172EEC904700FC1F17 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8B8AEF182EEC904700FC1F17 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8B8AEF192EEC904700FC1F17 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF1A2EEC904700FC1F17 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8B8AEF1B2EEC904700FC1F17 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF1C2EEC904700FC1F17 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8B8AEF1D2EEC904700FC1F17 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8B8AEF1E2EEC904700FC1F17 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8B8AEF1F2EEC904700FC1F17 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8B8AEF202EEC904700FC1F17 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8B8AEF212EEC904700FC1F17 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8B8AEF222EEC904700FC1F17 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8B8AEF232EEC904700FC1F17 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8B8AEF242EEC904700FC1F17 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8B8AEF252EEC904700FC1F17 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8B8AEF262EEC904700FC1F17 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8B8AEF272EEC904700FC1F17 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF282EEC904700FC1F17 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8B8AEF292EEC904700FC1F17 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8B8AEF2A2EEC904700FC1F17 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8B8AEF2B2EEC904700FC1F17 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8B8AEF2C2EEC904700FC1F17 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF2D2EEC904700FC1F17 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8B8AEF2E2EEC904700FC1F17 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF2F2EEC904700FC1F17 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8B8AEF302EEC904700FC1F17 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B8AEF312EEC904700FC1F17 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF322EEC904700FC1F17 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF332EEC904700FC1F17 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8B8AEF342EEC904700FC1F17 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF352EEC904700FC1F17 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8B8AEF362EEC904700FC1F17 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF372EEC904700FC1F17 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF382EEC904700FC1F17 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8B8AEF392EEC904700FC1F17 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF3A2EEC904700FC1F17 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8B8AEF3B2EEC904700FC1F17 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8B8AEF3C2EEC904700FC1F17 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF3D2EEC904700FC1F17 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8B8AEF3E2EEC904700FC1F17 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF3F2EEC904700FC1F17 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8B8AEF402EEC904700FC1F17 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8B8AEF412EEC904700FC1F17 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF422EEC904700FC1F17 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8B8AEF432EEC904700FC1F17 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8B8AEF442EEC904700FC1F17 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8B8AEF452EEC904700FC1F17 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF462EEC904700FC1F17 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8B8AEF472EEC904700FC1F17 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8B8AEF482EEC904700FC1F17 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8B8AEF492EEC904700FC1F17 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF4A2EEC904700FC1F17 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8B8AEF4B2EEC904700FC1F17 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8B8AEF4C2EEC904700FC1F17 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF4D2EEC904700FC1F17 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF4E2EEC904700FC1F17 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF4F2EEC904700FC1F17 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8B8AEF502EEC904700FC1F17 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF512EEC904700FC1F17 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8B8AEF522EEC904700FC1F17 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF532EEC904700FC1F17 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8B8AEF542EEC904700FC1F17 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8B8AEF552EEC904700FC1F17 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8B8AEF562EEC904700FC1F17 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF572EEC904700FC1F17 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF582EEC904700FC1F17 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8B8AEF592EEC904700FC1F17 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8B8AEF5A2EEC904700FC1F17 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF5B2EEC904700FC1F17 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8B8AEF5C2EEC904700FC1F17 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8B8AEF5D2EEC904700FC1F17 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8B8AEF5E2EEC904700FC1F17 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF5F2EEC904700FC1F17 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF602EEC904700FC1F17 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8B8AEF612EEC904700FC1F17 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF622EEC904700FC1F17 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8B8AEF632EEC904700FC1F17 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8B8AEF642EEC904700FC1F17 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8B8AEF652EEC904700FC1F17 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8B8AEF662EEC904700FC1F17 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF672EEC904700FC1F17 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8B8AEF682EEC904700FC1F17 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF692EEC904700FC1F17 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF6A2EEC904700FC1F17 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF6B2EEC904700FC1F17 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF6C2EEC904700FC1F17 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF6D2EEC904700FC1F17 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8B8AEF6E2EEC904700FC1F17 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8B8AEF6F2EEC904700FC1F17 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8B8AEF702EEC904700FC1F17 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8B8AEF712EEC904700FC1F17 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8B8AEF722EEC904700FC1F17 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF732EEC904700FC1F17 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF742EEC904700FC1F17 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF752EEC904700FC1F17 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF762EEC904700FC1F17 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF772EEC904700FC1F17 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF782EEC904700FC1F17 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8B8AEF792EEC904700FC1F17 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF7A2EEC904700FC1F17 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8B8AEF7B2EEC904700FC1F17 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF7C2EEC904700FC1F17 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF802EEC904700FC1F17 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8B8AEF822EEC904700FC1F17 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF832EEC904700FC1F17 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF842EEC904700FC1F17 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8B8AEF852EEC904700FC1F17 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF862EEC904700FC1F17 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8B8AEF872EEC904700FC1F17 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8B8AEF882EEC904700FC1F17 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8B8AEF892EEC904700FC1F17 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8B8AEF8A2EEC904700FC1F17 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF8B2EEC904700FC1F17 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8B8AEF8C2EEC904700FC1F17 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF8D2EEC904700FC1F17 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8B8AEF8E2EEC904700FC1F17 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF8F2EEC904700FC1F17 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8B8AEF902EEC904700FC1F17 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF922EEC904700FC1F17 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF932EEC904700FC1F17 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8B8AEF952EEC904700FC1F17 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8B8AEF962EEC904700FC1F17 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF972EEC904700FC1F17 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8B8AEF982EEC904700FC1F17 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8B8AEF992EEC904700FC1F17 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF9A2EEC904700FC1F17 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8B8AEF9B2EEC904700FC1F17 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8B8AEF9C2EEC904700FC1F17 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8B8AEF9D2EEC904700FC1F17 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8B8AF0202EEC913B00FC1F17 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8BA05A660720730100365D66 /* Dynamics3Mono.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = Dynamics3Mono.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* Dynamics3Mono.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = Dynamics3Mono.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* Dynamics3Mono.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = Dynamics3Mono.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* Dynamics3MonoVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics3MonoVersion.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 /* Dynamics3Mono.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = Dynamics3Mono.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics3Mono.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Dynamics3Mono.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 /* Dynamics3Mono */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = Dynamics3Mono;
|
||||
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 = (
|
||||
8B8AEF142EEC904700FC1F17 /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* Dynamics3Mono.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF142EEC904700FC1F17 /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF152EEC904700FC1F17 /* PublicUtility */,
|
||||
8B8AEF7D2EEC904700FC1F17 /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF152EEC904700FC1F17 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF162EEC904700FC1F17 /* CAExtAudioFile.h */,
|
||||
8B8AEF172EEC904700FC1F17 /* CACFMachPort.h */,
|
||||
8B8AEF182EEC904700FC1F17 /* CABool.h */,
|
||||
8B8AEF192EEC904700FC1F17 /* CAComponent.cpp */,
|
||||
8B8AEF1A2EEC904700FC1F17 /* CADebugger.h */,
|
||||
8B8AEF1B2EEC904700FC1F17 /* CACFNumber.cpp */,
|
||||
8B8AEF1C2EEC904700FC1F17 /* CAGuard.h */,
|
||||
8B8AEF1D2EEC904700FC1F17 /* CAAtomic.h */,
|
||||
8B8AEF1E2EEC904700FC1F17 /* CAStreamBasicDescription.h */,
|
||||
8B8AEF1F2EEC904700FC1F17 /* CACFObject.h */,
|
||||
8B8AEF202EEC904700FC1F17 /* CAStreamRangedDescription.h */,
|
||||
8B8AEF212EEC904700FC1F17 /* CATokenMap.h */,
|
||||
8B8AEF222EEC904700FC1F17 /* CAComponent.h */,
|
||||
8B8AEF232EEC904700FC1F17 /* CAAudioBufferList.h */,
|
||||
8B8AEF242EEC904700FC1F17 /* CAAudioUnit.h */,
|
||||
8B8AEF252EEC904700FC1F17 /* CAAUParameter.h */,
|
||||
8B8AEF262EEC904700FC1F17 /* CAException.h */,
|
||||
8B8AEF272EEC904700FC1F17 /* CAAUProcessor.cpp */,
|
||||
8B8AEF282EEC904700FC1F17 /* CAAUProcessor.h */,
|
||||
8B8AEF292EEC904700FC1F17 /* CAProcess.h */,
|
||||
8B8AEF2A2EEC904700FC1F17 /* CACFDictionary.h */,
|
||||
8B8AEF2B2EEC904700FC1F17 /* CAPThread.h */,
|
||||
8B8AEF2C2EEC904700FC1F17 /* CAAUParameter.cpp */,
|
||||
8B8AEF2D2EEC904700FC1F17 /* CAAudioTimeStamp.h */,
|
||||
8B8AEF2E2EEC904700FC1F17 /* CAFilePathUtils.cpp */,
|
||||
8B8AEF2F2EEC904700FC1F17 /* CAAudioValueRange.h */,
|
||||
8B8AEF302EEC904700FC1F17 /* CAVectorUnitTypes.h */,
|
||||
8B8AEF312EEC904700FC1F17 /* CAAudioChannelLayoutObject.cpp */,
|
||||
8B8AEF322EEC904700FC1F17 /* CAGuard.cpp */,
|
||||
8B8AEF332EEC904700FC1F17 /* CACFNumber.h */,
|
||||
8B8AEF342EEC904700FC1F17 /* CACFDistributedNotification.cpp */,
|
||||
8B8AEF352EEC904700FC1F17 /* CACFString.h */,
|
||||
8B8AEF362EEC904700FC1F17 /* CAAUMIDIMapManager.cpp */,
|
||||
8B8AEF372EEC904700FC1F17 /* CAComponentDescription.cpp */,
|
||||
8B8AEF382EEC904700FC1F17 /* CAHostTimeBase.h */,
|
||||
8B8AEF392EEC904700FC1F17 /* CADebugMacros.cpp */,
|
||||
8B8AEF3A2EEC904700FC1F17 /* CAAudioFileFormats.h */,
|
||||
8B8AEF3B2EEC904700FC1F17 /* CAAUMIDIMapManager.h */,
|
||||
8B8AEF3C2EEC904700FC1F17 /* CACFDictionary.cpp */,
|
||||
8B8AEF3D2EEC904700FC1F17 /* CAMutex.h */,
|
||||
8B8AEF3E2EEC904700FC1F17 /* CACFString.cpp */,
|
||||
8B8AEF3F2EEC904700FC1F17 /* CASettingsStorage.h */,
|
||||
8B8AEF402EEC904700FC1F17 /* CADebugPrintf.h */,
|
||||
8B8AEF412EEC904700FC1F17 /* CAXException.cpp */,
|
||||
8B8AEF422EEC904700FC1F17 /* CAAUMIDIMap.h */,
|
||||
8B8AEF432EEC904700FC1F17 /* AUParamInfo.h */,
|
||||
8B8AEF442EEC904700FC1F17 /* CABitOperations.h */,
|
||||
8B8AEF452EEC904700FC1F17 /* CACFPreferences.cpp */,
|
||||
8B8AEF462EEC904700FC1F17 /* CABundleLocker.h */,
|
||||
8B8AEF472EEC904700FC1F17 /* CAPropertyAddress.h */,
|
||||
8B8AEF482EEC904700FC1F17 /* CAXException.h */,
|
||||
8B8AEF492EEC904700FC1F17 /* CAAudioChannelLayout.cpp */,
|
||||
8B8AEF4A2EEC904700FC1F17 /* CAThreadSafeList.h */,
|
||||
8B8AEF4B2EEC904700FC1F17 /* CAAudioUnitOutputCapturer.h */,
|
||||
8B8AEF4C2EEC904700FC1F17 /* AUParamInfo.cpp */,
|
||||
8B8AEF4D2EEC904700FC1F17 /* CASharedLibrary.cpp */,
|
||||
8B8AEF4E2EEC904700FC1F17 /* CAAUMIDIMap.cpp */,
|
||||
8B8AEF4F2EEC904700FC1F17 /* CALogMacros.h */,
|
||||
8B8AEF502EEC904700FC1F17 /* CACFMessagePort.cpp */,
|
||||
8B8AEF512EEC904700FC1F17 /* CARingBuffer.h */,
|
||||
8B8AEF522EEC904700FC1F17 /* AUOutputBL.cpp */,
|
||||
8B8AEF532EEC904700FC1F17 /* CABufferList.h */,
|
||||
8B8AEF542EEC904700FC1F17 /* CASharedLibrary.h */,
|
||||
8B8AEF552EEC904700FC1F17 /* CACFData.h */,
|
||||
8B8AEF562EEC904700FC1F17 /* CAStreamRangedDescription.cpp */,
|
||||
8B8AEF572EEC904700FC1F17 /* CAPThread.cpp */,
|
||||
8B8AEF582EEC904700FC1F17 /* CAAutoDisposer.h */,
|
||||
8B8AEF592EEC904700FC1F17 /* CACFPreferences.h */,
|
||||
8B8AEF5A2EEC904700FC1F17 /* CAVectorUnit.cpp */,
|
||||
8B8AEF5B2EEC904700FC1F17 /* CAComponentDescription.h */,
|
||||
8B8AEF5C2EEC904700FC1F17 /* CADebugMacros.h */,
|
||||
8B8AEF5D2EEC904700FC1F17 /* AUOutputBL.h */,
|
||||
8B8AEF5E2EEC904700FC1F17 /* CADebugPrintf.cpp */,
|
||||
8B8AEF5F2EEC904700FC1F17 /* CARingBuffer.cpp */,
|
||||
8B8AEF602EEC904700FC1F17 /* CACFPlugIn.h */,
|
||||
8B8AEF612EEC904700FC1F17 /* CASettingsStorage.cpp */,
|
||||
8B8AEF622EEC904700FC1F17 /* CAMixMap.h */,
|
||||
8B8AEF632EEC904700FC1F17 /* CACFDistributedNotification.h */,
|
||||
8B8AEF642EEC904700FC1F17 /* CAFilePathUtils.h */,
|
||||
8B8AEF652EEC904700FC1F17 /* CATink.h */,
|
||||
8B8AEF662EEC904700FC1F17 /* CAStreamBasicDescription.cpp */,
|
||||
8B8AEF672EEC904700FC1F17 /* CAAudioChannelLayout.h */,
|
||||
8B8AEF682EEC904700FC1F17 /* CAProcess.cpp */,
|
||||
8B8AEF692EEC904700FC1F17 /* CAHostTimeBase.cpp */,
|
||||
8B8AEF6A2EEC904700FC1F17 /* CAPersistence.cpp */,
|
||||
8B8AEF6B2EEC904700FC1F17 /* CAAudioBufferList.cpp */,
|
||||
8B8AEF6C2EEC904700FC1F17 /* CAAudioTimeStamp.cpp */,
|
||||
8B8AEF6D2EEC904700FC1F17 /* CAVectorUnit.h */,
|
||||
8B8AEF6E2EEC904700FC1F17 /* CAByteOrder.h */,
|
||||
8B8AEF6F2EEC904700FC1F17 /* CACFArray.h */,
|
||||
8B8AEF702EEC904700FC1F17 /* CAAtomicStack.h */,
|
||||
8B8AEF712EEC904700FC1F17 /* CAReferenceCounted.h */,
|
||||
8B8AEF722EEC904700FC1F17 /* CACFMachPort.cpp */,
|
||||
8B8AEF732EEC904700FC1F17 /* CABufferList.cpp */,
|
||||
8B8AEF742EEC904700FC1F17 /* CAMutex.cpp */,
|
||||
8B8AEF752EEC904700FC1F17 /* CADebugger.cpp */,
|
||||
8B8AEF762EEC904700FC1F17 /* CABundleLocker.cpp */,
|
||||
8B8AEF772EEC904700FC1F17 /* CAAudioFileFormats.cpp */,
|
||||
8B8AEF782EEC904700FC1F17 /* CAMath.h */,
|
||||
8B8AEF792EEC904700FC1F17 /* CACFArray.cpp */,
|
||||
8B8AEF7A2EEC904700FC1F17 /* CACFMessagePort.h */,
|
||||
8B8AEF7B2EEC904700FC1F17 /* CAAudioValueRange.cpp */,
|
||||
8B8AEF7C2EEC904700FC1F17 /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF7D2EEC904700FC1F17 /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF7E2EEC904700FC1F17 /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF7E2EEC904700FC1F17 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF7F2EEC904700FC1F17 /* AUViewBase */,
|
||||
8B8AEF812EEC904700FC1F17 /* AUBase */,
|
||||
8B8AEF912EEC904700FC1F17 /* OtherBases */,
|
||||
8B8AEF942EEC904700FC1F17 /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF7F2EEC904700FC1F17 /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF802EEC904700FC1F17 /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF812EEC904700FC1F17 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF822EEC904700FC1F17 /* ComponentBase.cpp */,
|
||||
8B8AEF832EEC904700FC1F17 /* AUScopeElement.cpp */,
|
||||
8B8AEF842EEC904700FC1F17 /* ComponentBase.h */,
|
||||
8B8AEF852EEC904700FC1F17 /* AUBase.cpp */,
|
||||
8B8AEF862EEC904700FC1F17 /* AUInputElement.h */,
|
||||
8B8AEF872EEC904700FC1F17 /* AUBase.h */,
|
||||
8B8AEF882EEC904700FC1F17 /* AUPlugInDispatch.h */,
|
||||
8B8AEF892EEC904700FC1F17 /* AUDispatch.h */,
|
||||
8B8AEF8A2EEC904700FC1F17 /* AUOutputElement.cpp */,
|
||||
8B8AEF8B2EEC904700FC1F17 /* AUResources.r */,
|
||||
8B8AEF8C2EEC904700FC1F17 /* AUPlugInDispatch.cpp */,
|
||||
8B8AEF8D2EEC904700FC1F17 /* AUOutputElement.h */,
|
||||
8B8AEF8E2EEC904700FC1F17 /* AUDispatch.cpp */,
|
||||
8B8AEF8F2EEC904700FC1F17 /* AUScopeElement.h */,
|
||||
8B8AEF902EEC904700FC1F17 /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF912EEC904700FC1F17 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF922EEC904700FC1F17 /* AUEffectBase.cpp */,
|
||||
8B8AEF932EEC904700FC1F17 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8B8AEF942EEC904700FC1F17 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B8AEF952EEC904700FC1F17 /* AUTimestampGenerator.h */,
|
||||
8B8AEF962EEC904700FC1F17 /* AUBaseHelper.cpp */,
|
||||
8B8AEF972EEC904700FC1F17 /* AUSilentTimeout.h */,
|
||||
8B8AEF982EEC904700FC1F17 /* AUInputFormatConverter.h */,
|
||||
8B8AEF992EEC904700FC1F17 /* AUTimestampGenerator.cpp */,
|
||||
8B8AEF9A2EEC904700FC1F17 /* AUBuffer.cpp */,
|
||||
8B8AEF9B2EEC904700FC1F17 /* AUMIDIDefs.h */,
|
||||
8B8AEF9C2EEC904700FC1F17 /* AUBuffer.h */,
|
||||
8B8AEF9D2EEC904700FC1F17 /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* Dynamics3Mono.h */,
|
||||
8BA05A660720730100365D66 /* Dynamics3Mono.cpp */,
|
||||
8BA05A670720730100365D66 /* Dynamics3Mono.exp */,
|
||||
8BA05A680720730100365D66 /* Dynamics3Mono.r */,
|
||||
8BA05A690720730100365D66 /* Dynamics3MonoVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B8AEFCE2EEC904700FC1F17 /* CABundleLocker.h in Headers */,
|
||||
8B8AEFEF2EEC904700FC1F17 /* CAAudioChannelLayout.h in Headers */,
|
||||
8B8AEFE52EEC904700FC1F17 /* AUOutputBL.h in Headers */,
|
||||
8B8AEFC02EEC904700FC1F17 /* CAHostTimeBase.h in Headers */,
|
||||
8B8AF0082EEC904700FC1F17 /* ComponentBase.h in Headers */,
|
||||
8B8AEFF82EEC904700FC1F17 /* CAAtomicStack.h in Headers */,
|
||||
8B8AEFB52EEC904700FC1F17 /* CAAudioTimeStamp.h in Headers */,
|
||||
8B8AEFD22EEC904700FC1F17 /* CAThreadSafeList.h in Headers */,
|
||||
8B8AEFAD2EEC904700FC1F17 /* CAAUParameter.h in Headers */,
|
||||
8B8AF01F2EEC904700FC1F17 /* AUBaseHelper.h in Headers */,
|
||||
8B8AF0172EEC904700FC1F17 /* AUTimestampGenerator.h in Headers */,
|
||||
8B8AEFC82EEC904700FC1F17 /* CADebugPrintf.h in Headers */,
|
||||
8B8AF0022EEC904700FC1F17 /* CACFMessagePort.h in Headers */,
|
||||
8B8AEFB02EEC904700FC1F17 /* CAAUProcessor.h in Headers */,
|
||||
8B8AEFAC2EEC904700FC1F17 /* CAAudioUnit.h in Headers */,
|
||||
8B8AF0052EEC904700FC1F17 /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8B8AEFEB2EEC904700FC1F17 /* CACFDistributedNotification.h in Headers */,
|
||||
8B8AEFAA2EEC904700FC1F17 /* CAComponent.h in Headers */,
|
||||
8B8AEFB82EEC904700FC1F17 /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* Dynamics3MonoVersion.h in Headers */,
|
||||
8B8AEFEC2EEC904700FC1F17 /* CAFilePathUtils.h in Headers */,
|
||||
8B8AEFAE2EEC904700FC1F17 /* CAException.h in Headers */,
|
||||
8B8AEFA52EEC904700FC1F17 /* CAAtomic.h in Headers */,
|
||||
8B8AEFA42EEC904700FC1F17 /* CAGuard.h in Headers */,
|
||||
8B8AF00A2EEC904700FC1F17 /* AUInputElement.h in Headers */,
|
||||
8B8AEFE12EEC904700FC1F17 /* CACFPreferences.h in Headers */,
|
||||
8B8AEFF62EEC904700FC1F17 /* CAByteOrder.h in Headers */,
|
||||
8B8AEFD92EEC904700FC1F17 /* CARingBuffer.h in Headers */,
|
||||
8B8AEFA02EEC904700FC1F17 /* CABool.h in Headers */,
|
||||
8B8AEFC52EEC904700FC1F17 /* CAMutex.h in Headers */,
|
||||
8B8AF00B2EEC904700FC1F17 /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* Dynamics3Mono.h in Headers */,
|
||||
8B8AEFBD2EEC904700FC1F17 /* CACFString.h in Headers */,
|
||||
8B8AEFDC2EEC904700FC1F17 /* CASharedLibrary.h in Headers */,
|
||||
8B8AEFA92EEC904700FC1F17 /* CATokenMap.h in Headers */,
|
||||
8B8AEF9E2EEC904700FC1F17 /* CAExtAudioFile.h in Headers */,
|
||||
8B8AEFB32EEC904700FC1F17 /* CAPThread.h in Headers */,
|
||||
8B8AEFCF2EEC904700FC1F17 /* CAPropertyAddress.h in Headers */,
|
||||
8B8AEFF92EEC904700FC1F17 /* CAReferenceCounted.h in Headers */,
|
||||
8B8AF01E2EEC904700FC1F17 /* AUBuffer.h in Headers */,
|
||||
8B8AF0002EEC904700FC1F17 /* CAMath.h in Headers */,
|
||||
8B8AEFE02EEC904700FC1F17 /* CAAutoDisposer.h in Headers */,
|
||||
8B8AEFA72EEC904700FC1F17 /* CACFObject.h in Headers */,
|
||||
8B8AEFC72EEC904700FC1F17 /* CASettingsStorage.h in Headers */,
|
||||
8B8AEFD02EEC904700FC1F17 /* CAXException.h in Headers */,
|
||||
8B8AEFED2EEC904700FC1F17 /* CATink.h in Headers */,
|
||||
8B8AF01A2EEC904700FC1F17 /* AUInputFormatConverter.h in Headers */,
|
||||
8B8AEFF52EEC904700FC1F17 /* CAVectorUnit.h in Headers */,
|
||||
8B8AEFB12EEC904700FC1F17 /* CAProcess.h in Headers */,
|
||||
8B8AEFB72EEC904700FC1F17 /* CAAudioValueRange.h in Headers */,
|
||||
8B8AEFCC2EEC904700FC1F17 /* CABitOperations.h in Headers */,
|
||||
8B8AEFC22EEC904700FC1F17 /* CAAudioFileFormats.h in Headers */,
|
||||
8B8AEFBB2EEC904700FC1F17 /* CACFNumber.h in Headers */,
|
||||
8B8AEFD32EEC904700FC1F17 /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8B8AEFE42EEC904700FC1F17 /* CADebugMacros.h in Headers */,
|
||||
8B8AF01D2EEC904700FC1F17 /* AUMIDIDefs.h in Headers */,
|
||||
8B8AEFDD2EEC904700FC1F17 /* CACFData.h in Headers */,
|
||||
8B8AEFA62EEC904700FC1F17 /* CAStreamBasicDescription.h in Headers */,
|
||||
8B8AF00C2EEC904700FC1F17 /* AUPlugInDispatch.h in Headers */,
|
||||
8B8AEFA82EEC904700FC1F17 /* CAStreamRangedDescription.h in Headers */,
|
||||
8B8AEFE82EEC904700FC1F17 /* CACFPlugIn.h in Headers */,
|
||||
8B8AEFAB2EEC904700FC1F17 /* CAAudioBufferList.h in Headers */,
|
||||
8B8AEFC32EEC904700FC1F17 /* CAAUMIDIMapManager.h in Headers */,
|
||||
8B8AF0162EEC904700FC1F17 /* AUEffectBase.h in Headers */,
|
||||
8B8AEFB22EEC904700FC1F17 /* CACFDictionary.h in Headers */,
|
||||
8B8AF0132EEC904700FC1F17 /* AUScopeElement.h in Headers */,
|
||||
8B8AEFE32EEC904700FC1F17 /* CAComponentDescription.h in Headers */,
|
||||
8B8AF0192EEC904700FC1F17 /* AUSilentTimeout.h in Headers */,
|
||||
8B8AEFDB2EEC904700FC1F17 /* CABufferList.h in Headers */,
|
||||
8B8AF00D2EEC904700FC1F17 /* AUDispatch.h in Headers */,
|
||||
8B8AF0112EEC904700FC1F17 /* AUOutputElement.h in Headers */,
|
||||
8B8AEFD72EEC904700FC1F17 /* CALogMacros.h in Headers */,
|
||||
8B8AEFCB2EEC904700FC1F17 /* AUParamInfo.h in Headers */,
|
||||
8B8AEFEA2EEC904700FC1F17 /* CAMixMap.h in Headers */,
|
||||
8B8AEFF72EEC904700FC1F17 /* CACFArray.h in Headers */,
|
||||
8B8AEF9F2EEC904700FC1F17 /* CACFMachPort.h in Headers */,
|
||||
8B8AEFCA2EEC904700FC1F17 /* CAAUMIDIMap.h in Headers */,
|
||||
8B8AEFA22EEC904700FC1F17 /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3Mono */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "Dynamics3Mono" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = Dynamics3Mono;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = Dynamics3Mono;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* Dynamics3Mono.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 "Dynamics3Mono" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
fr,
|
||||
Base,
|
||||
ja,
|
||||
en,
|
||||
de,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* Dynamics3Mono */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* Dynamics3Mono */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8B8AEFDA2EEC904700FC1F17 /* AUOutputBL.cpp in Sources */,
|
||||
8B8AEFFF2EEC904700FC1F17 /* CAAudioFileFormats.cpp in Sources */,
|
||||
8B8AEFF12EEC904700FC1F17 /* CAHostTimeBase.cpp in Sources */,
|
||||
8B8AEFC92EEC904700FC1F17 /* CAXException.cpp in Sources */,
|
||||
8B8AEFF32EEC904700FC1F17 /* CAAudioBufferList.cpp in Sources */,
|
||||
8B8AEFB62EEC904700FC1F17 /* CAFilePathUtils.cpp in Sources */,
|
||||
8B8AEFB42EEC904700FC1F17 /* CAAUParameter.cpp in Sources */,
|
||||
8B8AEFD62EEC904700FC1F17 /* CAAUMIDIMap.cpp in Sources */,
|
||||
8B8AF0032EEC904700FC1F17 /* CAAudioValueRange.cpp in Sources */,
|
||||
8B8AF0122EEC904700FC1F17 /* AUDispatch.cpp in Sources */,
|
||||
8B8AEFCD2EEC904700FC1F17 /* CACFPreferences.cpp in Sources */,
|
||||
8B8AF0102EEC904700FC1F17 /* AUPlugInDispatch.cpp in Sources */,
|
||||
8B8AEFAF2EEC904700FC1F17 /* CAAUProcessor.cpp in Sources */,
|
||||
8B8AEFC42EEC904700FC1F17 /* CACFDictionary.cpp in Sources */,
|
||||
8B8AF0182EEC904700FC1F17 /* AUBaseHelper.cpp in Sources */,
|
||||
8B8AEFFD2EEC904700FC1F17 /* CADebugger.cpp in Sources */,
|
||||
8B8AEFD12EEC904700FC1F17 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8B8AEFD42EEC904700FC1F17 /* AUParamInfo.cpp in Sources */,
|
||||
8B8AEFF22EEC904700FC1F17 /* CAPersistence.cpp in Sources */,
|
||||
8B8AEFE62EEC904700FC1F17 /* CADebugPrintf.cpp in Sources */,
|
||||
8B8AF01B2EEC904700FC1F17 /* AUTimestampGenerator.cpp in Sources */,
|
||||
8B8AEFEE2EEC904700FC1F17 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8B8AEFBE2EEC904700FC1F17 /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8B8AEFE92EEC904700FC1F17 /* CASettingsStorage.cpp in Sources */,
|
||||
8B8AF00E2EEC904700FC1F17 /* AUOutputElement.cpp in Sources */,
|
||||
8B8AEFBA2EEC904700FC1F17 /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* Dynamics3Mono.cpp in Sources */,
|
||||
8B8AEFFC2EEC904700FC1F17 /* CAMutex.cpp in Sources */,
|
||||
8B8AF0152EEC904700FC1F17 /* AUEffectBase.cpp in Sources */,
|
||||
8B8AEFFA2EEC904700FC1F17 /* CACFMachPort.cpp in Sources */,
|
||||
8B8AF0092EEC904700FC1F17 /* AUBase.cpp in Sources */,
|
||||
8B8AEFD52EEC904700FC1F17 /* CASharedLibrary.cpp in Sources */,
|
||||
8B8AEFBC2EEC904700FC1F17 /* CACFDistributedNotification.cpp in Sources */,
|
||||
8B8AEFBF2EEC904700FC1F17 /* CAComponentDescription.cpp in Sources */,
|
||||
8B8AEFC62EEC904700FC1F17 /* CACFString.cpp in Sources */,
|
||||
8B8AF0062EEC904700FC1F17 /* ComponentBase.cpp in Sources */,
|
||||
8B8AEFE72EEC904700FC1F17 /* CARingBuffer.cpp in Sources */,
|
||||
8B8AF0072EEC904700FC1F17 /* AUScopeElement.cpp in Sources */,
|
||||
8B8AF0042EEC904700FC1F17 /* CAAudioUnit.cpp in Sources */,
|
||||
8B8AF0012EEC904700FC1F17 /* CACFArray.cpp in Sources */,
|
||||
8B8AEFFE2EEC904700FC1F17 /* CABundleLocker.cpp in Sources */,
|
||||
8B8AEFF02EEC904700FC1F17 /* CAProcess.cpp in Sources */,
|
||||
8B8AEFDE2EEC904700FC1F17 /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8B8AEFDF2EEC904700FC1F17 /* CAPThread.cpp in Sources */,
|
||||
8B8AEFA12EEC904700FC1F17 /* CAComponent.cpp in Sources */,
|
||||
8B8AEFB92EEC904700FC1F17 /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8B8AEFF42EEC904700FC1F17 /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8B8AEFFB2EEC904700FC1F17 /* CABufferList.cpp in Sources */,
|
||||
8B8AEFD82EEC904700FC1F17 /* CACFMessagePort.cpp in Sources */,
|
||||
8B8AEFE22EEC904700FC1F17 /* CAVectorUnit.cpp in Sources */,
|
||||
8B8AF0142EEC904700FC1F17 /* AUInputElement.cpp in Sources */,
|
||||
8B8AF01C2EEC904700FC1F17 /* AUBuffer.cpp in Sources */,
|
||||
8B8AEFC12EEC904700FC1F17 /* CADebugMacros.cpp in Sources */,
|
||||
8B8AEFA32EEC904700FC1F17 /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8B8AF0202EEC913B00FC1F17 /* 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 = Dynamics3Mono.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 = Dynamics3Mono;
|
||||
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 = Dynamics3Mono.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 = Dynamics3Mono;
|
||||
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 "Dynamics3Mono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "Dynamics3Mono" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
|
|
@ -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 = "Dynamics3Mono.component"
|
||||
BlueprintName = "Dynamics3Mono"
|
||||
ReferencedContainer = "container:Dynamics3Mono.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 = "Dynamics3Mono.component"
|
||||
BlueprintName = "Dynamics3Mono"
|
||||
ReferencedContainer = "container:Dynamics3Mono.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>Dynamics3Mono.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>
|
||||
58
plugins/MacSignedAU/Dynamics3Mono/Dynamics3MonoVersion.h
Executable file
58
plugins/MacSignedAU/Dynamics3Mono/Dynamics3MonoVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: Dynamics3MonoVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/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 __Dynamics3MonoVersion_h__
|
||||
#define __Dynamics3MonoVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kDynamics3MonoVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kDynamics3MonoVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define Dynamics3Mono_COMP_MANF 'Dthr'
|
||||
#define Dynamics3Mono_COMP_SUBTYPE 'dym3'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
47
plugins/MacSignedAU/Dynamics3Mono/Info.plist
Executable file
47
plugins/MacSignedAU/Dynamics3Mono/Info.plist
Executable file
|
|
@ -0,0 +1,47 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AudioComponents</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>description</key>
|
||||
<string>${PRODUCT_NAME:identifier} AU</string>
|
||||
<key>factoryFunction</key>
|
||||
<string>${PRODUCT_NAME:identifier}Factory</string>
|
||||
<key>manufacturer</key>
|
||||
<string>Dthr</string>
|
||||
<key>name</key>
|
||||
<string>Airwindows: ${PRODUCT_NAME:identifier}</string>
|
||||
<key>subtype</key>
|
||||
<string>dym3</string>
|
||||
<key>type</key>
|
||||
<string>aufx</string>
|
||||
<key>version</key>
|
||||
<integer>65536</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
BIN
plugins/MacSignedAU/Dynamics3Mono/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/Dynamics3Mono/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/Dynamics3Mono/version.plist
Executable file
16
plugins/MacSignedAU/Dynamics3Mono/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>
|
||||
|
|
@ -312,14 +312,32 @@ void PunchyDeluxe::PunchyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
}
|
||||
inputSample += band;
|
||||
inputSample *= drive;
|
||||
inputSample = sin(fmin(fmax(inputSample,-M_PI),M_PI));
|
||||
inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596);
|
||||
long double X = inputSample * inputSample;
|
||||
long double temp = inputSample * X;
|
||||
inputSample -= (temp*0.125); temp *= X;
|
||||
inputSample += (temp*0.0078125); temp *= X;
|
||||
inputSample -= (temp*0.000244140625); temp *= X;
|
||||
inputSample += (temp*0.000003814697265625); temp *= X;
|
||||
inputSample -= (temp*0.0000000298023223876953125); temp *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
}
|
||||
|
||||
if (pad < 1.0) {
|
||||
inputSample *= pad;
|
||||
}
|
||||
|
||||
inputSample = sin(fmin(fmax(inputSample,-M_PI),M_PI));
|
||||
inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596);
|
||||
long double X = inputSample * inputSample;
|
||||
long double temp = inputSample * X;
|
||||
inputSample -= (temp*0.125); temp *= X;
|
||||
inputSample += (temp*0.0078125); temp *= X;
|
||||
inputSample -= (temp*0.000244140625); temp *= X;
|
||||
inputSample += (temp*0.000003814697265625); temp *= X;
|
||||
inputSample -= (temp*0.0000000298023223876953125); temp *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -333,7 +333,16 @@ void PunchyGuitar::PunchyGuitarKernel::Process( const Float32 *inSourceP,
|
|||
}
|
||||
inputSample += (band*angG[9]);
|
||||
inputSample *= drive;
|
||||
inputSample = sin(fmin(fmax(inputSample,-M_PI),M_PI));
|
||||
inputSample = fmin(fmax(inputSample,-2.032610446872596),2.032610446872596);
|
||||
long double X = inputSample * inputSample;
|
||||
long double temp = inputSample * X;
|
||||
inputSample -= (temp*0.125); temp *= X;
|
||||
inputSample += (temp*0.0078125); temp *= X;
|
||||
inputSample -= (temp*0.000244140625); temp *= X;
|
||||
inputSample += (temp*0.000003814697265625); temp *= X;
|
||||
inputSample -= (temp*0.0000000298023223876953125); temp *= X;
|
||||
//purestsaturation: sine, except all the corrections
|
||||
//retain mantissa of a long double increasing power function
|
||||
}
|
||||
|
||||
if (gateroller < 1.0)
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue