mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 14:16:00 -06:00
ChimeyDeluxe
This commit is contained in:
parent
d27f470c07
commit
4d76432e93
289 changed files with 82528 additions and 3674 deletions
|
|
@ -116,6 +116,9 @@ add_airwindows_plugin(Console8SubIn)
|
|||
add_airwindows_plugin(Console8SubOut)
|
||||
add_airwindows_plugin(Console9Buss)
|
||||
add_airwindows_plugin(Console9Channel)
|
||||
add_airwindows_plugin(ConsoleHBuss)
|
||||
add_airwindows_plugin(ConsoleHChannel)
|
||||
add_airwindows_plugin(ConsoleHPre)
|
||||
add_airwindows_plugin(ConsoleLABuss)
|
||||
add_airwindows_plugin(ConsoleLAChannel)
|
||||
add_airwindows_plugin(ConsoleMCBuss)
|
||||
|
|
|
|||
|
|
@ -24,17 +24,16 @@ ChimeyDeluxe::ChimeyDeluxe(audioMasterCallback audioMaster) :
|
|||
J = 0.5;
|
||||
|
||||
for(int x=0; x<17; x++) {
|
||||
for (int w = 0; w < bez_total; w++) bezComp[w][x] = 0.0;
|
||||
bezComp[bez_cycle][x] = 1.0;
|
||||
for(int y=0; y<14; y++) {
|
||||
angSL[x][y] = 0.0;angAL[x][y] = 0.0;
|
||||
angSR[x][y] = 0.0;angAR[x][y] = 0.0;
|
||||
angSL[x][y] = 0.0;
|
||||
angAL[x][y] = 0.0;
|
||||
angSR[x][y] = 0.0;
|
||||
angAR[x][y] = 0.0;
|
||||
}
|
||||
}
|
||||
for(int y=0; y<14; y++) angG[y] = 0.0;
|
||||
|
||||
muCompL = 1.0;
|
||||
muSpdL = 100.0;
|
||||
muCompR = 1.0;
|
||||
muSpdR = 100.0;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
|
|
|
|||
|
|
@ -74,15 +74,29 @@ private:
|
|||
|
||||
double angSL[18][15];
|
||||
double angAL[18][15];
|
||||
double muCompL;
|
||||
double muSpdL;
|
||||
|
||||
double angSR[18][15];
|
||||
double angAR[18][15];
|
||||
double muCompR;
|
||||
double muSpdR;
|
||||
|
||||
double angG[15];
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_AR,
|
||||
bez_BR,
|
||||
bez_CR,
|
||||
bez_InR,
|
||||
bez_UnInR,
|
||||
bez_SampR,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezComp[bez_total][18];
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
|
|
|
|||
|
|
@ -20,43 +20,46 @@ void ChimeyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
|
||||
double drive = 1.0;
|
||||
double pad = 1.0;
|
||||
angG[1] = A+0.5;
|
||||
angG[1] = (A+1.5)*0.5;
|
||||
if (pad > angG[1]) pad = angG[1];
|
||||
if (drive < angG[1]) drive = angG[1];
|
||||
angG[0] = (1.0+angG[1])*0.5; //if boost, boost half
|
||||
if (angG[0] > angG[1]) angG[0] = angG[1];
|
||||
angG[2] = B+0.5;
|
||||
angG[2] = (B+1.5)*0.5;
|
||||
if (pad > angG[2]) pad = angG[2];
|
||||
if (drive < angG[2]) drive = angG[2];
|
||||
angG[3] = C+0.5;
|
||||
angG[3] = (C+1.5)*0.5;
|
||||
if (pad > angG[3]) pad = angG[3];
|
||||
if (drive < angG[3]) drive = angG[3];
|
||||
angG[4] = D+0.5;
|
||||
angG[4] = (D+1.5)*0.5;
|
||||
if (pad > angG[4]) pad = angG[4];
|
||||
if (drive < angG[4]) drive = angG[4];
|
||||
angG[5] = E+0.5;
|
||||
angG[5] = (E+1.5)*0.5;
|
||||
if (pad > angG[5]) pad = angG[5];
|
||||
if (drive < angG[5]) drive = angG[5];
|
||||
angG[6] = F+0.5;
|
||||
angG[6] = (F+1.5)*0.5;
|
||||
if (pad > angG[6]) pad = angG[6];
|
||||
if (drive < angG[6]) drive = angG[6];
|
||||
angG[7] = G+0.5;
|
||||
angG[7] = (G+1.5)*0.5;
|
||||
if (pad > angG[7]) pad = angG[7];
|
||||
if (drive < angG[7]) drive = angG[7];
|
||||
angG[8] = H+0.5;
|
||||
angG[8] = (H+1.5)*0.5;
|
||||
if (pad > angG[8]) pad = angG[8];
|
||||
if (drive < angG[8]) drive = angG[8];
|
||||
angG[9] = I+0.5;
|
||||
angG[9] = (I+1.5)*0.5;
|
||||
if (pad > angG[9]) pad = angG[9];
|
||||
if (drive < angG[9]) drive = angG[9];
|
||||
angG[10] = J+0.5;
|
||||
angG[10] = (J+1.5)*0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
angG[12] = angG[11] = angG[10];
|
||||
if (drive > 1.0) drive = pow(drive,drive*2.0);
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double bezRez = (pad * drive * 0.0005)/overallscale;
|
||||
int bezFreqFraction = (int)(1.0/bezRez);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
bezRez = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(bezRez*bezFreqTrim);
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
|
|
@ -67,64 +70,56 @@ void ChimeyDeluxe::processReplacing(float **inputs, float **outputs, VstInt32 sa
|
|||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSampleL; inputSampleL = 0.0;
|
||||
double bandL = inputSampleL; inputSampleL = 0.0;
|
||||
double bandR = inputSampleR; inputSampleR = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
|
||||
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSampleL += ((temp-band)*angG[y]);
|
||||
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((bandL-angSL[x][y])*fr);
|
||||
double tempL = bandL; bandL = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(bandL*fr);
|
||||
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(bandL*fr);
|
||||
inputSampleL += ((tempL-bandL)*angG[y]);
|
||||
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((bandR-angSR[x][y])*fr);
|
||||
double tempR = bandR; bandR = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(bandR*fr);
|
||||
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(bandR*fr);
|
||||
inputSampleR += ((tempR-bandR)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSampleL += band;
|
||||
inputSampleL *= threshold;
|
||||
inputSampleL *= (muCompL/threshold);
|
||||
if (fabs(inputSampleL) > threshold)
|
||||
{
|
||||
muCompL *= muSpdL;
|
||||
if (threshold/fabs(inputSampleL) < threshold) muCompL += threshold*fabs(inputSampleL);
|
||||
else muCompL -= threshold/fabs(inputSampleL);
|
||||
muCompL /= muSpdL;
|
||||
} else {
|
||||
muCompL *= (muSpdL*muSpdL);
|
||||
muCompL += ((1.1+threshold)-fabs(inputSampleL));
|
||||
muCompL /= (muSpdL*muSpdL);
|
||||
inputSampleL += bandL;
|
||||
inputSampleR += bandR; //end of filter part
|
||||
|
||||
bezComp[bez_cycle][x] += bezRez;
|
||||
bezComp[bez_SampL][x] += (fabs(inputSampleL) * bezRez);
|
||||
bezComp[bez_SampR][x] += (fabs(inputSampleR) * bezRez);
|
||||
if (bezComp[bez_cycle][x] > 1.0) {
|
||||
bezComp[bez_cycle][x] = 0.0;
|
||||
bezComp[bez_CL][x] = bezComp[bez_BL][x];
|
||||
bezComp[bez_BL][x] = bezComp[bez_AL][x];
|
||||
bezComp[bez_AL][x] = bezComp[bez_SampL][x];
|
||||
bezComp[bez_SampL][x] = 0.0;
|
||||
bezComp[bez_CR][x] = bezComp[bez_BR][x];
|
||||
bezComp[bez_BR][x] = bezComp[bez_AR][x];
|
||||
bezComp[bez_AR][x] = bezComp[bez_SampR][x];
|
||||
bezComp[bez_SampR][x] = 0.0;
|
||||
}
|
||||
muCompL = fmax(fmin(muCompL,1.0),threshold);
|
||||
inputSampleL *= (muCompL*muCompL);
|
||||
muSpdL = fmax(fmin(((muSpdL*(muSpdL-1.0))+(fabs(inputSampleL*adjSpd)))/muSpdL,adjSpd*2.0),adjSpd);
|
||||
double z = bezComp[bez_cycle][x]*bezFreqTrim;
|
||||
double CBL = (bezComp[bez_CL][x]*(1.0-z))+(bezComp[bez_BL][x]*z);
|
||||
double BAL = (bezComp[bez_BL][x]*(1.0-z))+(bezComp[bez_AL][x]*z);
|
||||
double CBAL = (bezComp[bez_BL][x]+(CBL*(1.0-z))+(BAL*z));
|
||||
|
||||
double CBR = (bezComp[bez_CR][x]*(1.0-z))+(bezComp[bez_BR][x]*z);
|
||||
double BAR = (bezComp[bez_BR][x]*(1.0-z))+(bezComp[bez_AR][x]*z);
|
||||
double CBAR = (bezComp[bez_BR][x]+(CBR*(1.0-z))+(BAR*z));
|
||||
|
||||
CBAL = fmin(fmax(CBAL*drive*0.23,0.0),M_PI_2);
|
||||
CBAR = fmin(fmax(CBAR*drive*0.23,0.0),M_PI_2);
|
||||
inputSampleL *= 1.0-sin(CBAL);
|
||||
inputSampleR *= 1.0-sin(CBAR);
|
||||
}
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI_2),M_PI_2));
|
||||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSampleR; inputSampleR = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
|
||||
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSampleR += ((temp-band)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSampleR += band;
|
||||
inputSampleR *= threshold;
|
||||
inputSampleR *= (muCompR/threshold);
|
||||
if (fabs(inputSampleR) > threshold)
|
||||
{
|
||||
muCompR *= muSpdR;
|
||||
if (threshold/fabs(inputSampleR) < threshold) muCompR += threshold*fabs(inputSampleR);
|
||||
else muCompR -= threshold/fabs(inputSampleR);
|
||||
muCompR /= muSpdR;
|
||||
} else {
|
||||
muCompR *= (muSpdR*muSpdR);
|
||||
muCompR += ((1.1+threshold)-fabs(inputSampleR));
|
||||
muCompR /= (muSpdR*muSpdR);
|
||||
}
|
||||
muCompR = fmax(fmin(muCompR,1.0),threshold);
|
||||
inputSampleR *= (muCompR*muCompR);
|
||||
muSpdR = fmax(fmin(((muSpdR*(muSpdR-1.0))+(fabs(inputSampleR*adjSpd)))/muSpdR,adjSpd*2.0),adjSpd);
|
||||
}
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI_2),M_PI_2));
|
||||
|
||||
inputSampleL /= drive;
|
||||
inputSampleR /= drive;
|
||||
|
||||
inputSampleL = fmin(fmax(inputSampleL*pad,-1.0),1.0);
|
||||
inputSampleR = fmin(fmax(inputSampleR*pad,-1.0),1.0);
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
|
|
@ -157,43 +152,46 @@ void ChimeyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
|
||||
double drive = 1.0;
|
||||
double pad = 1.0;
|
||||
angG[1] = A+0.5;
|
||||
angG[1] = (A+1.5)*0.5;
|
||||
if (pad > angG[1]) pad = angG[1];
|
||||
if (drive < angG[1]) drive = angG[1];
|
||||
angG[0] = (1.0+angG[1])*0.5; //if boost, boost half
|
||||
if (angG[0] > angG[1]) angG[0] = angG[1];
|
||||
angG[2] = B+0.5;
|
||||
angG[2] = (B+1.5)*0.5;
|
||||
if (pad > angG[2]) pad = angG[2];
|
||||
if (drive < angG[2]) drive = angG[2];
|
||||
angG[3] = C+0.5;
|
||||
angG[3] = (C+1.5)*0.5;
|
||||
if (pad > angG[3]) pad = angG[3];
|
||||
if (drive < angG[3]) drive = angG[3];
|
||||
angG[4] = D+0.5;
|
||||
angG[4] = (D+1.5)*0.5;
|
||||
if (pad > angG[4]) pad = angG[4];
|
||||
if (drive < angG[4]) drive = angG[4];
|
||||
angG[5] = E+0.5;
|
||||
angG[5] = (E+1.5)*0.5;
|
||||
if (pad > angG[5]) pad = angG[5];
|
||||
if (drive < angG[5]) drive = angG[5];
|
||||
angG[6] = F+0.5;
|
||||
angG[6] = (F+1.5)*0.5;
|
||||
if (pad > angG[6]) pad = angG[6];
|
||||
if (drive < angG[6]) drive = angG[6];
|
||||
angG[7] = G+0.5;
|
||||
angG[7] = (G+1.5)*0.5;
|
||||
if (pad > angG[7]) pad = angG[7];
|
||||
if (drive < angG[7]) drive = angG[7];
|
||||
angG[8] = H+0.5;
|
||||
angG[8] = (H+1.5)*0.5;
|
||||
if (pad > angG[8]) pad = angG[8];
|
||||
if (drive < angG[8]) drive = angG[8];
|
||||
angG[9] = I+0.5;
|
||||
angG[9] = (I+1.5)*0.5;
|
||||
if (pad > angG[9]) pad = angG[9];
|
||||
if (drive < angG[9]) drive = angG[9];
|
||||
angG[10] = J+0.5;
|
||||
angG[10] = (J+1.5)*0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
angG[12] = angG[11] = angG[10];
|
||||
if (drive > 1.0) drive = pow(drive,drive*2.0);
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double bezRez = (pad * drive * 0.0005)/overallscale;
|
||||
int bezFreqFraction = (int)(1.0/bezRez);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
bezRez = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(bezRez*bezFreqTrim);
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
|
|
@ -204,63 +202,55 @@ void ChimeyDeluxe::processDoubleReplacing(double **inputs, double **outputs, Vst
|
|||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSampleL; inputSampleL = 0.0;
|
||||
double bandL = inputSampleL; inputSampleL = 0.0;
|
||||
double bandR = inputSampleR; inputSampleR = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((band-angSL[x][y])*fr);
|
||||
double temp = band; band = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSampleL += ((temp-band)*angG[y]);
|
||||
angAL[x][y] = (angAL[x][y]*(1.0-fr)) + ((bandL-angSL[x][y])*fr);
|
||||
double tempL = bandL; bandL = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(bandL*fr);
|
||||
angSL[x][y] = ((angSL[x][y]+(angAL[x][y]*fr)) * (1.0-fr))+(bandL*fr);
|
||||
inputSampleL += ((tempL-bandL)*angG[y]);
|
||||
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((bandR-angSR[x][y])*fr);
|
||||
double tempR = bandR; bandR = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(bandR*fr);
|
||||
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(bandR*fr);
|
||||
inputSampleR += ((tempR-bandR)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSampleL += band;
|
||||
inputSampleL *= threshold;
|
||||
inputSampleL *= (muCompL/threshold);
|
||||
if (fabs(inputSampleL) > threshold)
|
||||
{
|
||||
muCompL *= muSpdL;
|
||||
if (threshold/fabs(inputSampleL) < threshold) muCompL += threshold*fabs(inputSampleL);
|
||||
else muCompL -= threshold/fabs(inputSampleL);
|
||||
muCompL /= muSpdL;
|
||||
} else {
|
||||
muCompL *= (muSpdL*muSpdL);
|
||||
muCompL += ((1.1+threshold)-fabs(inputSampleL));
|
||||
muCompL /= (muSpdL*muSpdL);
|
||||
inputSampleL += bandL;
|
||||
inputSampleR += bandR; //end of filter part
|
||||
|
||||
bezComp[bez_cycle][x] += bezRez;
|
||||
bezComp[bez_SampL][x] += (fabs(inputSampleL) * bezRez);
|
||||
bezComp[bez_SampR][x] += (fabs(inputSampleR) * bezRez);
|
||||
if (bezComp[bez_cycle][x] > 1.0) {
|
||||
bezComp[bez_cycle][x] = 0.0;
|
||||
bezComp[bez_CL][x] = bezComp[bez_BL][x];
|
||||
bezComp[bez_BL][x] = bezComp[bez_AL][x];
|
||||
bezComp[bez_AL][x] = bezComp[bez_SampL][x];
|
||||
bezComp[bez_SampL][x] = 0.0;
|
||||
bezComp[bez_CR][x] = bezComp[bez_BR][x];
|
||||
bezComp[bez_BR][x] = bezComp[bez_AR][x];
|
||||
bezComp[bez_AR][x] = bezComp[bez_SampR][x];
|
||||
bezComp[bez_SampR][x] = 0.0;
|
||||
}
|
||||
muCompL = fmax(fmin(muCompL,1.0),threshold);
|
||||
inputSampleL *= (muCompL*muCompL);
|
||||
muSpdL = fmax(fmin(((muSpdL*(muSpdL-1.0))+(fabs(inputSampleL*adjSpd)))/muSpdL,adjSpd*2.0),adjSpd);
|
||||
double z = bezComp[bez_cycle][x]*bezFreqTrim;
|
||||
double CBL = (bezComp[bez_CL][x]*(1.0-z))+(bezComp[bez_BL][x]*z);
|
||||
double BAL = (bezComp[bez_BL][x]*(1.0-z))+(bezComp[bez_AL][x]*z);
|
||||
double CBAL = (bezComp[bez_BL][x]+(CBL*(1.0-z))+(BAL*z));
|
||||
|
||||
double CBR = (bezComp[bez_CR][x]*(1.0-z))+(bezComp[bez_BR][x]*z);
|
||||
double BAR = (bezComp[bez_BR][x]*(1.0-z))+(bezComp[bez_AR][x]*z);
|
||||
double CBAR = (bezComp[bez_BR][x]+(CBR*(1.0-z))+(BAR*z));
|
||||
|
||||
CBAL = fmin(fmax(CBAL*drive*0.23,0.0),M_PI_2);
|
||||
CBAR = fmin(fmax(CBAR*drive*0.23,0.0),M_PI_2);
|
||||
inputSampleL *= 1.0-sin(CBAL);
|
||||
inputSampleR *= 1.0-sin(CBAR);
|
||||
}
|
||||
inputSampleL = sin(fmin(fmax(inputSampleL,-M_PI_2),M_PI_2));
|
||||
inputSampleL /= drive;
|
||||
inputSampleR /= drive;
|
||||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSampleR; inputSampleR = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angAR[x][y] = (angAR[x][y]*(1.0-fr)) + ((band-angSR[x][y])*fr);
|
||||
double temp = band; band = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angSR[x][y] = ((angSR[x][y]+(angAR[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSampleR += ((temp-band)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSampleR += band;
|
||||
inputSampleR *= threshold;
|
||||
inputSampleR *= (muCompR/threshold);
|
||||
if (fabs(inputSampleR) > threshold)
|
||||
{
|
||||
muCompR *= muSpdR;
|
||||
if (threshold/fabs(inputSampleR) < threshold) muCompR += threshold*fabs(inputSampleR);
|
||||
else muCompR -= threshold/fabs(inputSampleR);
|
||||
muCompR /= muSpdR;
|
||||
} else {
|
||||
muCompR *= (muSpdR*muSpdR);
|
||||
muCompR += ((1.1+threshold)-fabs(inputSampleR));
|
||||
muCompR /= (muSpdR*muSpdR);
|
||||
}
|
||||
muCompR = fmax(fmin(muCompR,1.0),threshold);
|
||||
inputSampleR *= (muCompR*muCompR);
|
||||
muSpdR = fmax(fmin(((muSpdR*(muSpdR-1.0))+(fabs(inputSampleR*adjSpd)))/muSpdR,adjSpd*2.0),adjSpd);
|
||||
}
|
||||
inputSampleR = sin(fmin(fmax(inputSampleR,-M_PI_2),M_PI_2));
|
||||
inputSampleL = fmin(fmax(inputSampleL*pad,-1.0),1.0);
|
||||
inputSampleR = fmin(fmax(inputSampleR*pad,-1.0),1.0);
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
|
|
|
|||
211
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
211
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
|
|
@ -0,0 +1,211 @@
|
|||
/* ========================================
|
||||
* ConsoleHBuss - ConsoleHBuss.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHBuss_H
|
||||
#include "ConsoleHBuss.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ConsoleHBuss(audioMaster);}
|
||||
|
||||
ConsoleHBuss::ConsoleHBuss(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
HIG = 0.5;
|
||||
MID = 0.5;
|
||||
LOW = 0.5;
|
||||
|
||||
THR = 1.0;
|
||||
|
||||
LOP = 1.0;
|
||||
HIP = 0.0;
|
||||
PAN = 0.5;
|
||||
FAD = 0.5;
|
||||
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
highFastRIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
lowFastRIIR = 0.0;
|
||||
//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;
|
||||
bezCompS[bez_cycle] = 1.0;
|
||||
//Dynamics2
|
||||
|
||||
for (int x = 0; x < hilp_total; x++) {
|
||||
highpass[x] = 0.0;
|
||||
lowpass[x] = 0.0;
|
||||
}
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; avg32R[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; avg16R[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; avg8R[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; avg4R[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; avg2R[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0; lastSlewR = 0.0;
|
||||
lastSlewpleL = 0.0; lastSlewpleR = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
panA = 0.5; panB = 0.5;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
ConsoleHBuss::~ConsoleHBuss() {}
|
||||
VstInt32 ConsoleHBuss::getVendorVersion () {return 1000;}
|
||||
void ConsoleHBuss::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void ConsoleHBuss::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHBuss::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = HIG;
|
||||
chunkData[1] = MID;
|
||||
chunkData[2] = LOW;
|
||||
chunkData[3] = THR;
|
||||
chunkData[4] = LOP;
|
||||
chunkData[5] = HIP;
|
||||
chunkData[6] = PAN;
|
||||
chunkData[7] = FAD;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHBuss::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
HIG = pinParameter(chunkData[0]);
|
||||
MID = pinParameter(chunkData[1]);
|
||||
LOW = pinParameter(chunkData[2]);
|
||||
THR = pinParameter(chunkData[3]);
|
||||
LOP = pinParameter(chunkData[4]);
|
||||
HIP = pinParameter(chunkData[5]);
|
||||
PAN = pinParameter(chunkData[6]);
|
||||
FAD = pinParameter(chunkData[7]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ConsoleHBuss::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParam_HIG: HIG = value; break;
|
||||
case kParam_MID: MID = value; break;
|
||||
case kParam_LOW: LOW = value; break;
|
||||
case kParam_THR: THR = value; break;
|
||||
case kParam_LOP: LOP = value; break;
|
||||
case kParam_HIP: HIP = value; break;
|
||||
case kParam_PAN: PAN = value; break;
|
||||
case kParam_FAD: FAD = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float ConsoleHBuss::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParam_HIG: return HIG; break;
|
||||
case kParam_MID: return MID; break;
|
||||
case kParam_LOW: return LOW; break;
|
||||
case kParam_THR: return THR; break;
|
||||
case kParam_LOP: return LOP; break;
|
||||
case kParam_HIP: return HIP; break;
|
||||
case kParam_PAN: return PAN; break;
|
||||
case kParam_FAD: return FAD; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void ConsoleHBuss::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_HIG: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void ConsoleHBuss::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_HIG: float2string (HIG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_MID: float2string (MID, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: float2string (LOW, text, kVstMaxParamStrLen); break;
|
||||
case kParam_THR: float2string (THR, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: float2string (LOP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: float2string (HIP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: float2string (PAN, text, kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: float2string (FAD, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void ConsoleHBuss::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_HIG: vst_strncpy (text, "eq", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHBuss::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool ConsoleHBuss::getEffectName(char* name) {
|
||||
vst_strncpy(name, "ConsoleHBuss", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory ConsoleHBuss::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool ConsoleHBuss::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows ConsoleHBuss", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool ConsoleHBuss::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
158
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBuss.h
Executable file
158
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBuss.h
Executable file
|
|
@ -0,0 +1,158 @@
|
|||
/* ========================================
|
||||
* ConsoleHBuss - ConsoleHBuss.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHBuss_H
|
||||
#define __ConsoleHBuss_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParam_HIG =0,
|
||||
kParam_MID =1,
|
||||
kParam_LOW =2,
|
||||
|
||||
kParam_THR =3,
|
||||
|
||||
kParam_LOP =4,
|
||||
kParam_HIP =5,
|
||||
|
||||
kParam_PAN =6,
|
||||
kParam_FAD =7,
|
||||
//Add your parameters here...
|
||||
kNumParameters=8
|
||||
};
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'chpb'; //Change this to what the AU identity is!
|
||||
|
||||
class ConsoleHBuss :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
ConsoleHBuss(audioMasterCallback audioMaster);
|
||||
~ConsoleHBuss();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float HIG;
|
||||
float MID;
|
||||
float LOW;
|
||||
float THR;
|
||||
float LOP;
|
||||
float HIP;
|
||||
float PAN;
|
||||
float FAD;
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
//Dynamics2
|
||||
|
||||
enum {
|
||||
hilp_freq, hilp_temp,
|
||||
hilp_a0, hilp_aA0, hilp_aB0, hilp_a1, hilp_aA1, hilp_aB1, hilp_b1, hilp_bA1, hilp_bB1, hilp_b2, hilp_bA2, hilp_bB2,
|
||||
hilp_c0, hilp_cA0, hilp_cB0, hilp_c1, hilp_cA1, hilp_cB1, hilp_d1, hilp_dA1, hilp_dB1, hilp_d2, hilp_dA2, hilp_dB2,
|
||||
hilp_e0, hilp_eA0, hilp_eB0, hilp_e1, hilp_eA1, hilp_eB1, hilp_f1, hilp_fA1, hilp_fB1, hilp_f2, hilp_fA2, hilp_fB2,
|
||||
hilp_aL1, hilp_aL2, hilp_aR1, hilp_aR2,
|
||||
hilp_cL1, hilp_cL2, hilp_cR1, hilp_cR2,
|
||||
hilp_eL1, hilp_eL2, hilp_eR1, hilp_eR2,
|
||||
hilp_total
|
||||
};
|
||||
double highpass[hilp_total];
|
||||
double lowpass[hilp_total];
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
926
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBussProc.cpp
Executable file
926
plugins/LinuxVST/src/ConsoleHBuss/ConsoleHBussProc.cpp
Executable file
|
|
@ -0,0 +1,926 @@
|
|||
/* ========================================
|
||||
* ConsoleHBuss - ConsoleHBuss.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHBuss_H
|
||||
#include "ConsoleHBuss.h"
|
||||
#endif
|
||||
|
||||
void ConsoleHBuss::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float* in1 = inputs[0];
|
||||
float* in2 = inputs[1];
|
||||
float* out1 = outputs[0];
|
||||
float* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double trebleGain = (HIG-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (MID-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
double bassGain = (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
|
||||
|
||||
//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
|
||||
//SmoothEQ3
|
||||
|
||||
double bezCThresh = pow(1.0-THR, 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-THR, 12.360679774997898) / overallscale;
|
||||
double sloRez = pow(1.0-THR,10.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez,0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.00001),1.0);
|
||||
//Dynamics2
|
||||
|
||||
highpass[hilp_freq] = ((pow(HIP,3)*24000.0)+10.0)/getSampleRate();
|
||||
if (highpass[hilp_freq] > 0.495) highpass[hilp_freq] = 0.495;
|
||||
bool highpassEngage = true; if (HIP == 0.0) highpassEngage = false;
|
||||
|
||||
lowpass[hilp_freq] = ((pow(LOP,3)*24000.0)+10.0)/getSampleRate();
|
||||
if (lowpass[hilp_freq] > 0.495) lowpass[hilp_freq] = 0.495;
|
||||
bool lowpassEngage = true; if (LOP == 0.0) lowpassEngage = false;
|
||||
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
//previous run through the buffer is still in the filter, so we move it
|
||||
//to the A section and now it's the new starting point.
|
||||
//On the buss, highpass and lowpass are isolators meant to be moved,
|
||||
//so they are interpolated where the channels are not
|
||||
|
||||
biqK = tan(M_PI * highpass[hilp_freq]); //highpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
highpass[hilp_aB0] = norm;
|
||||
highpass[hilp_aB1] = -2.0 * highpass[hilp_aB0];
|
||||
highpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
highpass[hilp_cB0] = norm;
|
||||
highpass[hilp_cB1] = -2.0 * highpass[hilp_cB0];
|
||||
highpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
highpass[hilp_eB0] = norm;
|
||||
highpass[hilp_eB1] = -2.0 * highpass[hilp_eB0];
|
||||
highpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowpass[hilp_freq]); //lowpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
lowpass[hilp_aB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_aB1] = 2.0 * lowpass[hilp_aB0];
|
||||
lowpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
lowpass[hilp_cB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_cB1] = 2.0 * lowpass[hilp_cB0];
|
||||
lowpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
lowpass[hilp_eB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_eB1] = 2.0 * lowpass[hilp_eB0];
|
||||
lowpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
if (highpass[hilp_aA0] == 0.0) { // if we have just started, start directly with raw info
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
}
|
||||
|
||||
panA = panB; panB = PAN*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = FAD*2.0;
|
||||
//Console
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
const double temp = (double)sampleFrames/inFramesToProcess;
|
||||
highpass[hilp_a0] = (highpass[hilp_aA0]*temp)+(highpass[hilp_aB0]*(1.0-temp));
|
||||
highpass[hilp_a1] = (highpass[hilp_aA1]*temp)+(highpass[hilp_aB1]*(1.0-temp));
|
||||
highpass[hilp_b1] = (highpass[hilp_bA1]*temp)+(highpass[hilp_bB1]*(1.0-temp));
|
||||
highpass[hilp_b2] = (highpass[hilp_bA2]*temp)+(highpass[hilp_bB2]*(1.0-temp));
|
||||
highpass[hilp_c0] = (highpass[hilp_cA0]*temp)+(highpass[hilp_cB0]*(1.0-temp));
|
||||
highpass[hilp_c1] = (highpass[hilp_cA1]*temp)+(highpass[hilp_cB1]*(1.0-temp));
|
||||
highpass[hilp_d1] = (highpass[hilp_dA1]*temp)+(highpass[hilp_dB1]*(1.0-temp));
|
||||
highpass[hilp_d2] = (highpass[hilp_dA2]*temp)+(highpass[hilp_dB2]*(1.0-temp));
|
||||
highpass[hilp_e0] = (highpass[hilp_eA0]*temp)+(highpass[hilp_eB0]*(1.0-temp));
|
||||
highpass[hilp_e1] = (highpass[hilp_eA1]*temp)+(highpass[hilp_eB1]*(1.0-temp));
|
||||
highpass[hilp_f1] = (highpass[hilp_fA1]*temp)+(highpass[hilp_fB1]*(1.0-temp));
|
||||
highpass[hilp_f2] = (highpass[hilp_fA2]*temp)+(highpass[hilp_fB2]*(1.0-temp));
|
||||
lowpass[hilp_a0] = (lowpass[hilp_aA0]*temp)+(lowpass[hilp_aB0]*(1.0-temp));
|
||||
lowpass[hilp_a1] = (lowpass[hilp_aA1]*temp)+(lowpass[hilp_aB1]*(1.0-temp));
|
||||
lowpass[hilp_b1] = (lowpass[hilp_bA1]*temp)+(lowpass[hilp_bB1]*(1.0-temp));
|
||||
lowpass[hilp_b2] = (lowpass[hilp_bA2]*temp)+(lowpass[hilp_bB2]*(1.0-temp));
|
||||
lowpass[hilp_c0] = (lowpass[hilp_cA0]*temp)+(lowpass[hilp_cB0]*(1.0-temp));
|
||||
lowpass[hilp_c1] = (lowpass[hilp_cA1]*temp)+(lowpass[hilp_cB1]*(1.0-temp));
|
||||
lowpass[hilp_d1] = (lowpass[hilp_dA1]*temp)+(lowpass[hilp_dB1]*(1.0-temp));
|
||||
lowpass[hilp_d2] = (lowpass[hilp_dA2]*temp)+(lowpass[hilp_dB2]*(1.0-temp));
|
||||
lowpass[hilp_e0] = (lowpass[hilp_eA0]*temp)+(lowpass[hilp_eB0]*(1.0-temp));
|
||||
lowpass[hilp_e1] = (lowpass[hilp_eA1]*temp)+(lowpass[hilp_eB1]*(1.0-temp));
|
||||
lowpass[hilp_f1] = (lowpass[hilp_fA1]*temp)+(lowpass[hilp_fB1]*(1.0-temp));
|
||||
lowpass[hilp_f2] = (lowpass[hilp_fA2]*temp)+(lowpass[hilp_fB2]*(1.0-temp));
|
||||
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_a0])+highpass[hilp_aL1];
|
||||
highpass[hilp_aL1] = (inputSampleL*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aL2];
|
||||
highpass[hilp_aL2] = (inputSampleL*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_a0])+highpass[hilp_aR1];
|
||||
highpass[hilp_aR1] = (inputSampleR*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aR2];
|
||||
highpass[hilp_aR2] = (inputSampleR*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_aR1] = highpass[hilp_aR2] = highpass[hilp_aL1] = highpass[hilp_aL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_a0])+lowpass[hilp_aL1];
|
||||
lowpass[hilp_aL1] = (inputSampleL*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aL2];
|
||||
lowpass[hilp_aL2] = (inputSampleL*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_a0])+lowpass[hilp_aR1];
|
||||
lowpass[hilp_aR1] = (inputSampleR*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aR2];
|
||||
lowpass[hilp_aR2] = (inputSampleR*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_aR1] = lowpass[hilp_aR2] = lowpass[hilp_aL1] = lowpass[hilp_aL2] = 0.0;
|
||||
//first Highpass/Lowpass blocks aliasing before the nonlinearity of ConsoleXBuss and Parametric
|
||||
|
||||
if (inputSampleL > 1.0) inputSampleL = 1.0;
|
||||
else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 0.6180339887498949));
|
||||
if (inputSampleL < -1.0) inputSampleL = -1.0;
|
||||
else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 0.6180339887498949));
|
||||
|
||||
if (inputSampleR > 1.0) inputSampleR = 1.0;
|
||||
else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 0.6180339887498949));
|
||||
if (inputSampleR < -1.0) inputSampleR = -1.0;
|
||||
else if (inputSampleR < 0.0) inputSampleR = expm1((log1p(inputSampleR) * 0.6180339887498949));
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_c0])+highpass[hilp_cL1];
|
||||
highpass[hilp_cL1] = (inputSampleL*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cL2];
|
||||
highpass[hilp_cL2] = (inputSampleL*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_c0])+highpass[hilp_cR1];
|
||||
highpass[hilp_cR1] = (inputSampleR*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cR2];
|
||||
highpass[hilp_cR2] = (inputSampleR*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_cR1] = highpass[hilp_cR2] = highpass[hilp_cL1] = highpass[hilp_cL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_c0])+lowpass[hilp_cL1];
|
||||
lowpass[hilp_cL1] = (inputSampleL*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cL2];
|
||||
lowpass[hilp_cL2] = (inputSampleL*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_c0])+lowpass[hilp_cR1];
|
||||
lowpass[hilp_cR1] = (inputSampleR*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cR2];
|
||||
lowpass[hilp_cR2] = (inputSampleR*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleR = lowpass[hilp_temp];
|
||||
} 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
|
||||
//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
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_e0])+highpass[hilp_eL1];
|
||||
highpass[hilp_eL1] = (inputSampleL*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eL2];
|
||||
highpass[hilp_eL2] = (inputSampleL*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_e0])+highpass[hilp_eR1];
|
||||
highpass[hilp_eR1] = (inputSampleR*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eR2];
|
||||
highpass[hilp_eR2] = (inputSampleR*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_eR1] = highpass[hilp_eR2] = highpass[hilp_eL1] = highpass[hilp_eL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_e0])+lowpass[hilp_eL1];
|
||||
lowpass[hilp_eL1] = (inputSampleL*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eL2];
|
||||
lowpass[hilp_eL2] = (inputSampleL*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_e0])+lowpass[hilp_eR1];
|
||||
lowpass[hilp_eR1] = (inputSampleR*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eR2];
|
||||
lowpass[hilp_eR2] = (inputSampleR*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_eR1] = lowpass[hilp_eR2] = lowpass[hilp_eL1] = lowpass[hilp_eL2] = 0.0;
|
||||
//final Highpass/Lowpass continues to address aliasing
|
||||
//final stacked biquad section is the softest Q for smoothness
|
||||
|
||||
double gainR = (panA*temp)+(panB*(1.0-temp));
|
||||
double gainL = 1.57079633-gainR;
|
||||
gainR = sin(gainR); gainL = sin(gainL);
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 2.0;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
//applies pan section, and smoothed fader gain
|
||||
|
||||
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 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
|
||||
|
||||
//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
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
|
||||
void ConsoleHBuss::processDoubleReplacing(double **inputs, double **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
double* in1 = inputs[0];
|
||||
double* in2 = inputs[1];
|
||||
double* out1 = outputs[0];
|
||||
double* out2 = outputs[1];
|
||||
|
||||
VstInt32 inFramesToProcess = sampleFrames; //vst doesn't give us this as a separate variable so we'll make it
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= getSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double trebleGain = (HIG-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (MID-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
double bassGain = (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
|
||||
|
||||
//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
|
||||
//SmoothEQ3
|
||||
|
||||
double bezCThresh = pow(1.0-THR, 6.0) * 8.0;
|
||||
double bezRez = pow(1.0-THR, 12.360679774997898) / overallscale;
|
||||
double sloRez = pow(1.0-THR,10.0) / overallscale;
|
||||
sloRez = fmin(fmax(sloRez,0.00001),1.0);
|
||||
bezRez = fmin(fmax(bezRez,0.00001),1.0);
|
||||
//Dynamics2
|
||||
|
||||
highpass[hilp_freq] = ((pow(HIP,3)*24000.0)+10.0)/getSampleRate();
|
||||
if (highpass[hilp_freq] > 0.495) highpass[hilp_freq] = 0.495;
|
||||
bool highpassEngage = true; if (HIP == 0.0) highpassEngage = false;
|
||||
|
||||
lowpass[hilp_freq] = ((pow(LOP,3)*24000.0)+10.0)/getSampleRate();
|
||||
if (lowpass[hilp_freq] > 0.495) lowpass[hilp_freq] = 0.495;
|
||||
bool lowpassEngage = true; if (LOP == 0.0) lowpassEngage = false;
|
||||
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
//previous run through the buffer is still in the filter, so we move it
|
||||
//to the A section and now it's the new starting point.
|
||||
//On the buss, highpass and lowpass are isolators meant to be moved,
|
||||
//so they are interpolated where the channels are not
|
||||
|
||||
biqK = tan(M_PI * highpass[hilp_freq]); //highpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
highpass[hilp_aB0] = norm;
|
||||
highpass[hilp_aB1] = -2.0 * highpass[hilp_aB0];
|
||||
highpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
highpass[hilp_cB0] = norm;
|
||||
highpass[hilp_cB1] = -2.0 * highpass[hilp_cB0];
|
||||
highpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
highpass[hilp_eB0] = norm;
|
||||
highpass[hilp_eB1] = -2.0 * highpass[hilp_eB0];
|
||||
highpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowpass[hilp_freq]); //lowpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
lowpass[hilp_aB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_aB1] = 2.0 * lowpass[hilp_aB0];
|
||||
lowpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
lowpass[hilp_cB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_cB1] = 2.0 * lowpass[hilp_cB0];
|
||||
lowpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
lowpass[hilp_eB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_eB1] = 2.0 * lowpass[hilp_eB0];
|
||||
lowpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
if (highpass[hilp_aA0] == 0.0) { // if we have just started, start directly with raw info
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
}
|
||||
|
||||
panA = panB; panB = PAN*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = FAD*2.0;
|
||||
//Console
|
||||
|
||||
while (--sampleFrames >= 0)
|
||||
{
|
||||
double inputSampleL = *in1;
|
||||
double inputSampleR = *in2;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpdL * 1.18e-17;
|
||||
if (fabs(inputSampleR)<1.18e-23) inputSampleR = fpdR * 1.18e-17;
|
||||
|
||||
const double temp = (double)sampleFrames/inFramesToProcess;
|
||||
highpass[hilp_a0] = (highpass[hilp_aA0]*temp)+(highpass[hilp_aB0]*(1.0-temp));
|
||||
highpass[hilp_a1] = (highpass[hilp_aA1]*temp)+(highpass[hilp_aB1]*(1.0-temp));
|
||||
highpass[hilp_b1] = (highpass[hilp_bA1]*temp)+(highpass[hilp_bB1]*(1.0-temp));
|
||||
highpass[hilp_b2] = (highpass[hilp_bA2]*temp)+(highpass[hilp_bB2]*(1.0-temp));
|
||||
highpass[hilp_c0] = (highpass[hilp_cA0]*temp)+(highpass[hilp_cB0]*(1.0-temp));
|
||||
highpass[hilp_c1] = (highpass[hilp_cA1]*temp)+(highpass[hilp_cB1]*(1.0-temp));
|
||||
highpass[hilp_d1] = (highpass[hilp_dA1]*temp)+(highpass[hilp_dB1]*(1.0-temp));
|
||||
highpass[hilp_d2] = (highpass[hilp_dA2]*temp)+(highpass[hilp_dB2]*(1.0-temp));
|
||||
highpass[hilp_e0] = (highpass[hilp_eA0]*temp)+(highpass[hilp_eB0]*(1.0-temp));
|
||||
highpass[hilp_e1] = (highpass[hilp_eA1]*temp)+(highpass[hilp_eB1]*(1.0-temp));
|
||||
highpass[hilp_f1] = (highpass[hilp_fA1]*temp)+(highpass[hilp_fB1]*(1.0-temp));
|
||||
highpass[hilp_f2] = (highpass[hilp_fA2]*temp)+(highpass[hilp_fB2]*(1.0-temp));
|
||||
lowpass[hilp_a0] = (lowpass[hilp_aA0]*temp)+(lowpass[hilp_aB0]*(1.0-temp));
|
||||
lowpass[hilp_a1] = (lowpass[hilp_aA1]*temp)+(lowpass[hilp_aB1]*(1.0-temp));
|
||||
lowpass[hilp_b1] = (lowpass[hilp_bA1]*temp)+(lowpass[hilp_bB1]*(1.0-temp));
|
||||
lowpass[hilp_b2] = (lowpass[hilp_bA2]*temp)+(lowpass[hilp_bB2]*(1.0-temp));
|
||||
lowpass[hilp_c0] = (lowpass[hilp_cA0]*temp)+(lowpass[hilp_cB0]*(1.0-temp));
|
||||
lowpass[hilp_c1] = (lowpass[hilp_cA1]*temp)+(lowpass[hilp_cB1]*(1.0-temp));
|
||||
lowpass[hilp_d1] = (lowpass[hilp_dA1]*temp)+(lowpass[hilp_dB1]*(1.0-temp));
|
||||
lowpass[hilp_d2] = (lowpass[hilp_dA2]*temp)+(lowpass[hilp_dB2]*(1.0-temp));
|
||||
lowpass[hilp_e0] = (lowpass[hilp_eA0]*temp)+(lowpass[hilp_eB0]*(1.0-temp));
|
||||
lowpass[hilp_e1] = (lowpass[hilp_eA1]*temp)+(lowpass[hilp_eB1]*(1.0-temp));
|
||||
lowpass[hilp_f1] = (lowpass[hilp_fA1]*temp)+(lowpass[hilp_fB1]*(1.0-temp));
|
||||
lowpass[hilp_f2] = (lowpass[hilp_fA2]*temp)+(lowpass[hilp_fB2]*(1.0-temp));
|
||||
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_a0])+highpass[hilp_aL1];
|
||||
highpass[hilp_aL1] = (inputSampleL*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aL2];
|
||||
highpass[hilp_aL2] = (inputSampleL*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_a0])+highpass[hilp_aR1];
|
||||
highpass[hilp_aR1] = (inputSampleR*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aR2];
|
||||
highpass[hilp_aR2] = (inputSampleR*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_aR1] = highpass[hilp_aR2] = highpass[hilp_aL1] = highpass[hilp_aL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_a0])+lowpass[hilp_aL1];
|
||||
lowpass[hilp_aL1] = (inputSampleL*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aL2];
|
||||
lowpass[hilp_aL2] = (inputSampleL*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_a0])+lowpass[hilp_aR1];
|
||||
lowpass[hilp_aR1] = (inputSampleR*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aR2];
|
||||
lowpass[hilp_aR2] = (inputSampleR*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_aR1] = lowpass[hilp_aR2] = lowpass[hilp_aL1] = lowpass[hilp_aL2] = 0.0;
|
||||
//first Highpass/Lowpass blocks aliasing before the nonlinearity of ConsoleXBuss and Parametric
|
||||
|
||||
if (inputSampleL > 1.0) inputSampleL = 1.0;
|
||||
else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 0.6180339887498949));
|
||||
if (inputSampleL < -1.0) inputSampleL = -1.0;
|
||||
else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 0.6180339887498949));
|
||||
|
||||
if (inputSampleR > 1.0) inputSampleR = 1.0;
|
||||
else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 0.6180339887498949));
|
||||
if (inputSampleR < -1.0) inputSampleR = -1.0;
|
||||
else if (inputSampleR < 0.0) inputSampleR = expm1((log1p(inputSampleR) * 0.6180339887498949));
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_c0])+highpass[hilp_cL1];
|
||||
highpass[hilp_cL1] = (inputSampleL*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cL2];
|
||||
highpass[hilp_cL2] = (inputSampleL*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_c0])+highpass[hilp_cR1];
|
||||
highpass[hilp_cR1] = (inputSampleR*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cR2];
|
||||
highpass[hilp_cR2] = (inputSampleR*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_cR1] = highpass[hilp_cR2] = highpass[hilp_cL1] = highpass[hilp_cL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_c0])+lowpass[hilp_cL1];
|
||||
lowpass[hilp_cL1] = (inputSampleL*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cL2];
|
||||
lowpass[hilp_cL2] = (inputSampleL*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_c0])+lowpass[hilp_cR1];
|
||||
lowpass[hilp_cR1] = (inputSampleR*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cR2];
|
||||
lowpass[hilp_cR2] = (inputSampleR*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleR = lowpass[hilp_temp];
|
||||
} 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
|
||||
//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
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_e0])+highpass[hilp_eL1];
|
||||
highpass[hilp_eL1] = (inputSampleL*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eL2];
|
||||
highpass[hilp_eL2] = (inputSampleL*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_e0])+highpass[hilp_eR1];
|
||||
highpass[hilp_eR1] = (inputSampleR*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eR2];
|
||||
highpass[hilp_eR2] = (inputSampleR*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_eR1] = highpass[hilp_eR2] = highpass[hilp_eL1] = highpass[hilp_eL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_e0])+lowpass[hilp_eL1];
|
||||
lowpass[hilp_eL1] = (inputSampleL*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eL2];
|
||||
lowpass[hilp_eL2] = (inputSampleL*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_e0])+lowpass[hilp_eR1];
|
||||
lowpass[hilp_eR1] = (inputSampleR*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eR2];
|
||||
lowpass[hilp_eR2] = (inputSampleR*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_eR1] = lowpass[hilp_eR2] = lowpass[hilp_eL1] = lowpass[hilp_eL2] = 0.0;
|
||||
//final Highpass/Lowpass continues to address aliasing
|
||||
//final stacked biquad section is the softest Q for smoothness
|
||||
|
||||
double gainR = (panA*temp)+(panB*(1.0-temp));
|
||||
double gainL = 1.57079633-gainR;
|
||||
gainR = sin(gainR); gainL = sin(gainL);
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 2.0;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
//applies pan section, and smoothed fader gain
|
||||
|
||||
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 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
|
||||
|
||||
//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
|
||||
|
||||
//begin 64 bit stereo floating point dither
|
||||
//int expon; frexp((double)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
//inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//frexp((double)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
//inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 1.1e-44l * pow(2,expon+62));
|
||||
//end 64 bit stereo floating point dither
|
||||
|
||||
*out1 = inputSampleL;
|
||||
*out2 = inputSampleR;
|
||||
|
||||
in1++;
|
||||
in2++;
|
||||
out1++;
|
||||
out2++;
|
||||
}
|
||||
}
|
||||
389
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
389
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
|
|
@ -0,0 +1,389 @@
|
|||
/* ========================================
|
||||
* ConsoleHChannel - ConsoleHChannel.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHChannel_H
|
||||
#include "ConsoleHChannel.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ConsoleHChannel(audioMaster);}
|
||||
|
||||
ConsoleHChannel::ConsoleHChannel(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
TRM = 0.25;
|
||||
MOR = 0.0;
|
||||
|
||||
HIG = 0.5;
|
||||
MID = 0.5;
|
||||
LOW = 0.5;
|
||||
CRS = 0.0;
|
||||
|
||||
TRF = 0.5;
|
||||
TRG = 0.0;
|
||||
TRB = 0.5;
|
||||
HMF = 0.5;
|
||||
HMG = 0.0;
|
||||
HMB = 0.5;
|
||||
LMF = 0.5;
|
||||
LMG = 0.0;
|
||||
LMB = 0.5;
|
||||
BSF = 0.5;
|
||||
BSG = 0.0;
|
||||
BSB = 0.5;
|
||||
|
||||
THR = 1.0;
|
||||
ATK = 0.5;
|
||||
RLS = 0.5;
|
||||
GAT = 0.0;
|
||||
|
||||
LOP = 1.0;
|
||||
HIP = 0.0;
|
||||
PAN = 0.5;
|
||||
FAD = 0.5;
|
||||
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
highFastRIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
lowFastRIIR = 0.0;
|
||||
//SmoothEQ3
|
||||
|
||||
for (int x = 0; x < biqs_total; x++) {
|
||||
high[x] = 0.0;
|
||||
hmid[x] = 0.0;
|
||||
lmid[x] = 0.0;
|
||||
bass[x] = 0.0;
|
||||
}
|
||||
//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 count = 0; count < 22; count++) {
|
||||
iirHPositionL[count] = 0.0;
|
||||
iirHAngleL[count] = 0.0;
|
||||
iirHPositionR[count] = 0.0;
|
||||
iirHAngleR[count] = 0.0;
|
||||
}
|
||||
hBypass = false;
|
||||
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPositionL[count] = 0.0;
|
||||
iirLAngleL[count] = 0.0;
|
||||
iirLPositionR[count] = 0.0;
|
||||
iirLAngleR[count] = 0.0;
|
||||
}
|
||||
lBypass = false;
|
||||
//Cabs2
|
||||
|
||||
for(int count = 0; count < dscBuf+2; count++) {
|
||||
dBaL[count] = 0.0;
|
||||
dBaR[count] = 0.0;
|
||||
}
|
||||
dBaPosL = 0.0;
|
||||
dBaPosR = 0.0;
|
||||
dBaXL = 1;
|
||||
dBaXR = 1;
|
||||
//Discontapeity
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; avg32R[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; avg16R[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; avg8R[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; avg4R[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; avg2R[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0; lastSlewR = 0.0;
|
||||
lastSlewpleL = 0.0; lastSlewpleR = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
lFreqA = 1.0; lFreqB = 1.0;
|
||||
hFreqA = 0.0; hFreqB = 0.0;
|
||||
panA = 0.5; panB = 0.5;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
ConsoleHChannel::~ConsoleHChannel() {}
|
||||
VstInt32 ConsoleHChannel::getVendorVersion () {return 1000;}
|
||||
void ConsoleHChannel::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void ConsoleHChannel::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHChannel::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = TRM;
|
||||
chunkData[1] = MOR;
|
||||
chunkData[2] = HIG;
|
||||
chunkData[3] = MID;
|
||||
chunkData[4] = LOW;
|
||||
chunkData[5] = CRS;
|
||||
chunkData[6] = TRF;
|
||||
chunkData[7] = TRG;
|
||||
chunkData[8] = TRB;
|
||||
chunkData[9] = HMF;
|
||||
chunkData[10] = HMG;
|
||||
chunkData[11] = HMB;
|
||||
chunkData[12] = LMF;
|
||||
chunkData[13] = LMG;
|
||||
chunkData[14] = LMB;
|
||||
chunkData[15] = BSF;
|
||||
chunkData[16] = BSG;
|
||||
chunkData[17] = BSB;
|
||||
chunkData[18] = THR;
|
||||
chunkData[19] = ATK;
|
||||
chunkData[20] = RLS;
|
||||
chunkData[21] = GAT;
|
||||
chunkData[22] = LOP;
|
||||
chunkData[23] = HIP;
|
||||
chunkData[24] = PAN;
|
||||
chunkData[25] = FAD;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHChannel::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
TRM = pinParameter(chunkData[0]);
|
||||
MOR = pinParameter(chunkData[1]);
|
||||
HIG = pinParameter(chunkData[2]);
|
||||
MID = pinParameter(chunkData[3]);
|
||||
LOW = pinParameter(chunkData[4]);
|
||||
CRS = pinParameter(chunkData[5]);
|
||||
TRF = pinParameter(chunkData[6]);
|
||||
TRG = pinParameter(chunkData[7]);
|
||||
TRB = pinParameter(chunkData[8]);
|
||||
HMF = pinParameter(chunkData[9]);
|
||||
HMG = pinParameter(chunkData[10]);
|
||||
HMB = pinParameter(chunkData[11]);
|
||||
LMF = pinParameter(chunkData[12]);
|
||||
LMG = pinParameter(chunkData[13]);
|
||||
LMB = pinParameter(chunkData[14]);
|
||||
BSF = pinParameter(chunkData[15]);
|
||||
BSG = pinParameter(chunkData[16]);
|
||||
BSB = pinParameter(chunkData[17]);
|
||||
THR = pinParameter(chunkData[18]);
|
||||
ATK = pinParameter(chunkData[19]);
|
||||
RLS = pinParameter(chunkData[20]);
|
||||
GAT = pinParameter(chunkData[21]);
|
||||
LOP = pinParameter(chunkData[22]);
|
||||
HIP = pinParameter(chunkData[23]);
|
||||
PAN = pinParameter(chunkData[24]);
|
||||
FAD = pinParameter(chunkData[25]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ConsoleHChannel::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParam_TRM: TRM = value; break;
|
||||
case kParam_MOR: MOR = value; break;
|
||||
case kParam_HIG: HIG = value; break;
|
||||
case kParam_MID: MID = value; break;
|
||||
case kParam_LOW: LOW = value; break;
|
||||
case kParam_CRS: CRS = value; break;
|
||||
case kParam_TRF: TRF = value; break;
|
||||
case kParam_TRG: TRG = value; break;
|
||||
case kParam_TRB: TRB = value; break;
|
||||
case kParam_HMF: HMF = value; break;
|
||||
case kParam_HMG: HMG = value; break;
|
||||
case kParam_HMB: HMB = value; break;
|
||||
case kParam_LMF: LMF = value; break;
|
||||
case kParam_LMG: LMG = value; break;
|
||||
case kParam_LMB: LMB = value; break;
|
||||
case kParam_BSF: BSF = value; break;
|
||||
case kParam_BSG: BSG = value; break;
|
||||
case kParam_BSB: BSB = value; break;
|
||||
case kParam_THR: THR = value; break;
|
||||
case kParam_ATK: ATK = value; break;
|
||||
case kParam_RLS: RLS = value; break;
|
||||
case kParam_GAT: GAT = value; break;
|
||||
case kParam_LOP: LOP = value; break;
|
||||
case kParam_HIP: HIP = value; break;
|
||||
case kParam_PAN: PAN = value; break;
|
||||
case kParam_FAD: FAD = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float ConsoleHChannel::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParam_TRM: return TRM; break;
|
||||
case kParam_MOR: return MOR; break;
|
||||
case kParam_HIG: return HIG; break;
|
||||
case kParam_MID: return MID; break;
|
||||
case kParam_LOW: return LOW; break;
|
||||
case kParam_CRS: return CRS; break;
|
||||
case kParam_TRF: return TRF; break;
|
||||
case kParam_TRG: return TRG; break;
|
||||
case kParam_TRB: return TRB; break;
|
||||
case kParam_HMF: return HMF; break;
|
||||
case kParam_HMG: return HMG; break;
|
||||
case kParam_HMB: return HMB; break;
|
||||
case kParam_LMF: return LMF; break;
|
||||
case kParam_LMG: return LMG; break;
|
||||
case kParam_LMB: return LMB; break;
|
||||
case kParam_BSF: return BSF; break;
|
||||
case kParam_BSG: return BSG; break;
|
||||
case kParam_BSB: return BSB; break;
|
||||
case kParam_THR: return THR; break;
|
||||
case kParam_ATK: return ATK; break;
|
||||
case kParam_RLS: return RLS; break;
|
||||
case kParam_GAT: return GAT; break;
|
||||
case kParam_LOP: return LOP; break;
|
||||
case kParam_HIP: return HIP; break;
|
||||
case kParam_PAN: return PAN; break;
|
||||
case kParam_FAD: return FAD; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void ConsoleHChannel::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: vst_strncpy (text, "More", kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: vst_strncpy (text, "CrossFd", kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: vst_strncpy (text, "Tr Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: vst_strncpy (text, "Treble", kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: vst_strncpy (text, "TrCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: vst_strncpy (text, "HM Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: vst_strncpy (text, "HighMid", kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: vst_strncpy (text, "HMCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: vst_strncpy (text, "LM Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: vst_strncpy (text, "LowMid", kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: vst_strncpy (text, "LMCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: vst_strncpy (text, "Bs Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: vst_strncpy (text, "BsCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: vst_strncpy (text, "Release", kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: vst_strncpy (text, "Pan", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void ConsoleHChannel::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: int2string ((int)(TRM*4.0), text, kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: float2string (MOR, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: float2string (HIG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_MID: float2string (MID, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: float2string (LOW, text, kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: float2string (CRS, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: float2string (TRF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: float2string (TRG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: float2string (TRB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: float2string (HMF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: float2string (HMG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: float2string (HMB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: float2string (LMF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: float2string (LMG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: float2string (LMB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: float2string (BSF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: float2string (BSG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: float2string (BSB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_THR: float2string (THR, text, kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: float2string (ATK, text, kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: float2string (RLS, text, kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: float2string (GAT, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: float2string (LOP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: float2string (HIP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: float2string (PAN, text, kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: float2string (FAD, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void ConsoleHChannel::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: vst_strncpy (text, "eq", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: vst_strncpy (text, "crush", kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_PAN: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHChannel::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool ConsoleHChannel::getEffectName(char* name) {
|
||||
vst_strncpy(name, "ConsoleHChannel", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory ConsoleHChannel::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool ConsoleHChannel::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows ConsoleHChannel", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool ConsoleHChannel::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
220
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannel.h
Executable file
220
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannel.h
Executable file
|
|
@ -0,0 +1,220 @@
|
|||
/* ========================================
|
||||
* ConsoleHChannel - ConsoleHChannel.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHChannel_H
|
||||
#define __ConsoleHChannel_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParam_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_PAN =24,
|
||||
kParam_FAD =25,
|
||||
//Add your parameters here...
|
||||
kNumParameters=26
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'chpc'; //Change this to what the AU identity is!
|
||||
|
||||
class ConsoleHChannel :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
ConsoleHChannel(audioMasterCallback audioMaster);
|
||||
~ConsoleHChannel();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float TRM;
|
||||
float MOR;
|
||||
float HIG;
|
||||
float MID;
|
||||
float LOW;
|
||||
float CRS;
|
||||
float TRF;
|
||||
float TRG;
|
||||
float TRB;
|
||||
float HMF;
|
||||
float HMG;
|
||||
float HMB;
|
||||
float LMF;
|
||||
float LMG;
|
||||
float LMB;
|
||||
float BSF;
|
||||
float BSG;
|
||||
float BSB;
|
||||
float THR;
|
||||
float ATK;
|
||||
float RLS;
|
||||
float GAT;
|
||||
float LOP;
|
||||
float HIP;
|
||||
float PAN;
|
||||
float FAD;
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
|
||||
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
|
||||
biqs_outL, biqs_outR, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
double iirHPositionR[23];
|
||||
double iirHAngleR[23];
|
||||
bool hBypass;
|
||||
double iirLPositionL[15];
|
||||
double iirLAngleL[15];
|
||||
double iirLPositionR[15];
|
||||
double iirLAngleR[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
double dBaR[dscBuf+5];
|
||||
double dBaPosR;
|
||||
int dBaXR;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
1272
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannelProc.cpp
Executable file
1272
plugins/LinuxVST/src/ConsoleHChannel/ConsoleHChannelProc.cpp
Executable file
File diff suppressed because it is too large
Load diff
380
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPre.cpp
Executable file
380
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPre.cpp
Executable file
|
|
@ -0,0 +1,380 @@
|
|||
/* ========================================
|
||||
* ConsoleHPre - ConsoleHPre.h
|
||||
* Copyright (c) airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHPre_H
|
||||
#include "ConsoleHPre.h"
|
||||
#endif
|
||||
|
||||
AudioEffect* createEffectInstance(audioMasterCallback audioMaster) {return new ConsoleHPre(audioMaster);}
|
||||
|
||||
ConsoleHPre::ConsoleHPre(audioMasterCallback audioMaster) :
|
||||
AudioEffectX(audioMaster, kNumPrograms, kNumParameters)
|
||||
{
|
||||
TRM = 0.25;
|
||||
MOR = 0.0;
|
||||
|
||||
HIG = 0.5;
|
||||
MID = 0.5;
|
||||
LOW = 0.5;
|
||||
CRS = 0.0;
|
||||
|
||||
TRF = 0.5;
|
||||
TRG = 0.0;
|
||||
TRB = 0.5;
|
||||
HMF = 0.5;
|
||||
HMG = 0.0;
|
||||
HMB = 0.5;
|
||||
LMF = 0.5;
|
||||
LMG = 0.0;
|
||||
LMB = 0.5;
|
||||
BSF = 0.5;
|
||||
BSG = 0.0;
|
||||
BSB = 0.5;
|
||||
|
||||
THR = 1.0;
|
||||
ATK = 0.5;
|
||||
RLS = 0.5;
|
||||
GAT = 0.0;
|
||||
|
||||
LOP = 1.0;
|
||||
HIP = 0.0;
|
||||
FAD = 0.5;
|
||||
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
highFastRIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
lowFastRIIR = 0.0;
|
||||
//SmoothEQ3
|
||||
|
||||
for (int x = 0; x < biqs_total; x++) {
|
||||
high[x] = 0.0;
|
||||
hmid[x] = 0.0;
|
||||
lmid[x] = 0.0;
|
||||
bass[x] = 0.0;
|
||||
}
|
||||
//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; bezMaxFL = 0.0; bezMaxFR = 0.0;
|
||||
bezCompS[bez_cycle] = 1.0; bezGateL = 2.0; bezGateR = 2.0;
|
||||
//Dynamics2
|
||||
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPositionL[count] = 0.0;
|
||||
iirHAngleL[count] = 0.0;
|
||||
iirHPositionR[count] = 0.0;
|
||||
iirHAngleR[count] = 0.0;
|
||||
}
|
||||
hBypass = false;
|
||||
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPositionL[count] = 0.0;
|
||||
iirLAngleL[count] = 0.0;
|
||||
iirLPositionR[count] = 0.0;
|
||||
iirLAngleR[count] = 0.0;
|
||||
}
|
||||
lBypass = false;
|
||||
//Cabs2
|
||||
|
||||
for(int count = 0; count < dscBuf+2; count++) {
|
||||
dBaL[count] = 0.0;
|
||||
dBaR[count] = 0.0;
|
||||
}
|
||||
dBaPosL = 0.0;
|
||||
dBaPosR = 0.0;
|
||||
dBaXL = 1;
|
||||
dBaXR = 1;
|
||||
//Discontapeity
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; avg32R[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; avg16R[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; avg8R[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; avg4R[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; avg2R[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0; lastSlewR = 0.0;
|
||||
lastSlewpleL = 0.0; lastSlewpleR = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
lFreqA = 1.0; lFreqB = 1.0;
|
||||
hFreqA = 0.0; hFreqB = 0.0;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
//this is reset: values being initialized only once. Startup values, whatever they are.
|
||||
|
||||
_canDo.insert("plugAsChannelInsert"); // plug-in can be used as a channel insert effect.
|
||||
_canDo.insert("plugAsSend"); // plug-in can be used as a send effect.
|
||||
_canDo.insert("x2in2out");
|
||||
setNumInputs(kNumInputs);
|
||||
setNumOutputs(kNumOutputs);
|
||||
setUniqueID(kUniqueId);
|
||||
canProcessReplacing(); // supports output replacing
|
||||
canDoubleReplacing(); // supports double precision processing
|
||||
programsAreChunks(true);
|
||||
vst_strncpy (_programName, "Default", kVstMaxProgNameLen); // default program name
|
||||
}
|
||||
|
||||
ConsoleHPre::~ConsoleHPre() {}
|
||||
VstInt32 ConsoleHPre::getVendorVersion () {return 1000;}
|
||||
void ConsoleHPre::setProgramName(char *name) {vst_strncpy (_programName, name, kVstMaxProgNameLen);}
|
||||
void ConsoleHPre::getProgramName(char *name) {vst_strncpy (name, _programName, kVstMaxProgNameLen);}
|
||||
//airwindows likes to ignore this stuff. Make your own programs, and make a different plugin rather than
|
||||
//trying to do versioning and preventing people from using older versions. Maybe they like the old one!
|
||||
|
||||
static float pinParameter(float data)
|
||||
{
|
||||
if (data < 0.0f) return 0.0f;
|
||||
if (data > 1.0f) return 1.0f;
|
||||
return data;
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHPre::getChunk (void** data, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)calloc(kNumParameters, sizeof(float));
|
||||
chunkData[0] = TRM;
|
||||
chunkData[1] = MOR;
|
||||
chunkData[2] = HIG;
|
||||
chunkData[3] = MID;
|
||||
chunkData[4] = LOW;
|
||||
chunkData[5] = CRS;
|
||||
chunkData[6] = TRF;
|
||||
chunkData[7] = TRG;
|
||||
chunkData[8] = TRB;
|
||||
chunkData[9] = HMF;
|
||||
chunkData[10] = HMG;
|
||||
chunkData[11] = HMB;
|
||||
chunkData[12] = LMF;
|
||||
chunkData[13] = LMG;
|
||||
chunkData[14] = LMB;
|
||||
chunkData[15] = BSF;
|
||||
chunkData[16] = BSG;
|
||||
chunkData[17] = BSB;
|
||||
chunkData[18] = THR;
|
||||
chunkData[19] = ATK;
|
||||
chunkData[20] = RLS;
|
||||
chunkData[21] = GAT;
|
||||
chunkData[22] = LOP;
|
||||
chunkData[23] = HIP;
|
||||
chunkData[24] = FAD;
|
||||
/* Note: The way this is set up, it will break if you manage to save settings on an Intel
|
||||
machine and load them on a PPC Mac. However, it's fine if you stick to the machine you
|
||||
started with. */
|
||||
|
||||
*data = chunkData;
|
||||
return kNumParameters * sizeof(float);
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHPre::setChunk (void* data, VstInt32 byteSize, bool isPreset)
|
||||
{
|
||||
float *chunkData = (float *)data;
|
||||
TRM = pinParameter(chunkData[0]);
|
||||
MOR = pinParameter(chunkData[1]);
|
||||
HIG = pinParameter(chunkData[2]);
|
||||
MID = pinParameter(chunkData[3]);
|
||||
LOW = pinParameter(chunkData[4]);
|
||||
CRS = pinParameter(chunkData[5]);
|
||||
TRF = pinParameter(chunkData[6]);
|
||||
TRG = pinParameter(chunkData[7]);
|
||||
TRB = pinParameter(chunkData[8]);
|
||||
HMF = pinParameter(chunkData[9]);
|
||||
HMG = pinParameter(chunkData[10]);
|
||||
HMB = pinParameter(chunkData[11]);
|
||||
LMF = pinParameter(chunkData[12]);
|
||||
LMG = pinParameter(chunkData[13]);
|
||||
LMB = pinParameter(chunkData[14]);
|
||||
BSF = pinParameter(chunkData[15]);
|
||||
BSG = pinParameter(chunkData[16]);
|
||||
BSB = pinParameter(chunkData[17]);
|
||||
THR = pinParameter(chunkData[18]);
|
||||
ATK = pinParameter(chunkData[19]);
|
||||
RLS = pinParameter(chunkData[20]);
|
||||
GAT = pinParameter(chunkData[21]);
|
||||
LOP = pinParameter(chunkData[22]);
|
||||
HIP = pinParameter(chunkData[23]);
|
||||
FAD = pinParameter(chunkData[24]);
|
||||
/* We're ignoring byteSize as we found it to be a filthy liar */
|
||||
|
||||
/* calculate any other fields you need here - you could copy in
|
||||
code from setParameter() here. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ConsoleHPre::setParameter(VstInt32 index, float value) {
|
||||
switch (index) {
|
||||
case kParam_TRM: TRM = value; break;
|
||||
case kParam_MOR: MOR = value; break;
|
||||
case kParam_HIG: HIG = value; break;
|
||||
case kParam_MID: MID = value; break;
|
||||
case kParam_LOW: LOW = value; break;
|
||||
case kParam_CRS: CRS = value; break;
|
||||
case kParam_TRF: TRF = value; break;
|
||||
case kParam_TRG: TRG = value; break;
|
||||
case kParam_TRB: TRB = value; break;
|
||||
case kParam_HMF: HMF = value; break;
|
||||
case kParam_HMG: HMG = value; break;
|
||||
case kParam_HMB: HMB = value; break;
|
||||
case kParam_LMF: LMF = value; break;
|
||||
case kParam_LMG: LMG = value; break;
|
||||
case kParam_LMB: LMB = value; break;
|
||||
case kParam_BSF: BSF = value; break;
|
||||
case kParam_BSG: BSG = value; break;
|
||||
case kParam_BSB: BSB = value; break;
|
||||
case kParam_THR: THR = value; break;
|
||||
case kParam_ATK: ATK = value; break;
|
||||
case kParam_RLS: RLS = value; break;
|
||||
case kParam_GAT: GAT = value; break;
|
||||
case kParam_LOP: LOP = value; break;
|
||||
case kParam_HIP: HIP = value; break;
|
||||
case kParam_FAD: FAD = value; break;
|
||||
default: throw; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
float ConsoleHPre::getParameter(VstInt32 index) {
|
||||
switch (index) {
|
||||
case kParam_TRM: return TRM; break;
|
||||
case kParam_MOR: return MOR; break;
|
||||
case kParam_HIG: return HIG; break;
|
||||
case kParam_MID: return MID; break;
|
||||
case kParam_LOW: return LOW; break;
|
||||
case kParam_CRS: return CRS; break;
|
||||
case kParam_TRF: return TRF; break;
|
||||
case kParam_TRG: return TRG; break;
|
||||
case kParam_TRB: return TRB; break;
|
||||
case kParam_HMF: return HMF; break;
|
||||
case kParam_HMG: return HMG; break;
|
||||
case kParam_HMB: return HMB; break;
|
||||
case kParam_LMF: return LMF; break;
|
||||
case kParam_LMG: return LMG; break;
|
||||
case kParam_LMB: return LMB; break;
|
||||
case kParam_BSF: return BSF; break;
|
||||
case kParam_BSG: return BSG; break;
|
||||
case kParam_BSB: return BSB; break;
|
||||
case kParam_THR: return THR; break;
|
||||
case kParam_ATK: return ATK; break;
|
||||
case kParam_RLS: return RLS; break;
|
||||
case kParam_GAT: return GAT; break;
|
||||
case kParam_LOP: return LOP; break;
|
||||
case kParam_HIP: return HIP; break;
|
||||
case kParam_FAD: return FAD; break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} return 0.0; //we only need to update the relevant name, this is simple to manage
|
||||
}
|
||||
|
||||
void ConsoleHPre::getParameterName(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: vst_strncpy (text, "Trim", kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: vst_strncpy (text, "More", kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: vst_strncpy (text, "High", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "Mid", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "Low", kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: vst_strncpy (text, "CrossFd", kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: vst_strncpy (text, "Tr Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: vst_strncpy (text, "Treble", kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: vst_strncpy (text, "TrCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: vst_strncpy (text, "HM Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: vst_strncpy (text, "HighMid", kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: vst_strncpy (text, "HMCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: vst_strncpy (text, "LM Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: vst_strncpy (text, "LowMid", kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: vst_strncpy (text, "LMCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: vst_strncpy (text, "Bs Freq", kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: vst_strncpy (text, "Bass", kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: vst_strncpy (text, "BsCrush", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "Thresh", kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: vst_strncpy (text, "Attack", kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: vst_strncpy (text, "Release", kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: vst_strncpy (text, "Gate", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "Lowpass", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "Hipass", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "Fader", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this is our labels for displaying in the VST host
|
||||
}
|
||||
|
||||
void ConsoleHPre::getParameterDisplay(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: int2string ((int)(TRM*4.0), text, kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: float2string (MOR, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: float2string (HIG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_MID: float2string (MID, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: float2string (LOW, text, kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: float2string (CRS, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: float2string (TRF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: float2string (TRG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: float2string (TRB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: float2string (HMF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: float2string (HMG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: float2string (HMB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: float2string (LMF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: float2string (LMG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: float2string (LMB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: float2string (BSF, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: float2string (BSG, text, kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: float2string (BSB, text, kVstMaxParamStrLen); break;
|
||||
case kParam_THR: float2string (THR, text, kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: float2string (ATK, text, kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: float2string (RLS, text, kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: float2string (GAT, text, kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: float2string (LOP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: float2string (HIP, text, kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: float2string (FAD, text, kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
} //this displays the values and handles 'popups' where it's discrete choices
|
||||
}
|
||||
|
||||
void ConsoleHPre::getParameterLabel(VstInt32 index, char *text) {
|
||||
switch (index) {
|
||||
case kParam_TRM: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_MOR: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HIG: vst_strncpy (text, "eq", kVstMaxParamStrLen); break;
|
||||
case kParam_MID: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LOW: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_CRS: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_TRF: vst_strncpy (text, "crush", kVstMaxParamStrLen); break;
|
||||
case kParam_TRG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_TRB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_HMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LMB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSF: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSG: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_BSB: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_THR: vst_strncpy (text, "dyn", kVstMaxParamStrLen); break;
|
||||
case kParam_ATK: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_RLS: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_GAT: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_LOP: vst_strncpy (text, "fltr", kVstMaxParamStrLen); break;
|
||||
case kParam_HIP: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
case kParam_FAD: vst_strncpy (text, "", kVstMaxParamStrLen); break;
|
||||
default: break; // unknown parameter, shouldn't happen!
|
||||
}
|
||||
}
|
||||
|
||||
VstInt32 ConsoleHPre::canDo(char *text)
|
||||
{ return (_canDo.find(text) == _canDo.end()) ? -1: 1; } // 1 = yes, -1 = no, 0 = don't know
|
||||
|
||||
bool ConsoleHPre::getEffectName(char* name) {
|
||||
vst_strncpy(name, "ConsoleHPre", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
VstPlugCategory ConsoleHPre::getPlugCategory() {return kPlugCategEffect;}
|
||||
|
||||
bool ConsoleHPre::getProductString(char* text) {
|
||||
vst_strncpy (text, "airwindows ConsoleHPre", kVstMaxProductStrLen); return true;
|
||||
}
|
||||
|
||||
bool ConsoleHPre::getVendorString(char* text) {
|
||||
vst_strncpy (text, "airwindows", kVstMaxVendorStrLen); return true;
|
||||
}
|
||||
218
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPre.h
Executable file
218
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPre.h
Executable file
|
|
@ -0,0 +1,218 @@
|
|||
/* ========================================
|
||||
* ConsoleHPre - ConsoleHPre.h
|
||||
* Created 8/12/11 by SPIAdmin
|
||||
* Copyright (c) Airwindows, Airwindows uses the MIT license
|
||||
* ======================================== */
|
||||
|
||||
#ifndef __ConsoleHPre_H
|
||||
#define __ConsoleHPre_H
|
||||
|
||||
#ifndef __audioeffect__
|
||||
#include "audioeffectx.h"
|
||||
#endif
|
||||
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <math.h>
|
||||
|
||||
enum {
|
||||
kParam_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_FAD =24,
|
||||
//Add your parameters here...
|
||||
kNumParameters=25
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
const int kNumPrograms = 0;
|
||||
const int kNumInputs = 2;
|
||||
const int kNumOutputs = 2;
|
||||
const unsigned long kUniqueId = 'chpp'; //Change this to what the AU identity is!
|
||||
|
||||
class ConsoleHPre :
|
||||
public AudioEffectX
|
||||
{
|
||||
public:
|
||||
ConsoleHPre(audioMasterCallback audioMaster);
|
||||
~ConsoleHPre();
|
||||
virtual bool getEffectName(char* name); // The plug-in name
|
||||
virtual VstPlugCategory getPlugCategory(); // The general category for the plug-in
|
||||
virtual bool getProductString(char* text); // This is a unique plug-in string provided by Steinberg
|
||||
virtual bool getVendorString(char* text); // Vendor info
|
||||
virtual VstInt32 getVendorVersion(); // Version number
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
virtual void processDoubleReplacing (double** inputs, double** outputs, VstInt32 sampleFrames);
|
||||
virtual void getProgramName(char *name); // read the name from the host
|
||||
virtual void setProgramName(char *name); // changes the name of the preset displayed in the host
|
||||
virtual VstInt32 getChunk (void** data, bool isPreset);
|
||||
virtual VstInt32 setChunk (void* data, VstInt32 byteSize, bool isPreset);
|
||||
virtual float getParameter(VstInt32 index); // get the parameter value at the specified index
|
||||
virtual void setParameter(VstInt32 index, float value); // set the parameter at index to value
|
||||
virtual void getParameterLabel(VstInt32 index, char *text); // label for the parameter (eg dB)
|
||||
virtual void getParameterName(VstInt32 index, char *text); // name of the parameter
|
||||
virtual void getParameterDisplay(VstInt32 index, char *text); // text description of the current value
|
||||
virtual VstInt32 canDo(char *text);
|
||||
private:
|
||||
char _programName[kVstMaxProgNameLen + 1];
|
||||
std::set< std::string > _canDo;
|
||||
|
||||
float TRM;
|
||||
float MOR;
|
||||
float HIG;
|
||||
float MID;
|
||||
float LOW;
|
||||
float CRS;
|
||||
float TRF;
|
||||
float TRG;
|
||||
float TRB;
|
||||
float HMF;
|
||||
float HMG;
|
||||
float HMB;
|
||||
float LMF;
|
||||
float LMG;
|
||||
float LMB;
|
||||
float BSF;
|
||||
float BSG;
|
||||
float BSB;
|
||||
float THR;
|
||||
float ATK;
|
||||
float RLS;
|
||||
float GAT;
|
||||
float LOP;
|
||||
float HIP;
|
||||
float FAD;
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
|
||||
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
|
||||
biqs_outL, biqs_outR, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxFL;
|
||||
double bezMaxFR;
|
||||
double bezCompS[bez_total];
|
||||
double bezGateL;
|
||||
double bezGateR;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
double iirHPositionR[23];
|
||||
double iirHAngleR[23];
|
||||
bool hBypass;
|
||||
double iirLPositionL[15];
|
||||
double iirLAngleL[15];
|
||||
double iirLPositionR[15];
|
||||
double iirLAngleR[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
double dBaR[dscBuf+5];
|
||||
double dBaPosR;
|
||||
int dBaXR;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
//default stuff
|
||||
};
|
||||
|
||||
#endif
|
||||
1252
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPreProc.cpp
Executable file
1252
plugins/LinuxVST/src/ConsoleHPre/ConsoleHPreProc.cpp
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -231,17 +231,15 @@ ComponentResult ChimeyDeluxe::Initialize()
|
|||
void ChimeyDeluxe::ChimeyDeluxeKernel::Reset()
|
||||
{
|
||||
for(int x=0; x<17; x++) {
|
||||
for (int w = 0; w < bez_total; w++) bezComp[w][x] = 0.0;
|
||||
bezComp[bez_cycle][x] = 1.0;
|
||||
for(int y=0; y<14; y++) {
|
||||
angS[x][y] = 0.0;angA[x][y] = 0.0;
|
||||
angS[x][y] = 0.0;
|
||||
angA[x][y] = 0.0;
|
||||
}
|
||||
}
|
||||
for(int y=0; y<14; y++) {
|
||||
angG[y] = 0.0;
|
||||
}
|
||||
|
||||
muComp = 1.0;
|
||||
muSpd = 100.0;
|
||||
|
||||
for(int y=0; y<14; y++) angG[y] = 0.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
|
|
@ -263,85 +261,88 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
|
||||
double drive = 1.0;
|
||||
double pad = 1.0;
|
||||
angG[1] = GetParameter( kParam_A )+0.5;
|
||||
angG[1] = (GetParameter( kParam_A )+1.5)*0.5;
|
||||
if (pad > angG[1]) pad = angG[1];
|
||||
if (drive < angG[1]) drive = angG[1];
|
||||
angG[0] = (1.0+angG[1])*0.5; //if boost, boost half
|
||||
if (angG[0] > angG[1]) angG[0] = angG[1];
|
||||
angG[2] = GetParameter( kParam_B )+0.5;
|
||||
angG[2] = (GetParameter( kParam_B )+1.5)*0.5;
|
||||
if (pad > angG[2]) pad = angG[2];
|
||||
if (drive < angG[2]) drive = angG[2];
|
||||
angG[3] = GetParameter( kParam_C )+0.5;
|
||||
angG[3] = (GetParameter( kParam_C )+1.5)*0.5;
|
||||
if (pad > angG[3]) pad = angG[3];
|
||||
if (drive < angG[3]) drive = angG[3];
|
||||
angG[4] = GetParameter( kParam_D )+0.5;
|
||||
angG[4] = (GetParameter( kParam_D )+1.5)*0.5;
|
||||
if (pad > angG[4]) pad = angG[4];
|
||||
if (drive < angG[4]) drive = angG[4];
|
||||
angG[5] = GetParameter( kParam_E )+0.5;
|
||||
angG[5] = (GetParameter( kParam_E )+1.5)*0.5;
|
||||
if (pad > angG[5]) pad = angG[5];
|
||||
if (drive < angG[5]) drive = angG[5];
|
||||
angG[6] = GetParameter( kParam_F )+0.5;
|
||||
angG[6] = (GetParameter( kParam_F )+1.5)*0.5;
|
||||
if (pad > angG[6]) pad = angG[6];
|
||||
if (drive < angG[6]) drive = angG[6];
|
||||
angG[7] = GetParameter( kParam_G )+0.5;
|
||||
angG[7] = (GetParameter( kParam_G )+1.5)*0.5;
|
||||
if (pad > angG[7]) pad = angG[7];
|
||||
if (drive < angG[7]) drive = angG[7];
|
||||
angG[8] = GetParameter( kParam_H )+0.5;
|
||||
angG[8] = (GetParameter( kParam_H )+1.5)*0.5;
|
||||
if (pad > angG[8]) pad = angG[8];
|
||||
if (drive < angG[8]) drive = angG[8];
|
||||
angG[9] = GetParameter( kParam_I )+0.5;
|
||||
angG[9] = (GetParameter( kParam_I )+1.5)*0.5;
|
||||
if (pad > angG[9]) pad = angG[9];
|
||||
if (drive < angG[9]) drive = angG[9];
|
||||
angG[10] = GetParameter( kParam_J )+0.5;
|
||||
angG[10] = (GetParameter( kParam_J )+1.5)*0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
angG[12] = angG[11] = angG[10];
|
||||
if (drive > 1.0) drive = pow(drive,drive*2.0);
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double bezRez = (pad * drive * 0.0005)/overallscale;
|
||||
int bezFreqFraction = (int)(1.0/bezRez);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
bezRez = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(bezRez*bezFreqTrim);
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSample; inputSample = 0.0;
|
||||
double band = inputSampleL; inputSampleL = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angA[x][y] = (angA[x][y]*(1.0-fr)) + ((band-angS[x][y])*fr);
|
||||
double temp = band; band = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angS[x][y] = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSample += ((temp-band)*angG[y]);
|
||||
inputSampleL += ((temp-band)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSample += band;
|
||||
inputSample *= threshold;
|
||||
inputSample *= (muComp/threshold);
|
||||
if (fabs(inputSample) > threshold)
|
||||
{
|
||||
muComp *= muSpd;
|
||||
if (threshold/fabs(inputSample) < threshold) muComp += threshold*fabs(inputSample);
|
||||
else muComp -= threshold/fabs(inputSample);
|
||||
muComp /= muSpd;
|
||||
} else {
|
||||
muComp *= (muSpd*muSpd);
|
||||
muComp += ((1.1+threshold)-fabs(inputSample));
|
||||
muComp /= (muSpd*muSpd);
|
||||
inputSampleL += band; //end of filter part
|
||||
bezComp[bez_cycle][x] += bezRez;
|
||||
bezComp[bez_SampL][x] += (fabs(inputSampleL) * bezRez);
|
||||
if (bezComp[bez_cycle][x] > 1.0) {
|
||||
bezComp[bez_cycle][x] = 0.0;
|
||||
bezComp[bez_CL][x] = bezComp[bez_BL][x];
|
||||
bezComp[bez_BL][x] = bezComp[bez_AL][x];
|
||||
bezComp[bez_AL][x] = bezComp[bez_SampL][x];
|
||||
bezComp[bez_SampL][x] = 0.0;
|
||||
}
|
||||
muComp = fmax(fmin(muComp,1.0),threshold);
|
||||
inputSample *= (muComp*muComp);
|
||||
muSpd = fmax(fmin(((muSpd*(muSpd-1.0))+(fabs(inputSample*adjSpd)))/muSpd,adjSpd*2.0),adjSpd);
|
||||
double z = bezComp[bez_cycle][x]*bezFreqTrim;
|
||||
double CBL = (bezComp[bez_CL][x]*(1.0-z))+(bezComp[bez_BL][x]*z);
|
||||
double BAL = (bezComp[bez_BL][x]*(1.0-z))+(bezComp[bez_AL][x]*z);
|
||||
double CBAL = (bezComp[bez_BL][x]+(CBL*(1.0-z))+(BAL*z));
|
||||
CBAL = fmin(fmax(CBAL*drive*0.23,0.0),M_PI_2);
|
||||
inputSampleL *= 1.0-sin(CBAL);
|
||||
}
|
||||
inputSample = sin(fmin(fmax(inputSample*pad,-M_PI_2),M_PI_2));
|
||||
inputSampleL /= drive;
|
||||
inputSampleL = fmin(fmax(inputSampleL*pad,-1.0),1.0); //let's do an output clip
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,9 +154,18 @@ public:
|
|||
double angS[18][15];
|
||||
double angA[18][15];
|
||||
double angG[15];
|
||||
|
||||
double muComp;
|
||||
double muSpd;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezComp[bez_total][18];
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 776427414;
|
||||
PBXWorkspaceStateSaveDate = 776427414;
|
||||
PBXPerProjectTemplateStateSaveDate = 784153881;
|
||||
PBXWorkspaceStateSaveDate = 784153881;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */ = 8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */;
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = 8B42CBD92E315A03001C0B57 /* PBXTextBookmark */;
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = 8BB158F92E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = 8BB158FA2E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */ = 8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */;
|
||||
8B7D6E612EBD420A000B38FA /* PBXTextBookmark */ = 8B7D6E612EBD420A000B38FA /* PBXTextBookmark */;
|
||||
8B7D6E622EBD420A000B38FA /* PBXTextBookmark */ = 8B7D6E622EBD420A000B38FA /* PBXTextBookmark */;
|
||||
8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */ = 8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
|
|
@ -75,58 +75,58 @@
|
|||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = {
|
||||
8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 299";
|
||||
rLen = 0;
|
||||
rLoc = 13653;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B7D6E612EBD420A000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 166";
|
||||
name = "ChimeyDeluxe.h: 170";
|
||||
rLen = 0;
|
||||
rLoc = 6181;
|
||||
rLoc = 6368;
|
||||
rType = 0;
|
||||
vrLen = 148;
|
||||
vrLen = 45;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8B7D6E622EBD420A000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 298";
|
||||
rLen = 0;
|
||||
rLoc = 13653;
|
||||
rType = 0;
|
||||
vrLen = 47;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 6696}}";
|
||||
sepNavSelRange = "{13457, 64}";
|
||||
sepNavVisRange = "{12723, 1520}";
|
||||
sepNavWindowFrame = "{{755, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 6390}}";
|
||||
sepNavSelRange = "{13653, 0}";
|
||||
sepNavVisRange = "{0, 47}";
|
||||
sepNavWindowFrame = "{{1, 38}, {737, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ChimeyDeluxeVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{2738, 251}";
|
||||
sepNavVisRange = "{1174, 1815}";
|
||||
sepNavWindowFrame = "{{38, 48}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
rLen = 0;
|
||||
rLoc = 13521;
|
||||
rType = 0;
|
||||
vrLen = 45;
|
||||
vrLoc = 13609;
|
||||
};
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 161";
|
||||
rLen = 0;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 103;
|
||||
vrLoc = 147;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 3006}}";
|
||||
sepNavSelRange = "{6181, 0}";
|
||||
sepNavVisRange = "{147, 103}";
|
||||
sepNavWindowFrame = "{{783, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 3258}}";
|
||||
sepNavSelRange = "{6368, 0}";
|
||||
sepNavVisRange = "{3, 45}";
|
||||
sepNavWindowFrame = "{{9, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>737</integer>
|
||||
<integer>737</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -326,7 +326,7 @@
|
|||
<real>288</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -350,17 +350,17 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BB158FA2E4759DF00D27777</string>
|
||||
<string>8B7D6E622EBD420A000B38FA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B33D58F2DF3AB1D0044A4FF</string>
|
||||
<string>8BFD341B2E058DBA00CA61BB</string>
|
||||
<string>8BB158F92E4759DF00D27777</string>
|
||||
<string>8B42CBD92E315A03001C0B57</string>
|
||||
<string>8B7D6E612EBD420A000B38FA</string>
|
||||
<string>8B7D6E1E2EBD3C70000B38FA</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -374,18 +374,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {427, 47}}</string>
|
||||
<string>{{0, 0}, {427, 95}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>47pt</string>
|
||||
<string>95pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>270pt</string>
|
||||
<string>222pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +399,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {427, 243}}</string>
|
||||
<string>{{10, 27}, {427, 195}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -455,7 +455,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 352}}</string>
|
||||
<string>{{10, 27}, {427, 261}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -483,11 +483,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BB158FB2E4759DF00D27777</string>
|
||||
<string>8B7D6E632EBD420A000B38FA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BB158FC2E4759DF00D27777</string>
|
||||
<string>8B7D6E642EBD420A000B38FA</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BB158FD2E4759DF00D27777</string>
|
||||
<string>8B7D6E652EBD420A000B38FA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -660,7 +660,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>776427999.45691097</real>
|
||||
<real>784155146.916085</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -680,7 +680,7 @@
|
|||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyDeluxe/ChimeyDeluxe.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
744
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
744
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
|
|
@ -0,0 +1,744 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
ConsoleHBuss.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "ConsoleHBuss.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(ConsoleHBuss)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ConsoleHBuss
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ConsoleHBuss::ConsoleHBuss(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_MID, kDefaultValue_ParamMID );
|
||||
SetParameter(kParam_LOW, kDefaultValue_ParamLOW );
|
||||
|
||||
SetParameter(kParam_THR, kDefaultValue_ParamTHR );
|
||||
|
||||
SetParameter(kParam_LOP, kDefaultValue_ParamLOP );
|
||||
SetParameter(kParam_HIP, kDefaultValue_ParamHIP );
|
||||
|
||||
SetParameter(kParam_PAN, kDefaultValue_ParamPAN );
|
||||
SetParameter(kParam_FAD, kDefaultValue_ParamFAD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_MID:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMIDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMID;
|
||||
break;
|
||||
case kParam_LOW:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOWName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOW;
|
||||
break;
|
||||
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
|
||||
case kParam_LOP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterLOPUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOP;
|
||||
break;
|
||||
case kParam_HIP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIP;
|
||||
break;
|
||||
|
||||
case kParam_PAN:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterPANName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamPAN;
|
||||
break;
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::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 ConsoleHBuss::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// ConsoleHBuss::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____ConsoleHBussEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ConsoleHBussKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
highFastRIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
lowFastRIIR = 0.0;
|
||||
//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;
|
||||
bezCompS[bez_cycle] = 1.0;
|
||||
//Dynamics2
|
||||
|
||||
for (int x = 0; x < hilp_total; x++) {
|
||||
highpass[x] = 0.0;
|
||||
lowpass[x] = 0.0;
|
||||
}
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; avg32R[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; avg16R[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; avg8R[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; avg4R[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; avg2R[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0; lastSlewR = 0.0;
|
||||
lastSlewpleL = 0.0; lastSlewpleR = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
panA = 0.5; panB = 0.5;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus ConsoleHBuss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (GetParameter( kParam_MID )-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
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
|
||||
|
||||
//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
|
||||
//SmoothEQ3
|
||||
|
||||
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
|
||||
|
||||
highpass[hilp_freq] = ((pow(GetParameter( kParam_HIP ),3)*24000.0)+10.0)/GetSampleRate();
|
||||
if (highpass[hilp_freq] > 0.495) highpass[hilp_freq] = 0.495;
|
||||
bool highpassEngage = true; if (GetParameter( kParam_HIP ) == 0.0) highpassEngage = false;
|
||||
|
||||
lowpass[hilp_freq] = ((pow(GetParameter( kParam_LOP ),3)*24000.0)+10.0)/GetSampleRate();
|
||||
if (lowpass[hilp_freq] > 0.495) lowpass[hilp_freq] = 0.495;
|
||||
bool lowpassEngage = true; if (GetParameter( kParam_LOP ) == 0.0) lowpassEngage = false;
|
||||
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
//previous run through the buffer is still in the filter, so we move it
|
||||
//to the A section and now it's the new starting point.
|
||||
//On the buss, highpass and lowpass are isolators meant to be moved,
|
||||
//so they are interpolated where the channels are not
|
||||
|
||||
biqK = tan(M_PI * highpass[hilp_freq]); //highpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
highpass[hilp_aB0] = norm;
|
||||
highpass[hilp_aB1] = -2.0 * highpass[hilp_aB0];
|
||||
highpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
highpass[hilp_cB0] = norm;
|
||||
highpass[hilp_cB1] = -2.0 * highpass[hilp_cB0];
|
||||
highpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
highpass[hilp_eB0] = norm;
|
||||
highpass[hilp_eB1] = -2.0 * highpass[hilp_eB0];
|
||||
highpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowpass[hilp_freq]); //lowpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
lowpass[hilp_aB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_aB1] = 2.0 * lowpass[hilp_aB0];
|
||||
lowpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
lowpass[hilp_cB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_cB1] = 2.0 * lowpass[hilp_cB0];
|
||||
lowpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
lowpass[hilp_eB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_eB1] = 2.0 * lowpass[hilp_eB0];
|
||||
lowpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
if (highpass[hilp_aA0] == 0.0) { // if we have just started, start directly with raw info
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
}
|
||||
|
||||
panA = panB; panB = GetParameter( kParam_PAN )*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_FAD )*2.0;
|
||||
//Console
|
||||
|
||||
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;
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
highpass[hilp_a0] = (highpass[hilp_aA0]*temp)+(highpass[hilp_aB0]*(1.0-temp));
|
||||
highpass[hilp_a1] = (highpass[hilp_aA1]*temp)+(highpass[hilp_aB1]*(1.0-temp));
|
||||
highpass[hilp_b1] = (highpass[hilp_bA1]*temp)+(highpass[hilp_bB1]*(1.0-temp));
|
||||
highpass[hilp_b2] = (highpass[hilp_bA2]*temp)+(highpass[hilp_bB2]*(1.0-temp));
|
||||
highpass[hilp_c0] = (highpass[hilp_cA0]*temp)+(highpass[hilp_cB0]*(1.0-temp));
|
||||
highpass[hilp_c1] = (highpass[hilp_cA1]*temp)+(highpass[hilp_cB1]*(1.0-temp));
|
||||
highpass[hilp_d1] = (highpass[hilp_dA1]*temp)+(highpass[hilp_dB1]*(1.0-temp));
|
||||
highpass[hilp_d2] = (highpass[hilp_dA2]*temp)+(highpass[hilp_dB2]*(1.0-temp));
|
||||
highpass[hilp_e0] = (highpass[hilp_eA0]*temp)+(highpass[hilp_eB0]*(1.0-temp));
|
||||
highpass[hilp_e1] = (highpass[hilp_eA1]*temp)+(highpass[hilp_eB1]*(1.0-temp));
|
||||
highpass[hilp_f1] = (highpass[hilp_fA1]*temp)+(highpass[hilp_fB1]*(1.0-temp));
|
||||
highpass[hilp_f2] = (highpass[hilp_fA2]*temp)+(highpass[hilp_fB2]*(1.0-temp));
|
||||
lowpass[hilp_a0] = (lowpass[hilp_aA0]*temp)+(lowpass[hilp_aB0]*(1.0-temp));
|
||||
lowpass[hilp_a1] = (lowpass[hilp_aA1]*temp)+(lowpass[hilp_aB1]*(1.0-temp));
|
||||
lowpass[hilp_b1] = (lowpass[hilp_bA1]*temp)+(lowpass[hilp_bB1]*(1.0-temp));
|
||||
lowpass[hilp_b2] = (lowpass[hilp_bA2]*temp)+(lowpass[hilp_bB2]*(1.0-temp));
|
||||
lowpass[hilp_c0] = (lowpass[hilp_cA0]*temp)+(lowpass[hilp_cB0]*(1.0-temp));
|
||||
lowpass[hilp_c1] = (lowpass[hilp_cA1]*temp)+(lowpass[hilp_cB1]*(1.0-temp));
|
||||
lowpass[hilp_d1] = (lowpass[hilp_dA1]*temp)+(lowpass[hilp_dB1]*(1.0-temp));
|
||||
lowpass[hilp_d2] = (lowpass[hilp_dA2]*temp)+(lowpass[hilp_dB2]*(1.0-temp));
|
||||
lowpass[hilp_e0] = (lowpass[hilp_eA0]*temp)+(lowpass[hilp_eB0]*(1.0-temp));
|
||||
lowpass[hilp_e1] = (lowpass[hilp_eA1]*temp)+(lowpass[hilp_eB1]*(1.0-temp));
|
||||
lowpass[hilp_f1] = (lowpass[hilp_fA1]*temp)+(lowpass[hilp_fB1]*(1.0-temp));
|
||||
lowpass[hilp_f2] = (lowpass[hilp_fA2]*temp)+(lowpass[hilp_fB2]*(1.0-temp));
|
||||
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_a0])+highpass[hilp_aL1];
|
||||
highpass[hilp_aL1] = (inputSampleL*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aL2];
|
||||
highpass[hilp_aL2] = (inputSampleL*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_a0])+highpass[hilp_aR1];
|
||||
highpass[hilp_aR1] = (inputSampleR*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aR2];
|
||||
highpass[hilp_aR2] = (inputSampleR*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_aR1] = highpass[hilp_aR2] = highpass[hilp_aL1] = highpass[hilp_aL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_a0])+lowpass[hilp_aL1];
|
||||
lowpass[hilp_aL1] = (inputSampleL*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aL2];
|
||||
lowpass[hilp_aL2] = (inputSampleL*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_a0])+lowpass[hilp_aR1];
|
||||
lowpass[hilp_aR1] = (inputSampleR*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aR2];
|
||||
lowpass[hilp_aR2] = (inputSampleR*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_aR1] = lowpass[hilp_aR2] = lowpass[hilp_aL1] = lowpass[hilp_aL2] = 0.0;
|
||||
//first Highpass/Lowpass blocks aliasing before the nonlinearity of ConsoleXBuss and Parametric
|
||||
|
||||
if (inputSampleL > 1.0) inputSampleL = 1.0;
|
||||
else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 0.6180339887498949));
|
||||
if (inputSampleL < -1.0) inputSampleL = -1.0;
|
||||
else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 0.6180339887498949));
|
||||
|
||||
if (inputSampleR > 1.0) inputSampleR = 1.0;
|
||||
else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 0.6180339887498949));
|
||||
if (inputSampleR < -1.0) inputSampleR = -1.0;
|
||||
else if (inputSampleR < 0.0) inputSampleR = expm1((log1p(inputSampleR) * 0.6180339887498949));
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_c0])+highpass[hilp_cL1];
|
||||
highpass[hilp_cL1] = (inputSampleL*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cL2];
|
||||
highpass[hilp_cL2] = (inputSampleL*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_c0])+highpass[hilp_cR1];
|
||||
highpass[hilp_cR1] = (inputSampleR*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cR2];
|
||||
highpass[hilp_cR2] = (inputSampleR*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_cR1] = highpass[hilp_cR2] = highpass[hilp_cL1] = highpass[hilp_cL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_c0])+lowpass[hilp_cL1];
|
||||
lowpass[hilp_cL1] = (inputSampleL*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cL2];
|
||||
lowpass[hilp_cL2] = (inputSampleL*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_c0])+lowpass[hilp_cR1];
|
||||
lowpass[hilp_cR1] = (inputSampleR*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cR2];
|
||||
lowpass[hilp_cR2] = (inputSampleR*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleR = lowpass[hilp_temp];
|
||||
} 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
|
||||
//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
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_e0])+highpass[hilp_eL1];
|
||||
highpass[hilp_eL1] = (inputSampleL*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eL2];
|
||||
highpass[hilp_eL2] = (inputSampleL*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_e0])+highpass[hilp_eR1];
|
||||
highpass[hilp_eR1] = (inputSampleR*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eR2];
|
||||
highpass[hilp_eR2] = (inputSampleR*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_eR1] = highpass[hilp_eR2] = highpass[hilp_eL1] = highpass[hilp_eL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_e0])+lowpass[hilp_eL1];
|
||||
lowpass[hilp_eL1] = (inputSampleL*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eL2];
|
||||
lowpass[hilp_eL2] = (inputSampleL*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_e0])+lowpass[hilp_eR1];
|
||||
lowpass[hilp_eR1] = (inputSampleR*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eR2];
|
||||
lowpass[hilp_eR2] = (inputSampleR*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_eR1] = lowpass[hilp_eR2] = lowpass[hilp_eL1] = lowpass[hilp_eL2] = 0.0;
|
||||
//final Highpass/Lowpass continues to address aliasing
|
||||
//final stacked biquad section is the softest Q for smoothness
|
||||
|
||||
double gainR = (panA*temp)+(panB*(1.0-temp));
|
||||
double gainL = 1.57079633-gainR;
|
||||
gainR = sin(gainR); gainL = sin(gainL);
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 2.0;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
//applies pan section, and smoothed fader gain
|
||||
|
||||
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 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
|
||||
|
||||
//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
|
||||
|
||||
//begin 32 bit stereo floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpdL ^= fpdL << 13; fpdL ^= fpdL >> 17; fpdL ^= fpdL << 5;
|
||||
inputSampleL += ((double(fpdL)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
frexpf((float)inputSampleR, &expon);
|
||||
fpdR ^= fpdR << 13; fpdR ^= fpdR >> 17; fpdR ^= fpdR << 5;
|
||||
inputSampleR += ((double(fpdR)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit stereo floating point dither
|
||||
|
||||
*outputL = inputSampleL;
|
||||
*outputR = inputSampleR;
|
||||
//direct stereo out
|
||||
|
||||
inputL += 1;
|
||||
inputR += 1;
|
||||
outputL += 1;
|
||||
outputR += 1;
|
||||
}
|
||||
return noErr;
|
||||
}
|
||||
|
||||
1
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.exp
Executable file
1
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_ConsoleHBussEntry
|
||||
226
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.h
Executable file
226
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.h
Executable file
|
|
@ -0,0 +1,226 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHBussVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHBuss_h__
|
||||
#define __ConsoleHBuss_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHBuss Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamTHR = 1.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 kParameterHIGUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterHIGName = CFSTR("High");
|
||||
static CFStringRef kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
|
||||
static CFStringRef kParameterTHRUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterTHRName = CFSTR("Thresh");
|
||||
|
||||
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_HIG =0,
|
||||
kParam_MID =1,
|
||||
kParam_LOW =2,
|
||||
kParam_THR =3,
|
||||
kParam_LOP =4,
|
||||
kParam_HIP =5,
|
||||
kParam_PAN =6,
|
||||
kParam_FAD =7,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=8
|
||||
};
|
||||
|
||||
#pragma mark ____ConsoleHBuss
|
||||
class ConsoleHBuss : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHBuss(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHBuss () { 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 kConsoleHBussVersion; }
|
||||
|
||||
private:
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
//Dynamics2
|
||||
|
||||
enum {
|
||||
hilp_freq, hilp_temp,
|
||||
hilp_a0, hilp_aA0, hilp_aB0, hilp_a1, hilp_aA1, hilp_aB1, hilp_b1, hilp_bA1, hilp_bB1, hilp_b2, hilp_bA2, hilp_bB2,
|
||||
hilp_c0, hilp_cA0, hilp_cB0, hilp_c1, hilp_cA1, hilp_cB1, hilp_d1, hilp_dA1, hilp_dB1, hilp_d2, hilp_dA2, hilp_dB2,
|
||||
hilp_e0, hilp_eA0, hilp_eB0, hilp_e1, hilp_eA1, hilp_eB1, hilp_f1, hilp_fA1, hilp_fB1, hilp_f2, hilp_fA2, hilp_fB2,
|
||||
hilp_aL1, hilp_aL2, hilp_aR1, hilp_aR2,
|
||||
hilp_cL1, hilp_cL2, hilp_cR1, hilp_cR2,
|
||||
hilp_eL1, hilp_eL2, hilp_eR1, hilp_eR2,
|
||||
hilp_total
|
||||
};
|
||||
double highpass[hilp_total];
|
||||
double lowpass[hilp_total];
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.r
Executable file
61
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHBussVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_ConsoleHBuss 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ConsoleHBuss~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_ConsoleHBuss
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE ConsoleHBuss_COMP_SUBTYPE
|
||||
#define COMP_MANUF ConsoleHBuss_COMP_MANF
|
||||
|
||||
#define VERSION kConsoleHBussVersion
|
||||
#define NAME "Airwindows: ConsoleHBuss"
|
||||
#define DESCRIPTION "ConsoleHBuss AU"
|
||||
#define ENTRY_POINT "ConsoleHBussEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
136
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.pbxuser
Executable file
136
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,136 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 784133817;
|
||||
PBXWorkspaceStateSaveDate = 784133817;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B7D6D372EBCF553000B38FA /* PBXTextBookmark */ = 8B7D6D372EBCF553000B38FA /* PBXTextBookmark */;
|
||||
8B7D6D382EBCF553000B38FA /* PBXBookmark */ = 8B7D6D382EBCF553000B38FA /* PBXBookmark */;
|
||||
8B7D6D392EBCF553000B38FA /* PBXTextBookmark */ = 8B7D6D392EBCF553000B38FA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B7D6D372EBCF553000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* ConsoleHBussVersion.h */;
|
||||
name = "ConsoleHBussVersion.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 37;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B7D6D382EBCF553000B38FA /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */;
|
||||
};
|
||||
8B7D6D392EBCF553000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */;
|
||||
name = "ConsoleHBuss.cpp: 523";
|
||||
rLen = 0;
|
||||
rLoc = 25931;
|
||||
rType = 0;
|
||||
vrLen = 64;
|
||||
vrLoc = 33450;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {858, 13752}}";
|
||||
sepNavSelRange = "{25931, 0}";
|
||||
sepNavVisRange = "{33450, 64}";
|
||||
sepNavWindowFrame = "{{22, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{1072, 1918}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ConsoleHBuss.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 4068}}";
|
||||
sepNavSelRange = "{6440, 589}";
|
||||
sepNavVisRange = "{5857, 1011}";
|
||||
sepNavWindowFrame = "{{7, 35}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1485
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.perspectivev3
Executable file
1485
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,490 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; };
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; };
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; };
|
||||
8B4119B70749654200361ABE /* ConsoleHBuss.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* ConsoleHBuss.r */; };
|
||||
8BA05A6B0720730100365D66 /* ConsoleHBuss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* ConsoleHBussVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleHBussVersion.h */; };
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; };
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; };
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; };
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; };
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; };
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; };
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; };
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; };
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; };
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; };
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; };
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; };
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; };
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; };
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; };
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; };
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; };
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; };
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; };
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; };
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; };
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; };
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; };
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; };
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; };
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; };
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; };
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; };
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; };
|
||||
8BC6025C073B072D006C4272 /* ConsoleHBuss.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ConsoleHBuss.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; };
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleHBuss.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* ConsoleHBuss.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleHBuss.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* ConsoleHBuss.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleHBuss.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHBussVersion.h; sourceTree = "<group>"; };
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; };
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; };
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BC6025B073B072D006C4272 /* ConsoleHBuss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHBuss.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsoleHBuss.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* ConsoleHBuss */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ConsoleHBuss;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */,
|
||||
8BA05A7D072073D200365D66 /* AUPublic */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* ConsoleHBuss.h */,
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */,
|
||||
8BA05A670720730100365D66 /* ConsoleHBuss.exp */,
|
||||
8BA05A680720730100365D66 /* ConsoleHBuss.r */,
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A7D072073D200365D66 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7E072073D200365D66 /* AUBase */,
|
||||
8BA05A99072073D200365D66 /* OtherBases */,
|
||||
8BA05AA6072073D200365D66 /* Utility */,
|
||||
);
|
||||
name = AUPublic;
|
||||
path = Extras/CoreAudio/AudioUnits/AUPublic;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
8BA05A7E072073D200365D66 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */,
|
||||
8BA05A80072073D200365D66 /* AUBase.h */,
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */,
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */,
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */,
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */,
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */,
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */,
|
||||
8BA05A87072073D200365D66 /* AUResources.r */,
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */,
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */,
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */,
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A99072073D200365D66 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */,
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AA6072073D200365D66 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */,
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */,
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */,
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */,
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */,
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */,
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */,
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */,
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */,
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */,
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */,
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */,
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */,
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */,
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */,
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */,
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */,
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */,
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */,
|
||||
);
|
||||
name = PublicUtility;
|
||||
path = Extras/CoreAudio/PublicUtility;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6E0720730100365D66 /* ConsoleHBussVersion.h in Headers */,
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */,
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */,
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */,
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */,
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */,
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */,
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */,
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */,
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */,
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */,
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */,
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */,
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */,
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* ConsoleHBuss.h in Headers */,
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */,
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */,
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHBuss" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConsoleHBuss;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ConsoleHBuss;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHBuss" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ConsoleHBuss */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B4119B70749654200361ABE /* ConsoleHBuss.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* ConsoleHBuss.cpp in Sources */,
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */,
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */,
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */,
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */,
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */,
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */,
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */,
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */,
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */,
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */,
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */,
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */,
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C167EFE841241C02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHBuss.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHBuss;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHBuss.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.4;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHBuss;
|
||||
SDKROOT = macosx10.5;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = all;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3E4BA248089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA249089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHBuss" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHBuss" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/ConsoleHBuss/ConsoleHBussVersion.h
Executable file
58
plugins/MacAU/ConsoleHBuss/ConsoleHBussVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: ConsoleHBussVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 __ConsoleHBussVersion_h__
|
||||
#define __ConsoleHBussVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kConsoleHBussVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kConsoleHBussVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define ConsoleHBuss_COMP_MANF 'Dthr'
|
||||
#define ConsoleHBuss_COMP_SUBTYPE 'chpb'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/ConsoleHBuss/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/ConsoleHBuss/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/ConsoleHBuss/Info.plist
Executable file
28
plugins/MacAU/ConsoleHBuss/Info.plist
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
5
plugins/MacAU/ConsoleHBuss/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/ConsoleHBuss/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
16
plugins/MacAU/ConsoleHBuss/version.plist
Executable file
16
plugins/MacAU/ConsoleHBuss/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>
|
||||
1097
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
1097
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
File diff suppressed because it is too large
Load diff
1
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.exp
Executable file
1
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_ConsoleHChannelEntry
|
||||
313
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.h
Executable file
313
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.h
Executable file
|
|
@ -0,0 +1,313 @@
|
|||
/*
|
||||
* File: ConsoleHChannel.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHChannelVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHChannel_h__
|
||||
#define __ConsoleHChannel_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHChannel Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
static const float kDefaultValue_ParamCRS = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamTRF = 0.5;
|
||||
static const float kDefaultValue_ParamTRG = 0.0;
|
||||
static const float kDefaultValue_ParamTRB = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.0;
|
||||
static const float kDefaultValue_ParamHMB = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.0;
|
||||
static const float kDefaultValue_ParamLMB = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.0;
|
||||
static const float kDefaultValue_ParamBSB = 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 kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
static CFStringRef kParameterCRSName = CFSTR("CrossFd");
|
||||
|
||||
static CFStringRef kParameterTRFUnit = CFSTR("crush");
|
||||
static CFStringRef kParameterTRFName = CFSTR("Tr Freq");
|
||||
static CFStringRef kParameterTRGName = CFSTR("Treble");
|
||||
static CFStringRef kParameterTRBName = CFSTR("TrCrush");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HM Freq");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HighMid");
|
||||
static CFStringRef kParameterHMBName = CFSTR("HMCrush");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LM Freq");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LowMid");
|
||||
static CFStringRef kParameterLMBName = CFSTR("LMCrush");
|
||||
static CFStringRef kParameterBSFName = CFSTR("Bs Freq");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
static CFStringRef kParameterBSBName = CFSTR("BsCrush");
|
||||
|
||||
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_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_PAN =24,
|
||||
kParam_FAD =25,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=26
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
#pragma mark ____ConsoleHChannel
|
||||
class ConsoleHChannel : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHChannel(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHChannel () { 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 kConsoleHChannelVersion; }
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
|
||||
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
|
||||
biqs_outL, biqs_outR, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
double iirHPositionR[23];
|
||||
double iirHAngleR[23];
|
||||
bool hBypass;
|
||||
double iirLPositionL[15];
|
||||
double iirLAngleL[15];
|
||||
double iirLPositionR[15];
|
||||
double iirLAngleR[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
double dBaR[dscBuf+5];
|
||||
double dBaPosR;
|
||||
int dBaXR;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.r
Executable file
61
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: ConsoleHChannel.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHChannelVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_ConsoleHChannel 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ConsoleHChannel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_ConsoleHChannel
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE ConsoleHChannel_COMP_SUBTYPE
|
||||
#define COMP_MANUF ConsoleHChannel_COMP_MANF
|
||||
|
||||
#define VERSION kConsoleHChannelVersion
|
||||
#define NAME "Airwindows: ConsoleHChannel"
|
||||
#define DESCRIPTION "ConsoleHChannel AU"
|
||||
#define ENTRY_POINT "ConsoleHChannelEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,107 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
303,
|
||||
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 = 784126220;
|
||||
PBXWorkspaceStateSaveDate = 784126220;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1308, 19872}}";
|
||||
sepNavSelRange = "{29117, 23722}";
|
||||
sepNavVisRange = "{52032, 1445}";
|
||||
sepNavWindowFrame = "{{5, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2948, 0}";
|
||||
sepNavVisRange = "{1075, 1936}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ConsoleHChannel.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 4878}}";
|
||||
sepNavSelRange = "{6299, 25}";
|
||||
sepNavVisRange = "{5969, 1043}";
|
||||
sepNavWindowFrame = "{{7, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,490 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; };
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; };
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; };
|
||||
8B4119B70749654200361ABE /* ConsoleHChannel.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* ConsoleHChannel.r */; };
|
||||
8BA05A6B0720730100365D66 /* ConsoleHChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleHChannel.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* ConsoleHChannelVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */; };
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; };
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; };
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; };
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; };
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; };
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; };
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; };
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; };
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; };
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; };
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; };
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; };
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; };
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; };
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; };
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; };
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; };
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; };
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; };
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; };
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; };
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; };
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; };
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; };
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; };
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; };
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; };
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; };
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; };
|
||||
8BC6025C073B072D006C4272 /* ConsoleHChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ConsoleHChannel.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; };
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleHChannel.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* ConsoleHChannel.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleHChannel.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* ConsoleHChannel.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleHChannel.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHChannelVersion.h; sourceTree = "<group>"; };
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; };
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; };
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BC6025B073B072D006C4272 /* ConsoleHChannel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHChannel.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsoleHChannel.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* ConsoleHChannel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ConsoleHChannel;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */,
|
||||
8BA05A7D072073D200365D66 /* AUPublic */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* ConsoleHChannel.h */,
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */,
|
||||
8BA05A670720730100365D66 /* ConsoleHChannel.exp */,
|
||||
8BA05A680720730100365D66 /* ConsoleHChannel.r */,
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A7D072073D200365D66 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7E072073D200365D66 /* AUBase */,
|
||||
8BA05A99072073D200365D66 /* OtherBases */,
|
||||
8BA05AA6072073D200365D66 /* Utility */,
|
||||
);
|
||||
name = AUPublic;
|
||||
path = Extras/CoreAudio/AudioUnits/AUPublic;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
8BA05A7E072073D200365D66 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */,
|
||||
8BA05A80072073D200365D66 /* AUBase.h */,
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */,
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */,
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */,
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */,
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */,
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */,
|
||||
8BA05A87072073D200365D66 /* AUResources.r */,
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */,
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */,
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */,
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A99072073D200365D66 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */,
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AA6072073D200365D66 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */,
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */,
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */,
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */,
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */,
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */,
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */,
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */,
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */,
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */,
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */,
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */,
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */,
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */,
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */,
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */,
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */,
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */,
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */,
|
||||
);
|
||||
name = PublicUtility;
|
||||
path = Extras/CoreAudio/PublicUtility;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6E0720730100365D66 /* ConsoleHChannelVersion.h in Headers */,
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */,
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */,
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */,
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */,
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */,
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */,
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */,
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */,
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */,
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */,
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */,
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */,
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */,
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* ConsoleHChannel.h in Headers */,
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */,
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */,
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHChannel" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConsoleHChannel;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ConsoleHChannel;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHChannel" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ConsoleHChannel */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B4119B70749654200361ABE /* ConsoleHChannel.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* ConsoleHChannel.cpp in Sources */,
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */,
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */,
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */,
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */,
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */,
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */,
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */,
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */,
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */,
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */,
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */,
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */,
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C167EFE841241C02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHChannel.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHChannel;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHChannel.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.4;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHChannel;
|
||||
SDKROOT = macosx10.5;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = all;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3E4BA248089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA249089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHChannel" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHChannel" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/ConsoleHChannel/ConsoleHChannelVersion.h
Executable file
58
plugins/MacAU/ConsoleHChannel/ConsoleHChannelVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: ConsoleHChannelVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 __ConsoleHChannelVersion_h__
|
||||
#define __ConsoleHChannelVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kConsoleHChannelVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kConsoleHChannelVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define ConsoleHChannel_COMP_MANF 'Dthr'
|
||||
#define ConsoleHChannel_COMP_SUBTYPE 'chpc'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/ConsoleHChannel/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/ConsoleHChannel/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/ConsoleHChannel/Info.plist
Executable file
28
plugins/MacAU/ConsoleHChannel/Info.plist
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>Dthr</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
5
plugins/MacAU/ConsoleHChannel/StarterAU_Prefix.pch
Executable file
5
plugins/MacAU/ConsoleHChannel/StarterAU_Prefix.pch
Executable file
|
|
@ -0,0 +1,5 @@
|
|||
//
|
||||
// Prefix header for all source files of the '«PROJECTNAMEASIDENTIFIER»' target in the '«PROJECTNAMEASIDENTIFIER»' project.
|
||||
//
|
||||
|
||||
#include <CoreServices/CoreServices.h>
|
||||
16
plugins/MacAU/ConsoleHChannel/version.plist
Executable file
16
plugins/MacAU/ConsoleHChannel/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>
|
||||
847
plugins/MacAU/ConsoleHPre/ConsoleHPre.cpp
Executable file
847
plugins/MacAU/ConsoleHPre/ConsoleHPre.cpp
Executable file
|
|
@ -0,0 +1,847 @@
|
|||
/*
|
||||
* File: ConsoleHPre.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
ConsoleHPre.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "ConsoleHPre.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
COMPONENT_ENTRY(ConsoleHPre)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPre
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ConsoleHPre::ConsoleHPre(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_TRM, kDefaultValue_ParamTRM );
|
||||
SetParameter(kParam_MOR, kDefaultValue_ParamMOR );
|
||||
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_MID, kDefaultValue_ParamMID );
|
||||
SetParameter(kParam_LOW, kDefaultValue_ParamLOW );
|
||||
SetParameter(kParam_CRS, kDefaultValue_ParamCRS );
|
||||
|
||||
SetParameter(kParam_TRF, kDefaultValue_ParamTRF );
|
||||
SetParameter(kParam_TRG, kDefaultValue_ParamTRG );
|
||||
SetParameter(kParam_TRB, kDefaultValue_ParamTRB );
|
||||
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
|
||||
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
|
||||
SetParameter(kParam_HMB, kDefaultValue_ParamHMB );
|
||||
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
|
||||
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
|
||||
SetParameter(kParam_LMB, kDefaultValue_ParamLMB );
|
||||
SetParameter(kParam_BSF, kDefaultValue_ParamBSF );
|
||||
SetParameter(kParam_BSG, kDefaultValue_ParamBSG );
|
||||
SetParameter(kParam_BSB, kDefaultValue_ParamBSB );
|
||||
|
||||
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);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_TRM:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRMName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
|
||||
outParameterInfo.minValue = 0;
|
||||
outParameterInfo.maxValue = 4;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRM;
|
||||
break;
|
||||
case kParam_MOR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMORName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMOR;
|
||||
break;
|
||||
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_MID:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMIDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMID;
|
||||
break;
|
||||
case kParam_LOW:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOWName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOW;
|
||||
break;
|
||||
case kParam_CRS:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCRSName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamCRS;
|
||||
break;
|
||||
|
||||
case kParam_TRF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTRFUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRF;
|
||||
break;
|
||||
case kParam_TRG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRG;
|
||||
break;
|
||||
case kParam_TRB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRB;
|
||||
break;
|
||||
case kParam_HMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
|
||||
break;
|
||||
case kParam_HMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
|
||||
break;
|
||||
case kParam_HMB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMB;
|
||||
break;
|
||||
case kParam_LMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
|
||||
break;
|
||||
case kParam_LMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
|
||||
break;
|
||||
case kParam_LMB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMB;
|
||||
break;
|
||||
case kParam_BSF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSF;
|
||||
break;
|
||||
case kParam_BSG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSG;
|
||||
break;
|
||||
case kParam_BSB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSB;
|
||||
break;
|
||||
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
case kParam_ATK:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterATKName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamATK;
|
||||
break;
|
||||
case kParam_RLS:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterRLSName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamRLS;
|
||||
break;
|
||||
case kParam_GAT:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGATName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamGAT;
|
||||
break;
|
||||
|
||||
case kParam_LOP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterLOPUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOP;
|
||||
break;
|
||||
case kParam_HIP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIP;
|
||||
break;
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// ConsoleHPre::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____ConsoleHPreEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPreKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void ConsoleHPre::ConsoleHPreKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
//SmoothEQ3
|
||||
|
||||
for (int x = 0; x < biqs_total; x++) {
|
||||
high[x] = 0.0;
|
||||
hmid[x] = 0.0;
|
||||
lmid[x] = 0.0;
|
||||
bass[x] = 0.0;
|
||||
}
|
||||
//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 count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
iirHAngle[count] = 0.0;
|
||||
}
|
||||
hBypass = false;
|
||||
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPosition[count] = 0.0;
|
||||
iirLAngle[count] = 0.0;
|
||||
}
|
||||
lBypass = false;
|
||||
//Cabs2
|
||||
|
||||
for(int count = 0; count < dscBuf+2; count++) {
|
||||
dBaL[count] = 0.0;
|
||||
}
|
||||
dBaPosL = 0.0;
|
||||
dBaXL = 1;
|
||||
//Discontapeity
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0;
|
||||
lastSlewpleL = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
lFreqA = 1.0; lFreqB = 1.0;
|
||||
hFreqA = 0.0; hFreqB = 0.0;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPreKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void ConsoleHPre::ConsoleHPreKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double moreTapeHack = (GetParameter( kParam_MOR )*2.0)+1.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_MOR )*0.42,3.0)*overallscale,0.00001);
|
||||
//Discontapeity
|
||||
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (GetParameter( kParam_MID )-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
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
|
||||
|
||||
//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
|
||||
|
||||
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 );
|
||||
//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);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_GAT ),4.0),sqrt(bezCThresh+1.0));
|
||||
//Dynamics2
|
||||
|
||||
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_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
|
||||
//Discontapeity
|
||||
|
||||
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
|
||||
//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
|
||||
|
||||
//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];
|
||||
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+(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;
|
||||
}
|
||||
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;
|
||||
//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
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
|
||||
if (hFreq > 0.0) {
|
||||
double lowSample = inputSampleL;
|
||||
for(int count = 0; count < 21; count++) {
|
||||
iirHAngle[count] = (iirHAngle[count]*(1.0-hFreq))+((lowSample-iirHPosition[count])*hFreq);
|
||||
lowSample = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(lowSample*hFreq);
|
||||
iirHPosition[count] = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(lowSample*hFreq);
|
||||
inputSampleL -= (lowSample * (1.0/21.0));
|
||||
} //the highpass
|
||||
hBypass = false;
|
||||
} else {
|
||||
if (!hBypass) {
|
||||
hBypass = true;
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
iirHAngle[count] = 0.0;
|
||||
}
|
||||
} //blank out highpass if jut switched off
|
||||
}
|
||||
const double lFreq = (lFreqA*temp)+(lFreqB*(1.0-temp));
|
||||
if (lFreq < 1.0) {
|
||||
for(int count = 0; count < 13; count++) {
|
||||
iirLAngle[count] = (iirLAngle[count]*(1.0-lFreq))+((inputSampleL-iirLPosition[count])*lFreq);
|
||||
inputSampleL = ((iirLPosition[count]+(iirLAngle[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);
|
||||
iirLPosition[count] = ((iirLPosition[count]+(iirLAngle[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);
|
||||
} //the lowpass
|
||||
lBypass = false;
|
||||
} else {
|
||||
if (!lBypass) {
|
||||
lBypass = true;
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPosition[count] = 0.0;
|
||||
iirLAngle[count] = 0.0;
|
||||
}
|
||||
} //blank out lowpass if just switched off
|
||||
}
|
||||
//Cabs2
|
||||
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
|
||||
inputSampleL *= gain;
|
||||
//applies smoothed fader gain
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
1
plugins/MacAU/ConsoleHPre/ConsoleHPre.exp
Executable file
1
plugins/MacAU/ConsoleHPre/ConsoleHPre.exp
Executable file
|
|
@ -0,0 +1 @@
|
|||
_ConsoleHPreEntry
|
||||
300
plugins/MacAU/ConsoleHPre/ConsoleHPre.h
Executable file
300
plugins/MacAU/ConsoleHPre/ConsoleHPre.h
Executable file
|
|
@ -0,0 +1,300 @@
|
|||
/*
|
||||
* File: ConsoleHPre.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHPreVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHPre_h__
|
||||
#define __ConsoleHPre_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHPre Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
static const float kDefaultValue_ParamCRS = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamTRF = 0.5;
|
||||
static const float kDefaultValue_ParamTRG = 0.0;
|
||||
static const float kDefaultValue_ParamTRB = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.0;
|
||||
static const float kDefaultValue_ParamHMB = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.0;
|
||||
static const float kDefaultValue_ParamLMB = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.0;
|
||||
static const float kDefaultValue_ParamBSB = 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 kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
static CFStringRef kParameterCRSName = CFSTR("CrossFd");
|
||||
|
||||
static CFStringRef kParameterTRFUnit = CFSTR("crush");
|
||||
static CFStringRef kParameterTRFName = CFSTR("Tr Freq");
|
||||
static CFStringRef kParameterTRGName = CFSTR("Treble");
|
||||
static CFStringRef kParameterTRBName = CFSTR("TrCrush");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HM Freq");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HighMid");
|
||||
static CFStringRef kParameterHMBName = CFSTR("HMCrush");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LM Freq");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LowMid");
|
||||
static CFStringRef kParameterLMBName = CFSTR("LMCrush");
|
||||
static CFStringRef kParameterBSFName = CFSTR("Bs Freq");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
static CFStringRef kParameterBSBName = CFSTR("BsCrush");
|
||||
|
||||
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_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_FAD =24,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=25
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
#pragma mark ____ConsoleHPre
|
||||
class ConsoleHPre : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHPre(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHPre () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new ConsoleHPreKernel(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 kConsoleHPreVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class ConsoleHPreKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
ConsoleHPreKernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double lowFastLIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2,
|
||||
biqs_cL1, biqs_cL2,
|
||||
biqs_outL, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//HipCrush with four bands
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPosition[23];
|
||||
double iirHAngle[23];
|
||||
bool hBypass;
|
||||
double iirLPosition[15];
|
||||
double iirLAngle[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg16L[17];
|
||||
double avg8L[9];
|
||||
double avg4L[5];
|
||||
double avg2L[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewpleL;
|
||||
//preTapeHack
|
||||
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacAU/ConsoleHPre/ConsoleHPre.r
Executable file
61
plugins/MacAU/ConsoleHPre/ConsoleHPre.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: ConsoleHPre.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHPreVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_ConsoleHPre 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ConsoleHPre~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_ConsoleHPre
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE ConsoleHPre_COMP_SUBTYPE
|
||||
#define COMP_MANUF ConsoleHPre_COMP_MANF
|
||||
|
||||
#define VERSION kConsoleHPreVersion
|
||||
#define NAME "Airwindows: ConsoleHPre"
|
||||
#define DESCRIPTION "ConsoleHPre AU"
|
||||
#define ENTRY_POINT "ConsoleHPreEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1358
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.mode1v3
Executable file
1358
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
131
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.pbxuser
Executable file
131
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.pbxuser
Executable file
|
|
@ -0,0 +1,131 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* ConsoleHPre */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
292,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
252,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 784132118;
|
||||
PBXWorkspaceStateSaveDate = 784132118;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B7D6CFB2EBCEAA2000B38FA /* PlistBookmark */ = 8B7D6CFB2EBCEAA2000B38FA /* PlistBookmark */;
|
||||
8B7D6CFC2EBCEAA2000B38FA /* PBXBookmark */ = 8B7D6CFC2EBCEAA2000B38FA /* PBXBookmark */;
|
||||
8B7D6CFD2EBCEAA2000B38FA /* PBXTextBookmark */ = 8B7D6CFD2EBCEAA2000B38FA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B7D6CFB2EBCEAA2000B38FA /* PlistBookmark */ = {
|
||||
isa = PlistBookmark;
|
||||
fRef = 8D01CCD10486CAD60068D4B7 /* Info.plist */;
|
||||
fallbackIsa = PBXBookmark;
|
||||
isK = 0;
|
||||
kPath = (
|
||||
CFBundleName,
|
||||
);
|
||||
name = /Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ConsoleHPre/Info.plist;
|
||||
rLen = 0;
|
||||
rLoc = 9223372036854775807;
|
||||
};
|
||||
8B7D6CFC2EBCEAA2000B38FA /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHPre.cpp */;
|
||||
};
|
||||
8B7D6CFD2EBCEAA2000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHPre.cpp */;
|
||||
name = "ConsoleHPre.cpp: 779";
|
||||
rLen = 0;
|
||||
rLoc = 37534;
|
||||
rType = 0;
|
||||
vrLen = 502;
|
||||
vrLoc = 38930;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ConsoleHPre.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1092, 15588}}";
|
||||
sepNavSelRange = "{37534, 0}";
|
||||
sepNavVisRange = "{38930, 502}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ConsoleHPreVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2920, 0}";
|
||||
sepNavVisRange = "{969, 2014}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ConsoleHPre.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 6300}}";
|
||||
sepNavSelRange = "{8314, 0}";
|
||||
sepNavVisRange = "{9159, 663}";
|
||||
sepNavWindowFrame = "{{7, 42}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHPre */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
1506
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.perspectivev3
Executable file
1506
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/christopherjohnson.perspectivev3
Executable file
File diff suppressed because it is too large
Load diff
490
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/project.pbxproj
Executable file
490
plugins/MacAU/ConsoleHPre/ConsoleHPre.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,490 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */; };
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126C089847F5002C6BFC /* CAVectorUnit.h */; };
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */; };
|
||||
8B4119B70749654200361ABE /* ConsoleHPre.r in Rez */ = {isa = PBXBuildFile; fileRef = 8BA05A680720730100365D66 /* ConsoleHPre.r */; };
|
||||
8BA05A6B0720730100365D66 /* ConsoleHPre.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleHPre.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* ConsoleHPreVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleHPreVersion.h */; };
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A7F072073D200365D66 /* AUBase.cpp */; };
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A80072073D200365D66 /* AUBase.h */; };
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A81072073D200365D66 /* AUDispatch.cpp */; };
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A82072073D200365D66 /* AUDispatch.h */; };
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A83072073D200365D66 /* AUInputElement.cpp */; };
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A84072073D200365D66 /* AUInputElement.h */; };
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A85072073D200365D66 /* AUOutputElement.cpp */; };
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A86072073D200365D66 /* AUOutputElement.h */; };
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A88072073D200365D66 /* AUScopeElement.cpp */; };
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A89072073D200365D66 /* AUScopeElement.h */; };
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A8A072073D200365D66 /* ComponentBase.cpp */; };
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A8B072073D200365D66 /* ComponentBase.h */; };
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A9A072073D200365D66 /* AUEffectBase.cpp */; };
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A9B072073D200365D66 /* AUEffectBase.h */; };
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA7072073D200365D66 /* AUBuffer.cpp */; };
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AA8072073D200365D66 /* AUBuffer.h */; };
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */; };
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */; };
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */; };
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAC072073D200365D66 /* AUSilentTimeout.h */; };
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */; };
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */; };
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */; };
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE10720742100365D66 /* CAMutex.cpp */; };
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE20720742100365D66 /* CAMutex.h */; };
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */; };
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */; };
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AF9072074E100365D66 /* AudioToolbox.framework */; };
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05AFA072074E100365D66 /* AudioUnit.framework */; };
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8BA05B01072074F900365D66 /* CoreServices.framework */; };
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05B050720754400365D66 /* CAAUParameter.cpp */; };
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05B060720754400365D66 /* CAAUParameter.h */; };
|
||||
8BC6025C073B072D006C4272 /* ConsoleHPre.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ConsoleHPre.h */; };
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C167DFE841241C02AAC07 /* InfoPlist.strings */; };
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */; };
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
089C167EFE841241C02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
|
||||
8BA05A660720730100365D66 /* ConsoleHPre.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleHPre.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* ConsoleHPre.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleHPre.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* ConsoleHPre.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleHPre.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* ConsoleHPreVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHPreVersion.h; sourceTree = "<group>"; };
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A80072073D200365D66 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BA05A87072073D200365D66 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = AUDebugDispatcher.cpp; sourceTree = "<group>"; };
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUDebugDispatcher.h; sourceTree = "<group>"; };
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioUnit.framework; path = /System/Library/Frameworks/AudioUnit.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BC6025B073B072D006C4272 /* ConsoleHPre.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHPre.h; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHPre.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsoleHPre.component; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AUBaseHelper.cpp; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.cpp; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AUBaseHelper.h; path = Extras/CoreAudio/AudioUnits/AUPublic/Utility/AUBaseHelper.h; sourceTree = SYSTEM_DEVELOPER_DIR; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05AFC072074E100365D66 /* AudioToolbox.framework in Frameworks */,
|
||||
8BA05AFD072074E100365D66 /* AudioUnit.framework in Frameworks */,
|
||||
8BA05B02072074F900365D66 /* CoreServices.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
089C166AFE841209C02AAC07 /* ConsoleHPre */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ConsoleHPre;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8B5C7FBF076FB2C200A15F61 /* CoreAudio.framework */,
|
||||
8BA05B01072074F900365D66 /* CoreServices.framework */,
|
||||
8BA05AF9072074E100365D66 /* AudioToolbox.framework */,
|
||||
8BA05AFA072074E100365D66 /* AudioUnit.framework */,
|
||||
);
|
||||
name = "External Frameworks and Libraries";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
089C167CFE841241C02AAC07 /* Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */,
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */,
|
||||
);
|
||||
name = Resources;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
08FB77ADFE841716C02AAC07 /* Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */,
|
||||
8BA05A7D072073D200365D66 /* AUPublic */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHPre.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* ConsoleHPre.h */,
|
||||
8BA05A660720730100365D66 /* ConsoleHPre.cpp */,
|
||||
8BA05A670720730100365D66 /* ConsoleHPre.exp */,
|
||||
8BA05A680720730100365D66 /* ConsoleHPre.r */,
|
||||
8BA05A690720730100365D66 /* ConsoleHPreVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A7D072073D200365D66 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7E072073D200365D66 /* AUBase */,
|
||||
8BA05A99072073D200365D66 /* OtherBases */,
|
||||
8BA05AA6072073D200365D66 /* Utility */,
|
||||
);
|
||||
name = AUPublic;
|
||||
path = Extras/CoreAudio/AudioUnits/AUPublic;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
8BA05A7E072073D200365D66 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */,
|
||||
8BA05A80072073D200365D66 /* AUBase.h */,
|
||||
8BA05A81072073D200365D66 /* AUDispatch.cpp */,
|
||||
8BA05A82072073D200365D66 /* AUDispatch.h */,
|
||||
8BA05A83072073D200365D66 /* AUInputElement.cpp */,
|
||||
8BA05A84072073D200365D66 /* AUInputElement.h */,
|
||||
8BA05A85072073D200365D66 /* AUOutputElement.cpp */,
|
||||
8BA05A86072073D200365D66 /* AUOutputElement.h */,
|
||||
8BA05A87072073D200365D66 /* AUResources.r */,
|
||||
8BA05A88072073D200365D66 /* AUScopeElement.cpp */,
|
||||
8BA05A89072073D200365D66 /* AUScopeElement.h */,
|
||||
8BA05A8A072073D200365D66 /* ComponentBase.cpp */,
|
||||
8BA05A8B072073D200365D66 /* ComponentBase.h */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A99072073D200365D66 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05A9A072073D200365D66 /* AUEffectBase.cpp */,
|
||||
8BA05A9B072073D200365D66 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AA6072073D200365D66 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F7C347EE0ECE5AF8008ADFB6 /* AUBaseHelper.cpp */,
|
||||
F7C347EF0ECE5AF8008ADFB6 /* AUBaseHelper.h */,
|
||||
8BA05AA7072073D200365D66 /* AUBuffer.cpp */,
|
||||
8BA05AA8072073D200365D66 /* AUBuffer.h */,
|
||||
8BA05AA9072073D200365D66 /* AUDebugDispatcher.cpp */,
|
||||
8BA05AAA072073D200365D66 /* AUDebugDispatcher.h */,
|
||||
8BA05AAB072073D200365D66 /* AUInputFormatConverter.h */,
|
||||
8BA05AAC072073D200365D66 /* AUSilentTimeout.h */,
|
||||
8BA05AAD072073D200365D66 /* AUTimestampGenerator.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05AEB0720742700365D66 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BA05B050720754400365D66 /* CAAUParameter.cpp */,
|
||||
8BA05B060720754400365D66 /* CAAUParameter.h */,
|
||||
8BA05ADF0720742100365D66 /* CAAudioChannelLayout.cpp */,
|
||||
8BA05AE00720742100365D66 /* CAAudioChannelLayout.h */,
|
||||
8BA05AE10720742100365D66 /* CAMutex.cpp */,
|
||||
8BA05AE20720742100365D66 /* CAMutex.h */,
|
||||
8BA05AE30720742100365D66 /* CAStreamBasicDescription.cpp */,
|
||||
8BA05AE40720742100365D66 /* CAStreamBasicDescription.h */,
|
||||
3EEA126D089847F5002C6BFC /* CAVectorUnitTypes.h */,
|
||||
3EEA126B089847F5002C6BFC /* CAVectorUnit.cpp */,
|
||||
3EEA126C089847F5002C6BFC /* CAVectorUnit.h */,
|
||||
);
|
||||
name = PublicUtility;
|
||||
path = Extras/CoreAudio/PublicUtility;
|
||||
sourceTree = SYSTEM_DEVELOPER_DIR;
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6E0720730100365D66 /* ConsoleHPreVersion.h in Headers */,
|
||||
8BA05AAF072073D300365D66 /* AUBase.h in Headers */,
|
||||
8BA05AB1072073D300365D66 /* AUDispatch.h in Headers */,
|
||||
8BA05AB3072073D300365D66 /* AUInputElement.h in Headers */,
|
||||
8BA05AB5072073D300365D66 /* AUOutputElement.h in Headers */,
|
||||
8BA05AB8072073D300365D66 /* AUScopeElement.h in Headers */,
|
||||
8BA05ABA072073D300365D66 /* ComponentBase.h in Headers */,
|
||||
8BA05AC7072073D300365D66 /* AUEffectBase.h in Headers */,
|
||||
8BA05AD3072073D300365D66 /* AUBuffer.h in Headers */,
|
||||
8BA05AD5072073D300365D66 /* AUDebugDispatcher.h in Headers */,
|
||||
8BA05AD6072073D300365D66 /* AUInputFormatConverter.h in Headers */,
|
||||
8BA05AD7072073D300365D66 /* AUSilentTimeout.h in Headers */,
|
||||
8BA05AD8072073D300365D66 /* AUTimestampGenerator.h in Headers */,
|
||||
8BA05AE60720742100365D66 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BA05AE80720742100365D66 /* CAMutex.h in Headers */,
|
||||
8BA05AEA0720742100365D66 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BA05B080720754400365D66 /* CAAUParameter.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* ConsoleHPre.h in Headers */,
|
||||
3EEA126F089847F5002C6BFC /* CAVectorUnit.h in Headers */,
|
||||
3EEA1270089847F5002C6BFC /* CAVectorUnitTypes.h in Headers */,
|
||||
F7C347F10ECE5AF8008ADFB6 /* AUBaseHelper.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHPre */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHPre" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConsoleHPre;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ConsoleHPre;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* ConsoleHPre.component */;
|
||||
productType = "com.apple.product-type.bundle";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
buildConfigurationList = 3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHPre" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = English;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
English,
|
||||
Japanese,
|
||||
French,
|
||||
German,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ConsoleHPre */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHPre */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8D01CCCA0486CAD60068D4B7 /* InfoPlist.strings in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXRezBuildPhase section */
|
||||
8D01CCCF0486CAD60068D4B7 /* Rez */ = {
|
||||
isa = PBXRezBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8B4119B70749654200361ABE /* ConsoleHPre.r in Rez */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXRezBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BA05A6B0720730100365D66 /* ConsoleHPre.cpp in Sources */,
|
||||
8BA05AAE072073D300365D66 /* AUBase.cpp in Sources */,
|
||||
8BA05AB0072073D300365D66 /* AUDispatch.cpp in Sources */,
|
||||
8BA05AB2072073D300365D66 /* AUInputElement.cpp in Sources */,
|
||||
8BA05AB4072073D300365D66 /* AUOutputElement.cpp in Sources */,
|
||||
8BA05AB7072073D300365D66 /* AUScopeElement.cpp in Sources */,
|
||||
8BA05AB9072073D300365D66 /* ComponentBase.cpp in Sources */,
|
||||
8BA05AC6072073D300365D66 /* AUEffectBase.cpp in Sources */,
|
||||
8BA05AD2072073D300365D66 /* AUBuffer.cpp in Sources */,
|
||||
8BA05AD4072073D300365D66 /* AUDebugDispatcher.cpp in Sources */,
|
||||
8BA05AE50720742100365D66 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BA05AE70720742100365D66 /* CAMutex.cpp in Sources */,
|
||||
8BA05AE90720742100365D66 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BA05B070720754400365D66 /* CAAUParameter.cpp in Sources */,
|
||||
3EEA126E089847F5002C6BFC /* CAVectorUnit.cpp in Sources */,
|
||||
F7C347F00ECE5AF8008ADFB6 /* AUBaseHelper.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
089C167EFE841241C02AAC07 /* English */,
|
||||
);
|
||||
name = InfoPlist.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
3E4BA244089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHPre.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d ppc64_$ppc64 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHPre;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA245089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = (
|
||||
ppc,
|
||||
i386,
|
||||
x86_64,
|
||||
);
|
||||
EXPORTED_SYMBOLS_FILE = ConsoleHPre.exp;
|
||||
GCC_ENABLE_FIX_AND_CONTINUE = NO;
|
||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||
GENERATE_PKGINFO_FILE = YES;
|
||||
INFOPLIST_FILE = Info.plist;
|
||||
INSTALL_PATH = "$(HOME)/Library/Audio/Plug-Ins/Components/";
|
||||
LIBRARY_STYLE = Bundle;
|
||||
MACOSX_DEPLOYMENT_TARGET = 10.4;
|
||||
OTHER_LDFLAGS = "-bundle";
|
||||
OTHER_REZFLAGS = "-d ppc_$ppc -d i386_$i386 -d x86_64_$x86_64 -I /System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Versions/A/Headers -I \"$(DEVELOPER_DIR)/Examples/CoreAudio/AudioUnits/AUPublic/AUBase\"";
|
||||
PRODUCT_NAME = ConsoleHPre;
|
||||
SDKROOT = macosx10.5;
|
||||
STRIP_INSTALLED_PRODUCT = YES;
|
||||
STRIP_STYLE = all;
|
||||
WRAPPER_EXTENSION = component;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
3E4BA248089833B7007656EC /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
3E4BA249089833B7007656EC /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
GCC_C_LANGUAGE_STANDARD = c99;
|
||||
SDKROOT = macosx10.6;
|
||||
WARNING_CFLAGS = (
|
||||
"-Wmost",
|
||||
"-Wno-four-char-constants",
|
||||
"-Wno-unknown-pragmas",
|
||||
);
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHPre" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHPre" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA248089833B7007656EC /* Debug */,
|
||||
3E4BA249089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = 089C1669FE841209C02AAC07 /* Project object */;
|
||||
}
|
||||
58
plugins/MacAU/ConsoleHPre/ConsoleHPreVersion.h
Executable file
58
plugins/MacAU/ConsoleHPre/ConsoleHPreVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: ConsoleHPreVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 __ConsoleHPreVersion_h__
|
||||
#define __ConsoleHPreVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kConsoleHPreVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kConsoleHPreVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define ConsoleHPre_COMP_MANF 'Dthr'
|
||||
#define ConsoleHPre_COMP_SUBTYPE 'chpp'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
BIN
plugins/MacAU/ConsoleHPre/English.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacAU/ConsoleHPre/English.lproj/InfoPlist.strings
Executable file
Binary file not shown.
28
plugins/MacAU/ConsoleHPre/Info.plist
Executable file
28
plugins/MacAU/ConsoleHPre/Info.plist
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.airwindows.audiounit.${PRODUCT_NAME:identifier}</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PROJECTNAMEASIDENTIFIER}</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>DthX</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
16
plugins/MacAU/ConsoleHPre/version.plist
Executable file
16
plugins/MacAU/ConsoleHPre/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>
|
||||
|
|
@ -231,17 +231,15 @@ ComponentResult ChimeyDeluxe::Initialize()
|
|||
void ChimeyDeluxe::ChimeyDeluxeKernel::Reset()
|
||||
{
|
||||
for(int x=0; x<17; x++) {
|
||||
for (int w = 0; w < bez_total; w++) bezComp[w][x] = 0.0;
|
||||
bezComp[bez_cycle][x] = 1.0;
|
||||
for(int y=0; y<14; y++) {
|
||||
angS[x][y] = 0.0;angA[x][y] = 0.0;
|
||||
angS[x][y] = 0.0;
|
||||
angA[x][y] = 0.0;
|
||||
}
|
||||
}
|
||||
for(int y=0; y<14; y++) {
|
||||
angG[y] = 0.0;
|
||||
}
|
||||
|
||||
muComp = 1.0;
|
||||
muSpd = 100.0;
|
||||
|
||||
for(int y=0; y<14; y++) angG[y] = 0.0;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
|
|
@ -263,85 +261,88 @@ void ChimeyDeluxe::ChimeyDeluxeKernel::Process( const Float32 *inSourceP,
|
|||
|
||||
double drive = 1.0;
|
||||
double pad = 1.0;
|
||||
angG[1] = GetParameter( kParam_A )+0.5;
|
||||
angG[1] = (GetParameter( kParam_A )+1.5)*0.5;
|
||||
if (pad > angG[1]) pad = angG[1];
|
||||
if (drive < angG[1]) drive = angG[1];
|
||||
angG[0] = (1.0+angG[1])*0.5; //if boost, boost half
|
||||
if (angG[0] > angG[1]) angG[0] = angG[1];
|
||||
angG[2] = GetParameter( kParam_B )+0.5;
|
||||
angG[2] = (GetParameter( kParam_B )+1.5)*0.5;
|
||||
if (pad > angG[2]) pad = angG[2];
|
||||
if (drive < angG[2]) drive = angG[2];
|
||||
angG[3] = GetParameter( kParam_C )+0.5;
|
||||
angG[3] = (GetParameter( kParam_C )+1.5)*0.5;
|
||||
if (pad > angG[3]) pad = angG[3];
|
||||
if (drive < angG[3]) drive = angG[3];
|
||||
angG[4] = GetParameter( kParam_D )+0.5;
|
||||
angG[4] = (GetParameter( kParam_D )+1.5)*0.5;
|
||||
if (pad > angG[4]) pad = angG[4];
|
||||
if (drive < angG[4]) drive = angG[4];
|
||||
angG[5] = GetParameter( kParam_E )+0.5;
|
||||
angG[5] = (GetParameter( kParam_E )+1.5)*0.5;
|
||||
if (pad > angG[5]) pad = angG[5];
|
||||
if (drive < angG[5]) drive = angG[5];
|
||||
angG[6] = GetParameter( kParam_F )+0.5;
|
||||
angG[6] = (GetParameter( kParam_F )+1.5)*0.5;
|
||||
if (pad > angG[6]) pad = angG[6];
|
||||
if (drive < angG[6]) drive = angG[6];
|
||||
angG[7] = GetParameter( kParam_G )+0.5;
|
||||
angG[7] = (GetParameter( kParam_G )+1.5)*0.5;
|
||||
if (pad > angG[7]) pad = angG[7];
|
||||
if (drive < angG[7]) drive = angG[7];
|
||||
angG[8] = GetParameter( kParam_H )+0.5;
|
||||
angG[8] = (GetParameter( kParam_H )+1.5)*0.5;
|
||||
if (pad > angG[8]) pad = angG[8];
|
||||
if (drive < angG[8]) drive = angG[8];
|
||||
angG[9] = GetParameter( kParam_I )+0.5;
|
||||
angG[9] = (GetParameter( kParam_I )+1.5)*0.5;
|
||||
if (pad > angG[9]) pad = angG[9];
|
||||
if (drive < angG[9]) drive = angG[9];
|
||||
angG[10] = GetParameter( kParam_J )+0.5;
|
||||
angG[10] = (GetParameter( kParam_J )+1.5)*0.5;
|
||||
if (pad > angG[10]) pad = angG[10];
|
||||
if (drive < angG[10]) drive = angG[10];
|
||||
angG[11] = (angG[10]+1.0)*0.5;
|
||||
angG[12] = (angG[11]+1.0)*0.5;
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double threshold = 1.0-(drive*0.23);
|
||||
double adjSpd = ((drive*120.0)+50.0)*overallscale;
|
||||
angG[12] = angG[11] = angG[10];
|
||||
if (drive > 1.0) drive = pow(drive,drive*2.0);
|
||||
double tune = 0.618+(overallscale*0.0055);
|
||||
double bezRez = (pad * drive * 0.0005)/overallscale;
|
||||
int bezFreqFraction = (int)(1.0/bezRez);
|
||||
double bezFreqTrim = (double)bezFreqFraction/(bezFreqFraction+1.0);
|
||||
bezRez = 1.0 / bezFreqFraction;
|
||||
bezFreqTrim = 1.0-(bezRez*bezFreqTrim);
|
||||
|
||||
while (nSampleFrames-- > 0) {
|
||||
double inputSample = *sourceP;
|
||||
if (fabs(inputSample)<1.18e-23) inputSample = fpd * 1.18e-17;
|
||||
double inputSampleL = *sourceP;
|
||||
if (fabs(inputSampleL)<1.18e-23) inputSampleL = fpd * 1.18e-17;
|
||||
|
||||
for (int x = 0; x < 16; x++) {
|
||||
double fr = (0.92/overallscale)+(overallscale*0.01);
|
||||
double band = inputSample; inputSample = 0.0;
|
||||
double band = inputSampleL; inputSampleL = 0.0;
|
||||
for (int y = 0; y < 12; y++) {
|
||||
angA[x][y] = (angA[x][y]*(1.0-fr)) + ((band-angS[x][y])*fr);
|
||||
double temp = band; band = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
angS[x][y] = ((angS[x][y]+(angA[x][y]*fr)) * (1.0-fr))+(band*fr);
|
||||
inputSample += ((temp-band)*angG[y]);
|
||||
inputSampleL += ((temp-band)*angG[y]);
|
||||
fr *= tune;
|
||||
}
|
||||
inputSample += band;
|
||||
inputSample *= threshold;
|
||||
inputSample *= (muComp/threshold);
|
||||
if (fabs(inputSample) > threshold)
|
||||
{
|
||||
muComp *= muSpd;
|
||||
if (threshold/fabs(inputSample) < threshold) muComp += threshold*fabs(inputSample);
|
||||
else muComp -= threshold/fabs(inputSample);
|
||||
muComp /= muSpd;
|
||||
} else {
|
||||
muComp *= (muSpd*muSpd);
|
||||
muComp += ((1.1+threshold)-fabs(inputSample));
|
||||
muComp /= (muSpd*muSpd);
|
||||
inputSampleL += band; //end of filter part
|
||||
bezComp[bez_cycle][x] += bezRez;
|
||||
bezComp[bez_SampL][x] += (fabs(inputSampleL) * bezRez);
|
||||
if (bezComp[bez_cycle][x] > 1.0) {
|
||||
bezComp[bez_cycle][x] = 0.0;
|
||||
bezComp[bez_CL][x] = bezComp[bez_BL][x];
|
||||
bezComp[bez_BL][x] = bezComp[bez_AL][x];
|
||||
bezComp[bez_AL][x] = bezComp[bez_SampL][x];
|
||||
bezComp[bez_SampL][x] = 0.0;
|
||||
}
|
||||
muComp = fmax(fmin(muComp,1.0),threshold);
|
||||
inputSample *= (muComp*muComp);
|
||||
muSpd = fmax(fmin(((muSpd*(muSpd-1.0))+(fabs(inputSample*adjSpd)))/muSpd,adjSpd*2.0),adjSpd);
|
||||
double z = bezComp[bez_cycle][x]*bezFreqTrim;
|
||||
double CBL = (bezComp[bez_CL][x]*(1.0-z))+(bezComp[bez_BL][x]*z);
|
||||
double BAL = (bezComp[bez_BL][x]*(1.0-z))+(bezComp[bez_AL][x]*z);
|
||||
double CBAL = (bezComp[bez_BL][x]+(CBL*(1.0-z))+(BAL*z));
|
||||
CBAL = fmin(fmax(CBAL*drive*0.23,0.0),M_PI_2);
|
||||
inputSampleL *= 1.0-sin(CBAL);
|
||||
}
|
||||
inputSample = sin(fmin(fmax(inputSample*pad,-M_PI_2),M_PI_2));
|
||||
inputSampleL /= drive;
|
||||
inputSampleL = fmin(fmax(inputSampleL*pad,-1.0),1.0); //let's do an output clip
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSample, &expon);
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSample += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSample;
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -154,9 +154,18 @@ public:
|
|||
double angS[18][15];
|
||||
double angA[18][15];
|
||||
double angG[15];
|
||||
|
||||
double muComp;
|
||||
double muSpd;
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezComp[bez_total][18];
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -49,14 +49,14 @@
|
|||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 776427414;
|
||||
PBXWorkspaceStateSaveDate = 776427414;
|
||||
PBXPerProjectTemplateStateSaveDate = 784153881;
|
||||
PBXWorkspaceStateSaveDate = 784153881;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */ = 8B33D58F2DF3AB1D0044A4FF /* PlistBookmark */;
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = 8B42CBD92E315A03001C0B57 /* PBXTextBookmark */;
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = 8BB158F92E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = 8BB158FA2E4759DF00D27777 /* PBXTextBookmark */;
|
||||
8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */ = 8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */;
|
||||
8B7D6E612EBD420A000B38FA /* PBXTextBookmark */ = 8B7D6E612EBD420A000B38FA /* PBXTextBookmark */;
|
||||
8B7D6E622EBD420A000B38FA /* PBXTextBookmark */ = 8B7D6E622EBD420A000B38FA /* PBXTextBookmark */;
|
||||
8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */ = 8BFD341B2E058DBA00CA61BB /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
|
|
@ -75,58 +75,58 @@
|
|||
rLen = 0;
|
||||
rLoc = 9223372036854775808;
|
||||
};
|
||||
8B42CBD92E315A03001C0B57 /* PBXTextBookmark */ = {
|
||||
8B7D6E1E2EBD3C70000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 299";
|
||||
rLen = 0;
|
||||
rLoc = 13653;
|
||||
rType = 0;
|
||||
vrLen = 0;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B7D6E612EBD420A000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 166";
|
||||
name = "ChimeyDeluxe.h: 170";
|
||||
rLen = 0;
|
||||
rLoc = 6181;
|
||||
rLoc = 6368;
|
||||
rType = 0;
|
||||
vrLen = 148;
|
||||
vrLen = 45;
|
||||
vrLoc = 3;
|
||||
};
|
||||
8B7D6E622EBD420A000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 298";
|
||||
rLen = 0;
|
||||
rLoc = 13653;
|
||||
rType = 0;
|
||||
vrLen = 47;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {920, 6696}}";
|
||||
sepNavSelRange = "{13457, 64}";
|
||||
sepNavVisRange = "{12723, 1520}";
|
||||
sepNavWindowFrame = "{{755, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 6390}}";
|
||||
sepNavSelRange = "{13653, 0}";
|
||||
sepNavVisRange = "{0, 47}";
|
||||
sepNavWindowFrame = "{{1, 38}, {737, 837}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ChimeyDeluxeVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{2738, 251}";
|
||||
sepNavVisRange = "{1174, 1815}";
|
||||
sepNavWindowFrame = "{{38, 48}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BB158F92E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ChimeyDeluxe.cpp */;
|
||||
name = "ChimeyDeluxe.cpp: 305";
|
||||
rLen = 0;
|
||||
rLoc = 13521;
|
||||
rType = 0;
|
||||
vrLen = 45;
|
||||
vrLoc = 13609;
|
||||
};
|
||||
8BB158FA2E4759DF00D27777 /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */;
|
||||
name = "ChimeyDeluxe.h: 161";
|
||||
rLen = 0;
|
||||
rLoc = 6181;
|
||||
rType = 0;
|
||||
vrLen = 103;
|
||||
vrLoc = 147;
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ChimeyDeluxe.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1029, 3006}}";
|
||||
sepNavSelRange = "{6181, 0}";
|
||||
sepNavVisRange = "{147, 103}";
|
||||
sepNavWindowFrame = "{{783, 74}, {967, 804}}";
|
||||
sepNavIntBoundsRect = "{{0, 0}, {948, 3258}}";
|
||||
sepNavSelRange = "{6368, 0}";
|
||||
sepNavVisRange = "{3, 45}";
|
||||
sepNavWindowFrame = "{{9, 74}, {967, 804}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
|
|
|
|||
|
|
@ -225,8 +225,8 @@
|
|||
<array/>
|
||||
<key>PerspectiveWidths</key>
|
||||
<array>
|
||||
<integer>841</integer>
|
||||
<integer>841</integer>
|
||||
<integer>737</integer>
|
||||
<integer>737</integer>
|
||||
</array>
|
||||
<key>Perspectives</key>
|
||||
<array>
|
||||
|
|
@ -326,7 +326,7 @@
|
|||
<real>288</real>
|
||||
</array>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXSmartGroupTreeModule</string>
|
||||
|
|
@ -342,7 +342,7 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<key>PBXSplitModuleInNavigatorKey</key>
|
||||
<dict>
|
||||
<key>Split0</key>
|
||||
|
|
@ -350,17 +350,17 @@
|
|||
<key>PBXProjectModuleGUID</key>
|
||||
<string>8BD7274B1D46E5A5000176F0</string>
|
||||
<key>PBXProjectModuleLabel</key>
|
||||
<string>ChimeyDeluxe.h</string>
|
||||
<string>ChimeyDeluxe.cpp</string>
|
||||
<key>_historyCapacity</key>
|
||||
<integer>0</integer>
|
||||
<key>bookmark</key>
|
||||
<string>8BB158FA2E4759DF00D27777</string>
|
||||
<string>8B7D6E622EBD420A000B38FA</string>
|
||||
<key>history</key>
|
||||
<array>
|
||||
<string>8B33D58F2DF3AB1D0044A4FF</string>
|
||||
<string>8BFD341B2E058DBA00CA61BB</string>
|
||||
<string>8BB158F92E4759DF00D27777</string>
|
||||
<string>8B42CBD92E315A03001C0B57</string>
|
||||
<string>8B7D6E612EBD420A000B38FA</string>
|
||||
<string>8B7D6E1E2EBD3C70000B38FA</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>SplitCount</key>
|
||||
|
|
@ -374,18 +374,18 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{0, 0}, {427, 47}}</string>
|
||||
<string>{{0, 0}, {427, 95}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXNavigatorGroup</string>
|
||||
<key>Proportion</key>
|
||||
<string>47pt</string>
|
||||
<string>95pt</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Proportion</key>
|
||||
<string>270pt</string>
|
||||
<string>222pt</string>
|
||||
<key>Tabs</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
@ -399,9 +399,9 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {427, 243}}</string>
|
||||
<string>{{10, 27}, {427, 195}}</string>
|
||||
<key>RubberWindowFrame</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>XCDetailModule</string>
|
||||
|
|
@ -455,7 +455,7 @@
|
|||
<key>GeometryConfiguration</key>
|
||||
<dict>
|
||||
<key>Frame</key>
|
||||
<string>{{10, 27}, {531, 352}}</string>
|
||||
<string>{{10, 27}, {427, 261}}</string>
|
||||
</dict>
|
||||
<key>Module</key>
|
||||
<string>PBXBuildResultsModule</string>
|
||||
|
|
@ -483,11 +483,11 @@
|
|||
</array>
|
||||
<key>TableOfContents</key>
|
||||
<array>
|
||||
<string>8BB158FB2E4759DF00D27777</string>
|
||||
<string>8B7D6E632EBD420A000B38FA</string>
|
||||
<string>1CA23ED40692098700951B8B</string>
|
||||
<string>8BB158FC2E4759DF00D27777</string>
|
||||
<string>8B7D6E642EBD420A000B38FA</string>
|
||||
<string>8BD7274A1D46E5A5000176F0</string>
|
||||
<string>8BB158FD2E4759DF00D27777</string>
|
||||
<string>8B7D6E652EBD420A000B38FA</string>
|
||||
<string>1CA23EDF0692099D00951B8B</string>
|
||||
<string>1CA23EE00692099D00951B8B</string>
|
||||
<string>1CA23EE10692099D00951B8B</string>
|
||||
|
|
@ -660,7 +660,7 @@
|
|||
<key>StatusbarIsVisible</key>
|
||||
<true/>
|
||||
<key>TimeStamp</key>
|
||||
<real>776427999.45691097</real>
|
||||
<real>784155146.916085</real>
|
||||
<key>ToolbarConfigUserDefaultsMinorVersion</key>
|
||||
<string>2</string>
|
||||
<key>ToolbarDisplayMode</key>
|
||||
|
|
@ -680,7 +680,7 @@
|
|||
<string>/Users/christopherjohnson/Desktop/airwindows/plugins/MacAU/ChimeyDeluxe/ChimeyDeluxe.xcodeproj</string>
|
||||
</array>
|
||||
<key>WindowString</key>
|
||||
<string>726 439 737 363 0 0 1440 878 </string>
|
||||
<string>21 216 737 363 0 0 1440 878 </string>
|
||||
<key>WindowToolsV3</key>
|
||||
<array>
|
||||
<dict>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
Binary file not shown.
744
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
744
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.cpp
Executable file
|
|
@ -0,0 +1,744 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
ConsoleHBuss.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "ConsoleHBuss.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ConsoleHBuss)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ConsoleHBuss
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ConsoleHBuss::ConsoleHBuss(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_MID, kDefaultValue_ParamMID );
|
||||
SetParameter(kParam_LOW, kDefaultValue_ParamLOW );
|
||||
|
||||
SetParameter(kParam_THR, kDefaultValue_ParamTHR );
|
||||
|
||||
SetParameter(kParam_LOP, kDefaultValue_ParamLOP );
|
||||
SetParameter(kParam_HIP, kDefaultValue_ParamHIP );
|
||||
|
||||
SetParameter(kParam_PAN, kDefaultValue_ParamPAN );
|
||||
SetParameter(kParam_FAD, kDefaultValue_ParamFAD );
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
mDebugDispatcher = new AUDebugDispatcher (this);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_MID:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMIDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMID;
|
||||
break;
|
||||
case kParam_LOW:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOWName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOW;
|
||||
break;
|
||||
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
|
||||
case kParam_LOP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterLOPUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOP;
|
||||
break;
|
||||
case kParam_HIP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIP;
|
||||
break;
|
||||
|
||||
case kParam_PAN:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterPANName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamPAN;
|
||||
break;
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::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 ConsoleHBuss::SupportedNumChannels(const AUChannelInfo ** outInfo)
|
||||
{
|
||||
if (outInfo != NULL)
|
||||
{
|
||||
static AUChannelInfo info;
|
||||
info.inChannels = 2;
|
||||
info.outChannels = 2;
|
||||
*outInfo = &info;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// ConsoleHBuss::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____ConsoleHBussEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ConsoleHBussKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHBuss::Reset(AudioUnitScope inScope, AudioUnitElement inElement)
|
||||
{
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
highFastRIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
lowFastRIIR = 0.0;
|
||||
//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;
|
||||
bezCompS[bez_cycle] = 1.0;
|
||||
//Dynamics2
|
||||
|
||||
for (int x = 0; x < hilp_total; x++) {
|
||||
highpass[x] = 0.0;
|
||||
lowpass[x] = 0.0;
|
||||
}
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0; avg32R[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0; avg16R[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0; avg8R[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0; avg4R[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0; avg2R[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0; lastSlewR = 0.0;
|
||||
lastSlewpleL = 0.0; lastSlewpleR = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
panA = 0.5; panB = 0.5;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpdL = 1.0; while (fpdL < 16386) fpdL = rand()*UINT32_MAX;
|
||||
fpdR = 1.0; while (fpdR < 16386) fpdR = rand()*UINT32_MAX;
|
||||
return noErr;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHBuss::ProcessBufferLists
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
OSStatus ConsoleHBuss::ProcessBufferLists(AudioUnitRenderActionFlags & ioActionFlags,
|
||||
const AudioBufferList & inBuffer,
|
||||
AudioBufferList & outBuffer,
|
||||
UInt32 inFramesToProcess)
|
||||
{
|
||||
Float32 * inputL = (Float32*)(inBuffer.mBuffers[0].mData);
|
||||
Float32 * inputR = (Float32*)(inBuffer.mBuffers[1].mData);
|
||||
Float32 * outputL = (Float32*)(outBuffer.mBuffers[0].mData);
|
||||
Float32 * outputR = (Float32*)(outBuffer.mBuffers[1].mData);
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (GetParameter( kParam_MID )-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
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
|
||||
|
||||
//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
|
||||
//SmoothEQ3
|
||||
|
||||
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
|
||||
|
||||
highpass[hilp_freq] = ((pow(GetParameter( kParam_HIP ),3)*24000.0)+10.0)/GetSampleRate();
|
||||
if (highpass[hilp_freq] > 0.495) highpass[hilp_freq] = 0.495;
|
||||
bool highpassEngage = true; if (GetParameter( kParam_HIP ) == 0.0) highpassEngage = false;
|
||||
|
||||
lowpass[hilp_freq] = ((pow(GetParameter( kParam_LOP ),3)*24000.0)+10.0)/GetSampleRate();
|
||||
if (lowpass[hilp_freq] > 0.495) lowpass[hilp_freq] = 0.495;
|
||||
bool lowpassEngage = true; if (GetParameter( kParam_LOP ) == 0.0) lowpassEngage = false;
|
||||
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
//previous run through the buffer is still in the filter, so we move it
|
||||
//to the A section and now it's the new starting point.
|
||||
//On the buss, highpass and lowpass are isolators meant to be moved,
|
||||
//so they are interpolated where the channels are not
|
||||
|
||||
biqK = tan(M_PI * highpass[hilp_freq]); //highpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
highpass[hilp_aB0] = norm;
|
||||
highpass[hilp_aB1] = -2.0 * highpass[hilp_aB0];
|
||||
highpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
highpass[hilp_cB0] = norm;
|
||||
highpass[hilp_cB1] = -2.0 * highpass[hilp_cB0];
|
||||
highpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
highpass[hilp_eB0] = norm;
|
||||
highpass[hilp_eB1] = -2.0 * highpass[hilp_eB0];
|
||||
highpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
highpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
biqK = tan(M_PI * lowpass[hilp_freq]); //lowpass
|
||||
norm = 1.0 / (1.0 + biqK / 1.93185165 + biqK * biqK);
|
||||
lowpass[hilp_aB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_aB1] = 2.0 * lowpass[hilp_aB0];
|
||||
lowpass[hilp_bB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_bB2] = (1.0 - biqK / 1.93185165 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.70710678 + biqK * biqK);
|
||||
lowpass[hilp_cB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_cB1] = 2.0 * lowpass[hilp_cB0];
|
||||
lowpass[hilp_dB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_dB2] = (1.0 - biqK / 0.70710678 + biqK * biqK) * norm;
|
||||
norm = 1.0 / (1.0 + biqK / 0.51763809 + biqK * biqK);
|
||||
lowpass[hilp_eB0] = biqK * biqK * norm;
|
||||
lowpass[hilp_eB1] = 2.0 * lowpass[hilp_eB0];
|
||||
lowpass[hilp_fB1] = 2.0 * (biqK * biqK - 1.0) * norm;
|
||||
lowpass[hilp_fB2] = (1.0 - biqK / 0.51763809 + biqK * biqK) * norm;
|
||||
|
||||
if (highpass[hilp_aA0] == 0.0) { // if we have just started, start directly with raw info
|
||||
highpass[hilp_aA0] = highpass[hilp_aB0];
|
||||
highpass[hilp_aA1] = highpass[hilp_aB1];
|
||||
highpass[hilp_bA1] = highpass[hilp_bB1];
|
||||
highpass[hilp_bA2] = highpass[hilp_bB2];
|
||||
highpass[hilp_cA0] = highpass[hilp_cB0];
|
||||
highpass[hilp_cA1] = highpass[hilp_cB1];
|
||||
highpass[hilp_dA1] = highpass[hilp_dB1];
|
||||
highpass[hilp_dA2] = highpass[hilp_dB2];
|
||||
highpass[hilp_eA0] = highpass[hilp_eB0];
|
||||
highpass[hilp_eA1] = highpass[hilp_eB1];
|
||||
highpass[hilp_fA1] = highpass[hilp_fB1];
|
||||
highpass[hilp_fA2] = highpass[hilp_fB2];
|
||||
lowpass[hilp_aA0] = lowpass[hilp_aB0];
|
||||
lowpass[hilp_aA1] = lowpass[hilp_aB1];
|
||||
lowpass[hilp_bA1] = lowpass[hilp_bB1];
|
||||
lowpass[hilp_bA2] = lowpass[hilp_bB2];
|
||||
lowpass[hilp_cA0] = lowpass[hilp_cB0];
|
||||
lowpass[hilp_cA1] = lowpass[hilp_cB1];
|
||||
lowpass[hilp_dA1] = lowpass[hilp_dB1];
|
||||
lowpass[hilp_dA2] = lowpass[hilp_dB2];
|
||||
lowpass[hilp_eA0] = lowpass[hilp_eB0];
|
||||
lowpass[hilp_eA1] = lowpass[hilp_eB1];
|
||||
lowpass[hilp_fA1] = lowpass[hilp_fB1];
|
||||
lowpass[hilp_fA2] = lowpass[hilp_fB2];
|
||||
}
|
||||
|
||||
panA = panB; panB = GetParameter( kParam_PAN )*1.57079633;
|
||||
inTrimA = inTrimB; inTrimB = GetParameter( kParam_FAD )*2.0;
|
||||
//Console
|
||||
|
||||
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;
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
highpass[hilp_a0] = (highpass[hilp_aA0]*temp)+(highpass[hilp_aB0]*(1.0-temp));
|
||||
highpass[hilp_a1] = (highpass[hilp_aA1]*temp)+(highpass[hilp_aB1]*(1.0-temp));
|
||||
highpass[hilp_b1] = (highpass[hilp_bA1]*temp)+(highpass[hilp_bB1]*(1.0-temp));
|
||||
highpass[hilp_b2] = (highpass[hilp_bA2]*temp)+(highpass[hilp_bB2]*(1.0-temp));
|
||||
highpass[hilp_c0] = (highpass[hilp_cA0]*temp)+(highpass[hilp_cB0]*(1.0-temp));
|
||||
highpass[hilp_c1] = (highpass[hilp_cA1]*temp)+(highpass[hilp_cB1]*(1.0-temp));
|
||||
highpass[hilp_d1] = (highpass[hilp_dA1]*temp)+(highpass[hilp_dB1]*(1.0-temp));
|
||||
highpass[hilp_d2] = (highpass[hilp_dA2]*temp)+(highpass[hilp_dB2]*(1.0-temp));
|
||||
highpass[hilp_e0] = (highpass[hilp_eA0]*temp)+(highpass[hilp_eB0]*(1.0-temp));
|
||||
highpass[hilp_e1] = (highpass[hilp_eA1]*temp)+(highpass[hilp_eB1]*(1.0-temp));
|
||||
highpass[hilp_f1] = (highpass[hilp_fA1]*temp)+(highpass[hilp_fB1]*(1.0-temp));
|
||||
highpass[hilp_f2] = (highpass[hilp_fA2]*temp)+(highpass[hilp_fB2]*(1.0-temp));
|
||||
lowpass[hilp_a0] = (lowpass[hilp_aA0]*temp)+(lowpass[hilp_aB0]*(1.0-temp));
|
||||
lowpass[hilp_a1] = (lowpass[hilp_aA1]*temp)+(lowpass[hilp_aB1]*(1.0-temp));
|
||||
lowpass[hilp_b1] = (lowpass[hilp_bA1]*temp)+(lowpass[hilp_bB1]*(1.0-temp));
|
||||
lowpass[hilp_b2] = (lowpass[hilp_bA2]*temp)+(lowpass[hilp_bB2]*(1.0-temp));
|
||||
lowpass[hilp_c0] = (lowpass[hilp_cA0]*temp)+(lowpass[hilp_cB0]*(1.0-temp));
|
||||
lowpass[hilp_c1] = (lowpass[hilp_cA1]*temp)+(lowpass[hilp_cB1]*(1.0-temp));
|
||||
lowpass[hilp_d1] = (lowpass[hilp_dA1]*temp)+(lowpass[hilp_dB1]*(1.0-temp));
|
||||
lowpass[hilp_d2] = (lowpass[hilp_dA2]*temp)+(lowpass[hilp_dB2]*(1.0-temp));
|
||||
lowpass[hilp_e0] = (lowpass[hilp_eA0]*temp)+(lowpass[hilp_eB0]*(1.0-temp));
|
||||
lowpass[hilp_e1] = (lowpass[hilp_eA1]*temp)+(lowpass[hilp_eB1]*(1.0-temp));
|
||||
lowpass[hilp_f1] = (lowpass[hilp_fA1]*temp)+(lowpass[hilp_fB1]*(1.0-temp));
|
||||
lowpass[hilp_f2] = (lowpass[hilp_fA2]*temp)+(lowpass[hilp_fB2]*(1.0-temp));
|
||||
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_a0])+highpass[hilp_aL1];
|
||||
highpass[hilp_aL1] = (inputSampleL*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aL2];
|
||||
highpass[hilp_aL2] = (inputSampleL*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_a0])+highpass[hilp_aR1];
|
||||
highpass[hilp_aR1] = (inputSampleR*highpass[hilp_a1])-(highpass[hilp_temp]*highpass[hilp_b1])+highpass[hilp_aR2];
|
||||
highpass[hilp_aR2] = (inputSampleR*highpass[hilp_a0])-(highpass[hilp_temp]*highpass[hilp_b2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_aR1] = highpass[hilp_aR2] = highpass[hilp_aL1] = highpass[hilp_aL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_a0])+lowpass[hilp_aL1];
|
||||
lowpass[hilp_aL1] = (inputSampleL*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aL2];
|
||||
lowpass[hilp_aL2] = (inputSampleL*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_a0])+lowpass[hilp_aR1];
|
||||
lowpass[hilp_aR1] = (inputSampleR*lowpass[hilp_a1])-(lowpass[hilp_temp]*lowpass[hilp_b1])+lowpass[hilp_aR2];
|
||||
lowpass[hilp_aR2] = (inputSampleR*lowpass[hilp_a0])-(lowpass[hilp_temp]*lowpass[hilp_b2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_aR1] = lowpass[hilp_aR2] = lowpass[hilp_aL1] = lowpass[hilp_aL2] = 0.0;
|
||||
//first Highpass/Lowpass blocks aliasing before the nonlinearity of ConsoleXBuss and Parametric
|
||||
|
||||
if (inputSampleL > 1.0) inputSampleL = 1.0;
|
||||
else if (inputSampleL > 0.0) inputSampleL = -expm1((log1p(-inputSampleL) * 0.6180339887498949));
|
||||
if (inputSampleL < -1.0) inputSampleL = -1.0;
|
||||
else if (inputSampleL < 0.0) inputSampleL = expm1((log1p(inputSampleL) * 0.6180339887498949));
|
||||
|
||||
if (inputSampleR > 1.0) inputSampleR = 1.0;
|
||||
else if (inputSampleR > 0.0) inputSampleR = -expm1((log1p(-inputSampleR) * 0.6180339887498949));
|
||||
if (inputSampleR < -1.0) inputSampleR = -1.0;
|
||||
else if (inputSampleR < 0.0) inputSampleR = expm1((log1p(inputSampleR) * 0.6180339887498949));
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_c0])+highpass[hilp_cL1];
|
||||
highpass[hilp_cL1] = (inputSampleL*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cL2];
|
||||
highpass[hilp_cL2] = (inputSampleL*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_c0])+highpass[hilp_cR1];
|
||||
highpass[hilp_cR1] = (inputSampleR*highpass[hilp_c1])-(highpass[hilp_temp]*highpass[hilp_d1])+highpass[hilp_cR2];
|
||||
highpass[hilp_cR2] = (inputSampleR*highpass[hilp_c0])-(highpass[hilp_temp]*highpass[hilp_d2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_cR1] = highpass[hilp_cR2] = highpass[hilp_cL1] = highpass[hilp_cL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_c0])+lowpass[hilp_cL1];
|
||||
lowpass[hilp_cL1] = (inputSampleL*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cL2];
|
||||
lowpass[hilp_cL2] = (inputSampleL*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_c0])+lowpass[hilp_cR1];
|
||||
lowpass[hilp_cR1] = (inputSampleR*lowpass[hilp_c1])-(lowpass[hilp_temp]*lowpass[hilp_d1])+lowpass[hilp_cR2];
|
||||
lowpass[hilp_cR2] = (inputSampleR*lowpass[hilp_c0])-(lowpass[hilp_temp]*lowpass[hilp_d2]); inputSampleR = lowpass[hilp_temp];
|
||||
} 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
|
||||
//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
|
||||
|
||||
if (highpassEngage) { //distributed Highpass
|
||||
highpass[hilp_temp] = (inputSampleL*highpass[hilp_e0])+highpass[hilp_eL1];
|
||||
highpass[hilp_eL1] = (inputSampleL*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eL2];
|
||||
highpass[hilp_eL2] = (inputSampleL*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleL = highpass[hilp_temp];
|
||||
highpass[hilp_temp] = (inputSampleR*highpass[hilp_e0])+highpass[hilp_eR1];
|
||||
highpass[hilp_eR1] = (inputSampleR*highpass[hilp_e1])-(highpass[hilp_temp]*highpass[hilp_f1])+highpass[hilp_eR2];
|
||||
highpass[hilp_eR2] = (inputSampleR*highpass[hilp_e0])-(highpass[hilp_temp]*highpass[hilp_f2]); inputSampleR = highpass[hilp_temp];
|
||||
} else highpass[hilp_eR1] = highpass[hilp_eR2] = highpass[hilp_eL1] = highpass[hilp_eL2] = 0.0;
|
||||
if (lowpassEngage) { //distributed Lowpass
|
||||
lowpass[hilp_temp] = (inputSampleL*lowpass[hilp_e0])+lowpass[hilp_eL1];
|
||||
lowpass[hilp_eL1] = (inputSampleL*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eL2];
|
||||
lowpass[hilp_eL2] = (inputSampleL*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleL = lowpass[hilp_temp];
|
||||
lowpass[hilp_temp] = (inputSampleR*lowpass[hilp_e0])+lowpass[hilp_eR1];
|
||||
lowpass[hilp_eR1] = (inputSampleR*lowpass[hilp_e1])-(lowpass[hilp_temp]*lowpass[hilp_f1])+lowpass[hilp_eR2];
|
||||
lowpass[hilp_eR2] = (inputSampleR*lowpass[hilp_e0])-(lowpass[hilp_temp]*lowpass[hilp_f2]); inputSampleR = lowpass[hilp_temp];
|
||||
} else lowpass[hilp_eR1] = lowpass[hilp_eR2] = lowpass[hilp_eL1] = lowpass[hilp_eL2] = 0.0;
|
||||
//final Highpass/Lowpass continues to address aliasing
|
||||
//final stacked biquad section is the softest Q for smoothness
|
||||
|
||||
double gainR = (panA*temp)+(panB*(1.0-temp));
|
||||
double gainL = 1.57079633-gainR;
|
||||
gainR = sin(gainR); gainL = sin(gainL);
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
gain *= 2.0;
|
||||
|
||||
inputSampleL = inputSampleL * gainL * gain;
|
||||
inputSampleR = inputSampleR * gainR * gain;
|
||||
//applies pan section, and smoothed fader gain
|
||||
|
||||
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 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
|
||||
|
||||
//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
|
||||
|
||||
//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/ConsoleHBuss/ConsoleHBuss.exp
Executable file
2
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_ConsoleHBussEntry
|
||||
_ConsoleHBussFactory
|
||||
226
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.h
Executable file
226
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.h
Executable file
|
|
@ -0,0 +1,226 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHBussVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHBuss_h__
|
||||
#define __ConsoleHBuss_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHBuss Parameters
|
||||
|
||||
// parameters
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
|
||||
static const float kDefaultValue_ParamTHR = 1.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 kParameterHIGUnit = CFSTR("eq");
|
||||
static CFStringRef kParameterHIGName = CFSTR("High");
|
||||
static CFStringRef kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
|
||||
static CFStringRef kParameterTHRUnit = CFSTR("dyn");
|
||||
static CFStringRef kParameterTHRName = CFSTR("Thresh");
|
||||
|
||||
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_HIG =0,
|
||||
kParam_MID =1,
|
||||
kParam_LOW =2,
|
||||
kParam_THR =3,
|
||||
kParam_LOP =4,
|
||||
kParam_HIP =5,
|
||||
kParam_PAN =6,
|
||||
kParam_FAD =7,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=8
|
||||
};
|
||||
|
||||
#pragma mark ____ConsoleHBuss
|
||||
class ConsoleHBuss : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHBuss(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHBuss () { 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 kConsoleHBussVersion; }
|
||||
|
||||
private:
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
//Dynamics2
|
||||
|
||||
enum {
|
||||
hilp_freq, hilp_temp,
|
||||
hilp_a0, hilp_aA0, hilp_aB0, hilp_a1, hilp_aA1, hilp_aB1, hilp_b1, hilp_bA1, hilp_bB1, hilp_b2, hilp_bA2, hilp_bB2,
|
||||
hilp_c0, hilp_cA0, hilp_cB0, hilp_c1, hilp_cA1, hilp_cB1, hilp_d1, hilp_dA1, hilp_dB1, hilp_d2, hilp_dA2, hilp_dB2,
|
||||
hilp_e0, hilp_eA0, hilp_eB0, hilp_e1, hilp_eA1, hilp_eB1, hilp_f1, hilp_fA1, hilp_fB1, hilp_f2, hilp_fA2, hilp_fB2,
|
||||
hilp_aL1, hilp_aL2, hilp_aR1, hilp_aR2,
|
||||
hilp_cL1, hilp_cL2, hilp_cR1, hilp_cR2,
|
||||
hilp_eL1, hilp_eL2, hilp_eR1, hilp_eR2,
|
||||
hilp_total
|
||||
};
|
||||
double highpass[hilp_total];
|
||||
double lowpass[hilp_total];
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.r
Executable file
61
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: ConsoleHBuss.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHBussVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_ConsoleHBuss 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ConsoleHBuss~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_ConsoleHBuss
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE ConsoleHBuss_COMP_SUBTYPE
|
||||
#define COMP_MANUF ConsoleHBuss_COMP_MANF
|
||||
|
||||
#define VERSION kConsoleHBussVersion
|
||||
#define NAME "Airwindows: ConsoleHBuss"
|
||||
#define DESCRIPTION "ConsoleHBuss AU"
|
||||
#define ENTRY_POINT "ConsoleHBussEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
1359
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.mode1v3
Executable file
1359
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/christopherjohnson.mode1v3
Executable file
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,136 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
364,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
20,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
PBXFileDataSource_Target_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXConfiguration.PBXTargetDataSource.PBXTargetDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
188,
|
||||
60,
|
||||
20,
|
||||
48,
|
||||
43,
|
||||
43,
|
||||
);
|
||||
PBXFileTableDataSourceColumnsKey = (
|
||||
PBXFileDataSource_FiletypeID,
|
||||
PBXFileDataSource_Filename_ColumnID,
|
||||
PBXTargetDataSource_PrimaryAttribute,
|
||||
PBXFileDataSource_Built_ColumnID,
|
||||
PBXFileDataSource_ObjectSize_ColumnID,
|
||||
PBXFileDataSource_Errors_ColumnID,
|
||||
PBXFileDataSource_Warnings_ColumnID,
|
||||
);
|
||||
};
|
||||
PBXPerProjectTemplateStateSaveDate = 784133817;
|
||||
PBXWorkspaceStateSaveDate = 784133817;
|
||||
};
|
||||
perUserProjectItems = {
|
||||
8B7D6D372EBCF553000B38FA /* PBXTextBookmark */ = 8B7D6D372EBCF553000B38FA /* PBXTextBookmark */;
|
||||
8B7D6D382EBCF553000B38FA /* PBXBookmark */ = 8B7D6D382EBCF553000B38FA /* PBXBookmark */;
|
||||
8B7D6D392EBCF553000B38FA /* PBXTextBookmark */ = 8B7D6D392EBCF553000B38FA /* PBXTextBookmark */;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8B7D6D372EBCF553000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A690720730100365D66 /* ConsoleHBussVersion.h */;
|
||||
name = "ConsoleHBussVersion.h: 1";
|
||||
rLen = 0;
|
||||
rLoc = 0;
|
||||
rType = 0;
|
||||
vrLen = 37;
|
||||
vrLoc = 0;
|
||||
};
|
||||
8B7D6D382EBCF553000B38FA /* PBXBookmark */ = {
|
||||
isa = PBXBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */;
|
||||
};
|
||||
8B7D6D392EBCF553000B38FA /* PBXTextBookmark */ = {
|
||||
isa = PBXTextBookmark;
|
||||
fRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */;
|
||||
name = "ConsoleHBuss.cpp: 523";
|
||||
rLen = 0;
|
||||
rLoc = 25931;
|
||||
rType = 0;
|
||||
vrLen = 64;
|
||||
vrLoc = 33450;
|
||||
};
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {858, 13752}}";
|
||||
sepNavSelRange = "{25931, 0}";
|
||||
sepNavVisRange = "{33450, 64}";
|
||||
sepNavWindowFrame = "{{22, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{1072, 1918}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ConsoleHBuss.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1146, 4068}}";
|
||||
sepNavSelRange = "{6440, 589}";
|
||||
sepNavVisRange = "{5857, 1011}";
|
||||
sepNavWindowFrame = "{{7, 35}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBuss.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8BA05A6B0720730100365D66 /* ConsoleHBuss.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleHBuss.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* ConsoleHBussVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleHBussVersion.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 /* ConsoleHBuss.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ConsoleHBuss.h */; };
|
||||
8BF193332EBE710E006A27E0 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192AB2EBE710E006A27E0 /* CAExtAudioFile.h */; };
|
||||
8BF193342EBE710E006A27E0 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192AC2EBE710E006A27E0 /* CACFMachPort.h */; };
|
||||
8BF193352EBE710E006A27E0 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192AD2EBE710E006A27E0 /* CABool.h */; };
|
||||
8BF193362EBE710E006A27E0 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192AE2EBE710E006A27E0 /* CAComponent.cpp */; };
|
||||
8BF193372EBE710E006A27E0 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192AF2EBE710E006A27E0 /* CADebugger.h */; };
|
||||
8BF193382EBE710E006A27E0 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192B02EBE710E006A27E0 /* CACFNumber.cpp */; };
|
||||
8BF193392EBE710E006A27E0 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B12EBE710E006A27E0 /* CAGuard.h */; };
|
||||
8BF1933A2EBE710E006A27E0 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B22EBE710E006A27E0 /* CAAtomic.h */; };
|
||||
8BF1933B2EBE710E006A27E0 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B32EBE710E006A27E0 /* CAStreamBasicDescription.h */; };
|
||||
8BF1933C2EBE710E006A27E0 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B42EBE710E006A27E0 /* CACFObject.h */; };
|
||||
8BF1933D2EBE710E006A27E0 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B52EBE710E006A27E0 /* CAStreamRangedDescription.h */; };
|
||||
8BF1933E2EBE710E006A27E0 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B62EBE710E006A27E0 /* CATokenMap.h */; };
|
||||
8BF1933F2EBE710E006A27E0 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B72EBE710E006A27E0 /* CAComponent.h */; };
|
||||
8BF193402EBE710E006A27E0 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B82EBE710E006A27E0 /* CAAudioBufferList.h */; };
|
||||
8BF193412EBE710E006A27E0 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192B92EBE710E006A27E0 /* CAAudioUnit.h */; };
|
||||
8BF193422EBE710E006A27E0 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192BA2EBE710E006A27E0 /* CAAUParameter.h */; };
|
||||
8BF193432EBE710E006A27E0 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192BB2EBE710E006A27E0 /* CAException.h */; };
|
||||
8BF193442EBE710E006A27E0 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192BC2EBE710E006A27E0 /* CAAUProcessor.cpp */; };
|
||||
8BF193452EBE710E006A27E0 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192BD2EBE710E006A27E0 /* CAAUProcessor.h */; };
|
||||
8BF193462EBE710E006A27E0 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192BE2EBE710E006A27E0 /* CAProcess.h */; };
|
||||
8BF193472EBE710E006A27E0 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192BF2EBE710E006A27E0 /* CACFDictionary.h */; };
|
||||
8BF193482EBE710E006A27E0 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192C02EBE710E006A27E0 /* CAPThread.h */; };
|
||||
8BF193492EBE710E006A27E0 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192C12EBE710E006A27E0 /* CAAUParameter.cpp */; };
|
||||
8BF1934A2EBE710E006A27E0 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192C22EBE710E006A27E0 /* CAAudioTimeStamp.h */; };
|
||||
8BF1934B2EBE710E006A27E0 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192C32EBE710E006A27E0 /* CAFilePathUtils.cpp */; };
|
||||
8BF1934C2EBE710E006A27E0 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192C42EBE710E006A27E0 /* CAAudioValueRange.h */; };
|
||||
8BF1934D2EBE710E006A27E0 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192C52EBE710E006A27E0 /* CAVectorUnitTypes.h */; };
|
||||
8BF1934E2EBE710E006A27E0 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192C62EBE710E006A27E0 /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8BF1934F2EBE710E006A27E0 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192C72EBE710E006A27E0 /* CAGuard.cpp */; };
|
||||
8BF193502EBE710E006A27E0 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192C82EBE710E006A27E0 /* CACFNumber.h */; };
|
||||
8BF193512EBE710E006A27E0 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192C92EBE710E006A27E0 /* CACFDistributedNotification.cpp */; };
|
||||
8BF193522EBE710E006A27E0 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192CA2EBE710E006A27E0 /* CACFString.h */; };
|
||||
8BF193532EBE710E006A27E0 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192CB2EBE710E006A27E0 /* CAAUMIDIMapManager.cpp */; };
|
||||
8BF193542EBE710E006A27E0 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192CC2EBE710E006A27E0 /* CAComponentDescription.cpp */; };
|
||||
8BF193552EBE710E006A27E0 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192CD2EBE710E006A27E0 /* CAHostTimeBase.h */; };
|
||||
8BF193562EBE710E006A27E0 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192CE2EBE710E006A27E0 /* CADebugMacros.cpp */; };
|
||||
8BF193572EBE710E006A27E0 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192CF2EBE710E006A27E0 /* CAAudioFileFormats.h */; };
|
||||
8BF193582EBE710E006A27E0 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D02EBE710E006A27E0 /* CAAUMIDIMapManager.h */; };
|
||||
8BF193592EBE710E006A27E0 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192D12EBE710E006A27E0 /* CACFDictionary.cpp */; };
|
||||
8BF1935A2EBE710E006A27E0 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D22EBE710E006A27E0 /* CAMutex.h */; };
|
||||
8BF1935B2EBE710E006A27E0 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192D32EBE710E006A27E0 /* CACFString.cpp */; };
|
||||
8BF1935C2EBE710E006A27E0 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D42EBE710E006A27E0 /* CASettingsStorage.h */; };
|
||||
8BF1935D2EBE710E006A27E0 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D52EBE710E006A27E0 /* CADebugPrintf.h */; };
|
||||
8BF1935E2EBE710E006A27E0 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192D62EBE710E006A27E0 /* CAXException.cpp */; };
|
||||
8BF1935F2EBE710E006A27E0 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D72EBE710E006A27E0 /* CAAUMIDIMap.h */; };
|
||||
8BF193602EBE710E006A27E0 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D82EBE710E006A27E0 /* AUParamInfo.h */; };
|
||||
8BF193612EBE710E006A27E0 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192D92EBE710E006A27E0 /* CABitOperations.h */; };
|
||||
8BF193622EBE710E006A27E0 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192DA2EBE710E006A27E0 /* CACFPreferences.cpp */; };
|
||||
8BF193632EBE710E006A27E0 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192DB2EBE710E006A27E0 /* CABundleLocker.h */; };
|
||||
8BF193642EBE710E006A27E0 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192DC2EBE710E006A27E0 /* CAPropertyAddress.h */; };
|
||||
8BF193652EBE710E006A27E0 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192DD2EBE710E006A27E0 /* CAXException.h */; };
|
||||
8BF193662EBE710E006A27E0 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192DE2EBE710E006A27E0 /* CAAudioChannelLayout.cpp */; };
|
||||
8BF193672EBE710E006A27E0 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192DF2EBE710E006A27E0 /* CAThreadSafeList.h */; };
|
||||
8BF193682EBE710E006A27E0 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192E02EBE710E006A27E0 /* CAAudioUnitOutputCapturer.h */; };
|
||||
8BF193692EBE710E006A27E0 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192E12EBE710E006A27E0 /* AUParamInfo.cpp */; };
|
||||
8BF1936A2EBE710E006A27E0 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192E22EBE710E006A27E0 /* CASharedLibrary.cpp */; };
|
||||
8BF1936B2EBE710E006A27E0 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192E32EBE710E006A27E0 /* CAAUMIDIMap.cpp */; };
|
||||
8BF1936C2EBE710E006A27E0 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192E42EBE710E006A27E0 /* CALogMacros.h */; };
|
||||
8BF1936D2EBE710E006A27E0 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192E52EBE710E006A27E0 /* CACFMessagePort.cpp */; };
|
||||
8BF1936E2EBE710E006A27E0 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192E62EBE710E006A27E0 /* CARingBuffer.h */; };
|
||||
8BF1936F2EBE710E006A27E0 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192E72EBE710E006A27E0 /* AUOutputBL.cpp */; };
|
||||
8BF193702EBE710E006A27E0 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192E82EBE710E006A27E0 /* CABufferList.h */; };
|
||||
8BF193712EBE710E006A27E0 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192E92EBE710E006A27E0 /* CASharedLibrary.h */; };
|
||||
8BF193722EBE710E006A27E0 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192EA2EBE710E006A27E0 /* CACFData.h */; };
|
||||
8BF193732EBE710E006A27E0 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192EB2EBE710E006A27E0 /* CAStreamRangedDescription.cpp */; };
|
||||
8BF193742EBE710E006A27E0 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192EC2EBE710E006A27E0 /* CAPThread.cpp */; };
|
||||
8BF193752EBE710E006A27E0 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192ED2EBE710E006A27E0 /* CAAutoDisposer.h */; };
|
||||
8BF193762EBE710E006A27E0 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192EE2EBE710E006A27E0 /* CACFPreferences.h */; };
|
||||
8BF193772EBE710E006A27E0 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192EF2EBE710E006A27E0 /* CAVectorUnit.cpp */; };
|
||||
8BF193782EBE710E006A27E0 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F02EBE710E006A27E0 /* CAComponentDescription.h */; };
|
||||
8BF193792EBE710E006A27E0 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F12EBE710E006A27E0 /* CADebugMacros.h */; };
|
||||
8BF1937A2EBE710E006A27E0 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F22EBE710E006A27E0 /* AUOutputBL.h */; };
|
||||
8BF1937B2EBE710E006A27E0 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192F32EBE710E006A27E0 /* CADebugPrintf.cpp */; };
|
||||
8BF1937C2EBE710E006A27E0 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192F42EBE710E006A27E0 /* CARingBuffer.cpp */; };
|
||||
8BF1937D2EBE710E006A27E0 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F52EBE710E006A27E0 /* CACFPlugIn.h */; };
|
||||
8BF1937E2EBE710E006A27E0 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192F62EBE710E006A27E0 /* CASettingsStorage.cpp */; };
|
||||
8BF1937F2EBE710E006A27E0 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F72EBE710E006A27E0 /* CAMixMap.h */; };
|
||||
8BF193802EBE710E006A27E0 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F82EBE710E006A27E0 /* CACFDistributedNotification.h */; };
|
||||
8BF193812EBE710E006A27E0 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192F92EBE710E006A27E0 /* CAFilePathUtils.h */; };
|
||||
8BF193822EBE710E006A27E0 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192FA2EBE710E006A27E0 /* CATink.h */; };
|
||||
8BF193832EBE710E006A27E0 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192FB2EBE710E006A27E0 /* CAStreamBasicDescription.cpp */; };
|
||||
8BF193842EBE710E006A27E0 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF192FC2EBE710E006A27E0 /* CAAudioChannelLayout.h */; };
|
||||
8BF193852EBE710E006A27E0 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192FD2EBE710E006A27E0 /* CAProcess.cpp */; };
|
||||
8BF193862EBE710E006A27E0 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192FE2EBE710E006A27E0 /* CAHostTimeBase.cpp */; };
|
||||
8BF193872EBE710E006A27E0 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF192FF2EBE710E006A27E0 /* CAPersistence.cpp */; };
|
||||
8BF193882EBE710E006A27E0 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193002EBE710E006A27E0 /* CAAudioBufferList.cpp */; };
|
||||
8BF193892EBE710E006A27E0 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193012EBE710E006A27E0 /* CAAudioTimeStamp.cpp */; };
|
||||
8BF1938A2EBE710E006A27E0 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193022EBE710E006A27E0 /* CAVectorUnit.h */; };
|
||||
8BF1938B2EBE710E006A27E0 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193032EBE710E006A27E0 /* CAByteOrder.h */; };
|
||||
8BF1938C2EBE710E006A27E0 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193042EBE710E006A27E0 /* CACFArray.h */; };
|
||||
8BF1938D2EBE710E006A27E0 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193052EBE710E006A27E0 /* CAAtomicStack.h */; };
|
||||
8BF1938E2EBE710E006A27E0 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193062EBE710E006A27E0 /* CAReferenceCounted.h */; };
|
||||
8BF1938F2EBE710E006A27E0 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193072EBE710E006A27E0 /* CACFMachPort.cpp */; };
|
||||
8BF193902EBE710E006A27E0 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193082EBE710E006A27E0 /* CABufferList.cpp */; };
|
||||
8BF193912EBE710E006A27E0 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193092EBE710E006A27E0 /* CAMutex.cpp */; };
|
||||
8BF193922EBE710E006A27E0 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1930A2EBE710E006A27E0 /* CADebugger.cpp */; };
|
||||
8BF193932EBE710E006A27E0 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1930B2EBE710E006A27E0 /* CABundleLocker.cpp */; };
|
||||
8BF193942EBE710E006A27E0 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1930C2EBE710E006A27E0 /* CAAudioFileFormats.cpp */; };
|
||||
8BF193952EBE710E006A27E0 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1930D2EBE710E006A27E0 /* CAMath.h */; };
|
||||
8BF193962EBE710E006A27E0 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1930E2EBE710E006A27E0 /* CACFArray.cpp */; };
|
||||
8BF193972EBE710E006A27E0 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1930F2EBE710E006A27E0 /* CACFMessagePort.h */; };
|
||||
8BF193982EBE710E006A27E0 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193102EBE710E006A27E0 /* CAAudioValueRange.cpp */; };
|
||||
8BF193992EBE710E006A27E0 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193112EBE710E006A27E0 /* CAAudioUnit.cpp */; };
|
||||
8BF1939A2EBE710E006A27E0 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193152EBE710E006A27E0 /* AUViewLocalizedStringKeys.h */; };
|
||||
8BF1939B2EBE710E006A27E0 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193172EBE710E006A27E0 /* ComponentBase.cpp */; };
|
||||
8BF1939C2EBE710E006A27E0 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193182EBE710E006A27E0 /* AUScopeElement.cpp */; };
|
||||
8BF1939D2EBE710E006A27E0 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193192EBE710E006A27E0 /* ComponentBase.h */; };
|
||||
8BF1939E2EBE710E006A27E0 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1931A2EBE710E006A27E0 /* AUBase.cpp */; };
|
||||
8BF1939F2EBE710E006A27E0 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1931B2EBE710E006A27E0 /* AUInputElement.h */; };
|
||||
8BF193A02EBE710E006A27E0 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1931C2EBE710E006A27E0 /* AUBase.h */; };
|
||||
8BF193A12EBE710E006A27E0 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1931D2EBE710E006A27E0 /* AUPlugInDispatch.h */; };
|
||||
8BF193A22EBE710E006A27E0 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1931E2EBE710E006A27E0 /* AUDispatch.h */; };
|
||||
8BF193A32EBE710E006A27E0 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1931F2EBE710E006A27E0 /* AUOutputElement.cpp */; };
|
||||
8BF193A52EBE710E006A27E0 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193212EBE710E006A27E0 /* AUPlugInDispatch.cpp */; };
|
||||
8BF193A62EBE710E006A27E0 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193222EBE710E006A27E0 /* AUOutputElement.h */; };
|
||||
8BF193A72EBE710E006A27E0 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193232EBE710E006A27E0 /* AUDispatch.cpp */; };
|
||||
8BF193A82EBE710E006A27E0 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193242EBE710E006A27E0 /* AUScopeElement.h */; };
|
||||
8BF193A92EBE710E006A27E0 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193252EBE710E006A27E0 /* AUInputElement.cpp */; };
|
||||
8BF193AA2EBE710E006A27E0 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193272EBE710E006A27E0 /* AUEffectBase.cpp */; };
|
||||
8BF193AB2EBE710E006A27E0 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193282EBE710E006A27E0 /* AUEffectBase.h */; };
|
||||
8BF193AC2EBE710E006A27E0 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1932A2EBE710E006A27E0 /* AUTimestampGenerator.h */; };
|
||||
8BF193AD2EBE710E006A27E0 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1932B2EBE710E006A27E0 /* AUBaseHelper.cpp */; };
|
||||
8BF193AE2EBE710E006A27E0 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1932C2EBE710E006A27E0 /* AUSilentTimeout.h */; };
|
||||
8BF193AF2EBE710E006A27E0 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1932D2EBE710E006A27E0 /* AUInputFormatConverter.h */; };
|
||||
8BF193B02EBE710E006A27E0 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1932E2EBE710E006A27E0 /* AUTimestampGenerator.cpp */; };
|
||||
8BF193B12EBE710E006A27E0 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1932F2EBE710E006A27E0 /* AUBuffer.cpp */; };
|
||||
8BF193B22EBE710E006A27E0 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193302EBE710E006A27E0 /* AUMIDIDefs.h */; };
|
||||
8BF193B32EBE710E006A27E0 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193312EBE710E006A27E0 /* AUBuffer.h */; };
|
||||
8BF193B42EBE710E006A27E0 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193322EBE710E006A27E0 /* AUBaseHelper.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>"; };
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleHBuss.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* ConsoleHBuss.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleHBuss.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* ConsoleHBuss.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleHBuss.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHBussVersion.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 /* ConsoleHBuss.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHBuss.h; sourceTree = "<group>"; };
|
||||
8BF192AB2EBE710E006A27E0 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8BF192AC2EBE710E006A27E0 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8BF192AD2EBE710E006A27E0 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8BF192AE2EBE710E006A27E0 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8BF192AF2EBE710E006A27E0 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8BF192B02EBE710E006A27E0 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8BF192B12EBE710E006A27E0 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8BF192B22EBE710E006A27E0 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8BF192B32EBE710E006A27E0 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BF192B42EBE710E006A27E0 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8BF192B52EBE710E006A27E0 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8BF192B62EBE710E006A27E0 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8BF192B72EBE710E006A27E0 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8BF192B82EBE710E006A27E0 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8BF192B92EBE710E006A27E0 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8BF192BA2EBE710E006A27E0 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BF192BB2EBE710E006A27E0 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8BF192BC2EBE710E006A27E0 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8BF192BD2EBE710E006A27E0 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8BF192BE2EBE710E006A27E0 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8BF192BF2EBE710E006A27E0 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8BF192C02EBE710E006A27E0 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8BF192C12EBE710E006A27E0 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BF192C22EBE710E006A27E0 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8BF192C32EBE710E006A27E0 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8BF192C42EBE710E006A27E0 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8BF192C52EBE710E006A27E0 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8BF192C62EBE710E006A27E0 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8BF192C72EBE710E006A27E0 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8BF192C82EBE710E006A27E0 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8BF192C92EBE710E006A27E0 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8BF192CA2EBE710E006A27E0 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8BF192CB2EBE710E006A27E0 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8BF192CC2EBE710E006A27E0 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF192CD2EBE710E006A27E0 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8BF192CE2EBE710E006A27E0 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8BF192CF2EBE710E006A27E0 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8BF192D02EBE710E006A27E0 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8BF192D12EBE710E006A27E0 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8BF192D22EBE710E006A27E0 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BF192D32EBE710E006A27E0 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8BF192D42EBE710E006A27E0 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8BF192D52EBE710E006A27E0 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8BF192D62EBE710E006A27E0 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8BF192D72EBE710E006A27E0 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8BF192D82EBE710E006A27E0 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8BF192D92EBE710E006A27E0 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8BF192DA2EBE710E006A27E0 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8BF192DB2EBE710E006A27E0 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8BF192DC2EBE710E006A27E0 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8BF192DD2EBE710E006A27E0 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8BF192DE2EBE710E006A27E0 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BF192DF2EBE710E006A27E0 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8BF192E02EBE710E006A27E0 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8BF192E12EBE710E006A27E0 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8BF192E22EBE710E006A27E0 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8BF192E32EBE710E006A27E0 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8BF192E42EBE710E006A27E0 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8BF192E52EBE710E006A27E0 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8BF192E62EBE710E006A27E0 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8BF192E72EBE710E006A27E0 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8BF192E82EBE710E006A27E0 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8BF192E92EBE710E006A27E0 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8BF192EA2EBE710E006A27E0 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8BF192EB2EBE710E006A27E0 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF192EC2EBE710E006A27E0 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8BF192ED2EBE710E006A27E0 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8BF192EE2EBE710E006A27E0 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8BF192EF2EBE710E006A27E0 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8BF192F02EBE710E006A27E0 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8BF192F12EBE710E006A27E0 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8BF192F22EBE710E006A27E0 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8BF192F32EBE710E006A27E0 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8BF192F42EBE710E006A27E0 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BF192F52EBE710E006A27E0 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8BF192F62EBE710E006A27E0 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8BF192F72EBE710E006A27E0 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8BF192F82EBE710E006A27E0 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8BF192F92EBE710E006A27E0 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8BF192FA2EBE710E006A27E0 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8BF192FB2EBE710E006A27E0 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF192FC2EBE710E006A27E0 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BF192FD2EBE710E006A27E0 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8BF192FE2EBE710E006A27E0 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8BF192FF2EBE710E006A27E0 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8BF193002EBE710E006A27E0 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8BF193012EBE710E006A27E0 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8BF193022EBE710E006A27E0 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8BF193032EBE710E006A27E0 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8BF193042EBE710E006A27E0 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8BF193052EBE710E006A27E0 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8BF193062EBE710E006A27E0 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8BF193072EBE710E006A27E0 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8BF193082EBE710E006A27E0 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8BF193092EBE710E006A27E0 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BF1930A2EBE710E006A27E0 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8BF1930B2EBE710E006A27E0 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8BF1930C2EBE710E006A27E0 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8BF1930D2EBE710E006A27E0 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8BF1930E2EBE710E006A27E0 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8BF1930F2EBE710E006A27E0 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8BF193102EBE710E006A27E0 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8BF193112EBE710E006A27E0 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8BF193152EBE710E006A27E0 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8BF193172EBE710E006A27E0 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BF193182EBE710E006A27E0 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BF193192EBE710E006A27E0 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BF1931A2EBE710E006A27E0 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BF1931B2EBE710E006A27E0 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BF1931C2EBE710E006A27E0 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BF1931D2EBE710E006A27E0 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8BF1931E2EBE710E006A27E0 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BF1931F2EBE710E006A27E0 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BF193202EBE710E006A27E0 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BF193212EBE710E006A27E0 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BF193222EBE710E006A27E0 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BF193232EBE710E006A27E0 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BF193242EBE710E006A27E0 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BF193252EBE710E006A27E0 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BF193272EBE710E006A27E0 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BF193282EBE710E006A27E0 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BF1932A2EBE710E006A27E0 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BF1932B2EBE710E006A27E0 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8BF1932C2EBE710E006A27E0 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BF1932D2EBE710E006A27E0 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BF1932E2EBE710E006A27E0 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8BF1932F2EBE710E006A27E0 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BF193302EBE710E006A27E0 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8BF193312EBE710E006A27E0 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BF193322EBE710E006A27E0 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8BF193B52EBE71CE006A27E0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsoleHBuss.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 /* ConsoleHBuss */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ConsoleHBuss;
|
||||
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 = (
|
||||
8BF192A92EBE710E006A27E0 /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* ConsoleHBuss.h */,
|
||||
8BA05A660720730100365D66 /* ConsoleHBuss.cpp */,
|
||||
8BA05A670720730100365D66 /* ConsoleHBuss.exp */,
|
||||
8BA05A680720730100365D66 /* ConsoleHBuss.r */,
|
||||
8BA05A690720730100365D66 /* ConsoleHBussVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF192A92EBE710E006A27E0 /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF192AA2EBE710E006A27E0 /* PublicUtility */,
|
||||
8BF193122EBE710E006A27E0 /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF192AA2EBE710E006A27E0 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF192AB2EBE710E006A27E0 /* CAExtAudioFile.h */,
|
||||
8BF192AC2EBE710E006A27E0 /* CACFMachPort.h */,
|
||||
8BF192AD2EBE710E006A27E0 /* CABool.h */,
|
||||
8BF192AE2EBE710E006A27E0 /* CAComponent.cpp */,
|
||||
8BF192AF2EBE710E006A27E0 /* CADebugger.h */,
|
||||
8BF192B02EBE710E006A27E0 /* CACFNumber.cpp */,
|
||||
8BF192B12EBE710E006A27E0 /* CAGuard.h */,
|
||||
8BF192B22EBE710E006A27E0 /* CAAtomic.h */,
|
||||
8BF192B32EBE710E006A27E0 /* CAStreamBasicDescription.h */,
|
||||
8BF192B42EBE710E006A27E0 /* CACFObject.h */,
|
||||
8BF192B52EBE710E006A27E0 /* CAStreamRangedDescription.h */,
|
||||
8BF192B62EBE710E006A27E0 /* CATokenMap.h */,
|
||||
8BF192B72EBE710E006A27E0 /* CAComponent.h */,
|
||||
8BF192B82EBE710E006A27E0 /* CAAudioBufferList.h */,
|
||||
8BF192B92EBE710E006A27E0 /* CAAudioUnit.h */,
|
||||
8BF192BA2EBE710E006A27E0 /* CAAUParameter.h */,
|
||||
8BF192BB2EBE710E006A27E0 /* CAException.h */,
|
||||
8BF192BC2EBE710E006A27E0 /* CAAUProcessor.cpp */,
|
||||
8BF192BD2EBE710E006A27E0 /* CAAUProcessor.h */,
|
||||
8BF192BE2EBE710E006A27E0 /* CAProcess.h */,
|
||||
8BF192BF2EBE710E006A27E0 /* CACFDictionary.h */,
|
||||
8BF192C02EBE710E006A27E0 /* CAPThread.h */,
|
||||
8BF192C12EBE710E006A27E0 /* CAAUParameter.cpp */,
|
||||
8BF192C22EBE710E006A27E0 /* CAAudioTimeStamp.h */,
|
||||
8BF192C32EBE710E006A27E0 /* CAFilePathUtils.cpp */,
|
||||
8BF192C42EBE710E006A27E0 /* CAAudioValueRange.h */,
|
||||
8BF192C52EBE710E006A27E0 /* CAVectorUnitTypes.h */,
|
||||
8BF192C62EBE710E006A27E0 /* CAAudioChannelLayoutObject.cpp */,
|
||||
8BF192C72EBE710E006A27E0 /* CAGuard.cpp */,
|
||||
8BF192C82EBE710E006A27E0 /* CACFNumber.h */,
|
||||
8BF192C92EBE710E006A27E0 /* CACFDistributedNotification.cpp */,
|
||||
8BF192CA2EBE710E006A27E0 /* CACFString.h */,
|
||||
8BF192CB2EBE710E006A27E0 /* CAAUMIDIMapManager.cpp */,
|
||||
8BF192CC2EBE710E006A27E0 /* CAComponentDescription.cpp */,
|
||||
8BF192CD2EBE710E006A27E0 /* CAHostTimeBase.h */,
|
||||
8BF192CE2EBE710E006A27E0 /* CADebugMacros.cpp */,
|
||||
8BF192CF2EBE710E006A27E0 /* CAAudioFileFormats.h */,
|
||||
8BF192D02EBE710E006A27E0 /* CAAUMIDIMapManager.h */,
|
||||
8BF192D12EBE710E006A27E0 /* CACFDictionary.cpp */,
|
||||
8BF192D22EBE710E006A27E0 /* CAMutex.h */,
|
||||
8BF192D32EBE710E006A27E0 /* CACFString.cpp */,
|
||||
8BF192D42EBE710E006A27E0 /* CASettingsStorage.h */,
|
||||
8BF192D52EBE710E006A27E0 /* CADebugPrintf.h */,
|
||||
8BF192D62EBE710E006A27E0 /* CAXException.cpp */,
|
||||
8BF192D72EBE710E006A27E0 /* CAAUMIDIMap.h */,
|
||||
8BF192D82EBE710E006A27E0 /* AUParamInfo.h */,
|
||||
8BF192D92EBE710E006A27E0 /* CABitOperations.h */,
|
||||
8BF192DA2EBE710E006A27E0 /* CACFPreferences.cpp */,
|
||||
8BF192DB2EBE710E006A27E0 /* CABundleLocker.h */,
|
||||
8BF192DC2EBE710E006A27E0 /* CAPropertyAddress.h */,
|
||||
8BF192DD2EBE710E006A27E0 /* CAXException.h */,
|
||||
8BF192DE2EBE710E006A27E0 /* CAAudioChannelLayout.cpp */,
|
||||
8BF192DF2EBE710E006A27E0 /* CAThreadSafeList.h */,
|
||||
8BF192E02EBE710E006A27E0 /* CAAudioUnitOutputCapturer.h */,
|
||||
8BF192E12EBE710E006A27E0 /* AUParamInfo.cpp */,
|
||||
8BF192E22EBE710E006A27E0 /* CASharedLibrary.cpp */,
|
||||
8BF192E32EBE710E006A27E0 /* CAAUMIDIMap.cpp */,
|
||||
8BF192E42EBE710E006A27E0 /* CALogMacros.h */,
|
||||
8BF192E52EBE710E006A27E0 /* CACFMessagePort.cpp */,
|
||||
8BF192E62EBE710E006A27E0 /* CARingBuffer.h */,
|
||||
8BF192E72EBE710E006A27E0 /* AUOutputBL.cpp */,
|
||||
8BF192E82EBE710E006A27E0 /* CABufferList.h */,
|
||||
8BF192E92EBE710E006A27E0 /* CASharedLibrary.h */,
|
||||
8BF192EA2EBE710E006A27E0 /* CACFData.h */,
|
||||
8BF192EB2EBE710E006A27E0 /* CAStreamRangedDescription.cpp */,
|
||||
8BF192EC2EBE710E006A27E0 /* CAPThread.cpp */,
|
||||
8BF192ED2EBE710E006A27E0 /* CAAutoDisposer.h */,
|
||||
8BF192EE2EBE710E006A27E0 /* CACFPreferences.h */,
|
||||
8BF192EF2EBE710E006A27E0 /* CAVectorUnit.cpp */,
|
||||
8BF192F02EBE710E006A27E0 /* CAComponentDescription.h */,
|
||||
8BF192F12EBE710E006A27E0 /* CADebugMacros.h */,
|
||||
8BF192F22EBE710E006A27E0 /* AUOutputBL.h */,
|
||||
8BF192F32EBE710E006A27E0 /* CADebugPrintf.cpp */,
|
||||
8BF192F42EBE710E006A27E0 /* CARingBuffer.cpp */,
|
||||
8BF192F52EBE710E006A27E0 /* CACFPlugIn.h */,
|
||||
8BF192F62EBE710E006A27E0 /* CASettingsStorage.cpp */,
|
||||
8BF192F72EBE710E006A27E0 /* CAMixMap.h */,
|
||||
8BF192F82EBE710E006A27E0 /* CACFDistributedNotification.h */,
|
||||
8BF192F92EBE710E006A27E0 /* CAFilePathUtils.h */,
|
||||
8BF192FA2EBE710E006A27E0 /* CATink.h */,
|
||||
8BF192FB2EBE710E006A27E0 /* CAStreamBasicDescription.cpp */,
|
||||
8BF192FC2EBE710E006A27E0 /* CAAudioChannelLayout.h */,
|
||||
8BF192FD2EBE710E006A27E0 /* CAProcess.cpp */,
|
||||
8BF192FE2EBE710E006A27E0 /* CAHostTimeBase.cpp */,
|
||||
8BF192FF2EBE710E006A27E0 /* CAPersistence.cpp */,
|
||||
8BF193002EBE710E006A27E0 /* CAAudioBufferList.cpp */,
|
||||
8BF193012EBE710E006A27E0 /* CAAudioTimeStamp.cpp */,
|
||||
8BF193022EBE710E006A27E0 /* CAVectorUnit.h */,
|
||||
8BF193032EBE710E006A27E0 /* CAByteOrder.h */,
|
||||
8BF193042EBE710E006A27E0 /* CACFArray.h */,
|
||||
8BF193052EBE710E006A27E0 /* CAAtomicStack.h */,
|
||||
8BF193062EBE710E006A27E0 /* CAReferenceCounted.h */,
|
||||
8BF193072EBE710E006A27E0 /* CACFMachPort.cpp */,
|
||||
8BF193082EBE710E006A27E0 /* CABufferList.cpp */,
|
||||
8BF193092EBE710E006A27E0 /* CAMutex.cpp */,
|
||||
8BF1930A2EBE710E006A27E0 /* CADebugger.cpp */,
|
||||
8BF1930B2EBE710E006A27E0 /* CABundleLocker.cpp */,
|
||||
8BF1930C2EBE710E006A27E0 /* CAAudioFileFormats.cpp */,
|
||||
8BF1930D2EBE710E006A27E0 /* CAMath.h */,
|
||||
8BF1930E2EBE710E006A27E0 /* CACFArray.cpp */,
|
||||
8BF1930F2EBE710E006A27E0 /* CACFMessagePort.h */,
|
||||
8BF193102EBE710E006A27E0 /* CAAudioValueRange.cpp */,
|
||||
8BF193112EBE710E006A27E0 /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193122EBE710E006A27E0 /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193132EBE710E006A27E0 /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193132EBE710E006A27E0 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193142EBE710E006A27E0 /* AUViewBase */,
|
||||
8BF193162EBE710E006A27E0 /* AUBase */,
|
||||
8BF193262EBE710E006A27E0 /* OtherBases */,
|
||||
8BF193292EBE710E006A27E0 /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193142EBE710E006A27E0 /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193152EBE710E006A27E0 /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193162EBE710E006A27E0 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193172EBE710E006A27E0 /* ComponentBase.cpp */,
|
||||
8BF193182EBE710E006A27E0 /* AUScopeElement.cpp */,
|
||||
8BF193192EBE710E006A27E0 /* ComponentBase.h */,
|
||||
8BF1931A2EBE710E006A27E0 /* AUBase.cpp */,
|
||||
8BF1931B2EBE710E006A27E0 /* AUInputElement.h */,
|
||||
8BF1931C2EBE710E006A27E0 /* AUBase.h */,
|
||||
8BF1931D2EBE710E006A27E0 /* AUPlugInDispatch.h */,
|
||||
8BF1931E2EBE710E006A27E0 /* AUDispatch.h */,
|
||||
8BF1931F2EBE710E006A27E0 /* AUOutputElement.cpp */,
|
||||
8BF193202EBE710E006A27E0 /* AUResources.r */,
|
||||
8BF193212EBE710E006A27E0 /* AUPlugInDispatch.cpp */,
|
||||
8BF193222EBE710E006A27E0 /* AUOutputElement.h */,
|
||||
8BF193232EBE710E006A27E0 /* AUDispatch.cpp */,
|
||||
8BF193242EBE710E006A27E0 /* AUScopeElement.h */,
|
||||
8BF193252EBE710E006A27E0 /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193262EBE710E006A27E0 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193272EBE710E006A27E0 /* AUEffectBase.cpp */,
|
||||
8BF193282EBE710E006A27E0 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193292EBE710E006A27E0 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF1932A2EBE710E006A27E0 /* AUTimestampGenerator.h */,
|
||||
8BF1932B2EBE710E006A27E0 /* AUBaseHelper.cpp */,
|
||||
8BF1932C2EBE710E006A27E0 /* AUSilentTimeout.h */,
|
||||
8BF1932D2EBE710E006A27E0 /* AUInputFormatConverter.h */,
|
||||
8BF1932E2EBE710E006A27E0 /* AUTimestampGenerator.cpp */,
|
||||
8BF1932F2EBE710E006A27E0 /* AUBuffer.cpp */,
|
||||
8BF193302EBE710E006A27E0 /* AUMIDIDefs.h */,
|
||||
8BF193312EBE710E006A27E0 /* AUBuffer.h */,
|
||||
8BF193322EBE710E006A27E0 /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BF193632EBE710E006A27E0 /* CABundleLocker.h in Headers */,
|
||||
8BF193842EBE710E006A27E0 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BF1937A2EBE710E006A27E0 /* AUOutputBL.h in Headers */,
|
||||
8BF193552EBE710E006A27E0 /* CAHostTimeBase.h in Headers */,
|
||||
8BF1939D2EBE710E006A27E0 /* ComponentBase.h in Headers */,
|
||||
8BF1938D2EBE710E006A27E0 /* CAAtomicStack.h in Headers */,
|
||||
8BF1934A2EBE710E006A27E0 /* CAAudioTimeStamp.h in Headers */,
|
||||
8BF193672EBE710E006A27E0 /* CAThreadSafeList.h in Headers */,
|
||||
8BF193422EBE710E006A27E0 /* CAAUParameter.h in Headers */,
|
||||
8BF193B42EBE710E006A27E0 /* AUBaseHelper.h in Headers */,
|
||||
8BF193AC2EBE710E006A27E0 /* AUTimestampGenerator.h in Headers */,
|
||||
8BF1935D2EBE710E006A27E0 /* CADebugPrintf.h in Headers */,
|
||||
8BF193972EBE710E006A27E0 /* CACFMessagePort.h in Headers */,
|
||||
8BF193452EBE710E006A27E0 /* CAAUProcessor.h in Headers */,
|
||||
8BF193412EBE710E006A27E0 /* CAAudioUnit.h in Headers */,
|
||||
8BF1939A2EBE710E006A27E0 /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8BF193802EBE710E006A27E0 /* CACFDistributedNotification.h in Headers */,
|
||||
8BF1933F2EBE710E006A27E0 /* CAComponent.h in Headers */,
|
||||
8BF1934D2EBE710E006A27E0 /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* ConsoleHBussVersion.h in Headers */,
|
||||
8BF193812EBE710E006A27E0 /* CAFilePathUtils.h in Headers */,
|
||||
8BF193432EBE710E006A27E0 /* CAException.h in Headers */,
|
||||
8BF1933A2EBE710E006A27E0 /* CAAtomic.h in Headers */,
|
||||
8BF193392EBE710E006A27E0 /* CAGuard.h in Headers */,
|
||||
8BF1939F2EBE710E006A27E0 /* AUInputElement.h in Headers */,
|
||||
8BF193762EBE710E006A27E0 /* CACFPreferences.h in Headers */,
|
||||
8BF1938B2EBE710E006A27E0 /* CAByteOrder.h in Headers */,
|
||||
8BF1936E2EBE710E006A27E0 /* CARingBuffer.h in Headers */,
|
||||
8BF193352EBE710E006A27E0 /* CABool.h in Headers */,
|
||||
8BF1935A2EBE710E006A27E0 /* CAMutex.h in Headers */,
|
||||
8BF193A02EBE710E006A27E0 /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* ConsoleHBuss.h in Headers */,
|
||||
8BF193522EBE710E006A27E0 /* CACFString.h in Headers */,
|
||||
8BF193712EBE710E006A27E0 /* CASharedLibrary.h in Headers */,
|
||||
8BF1933E2EBE710E006A27E0 /* CATokenMap.h in Headers */,
|
||||
8BF193332EBE710E006A27E0 /* CAExtAudioFile.h in Headers */,
|
||||
8BF193482EBE710E006A27E0 /* CAPThread.h in Headers */,
|
||||
8BF193642EBE710E006A27E0 /* CAPropertyAddress.h in Headers */,
|
||||
8BF1938E2EBE710E006A27E0 /* CAReferenceCounted.h in Headers */,
|
||||
8BF193B32EBE710E006A27E0 /* AUBuffer.h in Headers */,
|
||||
8BF193952EBE710E006A27E0 /* CAMath.h in Headers */,
|
||||
8BF193752EBE710E006A27E0 /* CAAutoDisposer.h in Headers */,
|
||||
8BF1933C2EBE710E006A27E0 /* CACFObject.h in Headers */,
|
||||
8BF1935C2EBE710E006A27E0 /* CASettingsStorage.h in Headers */,
|
||||
8BF193652EBE710E006A27E0 /* CAXException.h in Headers */,
|
||||
8BF193822EBE710E006A27E0 /* CATink.h in Headers */,
|
||||
8BF193AF2EBE710E006A27E0 /* AUInputFormatConverter.h in Headers */,
|
||||
8BF1938A2EBE710E006A27E0 /* CAVectorUnit.h in Headers */,
|
||||
8BF193462EBE710E006A27E0 /* CAProcess.h in Headers */,
|
||||
8BF1934C2EBE710E006A27E0 /* CAAudioValueRange.h in Headers */,
|
||||
8BF193612EBE710E006A27E0 /* CABitOperations.h in Headers */,
|
||||
8BF193572EBE710E006A27E0 /* CAAudioFileFormats.h in Headers */,
|
||||
8BF193502EBE710E006A27E0 /* CACFNumber.h in Headers */,
|
||||
8BF193682EBE710E006A27E0 /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8BF193792EBE710E006A27E0 /* CADebugMacros.h in Headers */,
|
||||
8BF193B22EBE710E006A27E0 /* AUMIDIDefs.h in Headers */,
|
||||
8BF193722EBE710E006A27E0 /* CACFData.h in Headers */,
|
||||
8BF1933B2EBE710E006A27E0 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BF193A12EBE710E006A27E0 /* AUPlugInDispatch.h in Headers */,
|
||||
8BF1933D2EBE710E006A27E0 /* CAStreamRangedDescription.h in Headers */,
|
||||
8BF1937D2EBE710E006A27E0 /* CACFPlugIn.h in Headers */,
|
||||
8BF193402EBE710E006A27E0 /* CAAudioBufferList.h in Headers */,
|
||||
8BF193582EBE710E006A27E0 /* CAAUMIDIMapManager.h in Headers */,
|
||||
8BF193AB2EBE710E006A27E0 /* AUEffectBase.h in Headers */,
|
||||
8BF193472EBE710E006A27E0 /* CACFDictionary.h in Headers */,
|
||||
8BF193A82EBE710E006A27E0 /* AUScopeElement.h in Headers */,
|
||||
8BF193782EBE710E006A27E0 /* CAComponentDescription.h in Headers */,
|
||||
8BF193AE2EBE710E006A27E0 /* AUSilentTimeout.h in Headers */,
|
||||
8BF193702EBE710E006A27E0 /* CABufferList.h in Headers */,
|
||||
8BF193A22EBE710E006A27E0 /* AUDispatch.h in Headers */,
|
||||
8BF193A62EBE710E006A27E0 /* AUOutputElement.h in Headers */,
|
||||
8BF1936C2EBE710E006A27E0 /* CALogMacros.h in Headers */,
|
||||
8BF193602EBE710E006A27E0 /* AUParamInfo.h in Headers */,
|
||||
8BF1937F2EBE710E006A27E0 /* CAMixMap.h in Headers */,
|
||||
8BF1938C2EBE710E006A27E0 /* CACFArray.h in Headers */,
|
||||
8BF193342EBE710E006A27E0 /* CACFMachPort.h in Headers */,
|
||||
8BF1935F2EBE710E006A27E0 /* CAAUMIDIMap.h in Headers */,
|
||||
8BF193372EBE710E006A27E0 /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHBuss" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConsoleHBuss;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ConsoleHBuss;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* ConsoleHBuss.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 "ConsoleHBuss" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
fr,
|
||||
de,
|
||||
ja,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ConsoleHBuss */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHBuss */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8BF1936F2EBE710E006A27E0 /* AUOutputBL.cpp in Sources */,
|
||||
8BF193942EBE710E006A27E0 /* CAAudioFileFormats.cpp in Sources */,
|
||||
8BF193862EBE710E006A27E0 /* CAHostTimeBase.cpp in Sources */,
|
||||
8BF1935E2EBE710E006A27E0 /* CAXException.cpp in Sources */,
|
||||
8BF193882EBE710E006A27E0 /* CAAudioBufferList.cpp in Sources */,
|
||||
8BF1934B2EBE710E006A27E0 /* CAFilePathUtils.cpp in Sources */,
|
||||
8BF193492EBE710E006A27E0 /* CAAUParameter.cpp in Sources */,
|
||||
8BF1936B2EBE710E006A27E0 /* CAAUMIDIMap.cpp in Sources */,
|
||||
8BF193982EBE710E006A27E0 /* CAAudioValueRange.cpp in Sources */,
|
||||
8BF193A72EBE710E006A27E0 /* AUDispatch.cpp in Sources */,
|
||||
8BF193622EBE710E006A27E0 /* CACFPreferences.cpp in Sources */,
|
||||
8BF193A52EBE710E006A27E0 /* AUPlugInDispatch.cpp in Sources */,
|
||||
8BF193442EBE710E006A27E0 /* CAAUProcessor.cpp in Sources */,
|
||||
8BF193592EBE710E006A27E0 /* CACFDictionary.cpp in Sources */,
|
||||
8BF193AD2EBE710E006A27E0 /* AUBaseHelper.cpp in Sources */,
|
||||
8BF193922EBE710E006A27E0 /* CADebugger.cpp in Sources */,
|
||||
8BF193662EBE710E006A27E0 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BF193692EBE710E006A27E0 /* AUParamInfo.cpp in Sources */,
|
||||
8BF193872EBE710E006A27E0 /* CAPersistence.cpp in Sources */,
|
||||
8BF1937B2EBE710E006A27E0 /* CADebugPrintf.cpp in Sources */,
|
||||
8BF193B02EBE710E006A27E0 /* AUTimestampGenerator.cpp in Sources */,
|
||||
8BF193832EBE710E006A27E0 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BF193532EBE710E006A27E0 /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8BF1937E2EBE710E006A27E0 /* CASettingsStorage.cpp in Sources */,
|
||||
8BF193A32EBE710E006A27E0 /* AUOutputElement.cpp in Sources */,
|
||||
8BF1934F2EBE710E006A27E0 /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* ConsoleHBuss.cpp in Sources */,
|
||||
8BF193912EBE710E006A27E0 /* CAMutex.cpp in Sources */,
|
||||
8BF193AA2EBE710E006A27E0 /* AUEffectBase.cpp in Sources */,
|
||||
8BF1938F2EBE710E006A27E0 /* CACFMachPort.cpp in Sources */,
|
||||
8BF1939E2EBE710E006A27E0 /* AUBase.cpp in Sources */,
|
||||
8BF1936A2EBE710E006A27E0 /* CASharedLibrary.cpp in Sources */,
|
||||
8BF193512EBE710E006A27E0 /* CACFDistributedNotification.cpp in Sources */,
|
||||
8BF193542EBE710E006A27E0 /* CAComponentDescription.cpp in Sources */,
|
||||
8BF1935B2EBE710E006A27E0 /* CACFString.cpp in Sources */,
|
||||
8BF1939B2EBE710E006A27E0 /* ComponentBase.cpp in Sources */,
|
||||
8BF1937C2EBE710E006A27E0 /* CARingBuffer.cpp in Sources */,
|
||||
8BF1939C2EBE710E006A27E0 /* AUScopeElement.cpp in Sources */,
|
||||
8BF193992EBE710E006A27E0 /* CAAudioUnit.cpp in Sources */,
|
||||
8BF193962EBE710E006A27E0 /* CACFArray.cpp in Sources */,
|
||||
8BF193932EBE710E006A27E0 /* CABundleLocker.cpp in Sources */,
|
||||
8BF193852EBE710E006A27E0 /* CAProcess.cpp in Sources */,
|
||||
8BF193732EBE710E006A27E0 /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8BF193742EBE710E006A27E0 /* CAPThread.cpp in Sources */,
|
||||
8BF193362EBE710E006A27E0 /* CAComponent.cpp in Sources */,
|
||||
8BF1934E2EBE710E006A27E0 /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8BF193892EBE710E006A27E0 /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8BF193902EBE710E006A27E0 /* CABufferList.cpp in Sources */,
|
||||
8BF1936D2EBE710E006A27E0 /* CACFMessagePort.cpp in Sources */,
|
||||
8BF193772EBE710E006A27E0 /* CAVectorUnit.cpp in Sources */,
|
||||
8BF193A92EBE710E006A27E0 /* AUInputElement.cpp in Sources */,
|
||||
8BF193B12EBE710E006A27E0 /* AUBuffer.cpp in Sources */,
|
||||
8BF193562EBE710E006A27E0 /* CADebugMacros.cpp in Sources */,
|
||||
8BF193382EBE710E006A27E0 /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8BF193B52EBE71CE006A27E0 /* 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 = ConsoleHBuss.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 = ConsoleHBuss;
|
||||
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 = ConsoleHBuss.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 = ConsoleHBuss;
|
||||
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 "ConsoleHBuss" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHBuss" */ = {
|
||||
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 = "ConsoleHBuss.component"
|
||||
BlueprintName = "ConsoleHBuss"
|
||||
ReferencedContainer = "container:ConsoleHBuss.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 = "ConsoleHBuss.component"
|
||||
BlueprintName = "ConsoleHBuss"
|
||||
ReferencedContainer = "container:ConsoleHBuss.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>ConsoleHBuss.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/ConsoleHBuss/ConsoleHBussVersion.h
Executable file
58
plugins/MacSignedAU/ConsoleHBuss/ConsoleHBussVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: ConsoleHBussVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 __ConsoleHBussVersion_h__
|
||||
#define __ConsoleHBussVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kConsoleHBussVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kConsoleHBussVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define ConsoleHBuss_COMP_MANF 'Dthr'
|
||||
#define ConsoleHBuss_COMP_SUBTYPE 'chpb'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
47
plugins/MacSignedAU/ConsoleHBuss/Info.plist
Executable file
47
plugins/MacSignedAU/ConsoleHBuss/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>chpb</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/ConsoleHBuss/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/ConsoleHBuss/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/ConsoleHBuss/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/ConsoleHBuss/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/ConsoleHBuss/version.plist
Executable file
16
plugins/MacSignedAU/ConsoleHBuss/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>
|
||||
1097
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
1097
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.cpp
Executable file
File diff suppressed because it is too large
Load diff
2
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.exp
Executable file
2
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_ConsoleHChannelEntry
|
||||
_ConsoleHChannelFactory
|
||||
313
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.h
Executable file
313
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.h
Executable file
|
|
@ -0,0 +1,313 @@
|
|||
/*
|
||||
* File: ConsoleHChannel.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHChannelVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHChannel_h__
|
||||
#define __ConsoleHChannel_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHChannel Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
static const float kDefaultValue_ParamCRS = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamTRF = 0.5;
|
||||
static const float kDefaultValue_ParamTRG = 0.0;
|
||||
static const float kDefaultValue_ParamTRB = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.0;
|
||||
static const float kDefaultValue_ParamHMB = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.0;
|
||||
static const float kDefaultValue_ParamLMB = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.0;
|
||||
static const float kDefaultValue_ParamBSB = 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 kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
static CFStringRef kParameterCRSName = CFSTR("CrossFd");
|
||||
|
||||
static CFStringRef kParameterTRFUnit = CFSTR("crush");
|
||||
static CFStringRef kParameterTRFName = CFSTR("Tr Freq");
|
||||
static CFStringRef kParameterTRGName = CFSTR("Treble");
|
||||
static CFStringRef kParameterTRBName = CFSTR("TrCrush");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HM Freq");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HighMid");
|
||||
static CFStringRef kParameterHMBName = CFSTR("HMCrush");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LM Freq");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LowMid");
|
||||
static CFStringRef kParameterLMBName = CFSTR("LMCrush");
|
||||
static CFStringRef kParameterBSFName = CFSTR("Bs Freq");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
static CFStringRef kParameterBSBName = CFSTR("BsCrush");
|
||||
|
||||
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_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_PAN =24,
|
||||
kParam_FAD =25,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=26
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
#pragma mark ____ConsoleHChannel
|
||||
class ConsoleHChannel : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHChannel(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHChannel () { 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 kConsoleHChannelVersion; }
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_sR1,
|
||||
biq_sR2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double highFastRIIR;
|
||||
double lowFastLIIR;
|
||||
double lowFastRIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2, biqs_aR1, biqs_aR2,
|
||||
biqs_cL1, biqs_cL2, biqs_cR1, biqs_cR2,
|
||||
biqs_outL, biqs_outR, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//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_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPositionL[23];
|
||||
double iirHAngleL[23];
|
||||
double iirHPositionR[23];
|
||||
double iirHAngleR[23];
|
||||
bool hBypass;
|
||||
double iirLPositionL[15];
|
||||
double iirLAngleL[15];
|
||||
double iirLPositionR[15];
|
||||
double iirLAngleR[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
double dBaR[dscBuf+5];
|
||||
double dBaPosR;
|
||||
int dBaXR;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg32R[33];
|
||||
double avg16L[17];
|
||||
double avg16R[17];
|
||||
double avg8L[9];
|
||||
double avg8R[9];
|
||||
double avg4L[5];
|
||||
double avg4R[5];
|
||||
double avg2L[3];
|
||||
double avg2R[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewR;
|
||||
double lastSlewpleL;
|
||||
double lastSlewpleR;
|
||||
//preTapeHack
|
||||
|
||||
double panA;
|
||||
double panB;
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpdL;
|
||||
uint32_t fpdR;
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
61
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.r
Executable file
61
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.r
Executable file
|
|
@ -0,0 +1,61 @@
|
|||
/*
|
||||
* File: ConsoleHChannel.r
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHChannelVersion.h"
|
||||
|
||||
// Note that resource IDs must be spaced 2 apart for the 'STR ' name and description
|
||||
#define kAudioUnitResID_ConsoleHChannel 1000
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ConsoleHChannel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
#define RES_ID kAudioUnitResID_ConsoleHChannel
|
||||
#define COMP_TYPE kAudioUnitType_Effect
|
||||
#define COMP_SUBTYPE ConsoleHChannel_COMP_SUBTYPE
|
||||
#define COMP_MANUF ConsoleHChannel_COMP_MANF
|
||||
|
||||
#define VERSION kConsoleHChannelVersion
|
||||
#define NAME "Airwindows: ConsoleHChannel"
|
||||
#define DESCRIPTION "ConsoleHChannel AU"
|
||||
#define ENTRY_POINT "ConsoleHChannelEntry"
|
||||
|
||||
#include "AUResources.r"
|
||||
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,107 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
089C1669FE841209C02AAC07 /* Project object */ = {
|
||||
activeBuildConfigurationName = Release;
|
||||
activeTarget = 8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */;
|
||||
codeSenseManager = 8BD3CCB9148830B20062E48C /* Code sense */;
|
||||
perUserDictionary = {
|
||||
PBXConfiguration.PBXFileTableDataSource3.PBXFileTableDataSource = {
|
||||
PBXFileTableDataSourceColumnSortingDirectionKey = "-1";
|
||||
PBXFileTableDataSourceColumnSortingKey = PBXFileDataSource_Filename_ColumnID;
|
||||
PBXFileTableDataSourceColumnWidthsKey = (
|
||||
20,
|
||||
303,
|
||||
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 = 784126220;
|
||||
PBXWorkspaceStateSaveDate = 784126220;
|
||||
};
|
||||
sourceControlManager = 8BD3CCB8148830B20062E48C /* Source Control */;
|
||||
userBuildSettings = {
|
||||
};
|
||||
};
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1308, 19872}}";
|
||||
sepNavSelRange = "{29117, 23722}";
|
||||
sepNavVisRange = "{52032, 1445}";
|
||||
sepNavWindowFrame = "{{5, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 1062}}";
|
||||
sepNavSelRange = "{2948, 0}";
|
||||
sepNavVisRange = "{1075, 1936}";
|
||||
sepNavWindowFrame = "{{15, 47}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BA05A7F072073D200365D66 /* AUBase.cpp */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {516, 23430}}";
|
||||
sepNavSelRange = "{0, 0}";
|
||||
sepNavVisRange = "{0, 1336}";
|
||||
};
|
||||
};
|
||||
8BC6025B073B072D006C4272 /* ConsoleHChannel.h */ = {
|
||||
uiCtxt = {
|
||||
sepNavIntBoundsRect = "{{0, 0}, {1056, 4878}}";
|
||||
sepNavSelRange = "{6299, 25}";
|
||||
sepNavVisRange = "{5969, 1043}";
|
||||
sepNavWindowFrame = "{{7, 52}, {912, 826}}";
|
||||
};
|
||||
};
|
||||
8BD3CCB8148830B20062E48C /* Source Control */ = {
|
||||
isa = PBXSourceControlManager;
|
||||
fallbackIsa = XCSourceControlManager;
|
||||
isSCMEnabled = 0;
|
||||
scmConfiguration = {
|
||||
repositoryNamesForRoots = {
|
||||
"" = "";
|
||||
};
|
||||
};
|
||||
};
|
||||
8BD3CCB9148830B20062E48C /* Code sense */ = {
|
||||
isa = PBXCodeSenseManager;
|
||||
indexTemplatePath = "";
|
||||
};
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */ = {
|
||||
activeExec = 0;
|
||||
};
|
||||
}
|
||||
File diff suppressed because it is too large
Load diff
965
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/project.pbxproj
Executable file
965
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannel.xcodeproj/project.pbxproj
Executable file
|
|
@ -0,0 +1,965 @@
|
|||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 45;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
8BA05A6B0720730100365D66 /* ConsoleHChannel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BA05A660720730100365D66 /* ConsoleHChannel.cpp */; };
|
||||
8BA05A6E0720730100365D66 /* ConsoleHChannelVersion.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BA05A690720730100365D66 /* ConsoleHChannelVersion.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 /* ConsoleHChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BC6025B073B072D006C4272 /* ConsoleHChannel.h */; };
|
||||
8BF194402EBE7221006A27E0 /* CAExtAudioFile.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193B82EBE7221006A27E0 /* CAExtAudioFile.h */; };
|
||||
8BF194412EBE7221006A27E0 /* CACFMachPort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193B92EBE7221006A27E0 /* CACFMachPort.h */; };
|
||||
8BF194422EBE7221006A27E0 /* CABool.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193BA2EBE7221006A27E0 /* CABool.h */; };
|
||||
8BF194432EBE7221006A27E0 /* CAComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193BB2EBE7221006A27E0 /* CAComponent.cpp */; };
|
||||
8BF194442EBE7221006A27E0 /* CADebugger.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193BC2EBE7221006A27E0 /* CADebugger.h */; };
|
||||
8BF194452EBE7221006A27E0 /* CACFNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193BD2EBE7221006A27E0 /* CACFNumber.cpp */; };
|
||||
8BF194462EBE7221006A27E0 /* CAGuard.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193BE2EBE7221006A27E0 /* CAGuard.h */; };
|
||||
8BF194472EBE7221006A27E0 /* CAAtomic.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193BF2EBE7221006A27E0 /* CAAtomic.h */; };
|
||||
8BF194482EBE7221006A27E0 /* CAStreamBasicDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C02EBE7221006A27E0 /* CAStreamBasicDescription.h */; };
|
||||
8BF194492EBE7221006A27E0 /* CACFObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C12EBE7221006A27E0 /* CACFObject.h */; };
|
||||
8BF1944A2EBE7221006A27E0 /* CAStreamRangedDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C22EBE7221006A27E0 /* CAStreamRangedDescription.h */; };
|
||||
8BF1944B2EBE7221006A27E0 /* CATokenMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C32EBE7221006A27E0 /* CATokenMap.h */; };
|
||||
8BF1944C2EBE7221006A27E0 /* CAComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C42EBE7221006A27E0 /* CAComponent.h */; };
|
||||
8BF1944D2EBE7221006A27E0 /* CAAudioBufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C52EBE7221006A27E0 /* CAAudioBufferList.h */; };
|
||||
8BF1944E2EBE7221006A27E0 /* CAAudioUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C62EBE7221006A27E0 /* CAAudioUnit.h */; };
|
||||
8BF1944F2EBE7221006A27E0 /* CAAUParameter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C72EBE7221006A27E0 /* CAAUParameter.h */; };
|
||||
8BF194502EBE7221006A27E0 /* CAException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193C82EBE7221006A27E0 /* CAException.h */; };
|
||||
8BF194512EBE7221006A27E0 /* CAAUProcessor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193C92EBE7221006A27E0 /* CAAUProcessor.cpp */; };
|
||||
8BF194522EBE7221006A27E0 /* CAAUProcessor.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193CA2EBE7221006A27E0 /* CAAUProcessor.h */; };
|
||||
8BF194532EBE7221006A27E0 /* CAProcess.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193CB2EBE7221006A27E0 /* CAProcess.h */; };
|
||||
8BF194542EBE7221006A27E0 /* CACFDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193CC2EBE7221006A27E0 /* CACFDictionary.h */; };
|
||||
8BF194552EBE7221006A27E0 /* CAPThread.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193CD2EBE7221006A27E0 /* CAPThread.h */; };
|
||||
8BF194562EBE7221006A27E0 /* CAAUParameter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193CE2EBE7221006A27E0 /* CAAUParameter.cpp */; };
|
||||
8BF194572EBE7221006A27E0 /* CAAudioTimeStamp.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193CF2EBE7221006A27E0 /* CAAudioTimeStamp.h */; };
|
||||
8BF194582EBE7221006A27E0 /* CAFilePathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D02EBE7221006A27E0 /* CAFilePathUtils.cpp */; };
|
||||
8BF194592EBE7221006A27E0 /* CAAudioValueRange.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193D12EBE7221006A27E0 /* CAAudioValueRange.h */; };
|
||||
8BF1945A2EBE7221006A27E0 /* CAVectorUnitTypes.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193D22EBE7221006A27E0 /* CAVectorUnitTypes.h */; };
|
||||
8BF1945B2EBE7221006A27E0 /* CAAudioChannelLayoutObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D32EBE7221006A27E0 /* CAAudioChannelLayoutObject.cpp */; };
|
||||
8BF1945C2EBE7221006A27E0 /* CAGuard.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D42EBE7221006A27E0 /* CAGuard.cpp */; };
|
||||
8BF1945D2EBE7221006A27E0 /* CACFNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193D52EBE7221006A27E0 /* CACFNumber.h */; };
|
||||
8BF1945E2EBE7221006A27E0 /* CACFDistributedNotification.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D62EBE7221006A27E0 /* CACFDistributedNotification.cpp */; };
|
||||
8BF1945F2EBE7221006A27E0 /* CACFString.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193D72EBE7221006A27E0 /* CACFString.h */; };
|
||||
8BF194602EBE7221006A27E0 /* CAAUMIDIMapManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D82EBE7221006A27E0 /* CAAUMIDIMapManager.cpp */; };
|
||||
8BF194612EBE7221006A27E0 /* CAComponentDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193D92EBE7221006A27E0 /* CAComponentDescription.cpp */; };
|
||||
8BF194622EBE7221006A27E0 /* CAHostTimeBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193DA2EBE7221006A27E0 /* CAHostTimeBase.h */; };
|
||||
8BF194632EBE7221006A27E0 /* CADebugMacros.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193DB2EBE7221006A27E0 /* CADebugMacros.cpp */; };
|
||||
8BF194642EBE7221006A27E0 /* CAAudioFileFormats.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193DC2EBE7221006A27E0 /* CAAudioFileFormats.h */; };
|
||||
8BF194652EBE7221006A27E0 /* CAAUMIDIMapManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193DD2EBE7221006A27E0 /* CAAUMIDIMapManager.h */; };
|
||||
8BF194662EBE7221006A27E0 /* CACFDictionary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193DE2EBE7221006A27E0 /* CACFDictionary.cpp */; };
|
||||
8BF194672EBE7221006A27E0 /* CAMutex.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193DF2EBE7221006A27E0 /* CAMutex.h */; };
|
||||
8BF194682EBE7221006A27E0 /* CACFString.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193E02EBE7221006A27E0 /* CACFString.cpp */; };
|
||||
8BF194692EBE7221006A27E0 /* CASettingsStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E12EBE7221006A27E0 /* CASettingsStorage.h */; };
|
||||
8BF1946A2EBE7221006A27E0 /* CADebugPrintf.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E22EBE7221006A27E0 /* CADebugPrintf.h */; };
|
||||
8BF1946B2EBE7221006A27E0 /* CAXException.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193E32EBE7221006A27E0 /* CAXException.cpp */; };
|
||||
8BF1946C2EBE7221006A27E0 /* CAAUMIDIMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E42EBE7221006A27E0 /* CAAUMIDIMap.h */; };
|
||||
8BF1946D2EBE7221006A27E0 /* AUParamInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E52EBE7221006A27E0 /* AUParamInfo.h */; };
|
||||
8BF1946E2EBE7221006A27E0 /* CABitOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E62EBE7221006A27E0 /* CABitOperations.h */; };
|
||||
8BF1946F2EBE7221006A27E0 /* CACFPreferences.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193E72EBE7221006A27E0 /* CACFPreferences.cpp */; };
|
||||
8BF194702EBE7221006A27E0 /* CABundleLocker.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E82EBE7221006A27E0 /* CABundleLocker.h */; };
|
||||
8BF194712EBE7221006A27E0 /* CAPropertyAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193E92EBE7221006A27E0 /* CAPropertyAddress.h */; };
|
||||
8BF194722EBE7221006A27E0 /* CAXException.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193EA2EBE7221006A27E0 /* CAXException.h */; };
|
||||
8BF194732EBE7221006A27E0 /* CAAudioChannelLayout.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193EB2EBE7221006A27E0 /* CAAudioChannelLayout.cpp */; };
|
||||
8BF194742EBE7221006A27E0 /* CAThreadSafeList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193EC2EBE7221006A27E0 /* CAThreadSafeList.h */; };
|
||||
8BF194752EBE7221006A27E0 /* CAAudioUnitOutputCapturer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193ED2EBE7221006A27E0 /* CAAudioUnitOutputCapturer.h */; };
|
||||
8BF194762EBE7221006A27E0 /* AUParamInfo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193EE2EBE7221006A27E0 /* AUParamInfo.cpp */; };
|
||||
8BF194772EBE7221006A27E0 /* CASharedLibrary.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193EF2EBE7221006A27E0 /* CASharedLibrary.cpp */; };
|
||||
8BF194782EBE7221006A27E0 /* CAAUMIDIMap.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193F02EBE7221006A27E0 /* CAAUMIDIMap.cpp */; };
|
||||
8BF194792EBE7221006A27E0 /* CALogMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193F12EBE7221006A27E0 /* CALogMacros.h */; };
|
||||
8BF1947A2EBE7221006A27E0 /* CACFMessagePort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193F22EBE7221006A27E0 /* CACFMessagePort.cpp */; };
|
||||
8BF1947B2EBE7221006A27E0 /* CARingBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193F32EBE7221006A27E0 /* CARingBuffer.h */; };
|
||||
8BF1947C2EBE7221006A27E0 /* AUOutputBL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193F42EBE7221006A27E0 /* AUOutputBL.cpp */; };
|
||||
8BF1947D2EBE7221006A27E0 /* CABufferList.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193F52EBE7221006A27E0 /* CABufferList.h */; };
|
||||
8BF1947E2EBE7221006A27E0 /* CASharedLibrary.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193F62EBE7221006A27E0 /* CASharedLibrary.h */; };
|
||||
8BF1947F2EBE7221006A27E0 /* CACFData.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193F72EBE7221006A27E0 /* CACFData.h */; };
|
||||
8BF194802EBE7221006A27E0 /* CAStreamRangedDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193F82EBE7221006A27E0 /* CAStreamRangedDescription.cpp */; };
|
||||
8BF194812EBE7221006A27E0 /* CAPThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193F92EBE7221006A27E0 /* CAPThread.cpp */; };
|
||||
8BF194822EBE7221006A27E0 /* CAAutoDisposer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193FA2EBE7221006A27E0 /* CAAutoDisposer.h */; };
|
||||
8BF194832EBE7221006A27E0 /* CACFPreferences.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193FB2EBE7221006A27E0 /* CACFPreferences.h */; };
|
||||
8BF194842EBE7221006A27E0 /* CAVectorUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF193FC2EBE7221006A27E0 /* CAVectorUnit.cpp */; };
|
||||
8BF194852EBE7221006A27E0 /* CAComponentDescription.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193FD2EBE7221006A27E0 /* CAComponentDescription.h */; };
|
||||
8BF194862EBE7221006A27E0 /* CADebugMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193FE2EBE7221006A27E0 /* CADebugMacros.h */; };
|
||||
8BF194872EBE7221006A27E0 /* AUOutputBL.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF193FF2EBE7221006A27E0 /* AUOutputBL.h */; };
|
||||
8BF194882EBE7221006A27E0 /* CADebugPrintf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194002EBE7221006A27E0 /* CADebugPrintf.cpp */; };
|
||||
8BF194892EBE7221006A27E0 /* CARingBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194012EBE7221006A27E0 /* CARingBuffer.cpp */; };
|
||||
8BF1948A2EBE7221006A27E0 /* CACFPlugIn.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194022EBE7221006A27E0 /* CACFPlugIn.h */; };
|
||||
8BF1948B2EBE7221006A27E0 /* CASettingsStorage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194032EBE7221006A27E0 /* CASettingsStorage.cpp */; };
|
||||
8BF1948C2EBE7221006A27E0 /* CAMixMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194042EBE7221006A27E0 /* CAMixMap.h */; };
|
||||
8BF1948D2EBE7221006A27E0 /* CACFDistributedNotification.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194052EBE7221006A27E0 /* CACFDistributedNotification.h */; };
|
||||
8BF1948E2EBE7221006A27E0 /* CAFilePathUtils.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194062EBE7221006A27E0 /* CAFilePathUtils.h */; };
|
||||
8BF1948F2EBE7221006A27E0 /* CATink.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194072EBE7221006A27E0 /* CATink.h */; };
|
||||
8BF194902EBE7221006A27E0 /* CAStreamBasicDescription.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194082EBE7221006A27E0 /* CAStreamBasicDescription.cpp */; };
|
||||
8BF194912EBE7221006A27E0 /* CAAudioChannelLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194092EBE7221006A27E0 /* CAAudioChannelLayout.h */; };
|
||||
8BF194922EBE7221006A27E0 /* CAProcess.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1940A2EBE7221006A27E0 /* CAProcess.cpp */; };
|
||||
8BF194932EBE7221006A27E0 /* CAHostTimeBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1940B2EBE7221006A27E0 /* CAHostTimeBase.cpp */; };
|
||||
8BF194942EBE7221006A27E0 /* CAPersistence.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1940C2EBE7221006A27E0 /* CAPersistence.cpp */; };
|
||||
8BF194952EBE7221006A27E0 /* CAAudioBufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1940D2EBE7221006A27E0 /* CAAudioBufferList.cpp */; };
|
||||
8BF194962EBE7221006A27E0 /* CAAudioTimeStamp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1940E2EBE7221006A27E0 /* CAAudioTimeStamp.cpp */; };
|
||||
8BF194972EBE7221006A27E0 /* CAVectorUnit.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1940F2EBE7221006A27E0 /* CAVectorUnit.h */; };
|
||||
8BF194982EBE7221006A27E0 /* CAByteOrder.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194102EBE7221006A27E0 /* CAByteOrder.h */; };
|
||||
8BF194992EBE7221006A27E0 /* CACFArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194112EBE7221006A27E0 /* CACFArray.h */; };
|
||||
8BF1949A2EBE7221006A27E0 /* CAAtomicStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194122EBE7221006A27E0 /* CAAtomicStack.h */; };
|
||||
8BF1949B2EBE7221006A27E0 /* CAReferenceCounted.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194132EBE7221006A27E0 /* CAReferenceCounted.h */; };
|
||||
8BF1949C2EBE7221006A27E0 /* CACFMachPort.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194142EBE7221006A27E0 /* CACFMachPort.cpp */; };
|
||||
8BF1949D2EBE7221006A27E0 /* CABufferList.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194152EBE7221006A27E0 /* CABufferList.cpp */; };
|
||||
8BF1949E2EBE7221006A27E0 /* CAMutex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194162EBE7221006A27E0 /* CAMutex.cpp */; };
|
||||
8BF1949F2EBE7221006A27E0 /* CADebugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194172EBE7221006A27E0 /* CADebugger.cpp */; };
|
||||
8BF194A02EBE7221006A27E0 /* CABundleLocker.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194182EBE7221006A27E0 /* CABundleLocker.cpp */; };
|
||||
8BF194A12EBE7221006A27E0 /* CAAudioFileFormats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194192EBE7221006A27E0 /* CAAudioFileFormats.cpp */; };
|
||||
8BF194A22EBE7221006A27E0 /* CAMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1941A2EBE7221006A27E0 /* CAMath.h */; };
|
||||
8BF194A32EBE7221006A27E0 /* CACFArray.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1941B2EBE7221006A27E0 /* CACFArray.cpp */; };
|
||||
8BF194A42EBE7221006A27E0 /* CACFMessagePort.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1941C2EBE7221006A27E0 /* CACFMessagePort.h */; };
|
||||
8BF194A52EBE7221006A27E0 /* CAAudioValueRange.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1941D2EBE7221006A27E0 /* CAAudioValueRange.cpp */; };
|
||||
8BF194A62EBE7221006A27E0 /* CAAudioUnit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1941E2EBE7221006A27E0 /* CAAudioUnit.cpp */; };
|
||||
8BF194A72EBE7221006A27E0 /* AUViewLocalizedStringKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194222EBE7221006A27E0 /* AUViewLocalizedStringKeys.h */; };
|
||||
8BF194A82EBE7221006A27E0 /* ComponentBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194242EBE7221006A27E0 /* ComponentBase.cpp */; };
|
||||
8BF194A92EBE7221006A27E0 /* AUScopeElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194252EBE7221006A27E0 /* AUScopeElement.cpp */; };
|
||||
8BF194AA2EBE7221006A27E0 /* ComponentBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194262EBE7221006A27E0 /* ComponentBase.h */; };
|
||||
8BF194AB2EBE7221006A27E0 /* AUBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194272EBE7221006A27E0 /* AUBase.cpp */; };
|
||||
8BF194AC2EBE7221006A27E0 /* AUInputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194282EBE7221006A27E0 /* AUInputElement.h */; };
|
||||
8BF194AD2EBE7221006A27E0 /* AUBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194292EBE7221006A27E0 /* AUBase.h */; };
|
||||
8BF194AE2EBE7221006A27E0 /* AUPlugInDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1942A2EBE7221006A27E0 /* AUPlugInDispatch.h */; };
|
||||
8BF194AF2EBE7221006A27E0 /* AUDispatch.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1942B2EBE7221006A27E0 /* AUDispatch.h */; };
|
||||
8BF194B02EBE7221006A27E0 /* AUOutputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1942C2EBE7221006A27E0 /* AUOutputElement.cpp */; };
|
||||
8BF194B22EBE7221006A27E0 /* AUPlugInDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1942E2EBE7221006A27E0 /* AUPlugInDispatch.cpp */; };
|
||||
8BF194B32EBE7221006A27E0 /* AUOutputElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1942F2EBE7221006A27E0 /* AUOutputElement.h */; };
|
||||
8BF194B42EBE7221006A27E0 /* AUDispatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194302EBE7221006A27E0 /* AUDispatch.cpp */; };
|
||||
8BF194B52EBE7221006A27E0 /* AUScopeElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194312EBE7221006A27E0 /* AUScopeElement.h */; };
|
||||
8BF194B62EBE7221006A27E0 /* AUInputElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194322EBE7221006A27E0 /* AUInputElement.cpp */; };
|
||||
8BF194B72EBE7221006A27E0 /* AUEffectBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194342EBE7221006A27E0 /* AUEffectBase.cpp */; };
|
||||
8BF194B82EBE7221006A27E0 /* AUEffectBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194352EBE7221006A27E0 /* AUEffectBase.h */; };
|
||||
8BF194B92EBE7221006A27E0 /* AUTimestampGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194372EBE7221006A27E0 /* AUTimestampGenerator.h */; };
|
||||
8BF194BA2EBE7221006A27E0 /* AUBaseHelper.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF194382EBE7221006A27E0 /* AUBaseHelper.cpp */; };
|
||||
8BF194BB2EBE7221006A27E0 /* AUSilentTimeout.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF194392EBE7221006A27E0 /* AUSilentTimeout.h */; };
|
||||
8BF194BC2EBE7221006A27E0 /* AUInputFormatConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1943A2EBE7221006A27E0 /* AUInputFormatConverter.h */; };
|
||||
8BF194BD2EBE7221006A27E0 /* AUTimestampGenerator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1943B2EBE7221006A27E0 /* AUTimestampGenerator.cpp */; };
|
||||
8BF194BE2EBE7221006A27E0 /* AUBuffer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8BF1943C2EBE7221006A27E0 /* AUBuffer.cpp */; };
|
||||
8BF194BF2EBE7221006A27E0 /* AUMIDIDefs.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1943D2EBE7221006A27E0 /* AUMIDIDefs.h */; };
|
||||
8BF194C02EBE7221006A27E0 /* AUBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1943E2EBE7221006A27E0 /* AUBuffer.h */; };
|
||||
8BF194C12EBE7221006A27E0 /* AUBaseHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 8BF1943F2EBE7221006A27E0 /* AUBaseHelper.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>"; };
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = ConsoleHChannel.cpp; sourceTree = "<group>"; };
|
||||
8BA05A670720730100365D66 /* ConsoleHChannel.exp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.exports; path = ConsoleHChannel.exp; sourceTree = "<group>"; };
|
||||
8BA05A680720730100365D66 /* ConsoleHChannel.r */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.rez; path = ConsoleHChannel.r; sourceTree = "<group>"; };
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHChannelVersion.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 /* ConsoleHChannel.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = ConsoleHChannel.h; sourceTree = "<group>"; };
|
||||
8BF193B82EBE7221006A27E0 /* CAExtAudioFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAExtAudioFile.h; sourceTree = "<group>"; };
|
||||
8BF193B92EBE7221006A27E0 /* CACFMachPort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMachPort.h; sourceTree = "<group>"; };
|
||||
8BF193BA2EBE7221006A27E0 /* CABool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABool.h; sourceTree = "<group>"; };
|
||||
8BF193BB2EBE7221006A27E0 /* CAComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponent.cpp; sourceTree = "<group>"; };
|
||||
8BF193BC2EBE7221006A27E0 /* CADebugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugger.h; sourceTree = "<group>"; };
|
||||
8BF193BD2EBE7221006A27E0 /* CACFNumber.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFNumber.cpp; sourceTree = "<group>"; };
|
||||
8BF193BE2EBE7221006A27E0 /* CAGuard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAGuard.h; sourceTree = "<group>"; };
|
||||
8BF193BF2EBE7221006A27E0 /* CAAtomic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomic.h; sourceTree = "<group>"; };
|
||||
8BF193C02EBE7221006A27E0 /* CAStreamBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamBasicDescription.h; sourceTree = "<group>"; };
|
||||
8BF193C12EBE7221006A27E0 /* CACFObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFObject.h; sourceTree = "<group>"; };
|
||||
8BF193C22EBE7221006A27E0 /* CAStreamRangedDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAStreamRangedDescription.h; sourceTree = "<group>"; };
|
||||
8BF193C32EBE7221006A27E0 /* CATokenMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATokenMap.h; sourceTree = "<group>"; };
|
||||
8BF193C42EBE7221006A27E0 /* CAComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponent.h; sourceTree = "<group>"; };
|
||||
8BF193C52EBE7221006A27E0 /* CAAudioBufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioBufferList.h; sourceTree = "<group>"; };
|
||||
8BF193C62EBE7221006A27E0 /* CAAudioUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnit.h; sourceTree = "<group>"; };
|
||||
8BF193C72EBE7221006A27E0 /* CAAUParameter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUParameter.h; sourceTree = "<group>"; };
|
||||
8BF193C82EBE7221006A27E0 /* CAException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAException.h; sourceTree = "<group>"; };
|
||||
8BF193C92EBE7221006A27E0 /* CAAUProcessor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUProcessor.cpp; sourceTree = "<group>"; };
|
||||
8BF193CA2EBE7221006A27E0 /* CAAUProcessor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUProcessor.h; sourceTree = "<group>"; };
|
||||
8BF193CB2EBE7221006A27E0 /* CAProcess.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAProcess.h; sourceTree = "<group>"; };
|
||||
8BF193CC2EBE7221006A27E0 /* CACFDictionary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDictionary.h; sourceTree = "<group>"; };
|
||||
8BF193CD2EBE7221006A27E0 /* CAPThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPThread.h; sourceTree = "<group>"; };
|
||||
8BF193CE2EBE7221006A27E0 /* CAAUParameter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUParameter.cpp; sourceTree = "<group>"; };
|
||||
8BF193CF2EBE7221006A27E0 /* CAAudioTimeStamp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioTimeStamp.h; sourceTree = "<group>"; };
|
||||
8BF193D02EBE7221006A27E0 /* CAFilePathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAFilePathUtils.cpp; sourceTree = "<group>"; };
|
||||
8BF193D12EBE7221006A27E0 /* CAAudioValueRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioValueRange.h; sourceTree = "<group>"; };
|
||||
8BF193D22EBE7221006A27E0 /* CAVectorUnitTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnitTypes.h; sourceTree = "<group>"; };
|
||||
8BF193D32EBE7221006A27E0 /* CAAudioChannelLayoutObject.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayoutObject.cpp; sourceTree = "<group>"; };
|
||||
8BF193D42EBE7221006A27E0 /* CAGuard.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAGuard.cpp; sourceTree = "<group>"; };
|
||||
8BF193D52EBE7221006A27E0 /* CACFNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFNumber.h; sourceTree = "<group>"; };
|
||||
8BF193D62EBE7221006A27E0 /* CACFDistributedNotification.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDistributedNotification.cpp; sourceTree = "<group>"; };
|
||||
8BF193D72EBE7221006A27E0 /* CACFString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFString.h; sourceTree = "<group>"; };
|
||||
8BF193D82EBE7221006A27E0 /* CAAUMIDIMapManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMapManager.cpp; sourceTree = "<group>"; };
|
||||
8BF193D92EBE7221006A27E0 /* CAComponentDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAComponentDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF193DA2EBE7221006A27E0 /* CAHostTimeBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAHostTimeBase.h; sourceTree = "<group>"; };
|
||||
8BF193DB2EBE7221006A27E0 /* CADebugMacros.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugMacros.cpp; sourceTree = "<group>"; };
|
||||
8BF193DC2EBE7221006A27E0 /* CAAudioFileFormats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioFileFormats.h; sourceTree = "<group>"; };
|
||||
8BF193DD2EBE7221006A27E0 /* CAAUMIDIMapManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMapManager.h; sourceTree = "<group>"; };
|
||||
8BF193DE2EBE7221006A27E0 /* CACFDictionary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFDictionary.cpp; sourceTree = "<group>"; };
|
||||
8BF193DF2EBE7221006A27E0 /* CAMutex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMutex.h; sourceTree = "<group>"; };
|
||||
8BF193E02EBE7221006A27E0 /* CACFString.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFString.cpp; sourceTree = "<group>"; };
|
||||
8BF193E12EBE7221006A27E0 /* CASettingsStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASettingsStorage.h; sourceTree = "<group>"; };
|
||||
8BF193E22EBE7221006A27E0 /* CADebugPrintf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugPrintf.h; sourceTree = "<group>"; };
|
||||
8BF193E32EBE7221006A27E0 /* CAXException.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAXException.cpp; sourceTree = "<group>"; };
|
||||
8BF193E42EBE7221006A27E0 /* CAAUMIDIMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAUMIDIMap.h; sourceTree = "<group>"; };
|
||||
8BF193E52EBE7221006A27E0 /* AUParamInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUParamInfo.h; sourceTree = "<group>"; };
|
||||
8BF193E62EBE7221006A27E0 /* CABitOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABitOperations.h; sourceTree = "<group>"; };
|
||||
8BF193E72EBE7221006A27E0 /* CACFPreferences.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFPreferences.cpp; sourceTree = "<group>"; };
|
||||
8BF193E82EBE7221006A27E0 /* CABundleLocker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABundleLocker.h; sourceTree = "<group>"; };
|
||||
8BF193E92EBE7221006A27E0 /* CAPropertyAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAPropertyAddress.h; sourceTree = "<group>"; };
|
||||
8BF193EA2EBE7221006A27E0 /* CAXException.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAXException.h; sourceTree = "<group>"; };
|
||||
8BF193EB2EBE7221006A27E0 /* CAAudioChannelLayout.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioChannelLayout.cpp; sourceTree = "<group>"; };
|
||||
8BF193EC2EBE7221006A27E0 /* CAThreadSafeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAThreadSafeList.h; sourceTree = "<group>"; };
|
||||
8BF193ED2EBE7221006A27E0 /* CAAudioUnitOutputCapturer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioUnitOutputCapturer.h; sourceTree = "<group>"; };
|
||||
8BF193EE2EBE7221006A27E0 /* AUParamInfo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUParamInfo.cpp; sourceTree = "<group>"; };
|
||||
8BF193EF2EBE7221006A27E0 /* CASharedLibrary.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASharedLibrary.cpp; sourceTree = "<group>"; };
|
||||
8BF193F02EBE7221006A27E0 /* CAAUMIDIMap.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAUMIDIMap.cpp; sourceTree = "<group>"; };
|
||||
8BF193F12EBE7221006A27E0 /* CALogMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CALogMacros.h; sourceTree = "<group>"; };
|
||||
8BF193F22EBE7221006A27E0 /* CACFMessagePort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMessagePort.cpp; sourceTree = "<group>"; };
|
||||
8BF193F32EBE7221006A27E0 /* CARingBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CARingBuffer.h; sourceTree = "<group>"; };
|
||||
8BF193F42EBE7221006A27E0 /* AUOutputBL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputBL.cpp; sourceTree = "<group>"; };
|
||||
8BF193F52EBE7221006A27E0 /* CABufferList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CABufferList.h; sourceTree = "<group>"; };
|
||||
8BF193F62EBE7221006A27E0 /* CASharedLibrary.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CASharedLibrary.h; sourceTree = "<group>"; };
|
||||
8BF193F72EBE7221006A27E0 /* CACFData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFData.h; sourceTree = "<group>"; };
|
||||
8BF193F82EBE7221006A27E0 /* CAStreamRangedDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamRangedDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF193F92EBE7221006A27E0 /* CAPThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPThread.cpp; sourceTree = "<group>"; };
|
||||
8BF193FA2EBE7221006A27E0 /* CAAutoDisposer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAutoDisposer.h; sourceTree = "<group>"; };
|
||||
8BF193FB2EBE7221006A27E0 /* CACFPreferences.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPreferences.h; sourceTree = "<group>"; };
|
||||
8BF193FC2EBE7221006A27E0 /* CAVectorUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAVectorUnit.cpp; sourceTree = "<group>"; };
|
||||
8BF193FD2EBE7221006A27E0 /* CAComponentDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAComponentDescription.h; sourceTree = "<group>"; };
|
||||
8BF193FE2EBE7221006A27E0 /* CADebugMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CADebugMacros.h; sourceTree = "<group>"; };
|
||||
8BF193FF2EBE7221006A27E0 /* AUOutputBL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputBL.h; sourceTree = "<group>"; };
|
||||
8BF194002EBE7221006A27E0 /* CADebugPrintf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugPrintf.cpp; sourceTree = "<group>"; };
|
||||
8BF194012EBE7221006A27E0 /* CARingBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CARingBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BF194022EBE7221006A27E0 /* CACFPlugIn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFPlugIn.h; sourceTree = "<group>"; };
|
||||
8BF194032EBE7221006A27E0 /* CASettingsStorage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CASettingsStorage.cpp; sourceTree = "<group>"; };
|
||||
8BF194042EBE7221006A27E0 /* CAMixMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMixMap.h; sourceTree = "<group>"; };
|
||||
8BF194052EBE7221006A27E0 /* CACFDistributedNotification.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFDistributedNotification.h; sourceTree = "<group>"; };
|
||||
8BF194062EBE7221006A27E0 /* CAFilePathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAFilePathUtils.h; sourceTree = "<group>"; };
|
||||
8BF194072EBE7221006A27E0 /* CATink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CATink.h; sourceTree = "<group>"; };
|
||||
8BF194082EBE7221006A27E0 /* CAStreamBasicDescription.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAStreamBasicDescription.cpp; sourceTree = "<group>"; };
|
||||
8BF194092EBE7221006A27E0 /* CAAudioChannelLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAudioChannelLayout.h; sourceTree = "<group>"; };
|
||||
8BF1940A2EBE7221006A27E0 /* CAProcess.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAProcess.cpp; sourceTree = "<group>"; };
|
||||
8BF1940B2EBE7221006A27E0 /* CAHostTimeBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAHostTimeBase.cpp; sourceTree = "<group>"; };
|
||||
8BF1940C2EBE7221006A27E0 /* CAPersistence.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAPersistence.cpp; sourceTree = "<group>"; };
|
||||
8BF1940D2EBE7221006A27E0 /* CAAudioBufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioBufferList.cpp; sourceTree = "<group>"; };
|
||||
8BF1940E2EBE7221006A27E0 /* CAAudioTimeStamp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioTimeStamp.cpp; sourceTree = "<group>"; };
|
||||
8BF1940F2EBE7221006A27E0 /* CAVectorUnit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAVectorUnit.h; sourceTree = "<group>"; };
|
||||
8BF194102EBE7221006A27E0 /* CAByteOrder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAByteOrder.h; sourceTree = "<group>"; };
|
||||
8BF194112EBE7221006A27E0 /* CACFArray.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFArray.h; sourceTree = "<group>"; };
|
||||
8BF194122EBE7221006A27E0 /* CAAtomicStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAAtomicStack.h; sourceTree = "<group>"; };
|
||||
8BF194132EBE7221006A27E0 /* CAReferenceCounted.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAReferenceCounted.h; sourceTree = "<group>"; };
|
||||
8BF194142EBE7221006A27E0 /* CACFMachPort.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFMachPort.cpp; sourceTree = "<group>"; };
|
||||
8BF194152EBE7221006A27E0 /* CABufferList.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABufferList.cpp; sourceTree = "<group>"; };
|
||||
8BF194162EBE7221006A27E0 /* CAMutex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAMutex.cpp; sourceTree = "<group>"; };
|
||||
8BF194172EBE7221006A27E0 /* CADebugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CADebugger.cpp; sourceTree = "<group>"; };
|
||||
8BF194182EBE7221006A27E0 /* CABundleLocker.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CABundleLocker.cpp; sourceTree = "<group>"; };
|
||||
8BF194192EBE7221006A27E0 /* CAAudioFileFormats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioFileFormats.cpp; sourceTree = "<group>"; };
|
||||
8BF1941A2EBE7221006A27E0 /* CAMath.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CAMath.h; sourceTree = "<group>"; };
|
||||
8BF1941B2EBE7221006A27E0 /* CACFArray.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CACFArray.cpp; sourceTree = "<group>"; };
|
||||
8BF1941C2EBE7221006A27E0 /* CACFMessagePort.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CACFMessagePort.h; sourceTree = "<group>"; };
|
||||
8BF1941D2EBE7221006A27E0 /* CAAudioValueRange.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioValueRange.cpp; sourceTree = "<group>"; };
|
||||
8BF1941E2EBE7221006A27E0 /* CAAudioUnit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CAAudioUnit.cpp; sourceTree = "<group>"; };
|
||||
8BF194222EBE7221006A27E0 /* AUViewLocalizedStringKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUViewLocalizedStringKeys.h; sourceTree = "<group>"; };
|
||||
8BF194242EBE7221006A27E0 /* ComponentBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ComponentBase.cpp; sourceTree = "<group>"; };
|
||||
8BF194252EBE7221006A27E0 /* AUScopeElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUScopeElement.cpp; sourceTree = "<group>"; };
|
||||
8BF194262EBE7221006A27E0 /* ComponentBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ComponentBase.h; sourceTree = "<group>"; };
|
||||
8BF194272EBE7221006A27E0 /* AUBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBase.cpp; sourceTree = "<group>"; };
|
||||
8BF194282EBE7221006A27E0 /* AUInputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputElement.h; sourceTree = "<group>"; };
|
||||
8BF194292EBE7221006A27E0 /* AUBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBase.h; sourceTree = "<group>"; };
|
||||
8BF1942A2EBE7221006A27E0 /* AUPlugInDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUPlugInDispatch.h; sourceTree = "<group>"; };
|
||||
8BF1942B2EBE7221006A27E0 /* AUDispatch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUDispatch.h; sourceTree = "<group>"; };
|
||||
8BF1942C2EBE7221006A27E0 /* AUOutputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUOutputElement.cpp; sourceTree = "<group>"; };
|
||||
8BF1942D2EBE7221006A27E0 /* AUResources.r */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.rez; path = AUResources.r; sourceTree = "<group>"; };
|
||||
8BF1942E2EBE7221006A27E0 /* AUPlugInDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUPlugInDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BF1942F2EBE7221006A27E0 /* AUOutputElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUOutputElement.h; sourceTree = "<group>"; };
|
||||
8BF194302EBE7221006A27E0 /* AUDispatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUDispatch.cpp; sourceTree = "<group>"; };
|
||||
8BF194312EBE7221006A27E0 /* AUScopeElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUScopeElement.h; sourceTree = "<group>"; };
|
||||
8BF194322EBE7221006A27E0 /* AUInputElement.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUInputElement.cpp; sourceTree = "<group>"; };
|
||||
8BF194342EBE7221006A27E0 /* AUEffectBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUEffectBase.cpp; sourceTree = "<group>"; };
|
||||
8BF194352EBE7221006A27E0 /* AUEffectBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUEffectBase.h; sourceTree = "<group>"; };
|
||||
8BF194372EBE7221006A27E0 /* AUTimestampGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUTimestampGenerator.h; sourceTree = "<group>"; };
|
||||
8BF194382EBE7221006A27E0 /* AUBaseHelper.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBaseHelper.cpp; sourceTree = "<group>"; };
|
||||
8BF194392EBE7221006A27E0 /* AUSilentTimeout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUSilentTimeout.h; sourceTree = "<group>"; };
|
||||
8BF1943A2EBE7221006A27E0 /* AUInputFormatConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUInputFormatConverter.h; sourceTree = "<group>"; };
|
||||
8BF1943B2EBE7221006A27E0 /* AUTimestampGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUTimestampGenerator.cpp; sourceTree = "<group>"; };
|
||||
8BF1943C2EBE7221006A27E0 /* AUBuffer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AUBuffer.cpp; sourceTree = "<group>"; };
|
||||
8BF1943D2EBE7221006A27E0 /* AUMIDIDefs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUMIDIDefs.h; sourceTree = "<group>"; };
|
||||
8BF1943E2EBE7221006A27E0 /* AUBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBuffer.h; sourceTree = "<group>"; };
|
||||
8BF1943F2EBE7221006A27E0 /* AUBaseHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AUBaseHelper.h; sourceTree = "<group>"; };
|
||||
8BF194C22EBE731E006A27E0 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||
8D01CCD10486CAD60068D4B7 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.component */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ConsoleHChannel.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 /* ConsoleHChannel */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
08FB77ADFE841716C02AAC07 /* Source */,
|
||||
089C167CFE841241C02AAC07 /* Resources */,
|
||||
089C1671FE841209C02AAC07 /* External Frameworks and Libraries */,
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */,
|
||||
);
|
||||
name = ConsoleHChannel;
|
||||
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 = (
|
||||
8BF193B62EBE7221006A27E0 /* CA_SDK */,
|
||||
8BA05A56072072A900365D66 /* AU Source */,
|
||||
);
|
||||
name = Source;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
19C28FB4FE9D528D11CA2CBB /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.component */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BA05A56072072A900365D66 /* AU Source */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BC6025B073B072D006C4272 /* ConsoleHChannel.h */,
|
||||
8BA05A660720730100365D66 /* ConsoleHChannel.cpp */,
|
||||
8BA05A670720730100365D66 /* ConsoleHChannel.exp */,
|
||||
8BA05A680720730100365D66 /* ConsoleHChannel.r */,
|
||||
8BA05A690720730100365D66 /* ConsoleHChannelVersion.h */,
|
||||
);
|
||||
name = "AU Source";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193B62EBE7221006A27E0 /* CA_SDK */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193B72EBE7221006A27E0 /* PublicUtility */,
|
||||
8BF1941F2EBE7221006A27E0 /* AudioUnits */,
|
||||
);
|
||||
name = CA_SDK;
|
||||
path = ../../../../CA_SDK;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF193B72EBE7221006A27E0 /* PublicUtility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF193B82EBE7221006A27E0 /* CAExtAudioFile.h */,
|
||||
8BF193B92EBE7221006A27E0 /* CACFMachPort.h */,
|
||||
8BF193BA2EBE7221006A27E0 /* CABool.h */,
|
||||
8BF193BB2EBE7221006A27E0 /* CAComponent.cpp */,
|
||||
8BF193BC2EBE7221006A27E0 /* CADebugger.h */,
|
||||
8BF193BD2EBE7221006A27E0 /* CACFNumber.cpp */,
|
||||
8BF193BE2EBE7221006A27E0 /* CAGuard.h */,
|
||||
8BF193BF2EBE7221006A27E0 /* CAAtomic.h */,
|
||||
8BF193C02EBE7221006A27E0 /* CAStreamBasicDescription.h */,
|
||||
8BF193C12EBE7221006A27E0 /* CACFObject.h */,
|
||||
8BF193C22EBE7221006A27E0 /* CAStreamRangedDescription.h */,
|
||||
8BF193C32EBE7221006A27E0 /* CATokenMap.h */,
|
||||
8BF193C42EBE7221006A27E0 /* CAComponent.h */,
|
||||
8BF193C52EBE7221006A27E0 /* CAAudioBufferList.h */,
|
||||
8BF193C62EBE7221006A27E0 /* CAAudioUnit.h */,
|
||||
8BF193C72EBE7221006A27E0 /* CAAUParameter.h */,
|
||||
8BF193C82EBE7221006A27E0 /* CAException.h */,
|
||||
8BF193C92EBE7221006A27E0 /* CAAUProcessor.cpp */,
|
||||
8BF193CA2EBE7221006A27E0 /* CAAUProcessor.h */,
|
||||
8BF193CB2EBE7221006A27E0 /* CAProcess.h */,
|
||||
8BF193CC2EBE7221006A27E0 /* CACFDictionary.h */,
|
||||
8BF193CD2EBE7221006A27E0 /* CAPThread.h */,
|
||||
8BF193CE2EBE7221006A27E0 /* CAAUParameter.cpp */,
|
||||
8BF193CF2EBE7221006A27E0 /* CAAudioTimeStamp.h */,
|
||||
8BF193D02EBE7221006A27E0 /* CAFilePathUtils.cpp */,
|
||||
8BF193D12EBE7221006A27E0 /* CAAudioValueRange.h */,
|
||||
8BF193D22EBE7221006A27E0 /* CAVectorUnitTypes.h */,
|
||||
8BF193D32EBE7221006A27E0 /* CAAudioChannelLayoutObject.cpp */,
|
||||
8BF193D42EBE7221006A27E0 /* CAGuard.cpp */,
|
||||
8BF193D52EBE7221006A27E0 /* CACFNumber.h */,
|
||||
8BF193D62EBE7221006A27E0 /* CACFDistributedNotification.cpp */,
|
||||
8BF193D72EBE7221006A27E0 /* CACFString.h */,
|
||||
8BF193D82EBE7221006A27E0 /* CAAUMIDIMapManager.cpp */,
|
||||
8BF193D92EBE7221006A27E0 /* CAComponentDescription.cpp */,
|
||||
8BF193DA2EBE7221006A27E0 /* CAHostTimeBase.h */,
|
||||
8BF193DB2EBE7221006A27E0 /* CADebugMacros.cpp */,
|
||||
8BF193DC2EBE7221006A27E0 /* CAAudioFileFormats.h */,
|
||||
8BF193DD2EBE7221006A27E0 /* CAAUMIDIMapManager.h */,
|
||||
8BF193DE2EBE7221006A27E0 /* CACFDictionary.cpp */,
|
||||
8BF193DF2EBE7221006A27E0 /* CAMutex.h */,
|
||||
8BF193E02EBE7221006A27E0 /* CACFString.cpp */,
|
||||
8BF193E12EBE7221006A27E0 /* CASettingsStorage.h */,
|
||||
8BF193E22EBE7221006A27E0 /* CADebugPrintf.h */,
|
||||
8BF193E32EBE7221006A27E0 /* CAXException.cpp */,
|
||||
8BF193E42EBE7221006A27E0 /* CAAUMIDIMap.h */,
|
||||
8BF193E52EBE7221006A27E0 /* AUParamInfo.h */,
|
||||
8BF193E62EBE7221006A27E0 /* CABitOperations.h */,
|
||||
8BF193E72EBE7221006A27E0 /* CACFPreferences.cpp */,
|
||||
8BF193E82EBE7221006A27E0 /* CABundleLocker.h */,
|
||||
8BF193E92EBE7221006A27E0 /* CAPropertyAddress.h */,
|
||||
8BF193EA2EBE7221006A27E0 /* CAXException.h */,
|
||||
8BF193EB2EBE7221006A27E0 /* CAAudioChannelLayout.cpp */,
|
||||
8BF193EC2EBE7221006A27E0 /* CAThreadSafeList.h */,
|
||||
8BF193ED2EBE7221006A27E0 /* CAAudioUnitOutputCapturer.h */,
|
||||
8BF193EE2EBE7221006A27E0 /* AUParamInfo.cpp */,
|
||||
8BF193EF2EBE7221006A27E0 /* CASharedLibrary.cpp */,
|
||||
8BF193F02EBE7221006A27E0 /* CAAUMIDIMap.cpp */,
|
||||
8BF193F12EBE7221006A27E0 /* CALogMacros.h */,
|
||||
8BF193F22EBE7221006A27E0 /* CACFMessagePort.cpp */,
|
||||
8BF193F32EBE7221006A27E0 /* CARingBuffer.h */,
|
||||
8BF193F42EBE7221006A27E0 /* AUOutputBL.cpp */,
|
||||
8BF193F52EBE7221006A27E0 /* CABufferList.h */,
|
||||
8BF193F62EBE7221006A27E0 /* CASharedLibrary.h */,
|
||||
8BF193F72EBE7221006A27E0 /* CACFData.h */,
|
||||
8BF193F82EBE7221006A27E0 /* CAStreamRangedDescription.cpp */,
|
||||
8BF193F92EBE7221006A27E0 /* CAPThread.cpp */,
|
||||
8BF193FA2EBE7221006A27E0 /* CAAutoDisposer.h */,
|
||||
8BF193FB2EBE7221006A27E0 /* CACFPreferences.h */,
|
||||
8BF193FC2EBE7221006A27E0 /* CAVectorUnit.cpp */,
|
||||
8BF193FD2EBE7221006A27E0 /* CAComponentDescription.h */,
|
||||
8BF193FE2EBE7221006A27E0 /* CADebugMacros.h */,
|
||||
8BF193FF2EBE7221006A27E0 /* AUOutputBL.h */,
|
||||
8BF194002EBE7221006A27E0 /* CADebugPrintf.cpp */,
|
||||
8BF194012EBE7221006A27E0 /* CARingBuffer.cpp */,
|
||||
8BF194022EBE7221006A27E0 /* CACFPlugIn.h */,
|
||||
8BF194032EBE7221006A27E0 /* CASettingsStorage.cpp */,
|
||||
8BF194042EBE7221006A27E0 /* CAMixMap.h */,
|
||||
8BF194052EBE7221006A27E0 /* CACFDistributedNotification.h */,
|
||||
8BF194062EBE7221006A27E0 /* CAFilePathUtils.h */,
|
||||
8BF194072EBE7221006A27E0 /* CATink.h */,
|
||||
8BF194082EBE7221006A27E0 /* CAStreamBasicDescription.cpp */,
|
||||
8BF194092EBE7221006A27E0 /* CAAudioChannelLayout.h */,
|
||||
8BF1940A2EBE7221006A27E0 /* CAProcess.cpp */,
|
||||
8BF1940B2EBE7221006A27E0 /* CAHostTimeBase.cpp */,
|
||||
8BF1940C2EBE7221006A27E0 /* CAPersistence.cpp */,
|
||||
8BF1940D2EBE7221006A27E0 /* CAAudioBufferList.cpp */,
|
||||
8BF1940E2EBE7221006A27E0 /* CAAudioTimeStamp.cpp */,
|
||||
8BF1940F2EBE7221006A27E0 /* CAVectorUnit.h */,
|
||||
8BF194102EBE7221006A27E0 /* CAByteOrder.h */,
|
||||
8BF194112EBE7221006A27E0 /* CACFArray.h */,
|
||||
8BF194122EBE7221006A27E0 /* CAAtomicStack.h */,
|
||||
8BF194132EBE7221006A27E0 /* CAReferenceCounted.h */,
|
||||
8BF194142EBE7221006A27E0 /* CACFMachPort.cpp */,
|
||||
8BF194152EBE7221006A27E0 /* CABufferList.cpp */,
|
||||
8BF194162EBE7221006A27E0 /* CAMutex.cpp */,
|
||||
8BF194172EBE7221006A27E0 /* CADebugger.cpp */,
|
||||
8BF194182EBE7221006A27E0 /* CABundleLocker.cpp */,
|
||||
8BF194192EBE7221006A27E0 /* CAAudioFileFormats.cpp */,
|
||||
8BF1941A2EBE7221006A27E0 /* CAMath.h */,
|
||||
8BF1941B2EBE7221006A27E0 /* CACFArray.cpp */,
|
||||
8BF1941C2EBE7221006A27E0 /* CACFMessagePort.h */,
|
||||
8BF1941D2EBE7221006A27E0 /* CAAudioValueRange.cpp */,
|
||||
8BF1941E2EBE7221006A27E0 /* CAAudioUnit.cpp */,
|
||||
);
|
||||
path = PublicUtility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF1941F2EBE7221006A27E0 /* AudioUnits */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194202EBE7221006A27E0 /* AUPublic */,
|
||||
);
|
||||
path = AudioUnits;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF194202EBE7221006A27E0 /* AUPublic */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194212EBE7221006A27E0 /* AUViewBase */,
|
||||
8BF194232EBE7221006A27E0 /* AUBase */,
|
||||
8BF194332EBE7221006A27E0 /* OtherBases */,
|
||||
8BF194362EBE7221006A27E0 /* Utility */,
|
||||
);
|
||||
path = AUPublic;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF194212EBE7221006A27E0 /* AUViewBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194222EBE7221006A27E0 /* AUViewLocalizedStringKeys.h */,
|
||||
);
|
||||
path = AUViewBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF194232EBE7221006A27E0 /* AUBase */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194242EBE7221006A27E0 /* ComponentBase.cpp */,
|
||||
8BF194252EBE7221006A27E0 /* AUScopeElement.cpp */,
|
||||
8BF194262EBE7221006A27E0 /* ComponentBase.h */,
|
||||
8BF194272EBE7221006A27E0 /* AUBase.cpp */,
|
||||
8BF194282EBE7221006A27E0 /* AUInputElement.h */,
|
||||
8BF194292EBE7221006A27E0 /* AUBase.h */,
|
||||
8BF1942A2EBE7221006A27E0 /* AUPlugInDispatch.h */,
|
||||
8BF1942B2EBE7221006A27E0 /* AUDispatch.h */,
|
||||
8BF1942C2EBE7221006A27E0 /* AUOutputElement.cpp */,
|
||||
8BF1942D2EBE7221006A27E0 /* AUResources.r */,
|
||||
8BF1942E2EBE7221006A27E0 /* AUPlugInDispatch.cpp */,
|
||||
8BF1942F2EBE7221006A27E0 /* AUOutputElement.h */,
|
||||
8BF194302EBE7221006A27E0 /* AUDispatch.cpp */,
|
||||
8BF194312EBE7221006A27E0 /* AUScopeElement.h */,
|
||||
8BF194322EBE7221006A27E0 /* AUInputElement.cpp */,
|
||||
);
|
||||
path = AUBase;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF194332EBE7221006A27E0 /* OtherBases */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194342EBE7221006A27E0 /* AUEffectBase.cpp */,
|
||||
8BF194352EBE7221006A27E0 /* AUEffectBase.h */,
|
||||
);
|
||||
path = OtherBases;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
8BF194362EBE7221006A27E0 /* Utility */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
8BF194372EBE7221006A27E0 /* AUTimestampGenerator.h */,
|
||||
8BF194382EBE7221006A27E0 /* AUBaseHelper.cpp */,
|
||||
8BF194392EBE7221006A27E0 /* AUSilentTimeout.h */,
|
||||
8BF1943A2EBE7221006A27E0 /* AUInputFormatConverter.h */,
|
||||
8BF1943B2EBE7221006A27E0 /* AUTimestampGenerator.cpp */,
|
||||
8BF1943C2EBE7221006A27E0 /* AUBuffer.cpp */,
|
||||
8BF1943D2EBE7221006A27E0 /* AUMIDIDefs.h */,
|
||||
8BF1943E2EBE7221006A27E0 /* AUBuffer.h */,
|
||||
8BF1943F2EBE7221006A27E0 /* AUBaseHelper.h */,
|
||||
);
|
||||
path = Utility;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
8BF194702EBE7221006A27E0 /* CABundleLocker.h in Headers */,
|
||||
8BF194912EBE7221006A27E0 /* CAAudioChannelLayout.h in Headers */,
|
||||
8BF194872EBE7221006A27E0 /* AUOutputBL.h in Headers */,
|
||||
8BF194622EBE7221006A27E0 /* CAHostTimeBase.h in Headers */,
|
||||
8BF194AA2EBE7221006A27E0 /* ComponentBase.h in Headers */,
|
||||
8BF1949A2EBE7221006A27E0 /* CAAtomicStack.h in Headers */,
|
||||
8BF194572EBE7221006A27E0 /* CAAudioTimeStamp.h in Headers */,
|
||||
8BF194742EBE7221006A27E0 /* CAThreadSafeList.h in Headers */,
|
||||
8BF1944F2EBE7221006A27E0 /* CAAUParameter.h in Headers */,
|
||||
8BF194C12EBE7221006A27E0 /* AUBaseHelper.h in Headers */,
|
||||
8BF194B92EBE7221006A27E0 /* AUTimestampGenerator.h in Headers */,
|
||||
8BF1946A2EBE7221006A27E0 /* CADebugPrintf.h in Headers */,
|
||||
8BF194A42EBE7221006A27E0 /* CACFMessagePort.h in Headers */,
|
||||
8BF194522EBE7221006A27E0 /* CAAUProcessor.h in Headers */,
|
||||
8BF1944E2EBE7221006A27E0 /* CAAudioUnit.h in Headers */,
|
||||
8BF194A72EBE7221006A27E0 /* AUViewLocalizedStringKeys.h in Headers */,
|
||||
8BF1948D2EBE7221006A27E0 /* CACFDistributedNotification.h in Headers */,
|
||||
8BF1944C2EBE7221006A27E0 /* CAComponent.h in Headers */,
|
||||
8BF1945A2EBE7221006A27E0 /* CAVectorUnitTypes.h in Headers */,
|
||||
8BA05A6E0720730100365D66 /* ConsoleHChannelVersion.h in Headers */,
|
||||
8BF1948E2EBE7221006A27E0 /* CAFilePathUtils.h in Headers */,
|
||||
8BF194502EBE7221006A27E0 /* CAException.h in Headers */,
|
||||
8BF194472EBE7221006A27E0 /* CAAtomic.h in Headers */,
|
||||
8BF194462EBE7221006A27E0 /* CAGuard.h in Headers */,
|
||||
8BF194AC2EBE7221006A27E0 /* AUInputElement.h in Headers */,
|
||||
8BF194832EBE7221006A27E0 /* CACFPreferences.h in Headers */,
|
||||
8BF194982EBE7221006A27E0 /* CAByteOrder.h in Headers */,
|
||||
8BF1947B2EBE7221006A27E0 /* CARingBuffer.h in Headers */,
|
||||
8BF194422EBE7221006A27E0 /* CABool.h in Headers */,
|
||||
8BF194672EBE7221006A27E0 /* CAMutex.h in Headers */,
|
||||
8BF194AD2EBE7221006A27E0 /* AUBase.h in Headers */,
|
||||
8BC6025C073B072D006C4272 /* ConsoleHChannel.h in Headers */,
|
||||
8BF1945F2EBE7221006A27E0 /* CACFString.h in Headers */,
|
||||
8BF1947E2EBE7221006A27E0 /* CASharedLibrary.h in Headers */,
|
||||
8BF1944B2EBE7221006A27E0 /* CATokenMap.h in Headers */,
|
||||
8BF194402EBE7221006A27E0 /* CAExtAudioFile.h in Headers */,
|
||||
8BF194552EBE7221006A27E0 /* CAPThread.h in Headers */,
|
||||
8BF194712EBE7221006A27E0 /* CAPropertyAddress.h in Headers */,
|
||||
8BF1949B2EBE7221006A27E0 /* CAReferenceCounted.h in Headers */,
|
||||
8BF194C02EBE7221006A27E0 /* AUBuffer.h in Headers */,
|
||||
8BF194A22EBE7221006A27E0 /* CAMath.h in Headers */,
|
||||
8BF194822EBE7221006A27E0 /* CAAutoDisposer.h in Headers */,
|
||||
8BF194492EBE7221006A27E0 /* CACFObject.h in Headers */,
|
||||
8BF194692EBE7221006A27E0 /* CASettingsStorage.h in Headers */,
|
||||
8BF194722EBE7221006A27E0 /* CAXException.h in Headers */,
|
||||
8BF1948F2EBE7221006A27E0 /* CATink.h in Headers */,
|
||||
8BF194BC2EBE7221006A27E0 /* AUInputFormatConverter.h in Headers */,
|
||||
8BF194972EBE7221006A27E0 /* CAVectorUnit.h in Headers */,
|
||||
8BF194532EBE7221006A27E0 /* CAProcess.h in Headers */,
|
||||
8BF194592EBE7221006A27E0 /* CAAudioValueRange.h in Headers */,
|
||||
8BF1946E2EBE7221006A27E0 /* CABitOperations.h in Headers */,
|
||||
8BF194642EBE7221006A27E0 /* CAAudioFileFormats.h in Headers */,
|
||||
8BF1945D2EBE7221006A27E0 /* CACFNumber.h in Headers */,
|
||||
8BF194752EBE7221006A27E0 /* CAAudioUnitOutputCapturer.h in Headers */,
|
||||
8BF194862EBE7221006A27E0 /* CADebugMacros.h in Headers */,
|
||||
8BF194BF2EBE7221006A27E0 /* AUMIDIDefs.h in Headers */,
|
||||
8BF1947F2EBE7221006A27E0 /* CACFData.h in Headers */,
|
||||
8BF194482EBE7221006A27E0 /* CAStreamBasicDescription.h in Headers */,
|
||||
8BF194AE2EBE7221006A27E0 /* AUPlugInDispatch.h in Headers */,
|
||||
8BF1944A2EBE7221006A27E0 /* CAStreamRangedDescription.h in Headers */,
|
||||
8BF1948A2EBE7221006A27E0 /* CACFPlugIn.h in Headers */,
|
||||
8BF1944D2EBE7221006A27E0 /* CAAudioBufferList.h in Headers */,
|
||||
8BF194652EBE7221006A27E0 /* CAAUMIDIMapManager.h in Headers */,
|
||||
8BF194B82EBE7221006A27E0 /* AUEffectBase.h in Headers */,
|
||||
8BF194542EBE7221006A27E0 /* CACFDictionary.h in Headers */,
|
||||
8BF194B52EBE7221006A27E0 /* AUScopeElement.h in Headers */,
|
||||
8BF194852EBE7221006A27E0 /* CAComponentDescription.h in Headers */,
|
||||
8BF194BB2EBE7221006A27E0 /* AUSilentTimeout.h in Headers */,
|
||||
8BF1947D2EBE7221006A27E0 /* CABufferList.h in Headers */,
|
||||
8BF194AF2EBE7221006A27E0 /* AUDispatch.h in Headers */,
|
||||
8BF194B32EBE7221006A27E0 /* AUOutputElement.h in Headers */,
|
||||
8BF194792EBE7221006A27E0 /* CALogMacros.h in Headers */,
|
||||
8BF1946D2EBE7221006A27E0 /* AUParamInfo.h in Headers */,
|
||||
8BF1948C2EBE7221006A27E0 /* CAMixMap.h in Headers */,
|
||||
8BF194992EBE7221006A27E0 /* CACFArray.h in Headers */,
|
||||
8BF194412EBE7221006A27E0 /* CACFMachPort.h in Headers */,
|
||||
8BF1946C2EBE7221006A27E0 /* CAAUMIDIMap.h in Headers */,
|
||||
8BF194442EBE7221006A27E0 /* CADebugger.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = 3E4BA243089833B7007656EC /* Build configuration list for PBXNativeTarget "ConsoleHChannel" */;
|
||||
buildPhases = (
|
||||
8D01CCC70486CAD60068D4B7 /* Headers */,
|
||||
8D01CCC90486CAD60068D4B7 /* Resources */,
|
||||
8D01CCCB0486CAD60068D4B7 /* Sources */,
|
||||
8D01CCCD0486CAD60068D4B7 /* Frameworks */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = ConsoleHChannel;
|
||||
productInstallPath = "$(HOME)/Library/Bundles";
|
||||
productName = ConsoleHChannel;
|
||||
productReference = 8D01CCD20486CAD60068D4B7 /* ConsoleHChannel.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 "ConsoleHChannel" */;
|
||||
compatibilityVersion = "Xcode 3.1";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 1;
|
||||
knownRegions = (
|
||||
ja,
|
||||
fr,
|
||||
Base,
|
||||
en,
|
||||
de,
|
||||
);
|
||||
mainGroup = 089C166AFE841209C02AAC07 /* ConsoleHChannel */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
8D01CCC60486CAD60068D4B7 /* ConsoleHChannel */,
|
||||
);
|
||||
};
|
||||
/* 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 = (
|
||||
8BF1947C2EBE7221006A27E0 /* AUOutputBL.cpp in Sources */,
|
||||
8BF194A12EBE7221006A27E0 /* CAAudioFileFormats.cpp in Sources */,
|
||||
8BF194932EBE7221006A27E0 /* CAHostTimeBase.cpp in Sources */,
|
||||
8BF1946B2EBE7221006A27E0 /* CAXException.cpp in Sources */,
|
||||
8BF194952EBE7221006A27E0 /* CAAudioBufferList.cpp in Sources */,
|
||||
8BF194582EBE7221006A27E0 /* CAFilePathUtils.cpp in Sources */,
|
||||
8BF194562EBE7221006A27E0 /* CAAUParameter.cpp in Sources */,
|
||||
8BF194782EBE7221006A27E0 /* CAAUMIDIMap.cpp in Sources */,
|
||||
8BF194A52EBE7221006A27E0 /* CAAudioValueRange.cpp in Sources */,
|
||||
8BF194B42EBE7221006A27E0 /* AUDispatch.cpp in Sources */,
|
||||
8BF1946F2EBE7221006A27E0 /* CACFPreferences.cpp in Sources */,
|
||||
8BF194B22EBE7221006A27E0 /* AUPlugInDispatch.cpp in Sources */,
|
||||
8BF194512EBE7221006A27E0 /* CAAUProcessor.cpp in Sources */,
|
||||
8BF194662EBE7221006A27E0 /* CACFDictionary.cpp in Sources */,
|
||||
8BF194BA2EBE7221006A27E0 /* AUBaseHelper.cpp in Sources */,
|
||||
8BF1949F2EBE7221006A27E0 /* CADebugger.cpp in Sources */,
|
||||
8BF194732EBE7221006A27E0 /* CAAudioChannelLayout.cpp in Sources */,
|
||||
8BF194762EBE7221006A27E0 /* AUParamInfo.cpp in Sources */,
|
||||
8BF194942EBE7221006A27E0 /* CAPersistence.cpp in Sources */,
|
||||
8BF194882EBE7221006A27E0 /* CADebugPrintf.cpp in Sources */,
|
||||
8BF194BD2EBE7221006A27E0 /* AUTimestampGenerator.cpp in Sources */,
|
||||
8BF194902EBE7221006A27E0 /* CAStreamBasicDescription.cpp in Sources */,
|
||||
8BF194602EBE7221006A27E0 /* CAAUMIDIMapManager.cpp in Sources */,
|
||||
8BF1948B2EBE7221006A27E0 /* CASettingsStorage.cpp in Sources */,
|
||||
8BF194B02EBE7221006A27E0 /* AUOutputElement.cpp in Sources */,
|
||||
8BF1945C2EBE7221006A27E0 /* CAGuard.cpp in Sources */,
|
||||
8BA05A6B0720730100365D66 /* ConsoleHChannel.cpp in Sources */,
|
||||
8BF1949E2EBE7221006A27E0 /* CAMutex.cpp in Sources */,
|
||||
8BF194B72EBE7221006A27E0 /* AUEffectBase.cpp in Sources */,
|
||||
8BF1949C2EBE7221006A27E0 /* CACFMachPort.cpp in Sources */,
|
||||
8BF194AB2EBE7221006A27E0 /* AUBase.cpp in Sources */,
|
||||
8BF194772EBE7221006A27E0 /* CASharedLibrary.cpp in Sources */,
|
||||
8BF1945E2EBE7221006A27E0 /* CACFDistributedNotification.cpp in Sources */,
|
||||
8BF194612EBE7221006A27E0 /* CAComponentDescription.cpp in Sources */,
|
||||
8BF194682EBE7221006A27E0 /* CACFString.cpp in Sources */,
|
||||
8BF194A82EBE7221006A27E0 /* ComponentBase.cpp in Sources */,
|
||||
8BF194892EBE7221006A27E0 /* CARingBuffer.cpp in Sources */,
|
||||
8BF194A92EBE7221006A27E0 /* AUScopeElement.cpp in Sources */,
|
||||
8BF194A62EBE7221006A27E0 /* CAAudioUnit.cpp in Sources */,
|
||||
8BF194A32EBE7221006A27E0 /* CACFArray.cpp in Sources */,
|
||||
8BF194A02EBE7221006A27E0 /* CABundleLocker.cpp in Sources */,
|
||||
8BF194922EBE7221006A27E0 /* CAProcess.cpp in Sources */,
|
||||
8BF194802EBE7221006A27E0 /* CAStreamRangedDescription.cpp in Sources */,
|
||||
8BF194812EBE7221006A27E0 /* CAPThread.cpp in Sources */,
|
||||
8BF194432EBE7221006A27E0 /* CAComponent.cpp in Sources */,
|
||||
8BF1945B2EBE7221006A27E0 /* CAAudioChannelLayoutObject.cpp in Sources */,
|
||||
8BF194962EBE7221006A27E0 /* CAAudioTimeStamp.cpp in Sources */,
|
||||
8BF1949D2EBE7221006A27E0 /* CABufferList.cpp in Sources */,
|
||||
8BF1947A2EBE7221006A27E0 /* CACFMessagePort.cpp in Sources */,
|
||||
8BF194842EBE7221006A27E0 /* CAVectorUnit.cpp in Sources */,
|
||||
8BF194B62EBE7221006A27E0 /* AUInputElement.cpp in Sources */,
|
||||
8BF194BE2EBE7221006A27E0 /* AUBuffer.cpp in Sources */,
|
||||
8BF194632EBE7221006A27E0 /* CADebugMacros.cpp in Sources */,
|
||||
8BF194452EBE7221006A27E0 /* CACFNumber.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXVariantGroup section */
|
||||
089C167DFE841241C02AAC07 /* InfoPlist.strings */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
8BF194C22EBE731E006A27E0 /* 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 = ConsoleHChannel.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 = ConsoleHChannel;
|
||||
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 = ConsoleHChannel.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 = ConsoleHChannel;
|
||||
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 "ConsoleHChannel" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
3E4BA244089833B7007656EC /* Debug */,
|
||||
3E4BA245089833B7007656EC /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Debug;
|
||||
};
|
||||
3E4BA247089833B7007656EC /* Build configuration list for PBXProject "ConsoleHChannel" */ = {
|
||||
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 = "ConsoleHChannel.component"
|
||||
BlueprintName = "ConsoleHChannel"
|
||||
ReferencedContainer = "container:ConsoleHChannel.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 = "ConsoleHChannel.component"
|
||||
BlueprintName = "ConsoleHChannel"
|
||||
ReferencedContainer = "container:ConsoleHChannel.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>ConsoleHChannel.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/ConsoleHChannel/ConsoleHChannelVersion.h
Executable file
58
plugins/MacSignedAU/ConsoleHChannel/ConsoleHChannelVersion.h
Executable file
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* File: ConsoleHChannelVersion.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 __ConsoleHChannelVersion_h__
|
||||
#define __ConsoleHChannelVersion_h__
|
||||
|
||||
|
||||
#ifdef DEBUG
|
||||
#define kConsoleHChannelVersion 0xFFFFFFFF
|
||||
#else
|
||||
#define kConsoleHChannelVersion 0x00010000
|
||||
#endif
|
||||
|
||||
//~~~~~~~~~~~~~~ Change!!! ~~~~~~~~~~~~~~~~~~~~~//
|
||||
#define ConsoleHChannel_COMP_MANF 'Dthr'
|
||||
#define ConsoleHChannel_COMP_SUBTYPE 'chpc'
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
|
||||
|
||||
#endif
|
||||
|
||||
47
plugins/MacSignedAU/ConsoleHChannel/Info.plist
Executable file
47
plugins/MacSignedAU/ConsoleHChannel/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>chpc</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/ConsoleHChannel/StarterAU_Prefix.pch
Executable file
5
plugins/MacSignedAU/ConsoleHChannel/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/ConsoleHChannel/en.lproj/InfoPlist.strings
Executable file
BIN
plugins/MacSignedAU/ConsoleHChannel/en.lproj/InfoPlist.strings
Executable file
Binary file not shown.
16
plugins/MacSignedAU/ConsoleHChannel/version.plist
Executable file
16
plugins/MacSignedAU/ConsoleHChannel/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>
|
||||
847
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.cpp
Executable file
847
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.cpp
Executable file
|
|
@ -0,0 +1,847 @@
|
|||
/*
|
||||
* File: ConsoleHPre.cpp
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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.
|
||||
*
|
||||
*/
|
||||
/*=============================================================================
|
||||
ConsoleHPre.cpp
|
||||
|
||||
=============================================================================*/
|
||||
#include "ConsoleHPre.h"
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
AUDIOCOMPONENT_ENTRY(AUBaseFactory, ConsoleHPre)
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPre
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ConsoleHPre::ConsoleHPre(AudioUnit component)
|
||||
: AUEffectBase(component)
|
||||
{
|
||||
CreateElements();
|
||||
Globals()->UseIndexedParameters(kNumberOfParameters);
|
||||
SetParameter(kParam_TRM, kDefaultValue_ParamTRM );
|
||||
SetParameter(kParam_MOR, kDefaultValue_ParamMOR );
|
||||
|
||||
SetParameter(kParam_HIG, kDefaultValue_ParamHIG );
|
||||
SetParameter(kParam_MID, kDefaultValue_ParamMID );
|
||||
SetParameter(kParam_LOW, kDefaultValue_ParamLOW );
|
||||
SetParameter(kParam_CRS, kDefaultValue_ParamCRS );
|
||||
|
||||
SetParameter(kParam_TRF, kDefaultValue_ParamTRF );
|
||||
SetParameter(kParam_TRG, kDefaultValue_ParamTRG );
|
||||
SetParameter(kParam_TRB, kDefaultValue_ParamTRB );
|
||||
SetParameter(kParam_HMF, kDefaultValue_ParamHMF );
|
||||
SetParameter(kParam_HMG, kDefaultValue_ParamHMG );
|
||||
SetParameter(kParam_HMB, kDefaultValue_ParamHMB );
|
||||
SetParameter(kParam_LMF, kDefaultValue_ParamLMF );
|
||||
SetParameter(kParam_LMG, kDefaultValue_ParamLMG );
|
||||
SetParameter(kParam_LMB, kDefaultValue_ParamLMB );
|
||||
SetParameter(kParam_BSF, kDefaultValue_ParamBSF );
|
||||
SetParameter(kParam_BSG, kDefaultValue_ParamBSG );
|
||||
SetParameter(kParam_BSB, kDefaultValue_ParamBSB );
|
||||
|
||||
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);
|
||||
#endif
|
||||
|
||||
}
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetParameterValueStrings
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetParameterValueStrings(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
CFArrayRef * outStrings)
|
||||
{
|
||||
|
||||
return kAudioUnitErr_InvalidProperty;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetParameterInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetParameterInfo(AudioUnitScope inScope,
|
||||
AudioUnitParameterID inParameterID,
|
||||
AudioUnitParameterInfo &outParameterInfo )
|
||||
{
|
||||
ComponentResult result = noErr;
|
||||
|
||||
outParameterInfo.flags = kAudioUnitParameterFlag_IsWritable
|
||||
| kAudioUnitParameterFlag_IsReadable;
|
||||
|
||||
if (inScope == kAudioUnitScope_Global) {
|
||||
switch(inParameterID)
|
||||
{
|
||||
case kParam_TRM:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRMName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Indexed;
|
||||
outParameterInfo.minValue = 0;
|
||||
outParameterInfo.maxValue = 4;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRM;
|
||||
break;
|
||||
case kParam_MOR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMORName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMOR;
|
||||
break;
|
||||
|
||||
case kParam_HIG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterHIGUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIG;
|
||||
break;
|
||||
case kParam_MID:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterMIDName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamMID;
|
||||
break;
|
||||
case kParam_LOW:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOWName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOW;
|
||||
break;
|
||||
case kParam_CRS:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterCRSName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamCRS;
|
||||
break;
|
||||
|
||||
case kParam_TRF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTRFUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRF;
|
||||
break;
|
||||
case kParam_TRG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRG;
|
||||
break;
|
||||
case kParam_TRB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTRBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTRB;
|
||||
break;
|
||||
case kParam_HMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMF;
|
||||
break;
|
||||
case kParam_HMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMG;
|
||||
break;
|
||||
case kParam_HMB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHMBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHMB;
|
||||
break;
|
||||
case kParam_LMF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMF;
|
||||
break;
|
||||
case kParam_LMG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMG;
|
||||
break;
|
||||
case kParam_LMB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLMBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLMB;
|
||||
break;
|
||||
case kParam_BSF:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSFName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSF;
|
||||
break;
|
||||
case kParam_BSG:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSGName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSG;
|
||||
break;
|
||||
case kParam_BSB:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterBSBName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamBSB;
|
||||
break;
|
||||
|
||||
case kParam_THR:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterTHRName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterTHRUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamTHR;
|
||||
break;
|
||||
case kParam_ATK:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterATKName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamATK;
|
||||
break;
|
||||
case kParam_RLS:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterRLSName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamRLS;
|
||||
break;
|
||||
case kParam_GAT:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterGATName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamGAT;
|
||||
break;
|
||||
|
||||
case kParam_LOP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterLOPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_CustomUnit;
|
||||
outParameterInfo.unitName = kParameterLOPUnit;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamLOP;
|
||||
break;
|
||||
case kParam_HIP:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterHIPName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamHIP;
|
||||
break;
|
||||
case kParam_FAD:
|
||||
AUBase::FillInParameterName (outParameterInfo, kParameterFADName, false);
|
||||
outParameterInfo.unit = kAudioUnitParameterUnit_Generic;
|
||||
outParameterInfo.minValue = 0.0;
|
||||
outParameterInfo.maxValue = 1.0;
|
||||
outParameterInfo.defaultValue = kDefaultValue_ParamFAD;
|
||||
break;
|
||||
|
||||
default:
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
result = kAudioUnitErr_InvalidParameter;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetPropertyInfo
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetPropertyInfo (AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
UInt32 & outDataSize,
|
||||
Boolean & outWritable)
|
||||
{
|
||||
return AUEffectBase::GetPropertyInfo (inID, inScope, inElement, outDataSize, outWritable);
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::GetProperty
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::GetProperty( AudioUnitPropertyID inID,
|
||||
AudioUnitScope inScope,
|
||||
AudioUnitElement inElement,
|
||||
void * outData )
|
||||
{
|
||||
return AUEffectBase::GetProperty (inID, inScope, inElement, outData);
|
||||
}
|
||||
|
||||
// ConsoleHPre::Initialize
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
ComponentResult ConsoleHPre::Initialize()
|
||||
{
|
||||
ComponentResult result = AUEffectBase::Initialize();
|
||||
if (result == noErr)
|
||||
Reset(kAudioUnitScope_Global, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
#pragma mark ____ConsoleHPreEffectKernel
|
||||
|
||||
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPreKernel::Reset()
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void ConsoleHPre::ConsoleHPreKernel::Reset()
|
||||
{
|
||||
for (int x = 0; x < biq_total; x++) {
|
||||
highFast[x] = 0.0;
|
||||
lowFast[x] = 0.0;
|
||||
}
|
||||
highFastLIIR = 0.0;
|
||||
lowFastLIIR = 0.0;
|
||||
//SmoothEQ3
|
||||
|
||||
for (int x = 0; x < biqs_total; x++) {
|
||||
high[x] = 0.0;
|
||||
hmid[x] = 0.0;
|
||||
lmid[x] = 0.0;
|
||||
bass[x] = 0.0;
|
||||
}
|
||||
//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 count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
iirHAngle[count] = 0.0;
|
||||
}
|
||||
hBypass = false;
|
||||
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPosition[count] = 0.0;
|
||||
iirLAngle[count] = 0.0;
|
||||
}
|
||||
lBypass = false;
|
||||
//Cabs2
|
||||
|
||||
for(int count = 0; count < dscBuf+2; count++) {
|
||||
dBaL[count] = 0.0;
|
||||
}
|
||||
dBaPosL = 0.0;
|
||||
dBaXL = 1;
|
||||
//Discontapeity
|
||||
|
||||
for (int x = 0; x < 33; x++) {avg32L[x] = 0.0;}
|
||||
for (int x = 0; x < 17; x++) {avg16L[x] = 0.0;}
|
||||
for (int x = 0; x < 9; x++) {avg8L[x] = 0.0;}
|
||||
for (int x = 0; x < 5; x++) {avg4L[x] = 0.0;}
|
||||
for (int x = 0; x < 3; x++) {avg2L[x] = 0.0;}
|
||||
avgPos = 0;
|
||||
lastSlewL = 0.0;
|
||||
lastSlewpleL = 0.0;
|
||||
//preTapeHack
|
||||
|
||||
lFreqA = 1.0; lFreqB = 1.0;
|
||||
hFreqA = 0.0; hFreqB = 0.0;
|
||||
inTrimA = 0.5; inTrimB = 0.5;
|
||||
|
||||
fpd = 1.0; while (fpd < 16386) fpd = rand()*UINT32_MAX;
|
||||
}
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// ConsoleHPre::ConsoleHPreKernel::Process
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
void ConsoleHPre::ConsoleHPreKernel::Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence )
|
||||
{
|
||||
UInt32 nSampleFrames = inFramesToProcess;
|
||||
const Float32 *sourceP = inSourceP;
|
||||
Float32 *destP = inDestP;
|
||||
double overallscale = 1.0;
|
||||
overallscale /= 44100.0;
|
||||
overallscale *= GetSampleRate();
|
||||
int spacing = floor(overallscale*2.0);
|
||||
if (spacing < 2) spacing = 2; if (spacing > 32) spacing = 32;
|
||||
|
||||
double moreTapeHack = (GetParameter( kParam_MOR )*2.0)+1.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_MOR )*0.42,3.0)*overallscale,0.00001);
|
||||
//Discontapeity
|
||||
|
||||
double trebleGain = (GetParameter( kParam_HIG )-0.5)*2.0;
|
||||
trebleGain = 1.0+(trebleGain*fabs(trebleGain)*fabs(trebleGain));
|
||||
double midGain = (GetParameter( kParam_MID )-0.5)*2.0;
|
||||
midGain = 1.0+(midGain*fabs(midGain)*fabs(midGain));
|
||||
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
|
||||
|
||||
//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
|
||||
|
||||
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 );
|
||||
//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);
|
||||
bezRez = fmin(fmax(bezRez,0.0001),1.0);
|
||||
double gate = pow(pow(GetParameter( kParam_GAT ),4.0),sqrt(bezCThresh+1.0));
|
||||
//Dynamics2
|
||||
|
||||
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_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
|
||||
//Discontapeity
|
||||
|
||||
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
|
||||
//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
|
||||
|
||||
//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];
|
||||
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+(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;
|
||||
}
|
||||
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;
|
||||
//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
|
||||
|
||||
const double temp = (double)nSampleFrames/inFramesToProcess;
|
||||
const double hFreq = (hFreqA*temp)+(hFreqB*(1.0-temp));
|
||||
if (hFreq > 0.0) {
|
||||
double lowSample = inputSampleL;
|
||||
for(int count = 0; count < 21; count++) {
|
||||
iirHAngle[count] = (iirHAngle[count]*(1.0-hFreq))+((lowSample-iirHPosition[count])*hFreq);
|
||||
lowSample = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(lowSample*hFreq);
|
||||
iirHPosition[count] = ((iirHPosition[count]+(iirHAngle[count]*hFreq))*(1.0-hFreq))+(lowSample*hFreq);
|
||||
inputSampleL -= (lowSample * (1.0/21.0));
|
||||
} //the highpass
|
||||
hBypass = false;
|
||||
} else {
|
||||
if (!hBypass) {
|
||||
hBypass = true;
|
||||
for(int count = 0; count < 22; count++) {
|
||||
iirHPosition[count] = 0.0;
|
||||
iirHAngle[count] = 0.0;
|
||||
}
|
||||
} //blank out highpass if jut switched off
|
||||
}
|
||||
const double lFreq = (lFreqA*temp)+(lFreqB*(1.0-temp));
|
||||
if (lFreq < 1.0) {
|
||||
for(int count = 0; count < 13; count++) {
|
||||
iirLAngle[count] = (iirLAngle[count]*(1.0-lFreq))+((inputSampleL-iirLPosition[count])*lFreq);
|
||||
inputSampleL = ((iirLPosition[count]+(iirLAngle[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);
|
||||
iirLPosition[count] = ((iirLPosition[count]+(iirLAngle[count]*lFreq))*(1.0-lFreq))+(inputSampleL*lFreq);
|
||||
} //the lowpass
|
||||
lBypass = false;
|
||||
} else {
|
||||
if (!lBypass) {
|
||||
lBypass = true;
|
||||
for(int count = 0; count < 14; count++) {
|
||||
iirLPosition[count] = 0.0;
|
||||
iirLAngle[count] = 0.0;
|
||||
}
|
||||
} //blank out lowpass if just switched off
|
||||
}
|
||||
//Cabs2
|
||||
|
||||
double gain = (inTrimA*temp)+(inTrimB*(1.0-temp));
|
||||
if (gain > 1.0) gain *= gain;
|
||||
if (gain < 1.0) gain = 1.0-pow(1.0-gain,2);
|
||||
|
||||
inputSampleL *= gain;
|
||||
//applies smoothed fader gain
|
||||
|
||||
//begin 32 bit floating point dither
|
||||
int expon; frexpf((float)inputSampleL, &expon);
|
||||
fpd ^= fpd << 13; fpd ^= fpd >> 17; fpd ^= fpd << 5;
|
||||
inputSampleL += ((double(fpd)-uint32_t(0x7fffffff)) * 5.5e-36l * pow(2,expon+62));
|
||||
//end 32 bit floating point dither
|
||||
|
||||
*destP = inputSampleL;
|
||||
|
||||
sourceP += inNumChannels; destP += inNumChannels;
|
||||
}
|
||||
}
|
||||
|
||||
2
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.exp
Executable file
2
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.exp
Executable file
|
|
@ -0,0 +1,2 @@
|
|||
_ConsoleHPreEntry
|
||||
_ConsoleHPreFactory
|
||||
300
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.h
Executable file
300
plugins/MacSignedAU/ConsoleHPre/ConsoleHPre.h
Executable file
|
|
@ -0,0 +1,300 @@
|
|||
/*
|
||||
* File: ConsoleHPre.h
|
||||
*
|
||||
* Version: 1.0
|
||||
*
|
||||
* Created: 11/4/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 "ConsoleHPreVersion.h"
|
||||
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
#include "AUDebugDispatcher.h"
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __ConsoleHPre_h__
|
||||
#define __ConsoleHPre_h__
|
||||
|
||||
|
||||
#pragma mark ____ConsoleHPre Parameters
|
||||
|
||||
// parameters
|
||||
static const int kDefaultValue_ParamTRM = 1;
|
||||
static const float kDefaultValue_ParamMOR = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamHIG = 0.5;
|
||||
static const float kDefaultValue_ParamMID = 0.5;
|
||||
static const float kDefaultValue_ParamLOW = 0.5;
|
||||
static const float kDefaultValue_ParamCRS = 0.0;
|
||||
|
||||
static const float kDefaultValue_ParamTRF = 0.5;
|
||||
static const float kDefaultValue_ParamTRG = 0.0;
|
||||
static const float kDefaultValue_ParamTRB = 0.5;
|
||||
static const float kDefaultValue_ParamHMF = 0.5;
|
||||
static const float kDefaultValue_ParamHMG = 0.0;
|
||||
static const float kDefaultValue_ParamHMB = 0.5;
|
||||
static const float kDefaultValue_ParamLMF = 0.5;
|
||||
static const float kDefaultValue_ParamLMG = 0.0;
|
||||
static const float kDefaultValue_ParamLMB = 0.5;
|
||||
static const float kDefaultValue_ParamBSF = 0.5;
|
||||
static const float kDefaultValue_ParamBSG = 0.0;
|
||||
static const float kDefaultValue_ParamBSB = 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 kParameterMIDName = CFSTR("Mid");
|
||||
static CFStringRef kParameterLOWName = CFSTR("Low");
|
||||
static CFStringRef kParameterCRSName = CFSTR("CrossFd");
|
||||
|
||||
static CFStringRef kParameterTRFUnit = CFSTR("crush");
|
||||
static CFStringRef kParameterTRFName = CFSTR("Tr Freq");
|
||||
static CFStringRef kParameterTRGName = CFSTR("Treble");
|
||||
static CFStringRef kParameterTRBName = CFSTR("TrCrush");
|
||||
static CFStringRef kParameterHMFName = CFSTR("HM Freq");
|
||||
static CFStringRef kParameterHMGName = CFSTR("HighMid");
|
||||
static CFStringRef kParameterHMBName = CFSTR("HMCrush");
|
||||
static CFStringRef kParameterLMFName = CFSTR("LM Freq");
|
||||
static CFStringRef kParameterLMGName = CFSTR("LowMid");
|
||||
static CFStringRef kParameterLMBName = CFSTR("LMCrush");
|
||||
static CFStringRef kParameterBSFName = CFSTR("Bs Freq");
|
||||
static CFStringRef kParameterBSGName = CFSTR("Bass");
|
||||
static CFStringRef kParameterBSBName = CFSTR("BsCrush");
|
||||
|
||||
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_TRM =0,
|
||||
kParam_MOR =1,
|
||||
kParam_HIG =2,
|
||||
kParam_MID =3,
|
||||
kParam_LOW =4,
|
||||
kParam_CRS =5,
|
||||
kParam_TRF =6,
|
||||
kParam_TRG =7,
|
||||
kParam_TRB =8,
|
||||
kParam_HMF =9,
|
||||
kParam_HMG =10,
|
||||
kParam_HMB =11,
|
||||
kParam_LMF =12,
|
||||
kParam_LMG =13,
|
||||
kParam_LMB =14,
|
||||
kParam_BSF =15,
|
||||
kParam_BSG =16,
|
||||
kParam_BSB =17,
|
||||
kParam_THR =18,
|
||||
kParam_ATK =19,
|
||||
kParam_RLS =20,
|
||||
kParam_GAT =21,
|
||||
kParam_LOP =22,
|
||||
kParam_HIP =23,
|
||||
kParam_FAD =24,
|
||||
//Add your parameters here...
|
||||
kNumberOfParameters=25
|
||||
};
|
||||
|
||||
const int dscBuf = 256;
|
||||
|
||||
#pragma mark ____ConsoleHPre
|
||||
class ConsoleHPre : public AUEffectBase
|
||||
{
|
||||
public:
|
||||
ConsoleHPre(AudioUnit component);
|
||||
#if AU_DEBUG_DISPATCHER
|
||||
virtual ~ConsoleHPre () { delete mDebugDispatcher; }
|
||||
#endif
|
||||
|
||||
virtual AUKernelBase * NewKernel() { return new ConsoleHPreKernel(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 kConsoleHPreVersion; }
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
class ConsoleHPreKernel : public AUKernelBase // most of the real work happens here
|
||||
{
|
||||
public:
|
||||
ConsoleHPreKernel(AUEffectBase *inAudioUnit )
|
||||
: AUKernelBase(inAudioUnit)
|
||||
{
|
||||
}
|
||||
|
||||
// *Required* overides for the process method for this effect
|
||||
// processes one channel of interleaved samples
|
||||
virtual void Process( const Float32 *inSourceP,
|
||||
Float32 *inDestP,
|
||||
UInt32 inFramesToProcess,
|
||||
UInt32 inNumChannels,
|
||||
bool &ioSilence);
|
||||
|
||||
virtual void Reset();
|
||||
|
||||
private:
|
||||
|
||||
enum {
|
||||
biq_freq,
|
||||
biq_reso,
|
||||
biq_a0,
|
||||
biq_a1,
|
||||
biq_a2,
|
||||
biq_b1,
|
||||
biq_b2,
|
||||
biq_sL1,
|
||||
biq_sL2,
|
||||
biq_total
|
||||
}; //coefficient interpolating filter, stereo
|
||||
double highFast[biq_total];
|
||||
double lowFast[biq_total];
|
||||
double highFastLIIR;
|
||||
double lowFastLIIR;
|
||||
//SmoothEQ3
|
||||
|
||||
enum {
|
||||
biqs_freq, biqs_reso, biqs_level,
|
||||
biqs_temp, biqs_bit,
|
||||
biqs_a0, biqs_a1, biqs_b1, biqs_b2,
|
||||
biqs_c0, biqs_c1, biqs_d1, biqs_d2,
|
||||
biqs_aL1, biqs_aL2,
|
||||
biqs_cL1, biqs_cL2,
|
||||
biqs_outL, biqs_total
|
||||
};
|
||||
double high[biqs_total];
|
||||
double hmid[biqs_total];
|
||||
double lmid[biqs_total];
|
||||
double bass[biqs_total];
|
||||
//HipCrush with four bands
|
||||
|
||||
enum {
|
||||
bez_AL,
|
||||
bez_BL,
|
||||
bez_CL,
|
||||
bez_InL,
|
||||
bez_UnInL,
|
||||
bez_SampL,
|
||||
bez_cycle,
|
||||
bez_total
|
||||
}; //the new undersampling. bez signifies the bezier curve reconstruction
|
||||
double bezCompF[bez_total];
|
||||
double bezMaxF;
|
||||
double bezCompS[bez_total];
|
||||
double bezGate;
|
||||
//Dynamics2
|
||||
|
||||
double iirHPosition[23];
|
||||
double iirHAngle[23];
|
||||
bool hBypass;
|
||||
double iirLPosition[15];
|
||||
double iirLAngle[15];
|
||||
bool lBypass;
|
||||
double lFreqA;
|
||||
double lFreqB; //the lowpass
|
||||
double hFreqA;
|
||||
double hFreqB; //the highpass
|
||||
//Cabs2
|
||||
|
||||
double dBaL[dscBuf+5];
|
||||
double dBaPosL;
|
||||
int dBaXL;
|
||||
//Discontapeity
|
||||
|
||||
double avg32L[33];
|
||||
double avg16L[17];
|
||||
double avg8L[9];
|
||||
double avg4L[5];
|
||||
double avg2L[3];
|
||||
int avgPos;
|
||||
double lastSlewL;
|
||||
double lastSlewpleL;
|
||||
//preTapeHack
|
||||
|
||||
double inTrimA;
|
||||
double inTrimB;
|
||||
|
||||
uint32_t fpd;
|
||||
};
|
||||
};
|
||||
|
||||
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
#endif
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue