mirror of
https://github.com/airwindows/airwindows.git
synced 2026-05-15 06:05:55 -06:00
ChimeyDeluxe
This commit is contained in:
parent
d27f470c07
commit
4d76432e93
289 changed files with 82528 additions and 3674 deletions
|
|
@ -945,6 +945,22 @@ You can still have your fancy desk models (only better: the ultrasonic filtering
|
|||
|
||||
Channel9 can be used anywhere you like. If you’re doing a Console mix, I’d put it after ConsoleBuss. If you’re not doing a Console mix, you can literally do anything you want with it: it’s a subtle distortion/fattener combined with a set of careful tone shaping algorithms. Hope you like it!
|
||||
|
||||
############ ChimeyDeluxe is a very flexible compressed DI conditioner.
|
||||
|
||||
I've been working on this one for a while. It's done! ChimeyDeluxe is based on the same idea behind PointyDeluxe: more finely grained control over a bank of monster EQ bands, with processing stages between all the EQ stages that make the EQ so intense. None of it is normal but all of it is brutal, and PointyDeluxe found favor with industrial metal heads. To make it sound even slightly nice you have to follow it with either Cabs2, or an impulse response if you favor those, or perhaps the highpass and lowpass in ConsoleX2 or ConsoleH (the latter is still on track to be done before 2026).
|
||||
|
||||
Or you can just run it raw and demolish your mix.
|
||||
|
||||
I had to completely redesign the compression from ChimeyGuitar and it went through multiple revisions, ending up with 10 bands of EQ and sixteen (!) stages of EQ and compression. For a while there it ran compression from the Pressure algorithm, and then it went back to an upgraded BeziComp. You're met with 10 bands of EQ, labeled like they are in PointyDeluxe (the Slipperman Distorted Guitar nomenclature for frequency ranges) and nothing else. The compression responds to both the largest boost and the deepest cut.
|
||||
|
||||
Much like with PointyDeluxe, this plugin does not protect you from yourself. Be gentle, or enjoy intensely gnarly resonant overloads. Why was this so important, if it's just a strange noise maker delivering pungent resonances?
|
||||
|
||||
Because my target was to make the ultimate bass DI plugin, that could compress rather than distort, but also fill up the whole mix with dynamic bass intent. It needed to make notes just pop right out of the mix, and by the time I was done with it, it did. You can sculpt the string attack any way you like by how hard you drive it, and zero in on where in the mix you want this energy delivered. It's the perfect Ted Templeman Trick plugin: you can just zero in on a hole in the kick drum EQ and supply not only frequency, but dynamics and bounciness.
|
||||
|
||||
It should also work just fine on guitars, keyboards, or whatever. Remember it's trying to deliver amp-like voicings. I got it to make an absolutely brutal close-miked kick sound out of room mics just by obliterating the sound just right. It'll always apply some compression, it's just a matter of how hard you push it with its own EQ on top of that. And again, it doesn't apply bandpassing or speaker emulation at all, so any sound out of ChimeyDeluxe will eat up a lot of mix space unless you do something to stop that.
|
||||
|
||||
Or, you can just let it push your mix around and make things huge: up to you!
|
||||
|
||||
############ ChimeyGuitar is a supremely compressible instrument amp.
|
||||
|
||||
Here's a followup to PointyGuitar. What if, instead of distort, the imaginary amp compressed?
|
||||
|
|
|
|||
|
|
@ -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
|
||||
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